gina 0.6.20 → 0.6.21
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 +6 -0
- package/README.md +18 -20
- package/ROADMAP.md +1 -0
- package/framework/v0.6.21/VERSION +1 -0
- package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/js/gina.js +101 -10
- package/framework/v0.6.21/core/asset/plugin/dist/vendor/gina/js/gina.min.js +653 -0
- package/framework/v0.6.21/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/v0.6.21/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- package/framework/{v0.6.20 → v0.6.21}/core/model/entity.js +1 -1
- package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/validator/src/main.js +15 -2
- package/framework/{v0.6.20 → v0.6.21}/lib/merge/src/main.js +24 -0
- package/framework/{v0.6.20 → v0.6.21}/lib/routing/src/main.js +56 -8
- package/framework/{v0.6.20 → v0.6.21}/package.json +1 -1
- package/gna.js +4 -4
- package/llms.txt +3 -1
- package/package.json +4 -4
- package/framework/v0.6.20/VERSION +0 -1
- package/framework/v0.6.20/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -652
- package/framework/v0.6.20/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/v0.6.20/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/AUTHORS +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/LICENSE +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/asset/html/nolayout.html +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/asset/html/static.html +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/asset/img/android-chrome-192x192.png +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/asset/img/android-chrome-512x512.png +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/asset/img/apple-touch-icon.png +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/asset/img/favicon-16x16.png +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/asset/img/favicon-32x32.png +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/asset/img/favicon.ico +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/config.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/ai/index.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/ai/lib/connector.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/couchbase/index.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/couchbase/lib/connector.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/couchbase/lib/connector.v3.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/couchbase/lib/connector.v4.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/couchbase/lib/n1ql.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/couchbase/lib/session-store.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/couchbase/lib/storage-store.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/duckdb/index.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/duckdb/lib/connector.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/mongodb/index.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/mongodb/lib/connector.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/mongodb/lib/job-store.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/mongodb/lib/session-store.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/mysql/index.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/mysql/lib/connector.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/param-redact.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/postgresql/index.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/postgresql/lib/connector.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/redis/index.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/redis/lib/connector.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/redis/lib/job-store.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/redis/lib/kv-store.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/redis/lib/render-cache-store.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/redis/lib/session-store.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/scylladb/index.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/scylladb/lib/connector.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/scylladb/lib/session-store.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/settle-once.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/sql-parser.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/sqlite/index.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/sqlite/lib/connector.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/sqlite/lib/job-store.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/sqlite/lib/kv-store.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/connectors/sqlite/lib/session-store.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/content.encoding +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/controller/controller.framework.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/controller/controller.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/controller/controller.render-json.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/controller/controller.render-nunjucks-async.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/controller/controller.render-nunjucks.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/controller/controller.render-stream.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/controller/controller.render-swig-async.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/controller/controller.render-swig.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/controller/controller.render-v1.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/controller/index.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/controller/inspector-window-emit.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/controller/release-banner.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/dev/index.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/dev/lib/class.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/dev/lib/factory.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/dev/lib/tools.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/gna.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/locales/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/locales/currency.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/locales/dist/language/en.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/locales/dist/language/fr.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/locales/dist/region/en.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/locales/dist/region/fr.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/locales/index.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/mime.types +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/model/index.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/model/template/entityFactory.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/model/template/index.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/index.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/csrf/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/csrf/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/csrf/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/coep/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/coep/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/coop/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/coop/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/corp/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/corp/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/csp/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/csp/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/hsts/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/hsts/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/session/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/session/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/session/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/storage/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/storage/build.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/storage/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/storage/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/validator/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/validator/build.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/validator/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/validator/src/form-validator.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/router.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/server.express.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/server.isaac.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/server.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/status.codes +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/_gitignore +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle/config/app.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle/config/connectors.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle/config/routing.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle/config/settings.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle/config/templates.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle/config/watchers.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle/index.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle/locales/en.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_public/css/default.css +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_public/css/home.css +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_public/js/components/x-checklist.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_public/readme.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_public/sw.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_templates/html/includes/x-checklist.html +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/command/gina.bat.tpl +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/command/gina.tpl +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/conf/env.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/conf/manifest.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/conf/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/conf/settings.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/conf/statics.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/conf/templates.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/error/client/json/401.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/error/client/json/403.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/error/client/json/404.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/error/server/html/50x.html +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/error/server/json/500.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/error/server/json/503.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/core/template/extensions/logger/config.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/helpers/console.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/helpers/context.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/helpers/data/LICENSE +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/helpers/data/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/helpers/data/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/helpers/data/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/helpers/dateFormat.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/helpers/index.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/helpers/json/LICENSE +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/helpers/json/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/helpers/json/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/helpers/json/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/helpers/path.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/helpers/plugins/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/helpers/plugins/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/helpers/plugins/src/api-error.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/helpers/plugins/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/helpers/prototypes.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/helpers/task.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/helpers/text.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/admin/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/admin/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/archiver/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/archiver/build.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/archiver/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/archiver/src/dep/jszip.min.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/archiver/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/async/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/async/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/audit/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/audit/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/audit-store.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/authn/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/authn/src/lockout.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/authn/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/authn/src/totp.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/authz-gate/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/authz-gate/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cache/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cache/build.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cache/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cache/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/aliases.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/audit/arguments.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/audit/help.txt +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/audit/verify.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/add.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/arguments.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/build.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/copy.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/cp.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/help.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/help.txt +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/list.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/man.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/mcp-start.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/mcp.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/oas.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/openapi.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/remove.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/rename.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/restart.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/rm.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/start.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/status.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/stop.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/types.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/cache/arguments.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/cache/clear.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/cache/help.txt +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/cache/stats.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/connector/add.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/connector/arguments.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/connector/help.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/connector/help.txt +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/connector/infer.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/connector/list.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/connector/migrate.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/connector/models.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/connector/remove.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/connector/rm.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/connector/test.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/container/arguments.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/container/help.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/container/help.txt +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/container/man.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/container/ps.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/container/stop.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/controller/add.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/controller/arguments.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/controller/help.txt +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/controller/inc/args.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/controller/inc/namespace.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/controller/inc/reference-rewrite.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/controller/inc/reference-scan.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/controller/inc/scaffold.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/controller/remove.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/controller/rename.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/controller/rm.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/env/add.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/env/get.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/env/help.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/env/help.txt +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/env/link-dev.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/env/list.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/env/remove.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/env/rm.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/env/set.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/env/unset.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/env/use.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/add.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/arguments.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/build.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/dot.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/get.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/help.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/help.txt +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/init.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/link-node-modules.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/link.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/list.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/man.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/msg.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/open.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/remove.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/reset.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/restart.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/set.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/start.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/status.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/stop.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/tail.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/update.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/version.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/gina-dev.1.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/gina-framework.1.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/gina.1.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/helper.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/i18n/add.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/i18n/arguments.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/i18n/export.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/i18n/help.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/i18n/help.txt +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/i18n/import.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/i18n/scan.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/image/_host.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/image/arguments.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/image/build.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/image/help.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/image/help.txt +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/image/list.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/image/man.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/image/rm.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/image/run.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/index.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/inspector/help.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/inspector/help.txt +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/inspector/open.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/man-render.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/minion/arguments.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/minion/help.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/minion/help.txt +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/minion/kill.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/minion/list.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/msg.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/port/help.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/port/help.txt +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/port/inc/scan.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/port/list.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/port/reset.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/port/set.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/add.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/arguments.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/backup.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/build.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/help.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/help.txt +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/import.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/list.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/man.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/move.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/remove.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/rename.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/restart.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/restore.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/rm.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/start.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/status.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/stop.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/protocol/arguments.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/protocol/help.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/protocol/help.txt +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/protocol/list.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/protocol/remove.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/protocol/set.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/scope/add.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/scope/help.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/scope/help.txt +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/scope/link-local.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/scope/link-production.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/scope/list.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/scope/remove.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/scope/rm.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/scope/use.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/secrets/arguments.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/secrets/check.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/secrets/help.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/secrets/help.txt +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/secrets/scan.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/service/help.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/service/help.txt +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/service/list.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/service/man.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/service/start.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/storage/arguments.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/storage/gc.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/storage/help.txt +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/storage/stats.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/storage/verify.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/view/add.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd-status-format/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cmd-status-format/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/collection/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/collection/build.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/collection/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/collection/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/config.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/connector-config/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/connector-config/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/connector-error/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/connector-error/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/connector-registry/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/connector-registry/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cron/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cron/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/cron/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/domain/LICENSE +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/domain/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/domain/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/domain/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/dto/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/dto/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/dto-pipe/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/dto-pipe/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/dto-types/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/dto-types/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/generator/index.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/i18n/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/i18n/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/image-build/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/image-build/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/index.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/inherits/LICENSE +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/inherits/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/inherits/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/inherits/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/inspector-events/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/inspector-events/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/inspector-redact/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/inspector-redact/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/instrument/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/instrument/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/job/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/job/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/job-store.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/json-config-header/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/json-config-header/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/kv/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/kv/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/kv-store.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/loading-state/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/loading-state/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/logger/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/logger/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/logger/src/containers/default/index.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/logger/src/containers/file/index.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/logger/src/containers/mq/index.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/logger/src/containers/mq/listener.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/logger/src/containers/mq/speaker.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/logger/src/helper.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/logger/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/logger/src/redact.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/maintenance/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/maintenance/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/math/index.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/mcp-dispatch/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/mcp-dispatch/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/mcp-http/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/mcp-http/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/mcp-server/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/mcp-server/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/merge/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/merge/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/metrics/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/metrics/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/model.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/net-locality/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/net-locality/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/nunjucks-filters/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/nunjucks-filters/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/nunjucks-filters/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/nunjucks-resolver/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/nunjucks-resolver/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/proc.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/push/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/push/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/rate-limit/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/rate-limit/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/release-watch/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/release-watch/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/render-cache/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/render-cache/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/render-cache-store.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/routing/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/routing/build.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/routing/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/routing/src/radix.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/routing-introspect/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/routing-introspect/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/secrets/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/secrets/src/backends/env.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/secrets/src/backends/exec.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/secrets/src/backends/file.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/secrets/src/declaration.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/secrets/src/env-file.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/secrets/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/secrets/src/sources.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/session-store.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/shell.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/sqlite-driver.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/state.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/storage/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/storage/src/local-cas.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/storage/src/local-stream.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/storage/src/local.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/storage/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/storage/src/meta-store.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/storage/src/s3.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/storage/src/util.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/storage-store.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/swig-filters/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/swig-filters/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/swig-filters/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/swig-resolver/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/swig-resolver/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/template-loaders/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/template-loaders/src/loaders/http.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/template-loaders/src/loaders/memory.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/template-loaders/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/url/README.md +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/url/index.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/url/routing.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/uuid/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/uuid/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/validator.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/watcher/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/watcher/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/ws-framing/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/ws-framing/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/ws-query/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/ws-query/src/main.js +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/ws-session/package.json +0 -0
- /package/framework/{v0.6.20 → v0.6.21}/lib/ws-session/src/main.js +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,12 @@ 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.21 - 2026-08-30
|
|
10
|
+
### Fixed
|
|
11
|
+
* #B442 - `route.request()` now settles its callback exactly once on every outcome, and an outbound request that fails can no longer take the bundle down. The `ClientRequest` returned by `http(s).get` was discarded, so nothing could attach an `error` listener to it: a dial failure whose code is carved out of the process-level handler left the caller waiting forever with nothing logged, while a code that is not carved out (`ETIMEDOUT`, `EHOSTUNREACH`, `ENETUNREACH`) escalated to an uncaughtException and terminated the bundle. A response stream that died mid-body behaved the same way for a different reason: the error was assigned to a local and delivery waited on an `end` event that never arrives. All four exit paths now run through a single-settle latch, so the callback receives an ordinary error argument - the shape consuming code already handles - and can never be invoked twice. `options.timeout` is honoured for the first time: it reached `http(s).get` and Node emitted `timeout` without destroying the socket, and the request object was unreachable, so the option silently did nothing; on expiry the request is now destroyed and the callback settles with an Error carrying `code` set to `ETIMEDOUT`. A request sent without a callback logs a warning on a dial failure instead of throwing. The browser bundle carries `lib/routing`, so pickup is a bundle restart AND a re-bake.
|
|
12
|
+
* #B443 - merge() no longer throws when an id-keyed array carries a null element. typeof null is object, so a null element passed every typeof test and the next property access dereferenced it: seven shapes threw a TypeError across five distinct sites in the array merger - both collection entry guards null-checked only the source operand (a null FIRST target element threw inside the guard itself), both id-roster loops dereferenced every element (a null at any LATER index threw after the guard had passed), the override walk dereferenced both operands per step, and the per-element collection tests null-checked only the target side. Because every configuration overlay and collection merge travels through this lib, any such shape was a whole-merge kill. A null element now behaves like an element with no key: it matches nothing, blocks nothing and contributes nothing, and every previously-working shape is pinned byte-identical by the regression suite. This closes the read-side residual of the 0.6.20 fix, which had guarded the write side only. The browser bundle carries the array merger, so pickup is a bundle restart AND a re-bake.
|
|
13
|
+
* #B444 - on Safari, modifier chords work again in validated fields carrying a suppressed autocomplete: paste (Cmd+V), select-all, copy, cut and undo were ALL dead on any live-checked field with autocomplete set to off or false, and the failure was silent in every direction - nothing was inserted, no paste or beforeinput event was dispatched anywhere on the page, and typing kept working, so the page author had no signal pointing at the framework. The cause was one layer above the Safari typing interception: the form-level keydown proxy cancelled the NATIVE keydown unconditionally before re-dispatching its namespaced synthetic event, and preventDefault on a native keydown suppresses the browser editing command itself - so the interception handler deliberately letting chords through changed nothing. The proxy now dispatches first and cancels the native keydown only when the handler prevented the synthetic event, which the interception already does on the paths it re-implements and already does not on chords - typing interception, caret integrity and autofill suppression are unchanged, verified on a real WebKit engine alongside the restored chords. `triggerEvent` now returns the event it dispatched so a proxy can read that decision; existing callers ignore the return value. Chromium-family browsers were never affected (the interception is gated to real-Safari user agents). The browser bundle carries both changed files, so pickup is a bundle restart AND a re-bake.
|
|
14
|
+
|
|
9
15
|
## 0.6.20 - 2026-08-30
|
|
10
16
|
|
|
11
17
|
> **Pickup: restart your bundles AND rebuild them** (`gina bundle:build`). The browser bundle changed —
|
package/README.md
CHANGED
|
@@ -62,31 +62,29 @@ 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.21
|
|
66
66
|
|
|
67
67
|
> **Restart your bundles AND rebuild them.** This release changes the browser
|
|
68
|
-
> bundle: `gina.min.js
|
|
69
|
-
>
|
|
70
|
-
>
|
|
71
|
-
>
|
|
72
|
-
> and a restart is enough for it; the rebuild is owed to `lib/merge`.
|
|
68
|
+
> bundle: all three fixes below ship 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.
|
|
73
72
|
|
|
74
|
-
> **No settings reset.** `0.6.
|
|
73
|
+
> **No settings reset.** `0.6.21` is a patch — the `shortVersion` stays `0.6`, so
|
|
75
74
|
> your `~/.gina/0.6/settings.json` is untouched. (`0.6.0` was the reset.)
|
|
76
75
|
|
|
77
|
-
**
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
- **
|
|
88
|
-
- **Fixed —
|
|
89
|
-
- **Fixed — `merge()` no longer throws on a mixed array shape (#B437).** Merging a target array that repeats a primitive (`['v2', 'v2']`) with an array of objects raised `TypeError: Cannot create property 'id' on string`: the object-fill branch tested for a free index on the *deduped* copy of the target and then wrote into the real one, whose index still held the string (or `null`). A configuration overlay hitting that shape killed the boot instead of merging. An occupied index is now left alone — as it already was for an object landing on one — and the merge completes.
|
|
76
|
+
**Three availability and correctness fixes, two of them reported from the
|
|
77
|
+
field.** An outbound request that failed could hang its caller forever or take
|
|
78
|
+
the bundle down; `merge()` threw on a null array element; and on Safari, every
|
|
79
|
+
modifier chord — paste, select-all, copy, cut, undo — was dead in validated
|
|
80
|
+
fields that suppress autocomplete. **One change may require action** —
|
|
81
|
+
`options.timeout` on an outbound request was accepted but inert, and now
|
|
82
|
+
actually aborts the request; details in the
|
|
83
|
+
[migration guide](https://gina.io/docs/migration).
|
|
84
|
+
|
|
85
|
+
- **Fixed — an outbound `route.request()` now settles its callback on every outcome (#B442).** The request object returned by `http(s).get` was discarded, so nothing could attach an `error` listener to it, and a failed outbound call took one of two paths — neither reaching your callback. When the failure code was one the process-level handler tolerates (`ECONNREFUSED`, `ECONNRESET`, `EPIPE`) the process survived and the callback was simply never invoked: no error, no log line, and in anything serialized (a worker at concurrency 1, a queue processor) a permanent stall with nothing to diagnose it by. When the code was not one of those (`ETIMEDOUT`, `EHOSTUNREACH`, `ENETUNREACH` — a peer that stops answering, a route that goes away) the unhandled `error` became an `uncaughtException` and the bundle was terminated. A response stream dying mid-body behaved like the first case for a different reason: the error was recorded and delivery waited on an `end` event a broken stream never emits. All exit paths now run through a single-settle latch, so the callback is invoked **exactly once** on every outcome and can never be invoked twice. **Action if you already set `options.timeout`:** it previously did nothing — it reached `http(s).get`, but Node only *emits* a `timeout` event and never destroys the socket, and the request object was unreachable. It is now honoured: on expiry the request is destroyed and the callback settles with an `Error` carrying `code === 'ETIMEDOUT'`. Re-check the value against your slowest legitimate response before upgrading, or remove the option to keep the previous unbounded behaviour. A request sent without a callback now warns on a dial failure instead of throwing.
|
|
86
|
+
- **Fixed — `merge()` no longer throws on a null array element (#B443).** An id-keyed array carrying a `null` raised `TypeError: Cannot read properties of null` from deep inside the merge — on either operand, at any index. `typeof null` is `'object'`, so a null element passed every type test and the next property access dereferenced it; seven distinct shapes threw, across the collection entry guards, the id-roster loops, the override walk and the per-element tests. Since every configuration overlay travels through this code, any such shape was a whole-merge kill. A null element is now treated as an element with no key: it matches nothing, blocks nothing and contributes nothing. Shapes that previously worked are unchanged — the regression suite pins them byte-identical. This closes the read side of the family whose write side shipped in `0.6.20`.
|
|
87
|
+
- **Fixed — Safari: modifier chords work again in validated fields with a suppressed autocomplete (#B444).** On Safari, a live-checked field carrying `autocomplete="off"` (or `"false"`) could not be pasted into — and select-all, copy, cut and undo were equally dead. Nothing was inserted, **no `paste` or `beforeinput` event was dispatched anywhere on the page**, and typing kept working, so nothing pointed at the framework. The form-level keydown proxy was cancelling the native keydown before the Safari typing interception could decide anything, and `preventDefault` on a native keydown suppresses the browser's editing command itself. The proxy now defers that decision to the interception, which deliberately lets modifier chords run natively. Typing interception, caret integrity and autofill suppression on those fields are unchanged; Chromium-family browsers were never affected.
|
|
90
88
|
|
|
91
89
|
## Documentation
|
|
92
90
|
|
package/ROADMAP.md
CHANGED
|
@@ -72,6 +72,7 @@ This roadmap covers planned features, architectural improvements, new connectors
|
|
|
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
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). |
|
|
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
|
+
| **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`). |
|
|
75
76
|
| **Q1 2027** | `0.6.x` | HTTP/2 priorities (blocked on Node scheduler hooks) · Beemaster admin + visual translation editor |
|
|
76
77
|
| **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`) |
|
|
77
78
|
| **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.21
|
|
@@ -2475,11 +2475,16 @@ function Merge() {
|
|
|
2475
2475
|
&& options[0] != null
|
|
2476
2476
|
&& typeof(options[0][keyComparison]) != 'undefined'
|
|
2477
2477
|
&& typeof(target[0]) == 'object'
|
|
2478
|
+
// #B443 - typeof passes for a null first element; mirror the
|
|
2479
|
+
// options-side check two lines above or the next line dereferences it
|
|
2480
|
+
&& target[0] != null
|
|
2478
2481
|
&& typeof(target[0][keyComparison]) != 'undefined'
|
|
2479
2482
|
) {
|
|
2480
2483
|
|
|
2481
2484
|
newTarget = (Array.isArray(target)) ? Array.from(target) : JSON.clone(target);
|
|
2482
2485
|
for (var nt = 0, ntLen = newTarget.length; nt < ntLen; ++nt) {
|
|
2486
|
+
// #B443 - a null (or hole) at a later index has no key to contribute
|
|
2487
|
+
if (newTarget[nt] == null) { continue; }
|
|
2483
2488
|
newTargetIds.push(newTarget[nt][keyComparison]);
|
|
2484
2489
|
}
|
|
2485
2490
|
|
|
@@ -2489,6 +2494,10 @@ function Merge() {
|
|
|
2489
2494
|
aLen = _options.length;
|
|
2490
2495
|
for (var n = next || 0, nLen = target.length; n < nLen; ++n) {
|
|
2491
2496
|
|
|
2497
|
+
// #B443 - a null target element has no key: it can match nothing,
|
|
2498
|
+
// so it neither blocks nor contributes; skip the comparison slot
|
|
2499
|
+
if (target[n] == null) { continue; }
|
|
2500
|
+
|
|
2492
2501
|
// if (newTargetIds.indexOf(target[n][keyComparison]) == -1) {
|
|
2493
2502
|
// newTargetIds.push(target[n][keyComparison]);
|
|
2494
2503
|
|
|
@@ -2499,6 +2508,10 @@ function Merge() {
|
|
|
2499
2508
|
label:
|
|
2500
2509
|
for (a = a || 0; a < aLen; ++a) {
|
|
2501
2510
|
|
|
2511
|
+
// #B443 - same disposition for a null source element: no key,
|
|
2512
|
+
// nothing to push, advance the cursor past it
|
|
2513
|
+
if (_options[a] == null) { continue; }
|
|
2514
|
+
|
|
2502
2515
|
if (_options[a][keyComparison] === target[n][keyComparison] ) {
|
|
2503
2516
|
|
|
2504
2517
|
if (newTargetIds.indexOf(_options[a][keyComparison]) > -1) {
|
|
@@ -2582,6 +2595,9 @@ function Merge() {
|
|
|
2582
2595
|
&& options[0] != null
|
|
2583
2596
|
&& typeof(options[0][keyComparison]) != 'undefined'
|
|
2584
2597
|
&& typeof(target[0]) == 'object'
|
|
2598
|
+
// #B443 - typeof passes for a null first element; mirror the
|
|
2599
|
+
// options-side check two lines above or the next line dereferences it
|
|
2600
|
+
&& target[0] != null
|
|
2585
2601
|
&& typeof(target[0][keyComparison]) != 'undefined'
|
|
2586
2602
|
) {
|
|
2587
2603
|
|
|
@@ -2592,11 +2608,17 @@ function Merge() {
|
|
|
2592
2608
|
i = 0;
|
|
2593
2609
|
a = 0; aLen = newTarget.length;
|
|
2594
2610
|
for (; a < aLen; ++a) {
|
|
2611
|
+
// #B443 - a null (or hole) at a later index has no key to contribute
|
|
2612
|
+
if (newTarget[a] == null) { continue; }
|
|
2595
2613
|
newTargetIds.push(newTarget[a][keyComparison]);
|
|
2596
2614
|
}
|
|
2597
2615
|
a = 0;
|
|
2598
2616
|
for (; a < aLen; ++a) {
|
|
2599
2617
|
|
|
2618
|
+
// #B443 - a null slot on the rebuilt target has no key; both arms
|
|
2619
|
+
// of the comparison below dereference it
|
|
2620
|
+
if (newTarget[a] == null) { continue; }
|
|
2621
|
+
|
|
2600
2622
|
end:
|
|
2601
2623
|
for (var n = next || 0, nLen = _options.length; n < nLen; ++n) {
|
|
2602
2624
|
|
|
@@ -2710,6 +2732,7 @@ function Merge() {
|
|
|
2710
2732
|
&& !/null/i.test(target[a])
|
|
2711
2733
|
&& typeof (target[a][keyComparison]) != 'undefined'
|
|
2712
2734
|
&& typeof (options[a]) != 'undefined'
|
|
2735
|
+
&& options[a] != null
|
|
2713
2736
|
&& typeof (options[a][keyComparison]) != 'undefined'
|
|
2714
2737
|
&& target[a][keyComparison] == options[a][keyComparison]
|
|
2715
2738
|
) {
|
|
@@ -2730,6 +2753,7 @@ function Merge() {
|
|
|
2730
2753
|
&& !/null/i.test(target[a])
|
|
2731
2754
|
&& typeof (target[a][localKeyComparison]) != 'undefined'
|
|
2732
2755
|
&& typeof (options[a]) != 'undefined'
|
|
2756
|
+
&& options[a] != null
|
|
2733
2757
|
&& typeof (options[a][localKeyComparison]) != 'undefined'
|
|
2734
2758
|
&& target[a][localKeyComparison] == options[a][localKeyComparison]
|
|
2735
2759
|
) {
|
|
@@ -6982,13 +7006,27 @@ function Routing() {
|
|
|
6982
7006
|
* request current url
|
|
6983
7007
|
* Attention: You should first try without an authentification middleware
|
|
6984
7008
|
*
|
|
7009
|
+
* The callback is settled EXACTLY ONCE, on every outcome: a successful response,
|
|
7010
|
+
* a dial failure (ECONNREFUSED / EHOSTUNREACH / ENETUNREACH ...), a response stream
|
|
7011
|
+
* that dies mid-body, or a timeout. Without a callback the request is fire-and-forget
|
|
7012
|
+
* and a dial failure is reported with `console.warn` instead of being thrown.
|
|
6985
7013
|
*
|
|
6986
7014
|
* @param {boolean} [ignoreWebRoot]
|
|
6987
7015
|
* @param {object} [options] - see: https://nodejs.org/api/https.html#https_new_agent_options
|
|
7016
|
+
* @param {number} [options.timeout] - milliseconds; on expiry the request is destroyed
|
|
7017
|
+
* and the callback settles with an Error carrying `code === 'ETIMEDOUT'`
|
|
6988
7018
|
* @param {object} [_this] - current context: only used when `promisify`is used
|
|
6989
7019
|
*
|
|
6990
|
-
* @callback {callback} [cb]
|
|
6991
|
-
* @param {
|
|
7020
|
+
* @callback {callback} [cb]
|
|
7021
|
+
* @param {Error|string|boolean} err - an Error for transport failures, a string for a
|
|
7022
|
+
* broken response stream, `false` on success
|
|
7023
|
+
* @param {object|string} [data] - the response body, parsed when it is JSON
|
|
7024
|
+
*
|
|
7025
|
+
* @example
|
|
7026
|
+
* route.request(false, { timeout: 5000 }, function (err, data) {
|
|
7027
|
+
* if (err) { return handle(err); }
|
|
7028
|
+
* use(data);
|
|
7029
|
+
* });
|
|
6992
7030
|
*/
|
|
6993
7031
|
route.request = function(ignoreWebRoot, options) {
|
|
6994
7032
|
|
|
@@ -7023,6 +7061,17 @@ function Routing() {
|
|
|
7023
7061
|
options.agent = false;
|
|
7024
7062
|
}
|
|
7025
7063
|
var agent = require(''+scheme);
|
|
7064
|
+
// #B442: every exit path settles the caller exactly once. Before this guard the
|
|
7065
|
+
// ClientRequest was discarded, so a dial failure had NO 'error' listener: a carved-out
|
|
7066
|
+
// code (e.g. ECONNREFUSED, see lib/proc.js) left the caller waiting forever with
|
|
7067
|
+
// nothing logged, and an uncarved one (ETIMEDOUT / EHOSTUNREACH / ENETUNREACH)
|
|
7068
|
+
// escalated to uncaughtException and took the bundle down via dismiss(pid,'SIGTERM').
|
|
7069
|
+
var settled = false;
|
|
7070
|
+
var settle = function (err, data) {
|
|
7071
|
+
if (settled) { return; }
|
|
7072
|
+
settled = true;
|
|
7073
|
+
cb(err, data);
|
|
7074
|
+
};
|
|
7026
7075
|
var onAgentResponse = function(res) {
|
|
7027
7076
|
|
|
7028
7077
|
var data = '', err = false;
|
|
@@ -7031,12 +7080,15 @@ function Routing() {
|
|
|
7031
7080
|
data += chunk;
|
|
7032
7081
|
});
|
|
7033
7082
|
res.on('error', function (error) {
|
|
7034
|
-
|
|
7083
|
+
// #B442: a response that dies mid-body never emits 'end', so assigning here
|
|
7084
|
+
// and waiting for 'end' to deliver meant the caller was never settled at all.
|
|
7085
|
+
err = 'route.request: response stream failed for ' + url;
|
|
7035
7086
|
if (error && typeof(error.stack) != 'undefined' ) {
|
|
7036
|
-
err += error.stack;
|
|
7087
|
+
err += '\n' + error.stack;
|
|
7037
7088
|
} else if ( typeof(error) == 'string' ) {
|
|
7038
7089
|
err += '\n' + error;
|
|
7039
7090
|
}
|
|
7091
|
+
settle(err);
|
|
7040
7092
|
});
|
|
7041
7093
|
res.on('end', function () {
|
|
7042
7094
|
if (/^\{/.test(data) ) {
|
|
@@ -7051,19 +7103,39 @@ function Routing() {
|
|
|
7051
7103
|
}
|
|
7052
7104
|
}
|
|
7053
7105
|
if (err) {
|
|
7054
|
-
|
|
7106
|
+
settle(err);
|
|
7055
7107
|
return;
|
|
7056
7108
|
}
|
|
7057
7109
|
|
|
7058
|
-
|
|
7110
|
+
settle(false, data);
|
|
7059
7111
|
return;
|
|
7060
7112
|
});
|
|
7061
7113
|
}
|
|
7114
|
+
var req = null;
|
|
7062
7115
|
if (cb) {
|
|
7063
|
-
agent.get(url, options, onAgentResponse);
|
|
7116
|
+
req = agent.get(url, options, onAgentResponse);
|
|
7117
|
+
// #B442: the dial-failure path. Without this the 'error' event has no listener.
|
|
7118
|
+
req.on('error', function (error) {
|
|
7119
|
+
settle(error);
|
|
7120
|
+
});
|
|
7121
|
+
// #B442: `options.timeout` reaches http(s).get and Node EMITS 'timeout' without
|
|
7122
|
+
// destroying the socket — and the request object used to be unreachable, so the
|
|
7123
|
+
// option looked like a workaround and did nothing. Honour it here.
|
|
7124
|
+
if ( options && typeof(options.timeout) != 'undefined' && options.timeout ) {
|
|
7125
|
+
req.on('timeout', function () {
|
|
7126
|
+
var e = new Error('route.request: timed out after ' + options.timeout + 'ms requesting ' + url);
|
|
7127
|
+
e.code = 'ETIMEDOUT';
|
|
7128
|
+
req.destroy(e);
|
|
7129
|
+
});
|
|
7130
|
+
}
|
|
7064
7131
|
} else {
|
|
7065
7132
|
// just throw the request without waiting/handling response
|
|
7066
|
-
agent.get(url, options);
|
|
7133
|
+
req = agent.get(url, options);
|
|
7134
|
+
// #B442: nobody is waiting, but an unhandled 'error' here is still an
|
|
7135
|
+
// uncaughtException — which is how a fire-and-forget call could kill the bundle.
|
|
7136
|
+
req.on('error', function (error) {
|
|
7137
|
+
console.warn('[ ROUTING ] route.request: fire-and-forget request to ' + url + ' failed: ' + ( (error && error.message) ? error.message : error ));
|
|
7138
|
+
});
|
|
7067
7139
|
}
|
|
7068
7140
|
return;
|
|
7069
7141
|
|
|
@@ -7616,6 +7688,10 @@ function addListener(target, element, name, callback) {
|
|
|
7616
7688
|
* @param {string} name - event ID
|
|
7617
7689
|
* @param {object|array|string} args - details
|
|
7618
7690
|
* @param {object} [proxiedEvent]
|
|
7691
|
+
* @returns {object|undefined} the dispatched event when a DOM element received
|
|
7692
|
+
* one - so a proxy can read the handler's decision (defaultPrevented) and
|
|
7693
|
+
* mirror it onto the native event it is proxying; undefined on the
|
|
7694
|
+
* customEvent (element-less) path
|
|
7619
7695
|
*/
|
|
7620
7696
|
function triggerEvent (target, element, name, args, proxiedEvent) {
|
|
7621
7697
|
if (typeof(element) != 'undefined' && element != null) {
|
|
@@ -7656,6 +7732,7 @@ function triggerEvent (target, element, name, args, proxiedEvent) {
|
|
|
7656
7732
|
//console.log('dispatching ['+name+'] to ', element.id, isAttachedToDOM, evt.detail);
|
|
7657
7733
|
element.dispatchEvent(evt)
|
|
7658
7734
|
}
|
|
7735
|
+
return evt;
|
|
7659
7736
|
|
|
7660
7737
|
} else if (document.createEventObject) { // non standard
|
|
7661
7738
|
|
|
@@ -7670,6 +7747,7 @@ function triggerEvent (target, element, name, args, proxiedEvent) {
|
|
|
7670
7747
|
}
|
|
7671
7748
|
|
|
7672
7749
|
element.fireEvent('on' + name, evt);
|
|
7750
|
+
return evt;
|
|
7673
7751
|
}
|
|
7674
7752
|
|
|
7675
7753
|
} else {
|
|
@@ -19289,8 +19367,21 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
19289
19367
|
_evt = 'keydown.'+$el.id
|
|
19290
19368
|
}
|
|
19291
19369
|
if (gina.events[_evt]) {
|
|
19292
|
-
|
|
19293
|
-
|
|
19370
|
+
// #B444 - dispatch FIRST and let the namespaced handler decide:
|
|
19371
|
+
// the native keydown is cancelled only when that handler asked
|
|
19372
|
+
// for it (it prevents the synthetic event on the paths it
|
|
19373
|
+
// re-implements, and deliberately does not on modifier chords,
|
|
19374
|
+
// per the interception's own contract). Cancelling BEFORE the
|
|
19375
|
+
// dispatch suppressed the browser's own editing commands for
|
|
19376
|
+
// every chord - on a real-Safari UA that made paste, select-all,
|
|
19377
|
+
// copy, cut and undo all dead on any live-checked
|
|
19378
|
+
// autocomplete-suppressed field, with no event observable
|
|
19379
|
+
// anywhere (gh issue #67).
|
|
19380
|
+
// was: cancelEvent(event); triggerEvent(gina, $el, _evt, event.detail, event);
|
|
19381
|
+
var _syntheticEvt = triggerEvent(gina, $el, _evt, event.detail, event);
|
|
19382
|
+
if ( _syntheticEvt && _syntheticEvt.defaultPrevented ) {
|
|
19383
|
+
cancelEvent(event);
|
|
19384
|
+
}
|
|
19294
19385
|
}
|
|
19295
19386
|
};
|
|
19296
19387
|
var keyupProxyHandler = function(event) {
|