All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Fix for redirectionEnabled attribute to allow ssr redirection.
- Check for redirectionEnabled attribute to allow secondary fragments redirect.
- Update puzzle/lib version
- RequestConfiguration header host is deleted because it caused some unintentional behaviours.
- CheerioStatic type is changed to any
- Injecting same resources multiple times problem fixed
- Template class refactoring
- Resource injector class created
- Import typo fixed and unused variable removed
- Ignored files removed
- Versioning problem fixed when injecting assets and dependencies
- ForceVersion support added for gatewayBff fragment render system
- Fixed wrong module import
- Added min different hash amount to recompile gateway configuration.
- Gateway fragment returns passive versions too.
- Fixes precompile style versions
- Multiple Http Cookies in Header
- Conditional Page Rendering
- Fixed version matcher bug for inline CSS assets
- Configuration loop fixed and it improves boot up time drastically.
- Warden updated.
originalpath
header fixed for fragments- Flushing Gzip compressed chunks fixed
originalurl
key added to fragment
- Experimental support for Warden
- Passive fragment compilers. Test cookies are working for both preview and stream mode. Assets and dependencies are now connected to test cookie too
- Upgraded packages to latest versions
- Added support for post pattern
GLOBAL_REQUEST_TIMEOUT
is now miliseconds and using inter http timeout.helmet
is now optional with envUSE_HELMET
.morgan
is now optional with envUSE_MORGAN
.- Errors are not going to stdout by default. Use config
ENABLE_CONSOLE_ERROR
.
- Fragment versions are now removed.
- Fixed
fragmentModelScript
missing semicolon added for each script closing
gateway
header added for target content requests which is gateway hostname, so that strangler pattern with reverse proxy can be applicable easily.
corsMaxAge
added to configuration, if it is provided it will set Access-Control-Max-Age header with given value on options request.
- Added support for https for http/1.
- ipv4 support added. Nodejs Docs Docs
- 400 responses will be warning level
- 500 responses will be error level
- All exceptions will be printed on console when there is no
DISABLE_CONSOLE_ERROR
config.
- dnscache wrapper with 2000 ms ttl.
- Failed fragment conntent requests are now logging fragment name and url
- Fragment get requests should use query from
req.query
to include changes onreq.query
object.
originalurl
key added to fragment
originalurl
key added to headers for api requests
<puzzle-script>
can be used to inline scripts without any parse error
- Css files are now concataned and injected into head
- Removed cdn support from dynamic files
- Fixed duplicate compiling when booting up.
- Storage module for debugging application cache into PuzzleLib
- Fragment loaded for static and waited fragments
- Analytics added into PuzzleLib
- Assets are being loaded in parallel
- Temporary cdn support for dynamic files
- correlation-id header reflection on logs
- x-agentname header reflection on logs
- Changed Request as default http client because node-fetch was not able to scale under stress test.
- data for static fragments
- Gateway redirections are working for preview modes
- Supported BROTLI for assets
- Fixed waited fragment page models
- Changed how assets are being loaded.
- PuzzleLib and event system
- Fixed closing empty tags automatically. Added config for selfClosing tag names.
- Added route cache for fragment renders. use
routeCache
property with seconds in render options. (Output cache works before all other middlewares).
- Customized template compilation error
- Changed dynamic style naming to /static/{templateName}.min.css?v={hash}
- Fixed dynamic style not found problem when using multiple instances of PuzzleJs storefront.
- Added query string for disabling compression for performance testing.
- Added cache-control header to dynamic css assets.
- Custom injectables(configurator) are can be used for any property type except
object
.
- Exposed container outside.
- Added h2, spdy, http1 support with fallbacks.
- Added original url to header to requests for fragment contents
- corsDomains added to gateway configuration.
- Assets can be injected using link for independent assets.
- Assets can be injected with async, defer tags.
executeType
property of asset.
- Added support check for connection api (Thanks to Safari)
- Added debug information for variables
- Changed Logger into injectable class
- Fixed configurator type checking for array urls
- Gateway Fragment url can be array.
- Storefront Page url can be array.
- TemplateClass now has method for converting string to data attribute with base64
this.toDataAttribute(str)
.
- Fixed all potentatial regular expression replacement mistakes
$model
property in data for dynamic page variables.
- Fixed json body parsing
- Debug mode added.
- Added gulp to project dependencies, public folder is now being moved into dist
- Analytics module added.
- Info module added.
- Fragments module added.
- DEBUG_INFORMATION as env or debug query enables debug information
- PATCH, PUT, DELETE methods added as enum to be able to use for endpoints.