gina 0.6.22 → 0.6.23
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 +12 -0
- package/README.md +18 -16
- package/ROADMAP.md +13 -0
- package/framework/v0.6.23/VERSION +1 -0
- package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/js/gina.js +22 -5
- package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/js/gina.min.js +249 -249
- package/framework/v0.6.23/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/v0.6.23/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- package/framework/{v0.6.22 → v0.6.23}/core/controller/controller.js +38 -8
- package/framework/{v0.6.22 → v0.6.23}/core/controller/controller.render-nunjucks.js +6 -5
- package/framework/{v0.6.22 → v0.6.23}/core/controller/controller.render-swig.js +10 -6
- package/framework/v0.6.23/core/controller/inline-script.js +108 -0
- package/framework/{v0.6.22 → v0.6.23}/core/server.isaac.js +13 -0
- package/framework/{v0.6.22 → v0.6.23}/core/server.js +129 -1
- package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle/config/templates.json +3 -0
- package/framework/{v0.6.22 → v0.6.23}/core/template/conf/settings.json +63 -2
- package/framework/{v0.6.22 → v0.6.23}/core/template/conf/templates.json +1 -0
- package/framework/{v0.6.22 → v0.6.23}/lib/index.js +17 -0
- package/framework/{v0.6.22 → v0.6.23}/lib/merge/src/main.js +22 -5
- package/framework/v0.6.23/lib/security-headers-emitter/package.json +18 -0
- package/framework/v0.6.23/lib/security-headers-emitter/src/main.js +225 -0
- package/framework/v0.6.23/lib/sri/package.json +18 -0
- package/framework/v0.6.23/lib/sri/src/main.js +237 -0
- package/framework/{v0.6.22 → v0.6.23}/package.json +1 -1
- package/gna.js +4 -4
- package/llms.txt +2 -1
- package/package.json +3 -3
- package/schema/settings.json +47 -0
- package/types/index.d.ts +16 -0
- package/framework/v0.6.22/VERSION +0 -1
- package/framework/v0.6.22/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/v0.6.22/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/AUTHORS +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/LICENSE +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/asset/html/nolayout.html +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/asset/html/static.html +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/asset/img/android-chrome-192x192.png +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/asset/img/android-chrome-512x512.png +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/asset/img/apple-touch-icon.png +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/asset/img/favicon-16x16.png +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/asset/img/favicon-32x32.png +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/asset/img/favicon.ico +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/config.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/ai/index.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/ai/lib/connector.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/couchbase/index.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/couchbase/lib/connector.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/couchbase/lib/connector.v3.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/couchbase/lib/connector.v4.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/couchbase/lib/n1ql.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/couchbase/lib/session-store.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/couchbase/lib/storage-store.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/duckdb/index.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/duckdb/lib/connector.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/mongodb/index.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/mongodb/lib/connector.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/mongodb/lib/job-store.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/mongodb/lib/session-store.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/mysql/index.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/mysql/lib/connector.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/param-redact.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/postgresql/index.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/postgresql/lib/connector.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/redis/index.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/redis/lib/connector.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/redis/lib/job-store.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/redis/lib/kv-store.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/redis/lib/render-cache-store.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/redis/lib/session-store.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/scylladb/index.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/scylladb/lib/connector.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/scylladb/lib/session-store.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/settle-once.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/sql-parser.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/sqlite/index.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/sqlite/lib/connector.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/sqlite/lib/job-store.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/sqlite/lib/kv-store.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/connectors/sqlite/lib/session-store.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/content.encoding +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/controller/controller.framework.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/controller/controller.render-json.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/controller/controller.render-nunjucks-async.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/controller/controller.render-stream.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/controller/controller.render-swig-async.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/controller/controller.render-v1.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/controller/index.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/controller/inspector-window-emit.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/controller/release-banner.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/dev/index.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/dev/lib/class.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/dev/lib/factory.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/dev/lib/tools.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/gna.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/locales/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/locales/currency.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/locales/dist/language/en.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/locales/dist/language/fr.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/locales/dist/region/en.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/locales/dist/region/fr.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/locales/index.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/mime.types +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/model/entity.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/model/index.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/model/template/entityFactory.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/model/template/index.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/index.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/csrf/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/csrf/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/csrf/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/coep/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/coep/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/coop/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/coop/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/corp/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/corp/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/csp/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/csp/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/hsts/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/hsts/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/session/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/session/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/session/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/storage/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/storage/build.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/storage/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/storage/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/validator/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/validator/build.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/validator/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/validator/src/form-validator.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/validator/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/router.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/server.express.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/status.codes +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/_gitignore +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle/config/app.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle/config/connectors.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle/config/routing.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle/config/settings.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle/config/watchers.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle/index.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle/locales/en.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_public/css/default.css +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_public/css/home.css +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_public/js/components/x-checklist.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_public/readme.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_public/sw.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_templates/html/includes/x-checklist.html +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/command/gina.bat.tpl +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/command/gina.tpl +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/conf/env.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/conf/manifest.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/conf/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/conf/statics.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/error/client/json/401.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/error/client/json/403.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/error/client/json/404.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/error/server/html/50x.html +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/error/server/json/500.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/error/server/json/503.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/core/template/extensions/logger/config.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/helpers/console.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/helpers/context.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/helpers/data/LICENSE +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/helpers/data/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/helpers/data/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/helpers/data/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/helpers/dateFormat.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/helpers/index.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/helpers/json/LICENSE +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/helpers/json/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/helpers/json/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/helpers/json/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/helpers/path.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/helpers/plugins/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/helpers/plugins/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/helpers/plugins/src/api-error.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/helpers/plugins/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/helpers/prototypes.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/helpers/task.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/helpers/text.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/admin/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/admin/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/archiver/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/archiver/build.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/archiver/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/archiver/src/dep/jszip.min.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/archiver/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/async/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/async/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/audit/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/audit/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/audit-store.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/authn/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/authn/src/lockout.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/authn/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/authn/src/totp.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/authz-gate/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/authz-gate/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cache/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cache/build.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cache/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cache/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/aliases.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/audit/arguments.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/audit/help.txt +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/audit/verify.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/add.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/arguments.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/build.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/copy.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/cp.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/help.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/help.txt +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/list.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/man.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/mcp-start.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/mcp.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/oas.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/openapi.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/remove.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/rename.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/restart.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/rm.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/start.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/status.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/stop.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/types.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/cache/arguments.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/cache/clear.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/cache/help.txt +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/cache/stats.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/connector/add.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/connector/arguments.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/connector/help.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/connector/help.txt +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/connector/infer.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/connector/list.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/connector/migrate.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/connector/models.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/connector/remove.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/connector/rm.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/connector/test.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/container/arguments.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/container/help.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/container/help.txt +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/container/man.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/container/ps.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/container/stop.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/controller/add.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/controller/arguments.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/controller/help.txt +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/controller/inc/args.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/controller/inc/namespace.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/controller/inc/reference-rewrite.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/controller/inc/reference-scan.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/controller/inc/scaffold.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/controller/remove.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/controller/rename.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/controller/rm.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/env/add.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/env/get.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/env/help.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/env/help.txt +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/env/link-dev.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/env/list.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/env/remove.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/env/rm.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/env/set.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/env/unset.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/env/use.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/add.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/arguments.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/build.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/dot.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/get.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/help.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/help.txt +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/init.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/link-node-modules.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/link.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/list.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/man.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/msg.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/open.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/remove.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/reset.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/restart.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/set.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/start.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/status.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/stop.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/tail.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/update.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/version.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/gina-dev.1.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/gina-framework.1.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/gina.1.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/helper.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/i18n/add.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/i18n/arguments.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/i18n/export.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/i18n/help.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/i18n/help.txt +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/i18n/import.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/i18n/scan.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/image/_host.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/image/arguments.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/image/build.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/image/help.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/image/help.txt +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/image/list.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/image/man.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/image/rm.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/image/run.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/index.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/inspector/help.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/inspector/help.txt +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/inspector/open.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/man-render.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/minion/arguments.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/minion/help.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/minion/help.txt +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/minion/kill.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/minion/list.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/msg.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/port/help.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/port/help.txt +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/port/inc/scan.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/port/list.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/port/reset.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/port/set.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/add.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/arguments.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/backup.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/build.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/help.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/help.txt +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/import.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/list.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/man.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/move.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/remove.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/rename.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/restart.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/restore.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/rm.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/start.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/status.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/stop.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/protocol/arguments.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/protocol/help.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/protocol/help.txt +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/protocol/list.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/protocol/remove.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/protocol/set.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/scope/add.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/scope/help.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/scope/help.txt +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/scope/link-local.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/scope/link-production.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/scope/list.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/scope/remove.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/scope/rm.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/scope/use.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/secrets/arguments.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/secrets/check.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/secrets/help.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/secrets/help.txt +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/secrets/scan.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/service/help.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/service/help.txt +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/service/list.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/service/man.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/service/start.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/storage/arguments.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/storage/gc.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/storage/help.txt +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/storage/stats.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/storage/verify.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/view/add.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd-status-format/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cmd-status-format/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/collection/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/collection/build.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/collection/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/collection/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/config.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/connector-config/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/connector-config/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/connector-error/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/connector-error/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/connector-registry/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/connector-registry/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cron/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cron/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/cron/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/domain/LICENSE +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/domain/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/domain/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/domain/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/dto/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/dto/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/dto-pipe/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/dto-pipe/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/dto-types/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/dto-types/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/generator/index.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/i18n/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/i18n/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/image-build/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/image-build/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/inherits/LICENSE +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/inherits/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/inherits/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/inherits/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/inspector-events/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/inspector-events/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/inspector-redact/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/inspector-redact/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/instrument/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/instrument/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/job/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/job/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/job-store.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/json-config-header/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/json-config-header/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/kv/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/kv/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/kv-store.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/loading-state/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/loading-state/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/logger/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/logger/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/logger/src/containers/default/index.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/logger/src/containers/file/index.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/logger/src/containers/mq/index.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/logger/src/containers/mq/listener.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/logger/src/containers/mq/speaker.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/logger/src/helper.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/logger/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/logger/src/redact.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/maintenance/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/maintenance/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/math/index.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/mcp-dispatch/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/mcp-dispatch/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/mcp-http/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/mcp-http/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/mcp-server/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/mcp-server/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/merge/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/merge/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/metrics/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/metrics/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/model.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/net-locality/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/net-locality/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/nunjucks-filters/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/nunjucks-filters/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/nunjucks-filters/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/nunjucks-resolver/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/nunjucks-resolver/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/proc.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/push/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/push/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/rate-limit/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/rate-limit/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/release-watch/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/release-watch/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/render-cache/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/render-cache/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/render-cache-store.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/routing/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/routing/build.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/routing/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/routing/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/routing/src/radix.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/routing-introspect/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/routing-introspect/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/secrets/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/secrets/src/backends/env.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/secrets/src/backends/exec.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/secrets/src/backends/file.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/secrets/src/declaration.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/secrets/src/env-file.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/secrets/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/secrets/src/sources.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/session-store.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/shell.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/sqlite-driver.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/state.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/storage/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/storage/src/local-cas.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/storage/src/local-stream.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/storage/src/local.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/storage/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/storage/src/meta-store.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/storage/src/s3.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/storage/src/util.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/storage-store.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/swig-filters/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/swig-filters/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/swig-filters/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/swig-resolver/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/swig-resolver/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/template-loaders/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/template-loaders/src/loaders/http.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/template-loaders/src/loaders/memory.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/template-loaders/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/url/README.md +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/url/index.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/url/routing.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/uuid/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/uuid/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/validator.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/watcher/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/watcher/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/ws-framing/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/ws-framing/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/ws-query/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/ws-query/src/main.js +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/ws-session/package.json +0 -0
- /package/framework/{v0.6.22 → v0.6.23}/lib/ws-session/src/main.js +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,18 @@ 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.23 - 2026-09-02
|
|
10
|
+
### Added
|
|
11
|
+
* Security headers are now emitted by the framework itself, on both engines, via `settings.json > server.securityHeaders` (OWASP A02). This closes a gap that made the existing `#HDR` plugins unreachable for most projects: they are Express middleware, and the default `isaac` engine never runs the Express middleware chain for HTTP responses, so mounting the `SecurityHeaders()` orchestrator emitted nothing at all there. Seven headers are on by default, chosen because none can break a working application — `x-content-type-options`, `x-download-options`, `x-permitted-cross-domain-policies`, `x-xss-protection`, `referrer-policy`, `x-dns-prefetch-control` and `origin-agent-cluster`. Four are opt-in behind a single key each, because each breaks a legitimate deployment: `xFrameOptions` (cross-origin embedding), `coop` (severs `window.opener`, so OAuth and payment popups), `corp` (cross-origin asset loading) and `hsts` (a 180-day HTTPS commitment, emitted over plain HTTP too). Precedence is first-writer-wins, so a mounted plugin, an `env.json > server.response.header` entry or an upstream proxy always wins. `coop` and `corp` are never applied to `/_gina/*`, which is deliberately cross-origin. Set `server.securityHeaders.enabled` to `false` to restore the previous behaviour (#OW1)
|
|
12
|
+
* `settings.json > server.maxBodySize` bounds non-multipart request bodies, which previously accumulated with no ceiling at all — a single large body was an unbounded-memory exposure (OWASP A10). A body past the limit is answered 413 and the stream is destroyed. The default `64MB` is deliberately permissive: the ceiling exists to stop unbounded growth, not to police payload shapes, and gina's own inter-bundle `self.query()` hop posts through the same pipeline. A companion `server.maxBodySizeWarn` (default `2MB`) only logs, so you can measure your real distribution before choosing a stricter ceiling. Both accept B/KB/MB/GB (a bare number means MB); `0` disables either. Multipart uploads are unaffected — they remain capped by `upload.maxFieldsSize`. `server.timeout` is now configurable too, and stays `0` (unlimited) by default on purpose: a finite whole-request clock would kill Server-Sent Events and WebSocket connections, and the slow-body case it would otherwise cover is already closed by the body cap (#OW2)
|
|
13
|
+
* Opt-in Subresource Integrity for the asset tags gina emits: set `"sriEnabled": true` in `templates.json > "_common"` and every same-origin `<script>` and `<link rel="stylesheet">` whose file resolves on disk gains `integrity="sha384-..."` plus `crossorigin="anonymous"`, so a tampered or truncated asset is refused by the browser instead of executed. Fail-open by design: external URLs, unresolvable paths and unreadable files simply get no attribute — a wrong hash would hard-block the asset, so nothing is ever guessed. Hashes are cached per file and re-validated by mtime and size on every render, which means a rebuilt asset gets a fresh hash with no restart. Two operational notes: pages already stored by the render/output cache keep the hash they were rendered with, so flush that cache after rebuilding assets; and the HTTP/2 preload hint is suppressed for integrity-checked assets, since a hint carries no integrity metadata and a mismatched preload would be a wasted double fetch (#OW3)
|
|
14
|
+
### Changed
|
|
15
|
+
* `settings.json > server.hidePoweredBy` now defaults to `true`, so the framework no longer advertises its name and exact version on every response. A version banner is free reconnaissance for an attacker and buys the operator nothing. Set it back to `false` to restore the previous behaviour. One interaction worth knowing: with the render/output cache enabled and `server.cache.name` unset, the new default raises the existing boot warning about the cache still naming the framework on the wire via `Cache-Status` — set any token there to close that disclosure too (#OW1)
|
|
16
|
+
### Fixed
|
|
17
|
+
* A JSON body carrying a nested object whose own `constructor` key holds a primitive, null, array or plain object no longer crashes the merge: the plain-object check read `.prototype` off the shadowed value eagerly and threw `Cannot convert undefined or null to object` — request-reachable through PUT bodies and pre-existing (measured identical on 0.6.21). The check now computes lazily with the read guarded, a 24-shape differential sweep pins identical answers on every previously non-crashing input, the guarded key is still dropped per the 0.6.22 disclosure and sibling fields survive (#B450)
|
|
18
|
+
### Security
|
|
19
|
+
* Hardened the escaping of server-side data serialised into inline `<script>` blocks. The previous guard matched only the literal `</script>` and `<!--` sequences, but the HTML5 script-data end tag also accepts a tab, newline, form feed, space or `/` after the tag name, so `</script >` and `</script/>` closed the block and the remainder of a stored value was parsed as HTML. Values are now escaped by neutralising `<` itself, which no terminator spelling can work around, and the same helper is applied at every site that serialises server data into an inline script rather than at one site per renderer. U+2028 and U+2029 are escaped as well, since both are legal in JSON but were line terminators to the JavaScript parser. The escaped output parses back to an identical value, so no data shape changes. Reported as #69. Server-side only: a bundle restart picks this up, no rebuild needed.
|
|
20
|
+
|
|
9
21
|
## 0.6.22 - 2026-09-02
|
|
10
22
|
### Fixed
|
|
11
23
|
* Fixed a form submit that failed at the transport layer settling silently. When the network was down, the connection was refused, or the server was restarting, the request settled with no HTTP status and neither `error.<formId>` nor `error.<formId>.hform` was dispatched, so a handler declared with `data-gina-form-event-on-submit-error` never ran while the form released its submit trigger and reported nothing to the visitor. Such a failure now dispatches both events with `status: 408` and `transportError: true`, the latter distinguishing it from a genuine request timeout. Handlers matching on `status >= 400` keep working unchanged. This code ships in the browser bundle, so consuming bundles need a rebuild as well as a restart.
|
package/README.md
CHANGED
|
@@ -62,24 +62,26 @@ 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.23
|
|
66
66
|
|
|
67
67
|
> **Restart your bundles AND rebuild them.** This release changes the browser
|
|
68
|
-
> bundle:
|
|
69
|
-
> server half only — each bundle bakes its own copy of the client assets,
|
|
70
|
-
> restart without `gina bundle:build` leaves the browser running the old
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
>
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
- **
|
|
82
|
-
- **
|
|
68
|
+
> bundle: the merge hardening ships in `gina.min.js`. A restart alone updates
|
|
69
|
+
> the server half only — each bundle bakes its own copy of the client assets,
|
|
70
|
+
> so a restart without `gina bundle:build` leaves the browser running the old
|
|
71
|
+
> code.
|
|
72
|
+
|
|
73
|
+
> **No settings reset.** `0.6.23` is a patch — the `shortVersion` stays `0.6`,
|
|
74
|
+
> so your `~/.gina/0.6/settings.json` is untouched. (`0.6.0` was the reset.)
|
|
75
|
+
|
|
76
|
+
**The OWASP Top 10 response release.** The framework now emits security headers
|
|
77
|
+
itself, bounds request bodies, and can stamp integrity hashes on the asset tags
|
|
78
|
+
it builds — plus a hardened inline-script escape and a merge crash fix.
|
|
79
|
+
|
|
80
|
+
- **Security — hardened inline-script escaping (#B451).** The previous guard for server data serialised into inline `<script>` blocks matched only the literal `</script>` and `<!--` sequences, but the HTML5 script-data end tag also accepts a tab, newline, form feed, space or `/` after the tag name — so `</script >` and `</script/>` closed the block and the remainder of a stored value was parsed as HTML. Values are now escaped by neutralising `<` itself, which no terminator spelling can work around, applied by one shared helper at every site that serialises server data into an inline script. U+2028 and U+2029 are escaped as well. The escaped output parses back to an identical value, so no data shape changes. Server-side only.
|
|
81
|
+
- **Added — the framework now emits security headers itself (#OW1).** On both engines, via `settings.json > server.securityHeaders`. This closes the gap that made the `#HDR` plugins unreachable for most projects: they are Express middleware, and the default `isaac` engine never runs the Express middleware chain for HTTP responses, so mounting the `SecurityHeaders()` orchestrator emitted nothing there. Seven headers are on by default — chosen because none can break a working application; four more (`xFrameOptions`, `coop`, `corp`, `hsts`) are opt-in behind one key each, each with a named breakage. Precedence is first-writer-wins: a mounted plugin, an `env.json` header entry or an upstream proxy always beats the framework default, and `coop`/`corp` are never applied to the deliberately cross-origin `/_gina/*`. `server.hidePoweredBy` now defaults to `true` — a version banner is free reconnaissance. `server.securityHeaders.enabled: false` restores the previous behaviour.
|
|
82
|
+
- **Added — request bodies are bounded (#OW2).** `server.maxBodySize` (default `64MB`) caps non-multipart request bodies, which previously accumulated with no ceiling at all: a body past the limit is answered 413 and the stream is destroyed. A companion `server.maxBodySizeWarn` (default `2MB`) only logs, so you can measure your real distribution before choosing a stricter ceiling. Multipart uploads stay under the `upload.*` caps. `server.timeout` is now configurable too, and stays `0` (unlimited) by default on purpose — a finite whole-request clock would kill SSE and WebSocket connections.
|
|
83
|
+
- **Added — opt-in Subresource Integrity (#OW3).** Set `"sriEnabled": true` in `templates.json > "_common"` and every same-origin `<script>` and `<link rel="stylesheet">` whose file resolves on disk gains `integrity="sha384-..."` plus `crossorigin="anonymous"`, so a tampered or truncated asset is refused by the browser instead of executed. Fail-open by design: external URLs, unresolvable paths and unreadable files simply get no attribute. Hashes are re-validated by mtime and size on every render, so a rebuilt asset gets a fresh hash with no restart; flush the render/output cache after rebuilding assets, since already-cached pages keep the hash they were rendered with.
|
|
84
|
+
- **Fixed — merge crash on shadowed `constructor` keys (#B450).** A JSON body carrying a nested object whose own `constructor` key holds a primitive, null, array or plain object no longer crashes the merge on the PUT path: the plain-object check read `.prototype` off the shadowed value eagerly and threw. The check now computes lazily with the read guarded; the guarded key is still dropped per the 0.6.22 disclosure, and sibling fields survive.
|
|
83
85
|
|
|
84
86
|
## Documentation
|
|
85
87
|
|
package/ROADMAP.md
CHANGED
|
@@ -74,6 +74,7 @@ This roadmap covers planned features, architectural improvements, new connectors
|
|
|
74
74
|
| **Q4 2026** | `0.6.20` ✅ | **Security**: concurrent calls to an emit-style entity method are now paired to the call each completion came from. Both call forms (`await entity.method()` and `util.promisify(entity.method)`) paired by arrival order with no call identity, so one call that never signalled completion — it neither emitted its trigger nor returned a Promise that settled, typically because something threw inside an asynchronous callback and was swallowed as an unhandled rejection — left its slot at the head of that method's queue forever: every caller after it received the *next* caller's record, the last one hung, and each further lost completion made it one caller worse. Where the method reads a user-scoped or ownership-bearing record, a check performed on the returned row could pass for the wrong principal. The trigger is data-dependent, not load-dependent — invisible in a load test, present in any long-lived process. Every call now runs inside its own async context, a completion for an already-settled call is dropped rather than handed to the next caller, one reaching the entity outside every call's context still pairs in arrival order and logs `DISPATCH:NO_CONTEXT` at debug level, and the `promisify` form chains on a Promise the method returns instead of discarding it. New opt-in `settings.json > model.emitTimeout` (ms) bounds a call that never completes. **Fixed**: `merge()` no longer duplicates a number the target already holds at a different index, and merges a nested array once per level instead of twice. **Fixed**: `merge()` no longer throws `TypeError: Cannot create property 'id' on string` when a target array that repeats a primitive is merged with an array of objects — a configuration overlay hitting that shape killed the boot. Restart **and** rebuild your bundles (the browser bundle changed — `gina.min.js` differs from `0.6.19`; `gina.min.css` and `gina.onload.min.js` are unchanged). |
|
|
75
75
|
| **Q4 2026** | `0.6.21` ✅ | **Fixed**: an outbound `route.request()` now settles its callback on every outcome — the request object was discarded, so nothing could attach an `error` listener, and a dial failure either never invoked the callback at all (a permanent stall for anything serialized, with nothing logged) or reached `uncaughtException` and terminated the bundle; a response stream dying mid-body waited on an `end` event it would never emit. `options.timeout` was accepted but inert — Node only emits a `timeout` event and never destroys the socket — and is now honoured, so a value set in the belief that it capped the call will begin aborting requests at that budget. **Fixed**: `merge()` no longer throws `TypeError: Cannot read properties of null` on an id-keyed array carrying a `null` element, on either operand at any index — the read-side counterpart of the write-side fix that shipped in `0.6.20`. **Fixed**: on Safari, modifier chords (paste, select-all, copy, cut, undo) work again in live-checked fields carrying `autocomplete="off"` — the form-level keydown proxy cancelled the native keydown before the typing interception could decide anything, and `preventDefault` on a native keydown suppresses the browser's editing command itself, so no `paste` event was dispatched anywhere; Chromium-family browsers were never affected. Restart **and** rebuild your bundles (the browser bundle changed — all three fixes ship in `gina.min.js`). |
|
|
76
76
|
| **Q4 2026** | `0.6.22` ✅ | **Security**: prototype pollution on the request path — client-supplied bracket-notation field names (`__proto__[x]`, `constructor[prototype][x]`, and their percent-encoded forms) reached an unguarded property assignment in the data helper's key-path nesting and wrote to `Object.prototype` silently (the parsed body came back empty, so nothing in the request looked wrong), and `merge()` copied an **own** `__proto__` key — the shape `JSON.parse` produces — through its `for...in` loops. Reachable from query strings, urlencoded and JSON request bodies, `request.query.inheritedData` and multipart text-field names; a polluted prototype could then influence code reading a property it expects to be absent — outbound request options (host, port, auth, the TLS certificate check) and the safe-method and exemption checks. Both sources now reject the same three key names — rejecting the key name is what closes this, since an own `__proto__` (the shape `JSON.parse` produces) satisfies an own-property check. **Fixed**: a form submit that fails at the TRANSPORT layer (network down, connection refused, server restarting) settled with no HTTP status and dispatched neither `error.<formId>` nor `error.<formId>.hform`, so a handler declared with `data-gina-form-event-on-submit-error` never ran while the form released its submit trigger and reported nothing to the visitor; both events now fire with `status: 408` and `transportError: true`, the latter distinguishing it from a genuine request timeout, and handlers matching on `status >= 400` keep working unchanged. Restart **and** rebuild your bundles (the browser bundle changed — both fixes ship in `gina.min.js`). |
|
|
77
|
+
| **Q4 2026** | `0.6.23` ✅ | **Security**: hardened inline-script escaping — the previous guard matched only the literal `</script>` and `<!--`, but the HTML5 script-data end tag also accepts a tab, newline, form feed, space or `/` after the tag name, so `</script >` closed the block and the remainder of a stored value parsed as HTML; serialised values now neutralise `<` itself at every site, with U+2028/U+2029 escaped too, and escaped output parses back to an identical value. **Added**: the framework itself now emits seven security headers by default on both engines (`server.securityHeaders`; four more opt-in — `xFrameOptions` / `coop` / `corp` / `hsts`), first-writer-wins so mounted plugins, `env.json` headers and proxies keep winning, with `/_gina/*` exempt from the cross-origin-isolating pair; `server.hidePoweredBy` now defaults to `true`. **Added**: `server.maxBodySize` (default 64MB, 413 + stream destroyed) bounds non-multipart request bodies, with warn-only `server.maxBodySizeWarn` (2MB) and a configurable `server.timeout` that stays `0` on purpose (SSE/WebSocket). **Added**: opt-in Subresource Integrity — `templates.json > "sriEnabled": true` adds `integrity` + `crossorigin` to same-origin script and stylesheet tags that resolve on disk; fail-open, hashes stat-validated per render. **Fixed**: a JSON body whose nested object shadows `constructor` with a primitive, null, array or plain object no longer crashes the merge on the PUT path. Restart **and** rebuild your bundles (the browser bundle changed — the merge fix ships in `gina.min.js`). |
|
|
77
78
|
| **Q1 2027** | `0.6.x` | HTTP/2 priorities (blocked on Node scheduler hooks) · Beemaster admin + visual translation editor |
|
|
78
79
|
| **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`) |
|
|
79
80
|
| **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 |
|
|
@@ -263,6 +264,18 @@ HTTP security response headers as opt-in `gina.plugins.*` middlewares, mirroring
|
|
|
263
264
|
|
|
264
265
|
---
|
|
265
266
|
|
|
267
|
+
## OWASP Top 10 Response
|
|
268
|
+
|
|
269
|
+
Direct response to an OWASP Top 10:2025 review of the framework (September 2026): close the weak areas at the framework layer rather than leaving them as consumer homework. Three items shipped together in `0.6.23`; the remaining review findings stay tracked as candidates and get rows here only if promoted.
|
|
270
|
+
|
|
271
|
+
| Status | Feature | Version | Target |
|
|
272
|
+
| --- | --- | --- | --- |
|
|
273
|
+
| ✅ | **Framework-side security headers + `X-Powered-By` off by default (A02)** — Security headers are now emitted by the framework itself, on both engines, via `settings.json > server.securityHeaders` — closing the gap that made the `#HDR` plugins unreachable for most projects: they are Express middleware, and the default `isaac` engine never runs the Express middleware chain for HTTP responses, so mounting the `SecurityHeaders()` orchestrator emitted nothing there. Seven headers on by default — `x-content-type-options`, `x-download-options`, `x-permitted-cross-domain-policies`, `x-xss-protection`, `referrer-policy`, `x-dns-prefetch-control`, `origin-agent-cluster` — chosen because none can break a working application. Four opt-in behind one key each, each with a named breakage: `xFrameOptions` (cross-origin embedding), `coop` (severs `window.opener` — OAuth/payment popups), `corp` (cross-origin asset loading, incl. gina's own deliberately cross-origin `/_gina/*` endpoints), `hsts` (a 180-day HTTPS commitment). Precedence is first-writer-wins: a mounted plugin, an `env.json` header override or an upstream proxy always beats the framework default. `coop`/`corp` are never applied to `/_gina/*`. `server.hidePoweredBy` now defaults to `true` — a version banner is free reconnaissance and buys the operator nothing. `server.securityHeaders.enabled: false` restores the previous behaviour. | `0.6.23` | 2026-09-02 |
|
|
274
|
+
| ✅ | **Request-body size cap + configurable server timeout (A10)** — `settings.json > server.maxBodySize` (default `64MB`, enforced: 413 + stream destroyed) bounds non-multipart request bodies, which previously accumulated with no ceiling at all. A companion `server.maxBodySizeWarn` (default `2MB`) only logs, so the real payload distribution can be measured before choosing a stricter ceiling. Raw wire bytes are counted, not decoded string length. Both accept B/KB/MB/GB (a bare number means MB); `0` disables either. Multipart uploads remain governed by the `upload.*` caps. `server.timeout` is exposed and stays `0` (unlimited) by default on purpose — a finite whole-request clock would kill Server-Sent Events and WebSocket connections, and the slow-body case is already closed by the body cap. | `0.6.23` | 2026-09-02 |
|
|
275
|
+
| ✅ | **Opt-in Subresource Integrity for emitted asset tags (A08)** — `templates.json > "_common" > "sriEnabled": true` adds `integrity="sha384-..."` plus `crossorigin="anonymous"` to every same-origin `<script>` and `<link rel="stylesheet">` whose file resolves on disk, so a tampered or truncated asset is refused by the browser instead of executed. Fail-open by design: external URLs, unresolvable paths and unreadable files get no attribute — a wrong hash would hard-block the asset, so nothing is ever guessed. Hashes are stat-validated per render (mtime + size), so a rebuilt asset re-hashes with no restart; pages already stored by the render/output cache keep the hash they were rendered with (flush that cache after rebuilding assets). The HTTP/2 preload hint is suppressed for integrity-checked assets, since a hint carries no integrity metadata and a mismatched preload would be a wasted double fetch. sha384 is fixed deliberately: its padding-free base64 output keeps integrity values inert to the framework's own asset-catalog URL scan. | `0.6.23` | 2026-09-02 |
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
266
279
|
## Accessibility
|
|
267
280
|
|
|
268
281
|
Client-side form-validation accessibility — keeping `FormValidator`'s ARIA state in sync with field validity so screen-reader users get the same error feedback sighted users already get from native `:user-invalid` styling. No new public API; behaviour applies to fields that opt in through their existing ARIA markup. Models the `isInList` rule + CSP-nonce (#HDR16) rollout: ship behind the existing validator API, default-on for opted-in markup, no consuming-app code change.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.6.23
|
|
@@ -2190,9 +2190,12 @@ function Merge() {
|
|
|
2190
2190
|
*
|
|
2191
2191
|
* Key rejection is the WHOLE guard, deliberately. The first cut of #B446 also
|
|
2192
2192
|
* skipped inherited enumerable source properties, which broke every entity in
|
|
2193
|
-
* the model registry:
|
|
2194
|
-
*
|
|
2195
|
-
*
|
|
2193
|
+
* the model registry: the model layer round-trips entity instances through
|
|
2194
|
+
* merge — the in-tree path is the relations assembly (core/model/entity.js),
|
|
2195
|
+
* and the registry's setModel (lib/model.js), while it has no in-tree caller,
|
|
2196
|
+
* is published through the modelUtil context and stays consumer-reachable —
|
|
2197
|
+
* and all six SQL connectors attach their .sql-derived query methods to the
|
|
2198
|
+
* PROTOTYPE, so an own-only copy silently dropped them
|
|
2196
2199
|
* (`db.xEntity.getOneById is not a function`). merge therefore copies the
|
|
2197
2200
|
* chain, as it always has; only these three key names are refused.
|
|
2198
2201
|
*
|
|
@@ -2833,8 +2836,22 @@ function Merge() {
|
|
|
2833
2836
|
|
|
2834
2837
|
var hasOwn = {}.hasOwnProperty;
|
|
2835
2838
|
var hasOwnConstructor = hasOwn.call(obj, 'constructor');
|
|
2836
|
-
//
|
|
2837
|
-
|
|
2839
|
+
// #B450 — compute lazily, restoring the original short-circuit. An OWN
|
|
2840
|
+
// `constructor` key (the shape JSON.parse yields for
|
|
2841
|
+
// `{"constructor": <primitive|null|{}|[]>}`) shadows
|
|
2842
|
+
// Object.prototype.constructor, so the eager read
|
|
2843
|
+
// `obj.constructor.prototype` was undefined (or threw outright for null)
|
|
2844
|
+
// and `hasOwn.call(undefined, ...)` crashed the whole merge —
|
|
2845
|
+
// request-reachable, since PUT bodies reach merge as the source. When the
|
|
2846
|
+
// object HAS an own constructor the rejection branch below cannot fire,
|
|
2847
|
+
// so the value is never needed; when it lacks one, guard the `.prototype`
|
|
2848
|
+
// read. A 24-shape differential sweep pins identical answers on every
|
|
2849
|
+
// input the old form did not crash on (test/lib/merge-b450.test.js).
|
|
2850
|
+
// was: var hasMethodPrototyped = ( typeof(obj.constructor) != 'undefined' ) ? hasOwn.call(obj.constructor.prototype, 'isPrototypeOf') : false;
|
|
2851
|
+
var hasMethodPrototyped = false;
|
|
2852
|
+
if ( !hasOwnConstructor && typeof(obj.constructor) != 'undefined' ) {
|
|
2853
|
+
hasMethodPrototyped = ( obj.constructor.prototype ) ? hasOwn.call(obj.constructor.prototype, 'isPrototypeOf') : false;
|
|
2854
|
+
}
|
|
2838
2855
|
|
|
2839
2856
|
|
|
2840
2857
|
if (
|