gina 0.6.18 → 0.6.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/README.md +22 -17
- package/ROADMAP.md +1 -0
- package/framework/v0.6.19/VERSION +1 -0
- package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/js/gina.js +13 -1
- package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/js/gina.min.js +319 -319
- package/framework/v0.6.19/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/v0.6.19/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- package/framework/{v0.6.18 → v0.6.19}/core/config.js +34 -0
- package/framework/{v0.6.18 → v0.6.19}/core/connectors/couchbase/index.js +307 -245
- package/framework/{v0.6.18 → v0.6.19}/core/connectors/couchbase/lib/session-store.v3.js +8 -0
- package/framework/{v0.6.18 → v0.6.19}/core/connectors/couchbase/lib/session-store.v4.js +8 -0
- package/framework/{v0.6.18 → v0.6.19}/core/connectors/couchbase/lib/storage-store.js +16 -32
- package/framework/{v0.6.18 → v0.6.19}/core/connectors/mongodb/index.js +10 -5
- package/framework/{v0.6.18 → v0.6.19}/core/connectors/mongodb/lib/connector.js +9 -0
- package/framework/{v0.6.18 → v0.6.19}/core/connectors/mongodb/lib/job-store.js +10 -0
- package/framework/{v0.6.18 → v0.6.19}/core/connectors/mongodb/lib/session-store.js +11 -0
- package/framework/{v0.6.18 → v0.6.19}/core/connectors/redis/lib/session-store.js +8 -0
- package/framework/{v0.6.18 → v0.6.19}/core/connectors/scylladb/index.js +5 -2
- package/framework/{v0.6.18 → v0.6.19}/core/connectors/scylladb/lib/connector.js +9 -0
- package/framework/{v0.6.18 → v0.6.19}/core/connectors/scylladb/lib/session-store.js +11 -0
- package/framework/v0.6.19/core/connectors/settle-once.js +148 -0
- package/framework/{v0.6.18 → v0.6.19}/core/connectors/sqlite/index.js +6 -2
- package/framework/{v0.6.18 → v0.6.19}/core/connectors/sqlite/lib/job-store.js +10 -0
- package/framework/{v0.6.18 → v0.6.19}/core/connectors/sqlite/lib/session-store.js +8 -0
- package/framework/{v0.6.18 → v0.6.19}/core/controller/controller.render-json.js +5 -0
- package/framework/{v0.6.18 → v0.6.19}/core/controller/controller.render-nunjucks-async.js +5 -0
- package/framework/{v0.6.18 → v0.6.19}/core/controller/controller.render-nunjucks.js +5 -0
- package/framework/{v0.6.18 → v0.6.19}/core/controller/controller.render-swig-async.js +5 -0
- package/framework/{v0.6.18 → v0.6.19}/core/controller/controller.render-swig.js +5 -0
- package/framework/{v0.6.18 → v0.6.19}/core/controller/controller.render-v1.js +6 -0
- package/framework/{v0.6.18 → v0.6.19}/core/gna.js +9 -0
- package/framework/{v0.6.18 → v0.6.19}/core/server.isaac.js +9 -0
- package/framework/{v0.6.18 → v0.6.19}/core/server.js +9 -0
- package/framework/{v0.6.18 → v0.6.19}/core/template/conf/settings.json +30 -0
- package/framework/{v0.6.18 → v0.6.19}/lib/logger/src/main.js +145 -3
- package/framework/v0.6.19/lib/logger/src/redact.js +391 -0
- package/framework/{v0.6.18 → v0.6.19}/lib/merge/src/main.js +13 -1
- package/framework/{v0.6.18 → v0.6.19}/lib/secrets/src/main.js +56 -0
- package/framework/{v0.6.18 → v0.6.19}/package.json +1 -1
- package/gna.js +4 -4
- package/llms.txt +3 -3
- package/package.json +3 -3
- package/schema/settings.json +50 -0
- package/framework/v0.6.18/VERSION +0 -1
- package/framework/v0.6.18/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/v0.6.18/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/AUTHORS +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/LICENSE +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/asset/html/nolayout.html +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/asset/html/static.html +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/asset/img/android-chrome-192x192.png +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/asset/img/android-chrome-512x512.png +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/asset/img/apple-touch-icon.png +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/asset/img/favicon-16x16.png +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/asset/img/favicon-32x32.png +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/asset/img/favicon.ico +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/connectors/ai/index.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/connectors/ai/lib/connector.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/connectors/couchbase/lib/connector.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/connectors/couchbase/lib/connector.v3.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/connectors/couchbase/lib/connector.v4.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/connectors/couchbase/lib/n1ql.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/connectors/couchbase/lib/session-store.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/connectors/duckdb/index.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/connectors/duckdb/lib/connector.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/connectors/mysql/index.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/connectors/mysql/lib/connector.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/connectors/param-redact.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/connectors/postgresql/index.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/connectors/postgresql/lib/connector.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/connectors/redis/index.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/connectors/redis/lib/connector.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/connectors/redis/lib/job-store.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/connectors/redis/lib/kv-store.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/connectors/redis/lib/render-cache-store.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/connectors/sql-parser.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/connectors/sqlite/lib/connector.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/connectors/sqlite/lib/kv-store.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/content.encoding +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/controller/controller.framework.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/controller/controller.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/controller/controller.render-stream.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/controller/index.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/controller/inspector-window-emit.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/controller/release-banner.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/dev/index.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/dev/lib/class.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/dev/lib/factory.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/dev/lib/tools.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/locales/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/locales/currency.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/locales/dist/language/en.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/locales/dist/language/fr.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/locales/dist/region/en.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/locales/dist/region/fr.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/locales/index.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/mime.types +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/model/entity.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/model/index.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/model/template/entityFactory.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/model/template/index.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/index.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/csrf/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/csrf/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/csrf/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/coep/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/coep/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/coop/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/coop/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/corp/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/corp/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/csp/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/csp/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/hsts/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/hsts/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/session/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/session/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/session/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/storage/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/storage/build.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/storage/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/storage/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/validator/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/validator/build.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/validator/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/validator/src/form-validator.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/validator/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/router.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/server.express.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/status.codes +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/_gitignore +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle/config/app.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle/config/connectors.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle/config/routing.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle/config/settings.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle/config/templates.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle/config/watchers.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle/index.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle/locales/en.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_public/css/default.css +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_public/css/home.css +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_public/js/components/x-checklist.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_public/readme.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_public/sw.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_templates/html/includes/x-checklist.html +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/command/gina.bat.tpl +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/command/gina.tpl +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/conf/env.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/conf/manifest.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/conf/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/conf/statics.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/conf/templates.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/error/client/json/401.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/error/client/json/403.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/error/client/json/404.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/error/server/html/50x.html +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/error/server/json/500.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/error/server/json/503.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/core/template/extensions/logger/config.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/helpers/console.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/helpers/context.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/helpers/data/LICENSE +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/helpers/data/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/helpers/data/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/helpers/data/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/helpers/dateFormat.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/helpers/index.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/helpers/json/LICENSE +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/helpers/json/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/helpers/json/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/helpers/json/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/helpers/path.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/helpers/plugins/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/helpers/plugins/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/helpers/plugins/src/api-error.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/helpers/plugins/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/helpers/prototypes.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/helpers/task.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/helpers/text.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/admin/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/admin/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/archiver/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/archiver/build.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/archiver/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/archiver/src/dep/jszip.min.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/archiver/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/async/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/async/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/audit/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/audit/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/audit-store.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/authn/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/authn/src/lockout.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/authn/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/authn/src/totp.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/authz-gate/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/authz-gate/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cache/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cache/build.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cache/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cache/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/aliases.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/audit/arguments.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/audit/help.txt +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/audit/verify.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/add.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/arguments.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/build.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/copy.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/cp.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/help.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/help.txt +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/list.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/man.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/mcp-start.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/mcp.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/oas.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/openapi.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/remove.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/rename.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/restart.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/rm.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/start.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/status.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/stop.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/types.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/cache/arguments.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/cache/clear.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/cache/help.txt +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/cache/stats.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/connector/add.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/connector/arguments.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/connector/help.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/connector/help.txt +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/connector/infer.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/connector/list.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/connector/migrate.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/connector/models.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/connector/remove.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/connector/rm.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/connector/test.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/container/arguments.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/container/help.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/container/help.txt +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/container/man.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/container/ps.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/container/stop.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/controller/add.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/controller/arguments.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/controller/help.txt +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/controller/inc/args.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/controller/inc/namespace.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/controller/inc/reference-rewrite.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/controller/inc/reference-scan.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/controller/inc/scaffold.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/controller/remove.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/controller/rename.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/controller/rm.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/env/add.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/env/get.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/env/help.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/env/help.txt +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/env/link-dev.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/env/list.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/env/remove.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/env/rm.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/env/set.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/env/unset.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/env/use.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/add.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/arguments.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/build.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/dot.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/get.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/help.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/help.txt +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/init.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/link-node-modules.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/link.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/list.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/man.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/msg.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/open.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/remove.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/reset.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/restart.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/set.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/start.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/status.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/stop.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/tail.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/update.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/version.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/gina-dev.1.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/gina-framework.1.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/gina.1.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/helper.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/i18n/add.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/i18n/arguments.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/i18n/export.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/i18n/help.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/i18n/help.txt +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/i18n/import.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/i18n/scan.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/image/_host.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/image/arguments.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/image/build.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/image/help.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/image/help.txt +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/image/list.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/image/man.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/image/rm.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/image/run.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/index.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/inspector/help.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/inspector/help.txt +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/inspector/open.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/man-render.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/minion/arguments.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/minion/help.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/minion/help.txt +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/minion/kill.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/minion/list.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/msg.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/port/help.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/port/help.txt +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/port/inc/scan.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/port/list.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/port/reset.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/port/set.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/add.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/arguments.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/backup.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/build.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/help.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/help.txt +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/import.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/list.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/man.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/move.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/remove.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/rename.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/restart.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/restore.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/rm.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/start.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/status.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/stop.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/protocol/arguments.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/protocol/help.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/protocol/help.txt +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/protocol/list.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/protocol/remove.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/protocol/set.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/scope/add.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/scope/help.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/scope/help.txt +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/scope/link-local.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/scope/link-production.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/scope/list.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/scope/remove.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/scope/rm.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/scope/use.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/secrets/arguments.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/secrets/check.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/secrets/help.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/secrets/help.txt +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/secrets/scan.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/service/help.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/service/help.txt +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/service/list.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/service/man.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/service/start.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/storage/arguments.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/storage/gc.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/storage/help.txt +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/storage/stats.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/storage/verify.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/view/add.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd-status-format/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cmd-status-format/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/collection/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/collection/build.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/collection/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/collection/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/config.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/connector-config/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/connector-config/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/connector-error/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/connector-error/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/connector-registry/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/connector-registry/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cron/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cron/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/cron/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/domain/LICENSE +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/domain/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/domain/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/domain/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/dto/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/dto/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/dto-pipe/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/dto-pipe/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/dto-types/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/dto-types/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/generator/index.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/i18n/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/i18n/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/image-build/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/image-build/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/index.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/inherits/LICENSE +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/inherits/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/inherits/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/inherits/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/inspector-events/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/inspector-events/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/inspector-redact/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/inspector-redact/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/instrument/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/instrument/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/job/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/job/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/job-store.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/json-config-header/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/json-config-header/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/kv/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/kv/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/kv-store.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/loading-state/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/loading-state/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/logger/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/logger/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/logger/src/containers/default/index.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/logger/src/containers/file/index.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/logger/src/containers/mq/index.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/logger/src/containers/mq/listener.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/logger/src/containers/mq/speaker.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/logger/src/helper.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/maintenance/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/maintenance/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/math/index.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/mcp-dispatch/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/mcp-dispatch/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/mcp-http/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/mcp-http/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/mcp-server/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/mcp-server/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/merge/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/merge/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/metrics/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/metrics/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/model.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/net-locality/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/net-locality/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/nunjucks-filters/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/nunjucks-filters/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/nunjucks-filters/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/nunjucks-resolver/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/nunjucks-resolver/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/proc.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/push/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/push/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/rate-limit/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/rate-limit/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/release-watch/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/release-watch/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/render-cache/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/render-cache/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/render-cache-store.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/routing/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/routing/build.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/routing/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/routing/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/routing/src/radix.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/routing-introspect/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/routing-introspect/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/secrets/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/secrets/src/backends/env.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/secrets/src/backends/exec.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/secrets/src/backends/file.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/secrets/src/declaration.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/secrets/src/env-file.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/secrets/src/sources.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/session-store.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/shell.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/sqlite-driver.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/state.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/storage/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/storage/src/local-cas.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/storage/src/local-stream.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/storage/src/local.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/storage/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/storage/src/meta-store.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/storage/src/s3.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/storage/src/util.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/storage-store.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/swig-filters/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/swig-filters/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/swig-filters/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/swig-resolver/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/swig-resolver/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/template-loaders/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/template-loaders/src/loaders/http.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/template-loaders/src/loaders/memory.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/template-loaders/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/url/README.md +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/url/index.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/url/routing.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/uuid/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/uuid/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/validator.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/watcher/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/watcher/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/ws-framing/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/ws-framing/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/ws-query/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/ws-query/src/main.js +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/ws-session/package.json +0 -0
- /package/framework/{v0.6.18 → v0.6.19}/lib/ws-session/src/main.js +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,17 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
|
|
|
6
6
|
and is generated by [Changie](https://github.com/miniscruff/changie).
|
|
7
7
|
|
|
8
8
|
|
|
9
|
+
## 0.6.19 - 2026-08-28
|
|
10
|
+
### Fixed
|
|
11
|
+
* #B431 — a failed couchbase query no longer settles its caller twice. Each dispatch chained `.catch(onError).then(onResult)` sequentially; a `.catch()` handler that returns normally RESOLVES the promise it produces, so the trailing `.then()` ran on every error with no result payload and delivered a second, bogus empty success. Measured: one failed query invoked an explicit trailing callback twice — first with the real error, then with `(false, null, {})` — so the canonical `if (err) { return next(err); } render(data);` shape ran BOTH branches, erroring the request and then rendering an empty result. On the `await` / `.onComplete()` path the second settlement was swallowed because a promise settles once, which is why this went unnoticed; it was still the reason a failed query emitted its trigger three times instead of once. `bulkInsert` shared the root cause with a different symptom: its result handler dereferenced the absent payload, so every failed bulk insert logged a spurious `TypeError: Cannot read properties of undefined (reading 'rows')`. All three dispatch sites now use the two-argument `.then(onResult, onError)` form, making the handlers mutually exclusive branches, and `bulkInsert` guards its payload the way the query path already did. Server-side only — pickup is a bundle restart, no re-bake.
|
|
12
|
+
* #B430 — a couchbase entity callback that throws is no longer invoked a second time with the same payload. The delivery path wrapped the callback in a `try`, and its `catch` branch called the very same callback again with the identical arguments — so a callback whose own body threw ran twice, and a deterministic throw was logged only after the second pass, while a one-off throw silently got a second run over the same data. The throw is now reported with the query trigger for context and the callback is never re-entered. Affects the explicit trailing-callback form. Server-side only — pickup is a bundle restart, no re-bake.
|
|
13
|
+
* #B432 — an entity query callback is no longer invoked twice when the callback itself throws. The sqlite, mongodb and scylladb connectors delivered a result by calling your callback inside a `try` (sqlite, whose driver is synchronous) or inside a `.then()` followed by a trailing `.catch()` (mongodb, scylladb). Application callbacks throw for ordinary reasons that have nothing to do with the query — a template error, a null dereference in a handler — and that exception landed in the very error path the connector had set up for driver failures, which called the same callback a SECOND time. The consequences are worse than a duplicate: the second call arrives with an Error, so the canonical `if (err) { return next(err); } render(data);` shape runs BOTH branches for one query, and the error it reports is the caller's own exception dressed up as a database failure — so the misleading message points at the connector rather than at the handler that actually threw. On mongodb a second, narrower path had the same shape: a pipeline file whose `op` is not one of the recognised operations reaches an unknown-op branch that settles inside a `try` whose `catch` settled again, and nothing validates `op` against the recognised list at load time, so any typo installs the method and reaches it at query time. Every settle now runs through one per-call guard that delivers at most once and reports a callback exception (tagged with the query trigger) instead of replaying it; a native Promise resolver was never affected, because a promise settles once. Not affected, measured: mysql, postgresql, duckdb and the AI connector. The same shape was present in the session stores, where the callback belongs to express-session: every store method (couchbase v3 and v4, mongodb, redis, scylladb, sqlite) now wraps its callback in the same guard at entry, so a throwing session callback can no longer be re-invoked by the method's own error path. The async-job stores (mongodb and sqlite) are guarded the same way, and there the misdelivery read as a data problem: a callback that threw while the SQLite store was handing a record back came home to the caller as `could not parse job record`, blaming the stored data for the handler's own exception. The mongodb and scylladb connectors carried the shape on their connection-ready path, and there it was worse than a duplicate: the ready handler is the model layer's boot continuation, so an exception thrown downstream at boot — while your models load, for instance — rejected the connect chain, whose error path re-invoked the handler with a fabricated `Connection failed: <that exception's own message>`; the fault was reported as a database connection failure, and the connector registry then cached that fabricated failure, with no connection, for the life of the process. The handler is now invoked once and its exception is reported under the connector's name; a real connection failure still arrives as `Connection failed`. The sqlite connector's Inspector index listener carried the same shape and is guarded for consistency (its caller has no throwing path today). The couchbase storage store already guarded its nine verbs with a local helper, so it never double-delivered — but that helper let a throwing callback's exception vanish: on six verbs it was lost outright, and on the three that run a query (`stats`, `listZeroRefs`, `listKeys`) the store logged it as its own failure (`stats failed: <your message>`). It now uses the shared guard, so the exception is reported once under the verb's name and is never attributed to the store. Server-side only — pickup is a bundle restart, no re-bake.
|
|
14
|
+
* An `Error` passed to a log method now renders with its message, stack, own properties and `cause` chain (#B434). Both stdout writers routed any object argument through an enumerable-properties walk, and an Error's `message` and `stack` are non-enumerable — so `console.error(err)` printed `{}` (or only the enumerable extras, such as `{"code": "ETIMEDOUT"}`), silently dropping the one thing the line was written to report. Errors — including ones minted in another realm — now render the way Node's own console does, at the top level, nested inside a logged object or array, and on the raw `console.log` path alike; the rendered message still passes through log redaction. Every non-Error argument renders exactly as before, and passing `err.stack` as a string keeps working unchanged.
|
|
15
|
+
* `merge()` no longer rewrites the object it was given (#B428). When a source subtree was merged into an existing target level that lacked its key, the subtree was referenced and then walked again as if it were being merged into itself: every array inside the caller's object was replaced by a copy at every depth, and an array of primitives silently lost its duplicates — a per-call cost proportional to the value, and a contract violation for any code that expected `merge` to leave its source alone. A subtree that is the same object on both sides is now skipped (merging a value into itself is identity), so a grafted source keeps its arrays and its duplicates and the result references it. Merging two different values is unchanged, as is the shallow copy built when the key is absent at the root. `lib/merge` is part of the browser bundle, so rebuild your bundles as well as restarting them; no other action is required.
|
|
16
|
+
### Security
|
|
17
|
+
* #B429 — concurrent calls to the same couchbase entity method no longer cross-deliver results. The completion trigger (`N1QL:<entity>#<method>`) carried no call identity, and the entity it was emitted on is a process-wide singleton, so the Promise / `await` / `.onComplete()` path settled from a shared listener. Node fires every listener registered for one emit, so the FIRST query to finish woke every in-flight caller of that method with its own payload and removed their listeners — a broadcast, not a queue. Two concurrent reads with different arguments could each receive the other's rows; a third caller could receive an error belonging to a different call; and a single response could blend rows originating from two callers. This is a confidentiality and authorization concern, not only a correctness one: where the method reads a user-scoped or ownership-bearing record, one request could be answered with another request's row, so a check performed on the returned row could pass for the wrong principal. Measured on the real connector, both directions: a call keyed on one id resolving with a different id's row before the fix, and its own row after. Note the exposure was NOT limited to out-of-order completion — cross-delivery occurred even when the queries finished in the order they were started, so the guidance that the emit pattern is safe for in-order completion did not hold for this connector (that documentation is corrected in the same release). The explicit trailing-callback form (`entity.method(args, function (err, data) {})`, including `util.promisify`) was never affected: it already settled from its own per-call closure. Every path now settles that way, exactly once per call, and the trigger is emitted purely as an observability signal for the Inspector — which, as a side effect, now also sees direct-callback completions it previously missed. `bulkInsert` carried the same defect on its own dispatch and is fixed with it. Couchbase only: the cross-delivery described here needs a shared emitter, which no other connector uses. (A DIFFERENT defect in the same family — a callback being invoked a second time when it throws — does affect other connectors and is fixed separately in this release; see #B432.) Server-side only — pickup is a bundle restart, no re-bake.
|
|
18
|
+
* Credentials carried in a request URL no longer reach the logs in plaintext (#B433). The HTTP access line — and 45 sibling sites across both engines, every render delegate and the CSRF filter — log the URL as received, so a password-reset token, a signed download link or a one-time invite was written to stdout verbatim, with no seam to redact it. Every log message is now redacted BEFORE it is rendered and dispatched, at the logger's single pre-render point, so stdout, `gina tail`, the file transport and the Inspector all receive the same masked line and a JSON-mode line cannot be corrupted. Configured per bundle in `settings.json > log.redact` and ON by default: a built-in set masks JSON Web Tokens, URL userinfo passwords, `Bearer`/`Basic` credentials, named credential query keys (`token`, `access_token`, `api_key`, `secret`, `password`, `signature`, `otp`, …, keeping the key and masking the value) and api-key style headers — measured at zero false positives over 433k real log lines and about a microsecond per line; every value the secrets resolver substituted for a `${secret:KEY}` placeholder is masked verbatim wherever it appears; and `patterns` takes your own rules (a regex source string, or `{pattern, flags, replacement}`), always applied with the `g` flag. A bare long-hex path segment is deliberately not a default — a content-address key and an opaque credential look the same — so add `(?<![0-9a-f])[0-9a-f]{64}(?![0-9a-f])` yourself when your credentials take that shape (anchored on the character class — a leading `\b` never fires against a prefixed segment such as `key_<hex>`). An unknown key, a non-boolean flag or an invalid / empty-matching pattern refuses the boot, because a rule dropped silently would be a leak. Behaviour change: masked values now appear in logs where the raw value used to; set `log.redact.enabled` to `false` to opt out. Restart your bundles to pick it up — and rebuild them too, since this release also changes the browser bundle (see the `merge()` fix). Also new: `lib.secrets.getResolvedValues(conf)` and `console.setRedaction(block, options)`.
|
|
19
|
+
|
|
9
20
|
## 0.6.18 - 2026-08-27
|
|
10
21
|
### Fixed
|
|
11
22
|
* A field validated by a `query` (live-check) rule no longer gets the wrong verdict when its value contains a `+` — the common case being an email plus-address such as `alias+tag@example.com`. The live-check body is JSON, but the request was labelled `application/x-www-form-urlencoded`, so the server correctly url-decoded it before parsing and turned every `+` into a space; the mangled body was still valid JSON, so nothing errored and the endpoint answered 200 with an answer computed from a corrupted value. Because a `query` rule also gates the submit trigger, an affected visitor could not submit the form at all — a hard lockout on sign-in and password-recovery forms rather than a warning. The request now sends `application/json` when the body is JSON, matching what the form-submit and file-removal paths already did. An explicit per-rule `headers` override still wins, so a rule that already declares its own `Content-Type` is unchanged. Note that live-check bodies are no longer URL-decoded at all, so `%XX` sequences reach your action verbatim; field values are sent raw, so this only affects a bundle that relied on the decode.
|
package/README.md
CHANGED
|
@@ -62,30 +62,35 @@ open https://localhost:3100
|
|
|
62
62
|
|
|
63
63
|
> **npm 12+** blocks install scripts by default, and gina's post-install bootstraps `~/.gina` and the framework dependencies. Install with `npm install -g gina@latest --allow-scripts=gina`, or allow it once for all global installs with `npm config set allow-scripts=gina --location=user`. (Not needed on npm ≤ 11.)
|
|
64
64
|
|
|
65
|
-
## What's in 0.6.
|
|
65
|
+
## What's in 0.6.19
|
|
66
66
|
|
|
67
67
|
> **Restart your bundles AND rebuild them.** This release changes the browser
|
|
68
|
-
> bundle: `gina.min.js` differs from `0.6.
|
|
68
|
+
> bundle: `gina.min.js` differs from `0.6.18` (`gina.min.css` and
|
|
69
69
|
> `gina.onload.min.js` are unchanged). A restart alone updates the server half
|
|
70
|
-
> only — each bundle bakes its own copy of the client assets, so the
|
|
70
|
+
> only — each bundle bakes its own copy of the client assets, so the `merge()`
|
|
71
71
|
> fix below would not reach a browser at all.
|
|
72
72
|
|
|
73
|
-
> **No settings reset.** `0.6.
|
|
73
|
+
> **No settings reset.** `0.6.19` is a patch — the `shortVersion` stays `0.6`, so
|
|
74
74
|
> your `~/.gina/0.6/settings.json` is untouched. (`0.6.0` was the reset.)
|
|
75
75
|
|
|
76
|
-
**
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
the
|
|
84
|
-
|
|
85
|
-
[migration guide](https://gina.io/docs/migration).
|
|
86
|
-
|
|
87
|
-
- **
|
|
88
|
-
- **
|
|
76
|
+
**Two security fixes, and a family of connector callback defects closed.** Log
|
|
77
|
+
redaction is now built in and on by default, so a credential carried in a request
|
|
78
|
+
URL no longer reaches stdout in plaintext; and concurrent calls to the same
|
|
79
|
+
Couchbase entity method no longer cross-deliver each other's results. Around
|
|
80
|
+
them, every connector's callback delivery was audited: a callback that throws is
|
|
81
|
+
no longer invoked a second time, a failed Couchbase query no longer settles its
|
|
82
|
+
caller twice, a logged `Error` keeps its message and stack, and `merge()` no
|
|
83
|
+
longer rewrites the object it was given. **Two changes may require action** —
|
|
84
|
+
log redaction for every project, the Couchbase change only if you use that
|
|
85
|
+
connector — details in the [migration guide](https://gina.io/docs/migration).
|
|
86
|
+
|
|
87
|
+
- **Security — credentials in a request URL no longer reach the logs (#B433).** The HTTP access line — and 45 sibling sites across both engines, every render delegate and the CSRF filter — logged the URL as received, so a password-reset token, a signed download link or a one-time invite was written to stdout verbatim with no seam to redact it. Every log message is now redacted before it is rendered and dispatched, at the logger's single pre-render point, so stdout, `gina tail`, the file transport and the Inspector all receive the same masked line. Configured per bundle in `settings.json > log.redact` and **on by default**: a built-in set masks JSON Web Tokens, URL userinfo passwords, `Bearer`/`Basic` credentials, named credential query keys (`token`, `access_token`, `api_key`, `secret`, `password`, `signature`, `otp`, …, keeping the key and masking the value) and api-key style headers; every value the secrets resolver substituted for a `${secret:KEY}` placeholder is masked verbatim; and `patterns` takes your own rules. A bare long-hex path segment is deliberately not a default — add `(?<![0-9a-f])[0-9a-f]{64}(?![0-9a-f])` yourself when your credentials take that shape. **Behaviour change:** masked values now appear in logs where the raw value used to; set `log.redact.enabled` to `false` to opt out. Also new: `console.setRedaction(block, options)` and `lib.secrets.getResolvedValues(conf)`.
|
|
88
|
+
- **Security — concurrent Couchbase entity reads no longer cross-deliver results (#B429).** The completion trigger carried no call identity and was emitted on a process-wide singleton, so the first query to finish woke every in-flight caller of that method with its own payload: two concurrent reads with different arguments could each receive the other's rows, a third caller could receive an error belonging to a different call, and a single response could blend rows from two callers — a confidentiality and authorization concern where the method reads a user-scoped record, not only a correctness one. Every call now settles from its own identity. **Action required only if you use the Couchbase connector** — see the migration guide.
|
|
89
|
+
- **Fixed — a Couchbase callback that throws is no longer invoked twice (#B430).** The delivery path wrapped the callback in a `try` whose `catch` called the same callback again with identical arguments. The throw is now reported with the query trigger for context and the callback is never re-entered.
|
|
90
|
+
- **Fixed — a failed Couchbase query no longer settles its caller twice (#B431).** Each dispatch chained `.catch(onError).then(onResult)` sequentially, so every error was followed by a bogus empty success — the canonical `if (err) { return next(err); } render(data);` shape ran both branches. Failed `bulkInsert` calls also logged a spurious `TypeError`; that is gone.
|
|
91
|
+
- **Fixed — an entity query callback is no longer invoked twice when the callback itself throws (#B432).** The sqlite, mongodb and scylladb connectors delivered results inside a `try` or a `.then()` whose error path called the same callback a second time with the caller's own exception dressed up as a database failure. A throwing callback is now logged once, as `[ <label> ] callback exception:`, and never re-entered.
|
|
92
|
+
- **Fixed — a logged `Error` object keeps its message, stack, own properties and `cause` chain (#B434).** Both log writers walked enumerable properties only, so `console.error(err)` rendered `{}` (or just `{"code": …}`). Errors now render the way Node's own console does — directly, among other arguments, nested inside a logged object, and on `console.log` alike — and the rendered message still goes through redaction. Passing `err.stack` as a string keeps working unchanged.
|
|
93
|
+
- **Fixed — `merge()` no longer rewrites the object it was given (#B428).** A source subtree merged into an existing target level that lacked its key was referenced and then walked again as if merged into itself: every array inside the caller's object was replaced by a copy at every depth, and an array of primitives silently lost its duplicates. A subtree that is the same object on both sides is now skipped, so a grafted source keeps its arrays and duplicates and the result references it. Merging two different values is unchanged. `lib/merge` is part of the browser bundle — hence the rebuild.
|
|
89
94
|
|
|
90
95
|
## Documentation
|
|
91
96
|
|
package/ROADMAP.md
CHANGED
|
@@ -70,6 +70,7 @@ This roadmap covers planned features, architectural improvements, new connectors
|
|
|
70
70
|
| **Q4 2026** | `0.6.16` ✅ | **Security**: concurrent uploads of the same filename no longer corrupt one another — the multipart parser wrote every incoming file to `<upload dir>/<the filename the client sent>` with nothing in the path distinguishing one part or one request from another, so two uploads sharing a filename opened two write streams on a single path and interleaved their bytes into one hybrid matching neither upload, while the framework reported success to both callers; measured on a live bundle before the fix, twelve concurrent uploads of one filename left ONE corrupted file where twelve intact ones were sent, and a single request carrying two same-named parts produced one file mixing both. The parse runs before routing and before any middleware, so reaching it needed neither authentication nor a valid route — a POST to an unknown url answers 404 to the client and still writes the file to disk — and no application configuration could avoid it; uploads now stage under a server-generated random name, 32 hex characters plus a `.part` suffix, as multer and formidable have always done, which also keeps client-controlled bytes off the filesystem and cannot overflow the operating system filename limit (ACTION REQUIRED only where your own code derives a display name or a public URL from the basename of `req.files[].path`: read `req.files[].originalFilename` instead, which is unchanged and is still the name `self.store()` publishes the file under). **Fixed**: the documented fluent `store(target).onComplete(cb)` form works again — `store()` was accidentally declared `async`, so the deliberate `{ onComplete }` facade came back wrapped in a Promise carrying no `onComplete`, leaving the upload guide's first worked example dead code on every stable from `0.6.0` through `0.6.15`; the body contains no `await` and nothing anywhere awaits the call, so dropping the keyword changed no behaviour, the facade returns synchronously as documented, the three-argument callback form is byte-unchanged, and the TypeScript declaration now describes the fluent return shape instead of `Promise<void>`. The page whisper no longer exports the forms mocks group — the RFC5987-encoded `page.environment.forms` export shipped the entire bundle forms catalog into every page in every environment, mocks included, while the routing exports one line above it were deliberately stubbed to `{}` for page weight; mocks are now excluded in every environment rather than outside development only, deliberately, since an env-divergent `gina.forms` shape is the works-in-dev-fails-in-prod class, and rules, custom validators and every server-side surface keep the complete catalog (ACTION REQUIRED only for client code that read `gina.forms.mocks`, which the framework's own client bundle never consumed). And the link API names its error when the anchor has left the DOM: there is no deregistration path, so a registration outlives its element and a page that re-renders its anchors after binding dereferenced the null lookup and threw a bare TypeError — it now throws a named error identifying the link id, the url and the cause, detected beside the unregistered-url guard before the supersede step so it no longer aborts a request already in flight nor invalidates that request's response handling. Pickup: restart **and** rebuild your bundles (the browser bundle changed — `gina.min.js` differs from `0.6.15`; `gina.min.css` and `gina.onload.min.js` are unchanged). |
|
|
71
71
|
| **Q4 2026** | `0.6.17` ✅ | **Fixed**: a route whose URL structurally matches but whose `requirements` reject the request no longer drops the connection once the route cache is warm — the cache is keyed on method and pathname with the query string stripped before dispatch, so every query variant of one pathname shares a single entry, and the warm path re-evaluated the requirements on each hit and then discarded the verdict, force-matching a request that had just been rejected and dispatching it with no routing description, which closed the connection with no HTTP response at all — no status and no body; the warm path now honours the verdict, treating a rejecting or throwing evaluation as a cache miss that falls through to the routing scan and answers correctly (404 when nothing matches, the sibling rule when one does, or a 500 naming the rule when a `validator::` requirement throws, which was previously also a dropped connection), while the cache entry is kept so the variants the requirements accept stay warm. **Fixed**: the `toFloat`, `set` and `format` validator rules are context-safe — all three are documented rules that threw on every server-side call, with `toFloat` opening by reading the live DOM element unguarded so server-side rule sets could not coerce a float at all (it now reads the live value only when one is reachable and otherwise uses the submitted value, which on the server is the raw value, and a missing comma in the same statement that leaked `isFloatingWithCommas` as an implicit global into every page is fixed with it), `set` now assigning the field value in both contexts while reflecting it onto the DOM element only in the browser where an element exists, and `format` — which already worked in both contexts when chained after `isDate`, as its documentation shows — now reporting a non-`Date` value as a named rule-authoring error pointing at the missing `isDate` instead of the opaque `val.format is not a function`. **Fixed**: a bundle declaring a redirect route no longer floods its log with `source[host] is undefined` warnings — redirect rules are deliberately excluded from the per-rule host and hostname defaulting so those keys are absent on them, but the per-request routing copy assigned them unconditionally, creating properties holding `undefined` on a clone kept for the lifetime of the process, so every later no-arg `getConfig()` emitted one `host` and one `hostname` warning per redirect rule indefinitely, measured by a consumer at roughly three quarters of that log line's total volume and drowning the genuine warnings it exists to surface; the copy is now existence-guarded, so an absent key stays absent and rules that do carry a host are copied exactly as before, which removes log noise rather than a functional defect, and only template and view routes reach it so API-only bundles were never affected. Pickup: restart **and** rebuild your bundles (the browser bundle changed — `gina.min.js` differs from `0.6.16`; `gina.min.css` and `gina.onload.min.js` are unchanged). |
|
|
72
72
|
| **Q4 2026** | `0.6.18` ✅ | **Fixed**: a field validated by a `query` (live-check) rule no longer gets the wrong verdict when its value contains a `+` — the live-check body is JSON but the request was labelled `application/x-www-form-urlencoded`, so the server url-decoded it before parsing and turned every `+` into a space; the mangled body was still valid JSON, so the endpoint answered 200 with a verdict computed from a corrupted value, and because a `query` rule also gates the submit trigger the common case of an email plus-address was a hard lockout on sign-in and password-recovery forms rather than a warning. Live-check bodies are no longer URL-decoded at all, so `%XX` sequences reach your action verbatim. **Fixed**: the dotted-path render data setter no longer walks and rewrites the shared forms catalog on every request — a first write is now stored by reference instead of being deep-merged through the render tree, ending both a per-request CPU cost and a silent mutation of the per-process catalog. Restart **and** rebuild your bundles (the browser bundle changed — `gina.min.js` differs from `0.6.17`; `gina.min.css` and `gina.onload.min.js` are unchanged). |
|
|
73
|
+
| **Q4 2026** | `0.6.19` ✅ | **Security**: credentials carried in a request URL no longer reach the logs — every log message is redacted at the logger's single pre-render point before any sink renders it; configured per bundle in `settings.json > log.redact`, on by default with a built-in credential set, your own `patterns`, and every `${secret:KEY}` value masked verbatim. **Security**: concurrent calls to the same Couchbase entity method no longer cross-deliver results — the completion trigger carried no call identity, so the first query to finish woke every in-flight caller with its own payload. **Fixed**: a connector callback that throws is no longer invoked a second time, and a failed Couchbase query no longer settles its caller twice. **Fixed**: a logged `Error` keeps its message, stack, own properties and `cause` chain. **Fixed**: `merge()` no longer rewrites the object it was given. Restart **and** rebuild your bundles (the browser bundle changed — `gina.min.js` differs from `0.6.18`; `gina.min.css` and `gina.onload.min.js` are unchanged). |
|
|
73
74
|
| **Q1 2027** | `0.6.x` | HTTP/2 priorities (blocked on Node scheduler hooks) · Beemaster admin + visual translation editor |
|
|
74
75
|
| **2027** | `0.7.0` | Performance — remaining measure-gated candidates: multipart & WebSocket fast paths, render/log cleanups, SIMD scanner (the render-path deep-clone & id-mint reduction shipped early in `0.6.2` with a measured 4.4× render-throughput gain; the profiling baseline itself also shipped in `0.6.2`) |
|
|
75
76
|
| **2027** | `0.8.0` | Financial-messaging foundations — XML request/response handling · pluggable message-schema validation · IBAN/BIC validation rules · money & ISO 4217 minor-unit utilities · idempotency keys · sequence primitive · OAuth2 client-credentials egress |
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.6.19
|
|
@@ -2189,7 +2189,8 @@ function Merge() {
|
|
|
2189
2189
|
* @param {object|Array} target - Target (base) object or array
|
|
2190
2190
|
* @param {object|Array} source - Source object or array to merge into target
|
|
2191
2191
|
* @param {boolean} [override=false] - Pass `true` to let `source` overwrite existing target keys; by default they are preserved
|
|
2192
|
-
* @returns {object|Array} Merged result (mutates and returns `target
|
|
2192
|
+
* @returns {object|Array} Merged result (mutates and returns `target`; never
|
|
2193
|
+
* rewrites `source` — a subtree the target lacks is referenced, not walked, #B428)
|
|
2193
2194
|
*
|
|
2194
2195
|
* @example
|
|
2195
2196
|
* merge({ a: 1 }, { b: 2 }) // { a: 1, b: 2 }
|
|
@@ -2287,6 +2288,17 @@ function Merge() {
|
|
|
2287
2288
|
if (target === copy) {
|
|
2288
2289
|
continue
|
|
2289
2290
|
}
|
|
2291
|
+
// #B428 — a value merged into ITSELF is identity: skip it.
|
|
2292
|
+
// A key the target lacks is grafted by reference below
|
|
2293
|
+
// (`clone[ prop ] = copy[ prop ]`), then the recursion
|
|
2294
|
+
// `browse(clone, copy)` met that graft with src === copy and
|
|
2295
|
+
// merged every array inside it with itself, writing the
|
|
2296
|
+
// copies back INTO the caller's object (identity churn +
|
|
2297
|
+
// silent primitive dedupe). Object/array references only —
|
|
2298
|
+
// equal primitives keep the original path.
|
|
2299
|
+
if (copy !== null && typeof(copy) == 'object' && src === copy) {
|
|
2300
|
+
continue
|
|
2301
|
+
}
|
|
2290
2302
|
|
|
2291
2303
|
// Recurse if we're merging plain objects or arrays
|
|
2292
2304
|
if (
|