gina 0.5.20 → 0.5.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 +14 -0
- package/README.md +9 -6
- package/ROADMAP.md +2 -0
- package/framework/v0.5.21/VERSION +1 -0
- package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/js/gina.js +251 -76
- package/framework/v0.5.21/core/asset/plugin/dist/vendor/gina/js/gina.min.js +589 -0
- package/framework/v0.5.21/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/v0.5.21/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- package/framework/{v0.5.20 → v0.5.21}/core/config.js +49 -2
- package/framework/{v0.5.20 → v0.5.21}/core/controller/controller.render-json.js +6 -1
- package/framework/{v0.5.20 → v0.5.21}/core/controller/controller.render-swig.js +46 -8
- package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/validator/src/main.js +115 -47
- package/framework/{v0.5.20 → v0.5.21}/core/server.isaac.js +39 -4
- package/framework/{v0.5.20 → v0.5.21}/core/server.js +47 -3
- package/framework/{v0.5.20 → v0.5.21}/core/template/conf/env.json +7 -1
- package/framework/{v0.5.20 → v0.5.21}/lib/render-cache/src/main.js +113 -2
- package/framework/{v0.5.20 → v0.5.21}/lib/routing/src/main.js +4 -1
- package/framework/{v0.5.20 → v0.5.21}/package.json +1 -1
- package/gna.js +4 -4
- package/llms.txt +12 -2
- package/package.json +3 -3
- package/framework/v0.5.20/VERSION +0 -1
- package/framework/v0.5.20/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -588
- package/framework/v0.5.20/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/v0.5.20/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/AUTHORS +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/LICENSE +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/asset/html/nolayout.html +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/asset/html/static.html +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/asset/img/android-chrome-192x192.png +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/asset/img/android-chrome-512x512.png +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/asset/img/apple-touch-icon.png +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/asset/img/favicon-16x16.png +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/asset/img/favicon-32x32.png +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/asset/img/favicon.ico +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/ai/index.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/ai/lib/connector.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/couchbase/index.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/couchbase/lib/connector.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/couchbase/lib/connector.v3.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/couchbase/lib/connector.v4.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/couchbase/lib/n1ql.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/couchbase/lib/session-store.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/mongodb/index.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/mongodb/lib/connector.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/mongodb/lib/job-store.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/mongodb/lib/session-store.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/mysql/index.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/mysql/lib/connector.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/postgresql/index.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/postgresql/lib/connector.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/redis/index.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/redis/lib/connector.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/redis/lib/job-store.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/redis/lib/render-cache-store.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/redis/lib/session-store.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/scylladb/index.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/scylladb/lib/connector.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/scylladb/lib/session-store.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/sql-parser.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/sqlite/index.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/sqlite/lib/connector.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/sqlite/lib/job-store.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/connectors/sqlite/lib/session-store.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/content.encoding +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/controller/controller.framework.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/controller/controller.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/controller/controller.render-nunjucks-async.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/controller/controller.render-nunjucks.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/controller/controller.render-stream.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/controller/controller.render-swig-async.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/controller/controller.render-v1.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/controller/index.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/controller/inspector-window-emit.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/controller/release-banner.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/dev/index.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/dev/lib/class.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/dev/lib/factory.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/dev/lib/tools.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/gna.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/locales/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/locales/currency.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/locales/dist/language/en.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/locales/dist/language/fr.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/locales/dist/region/en.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/locales/dist/region/fr.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/locales/index.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/mime.types +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/model/entity.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/model/index.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/model/template/entityFactory.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/model/template/index.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/index.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/csrf/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/csrf/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/csrf/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/coep/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/coep/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/coop/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/coop/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/corp/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/corp/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/csp/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/csp/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/hsts/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/hsts/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/session/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/session/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/session/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/storage/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/storage/build.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/storage/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/storage/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/validator/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/validator/build.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/validator/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/validator/src/form-validator.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/router.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/server.express.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/status.codes +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/_gitignore +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle/config/app.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle/config/connectors.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle/config/routing.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle/config/settings.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle/config/templates.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle/config/watchers.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle/index.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle/locales/en.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_public/css/default.css +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_public/css/home.css +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_public/js/components/x-checklist.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_public/readme.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_public/sw.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_templates/html/includes/x-checklist.html +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/command/gina.bat.tpl +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/command/gina.tpl +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/conf/manifest.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/conf/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/conf/settings.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/conf/statics.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/conf/templates.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/error/client/json/401.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/error/client/json/403.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/error/client/json/404.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/error/server/html/50x.html +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/error/server/json/500.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/error/server/json/503.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/core/template/extensions/logger/config.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/helpers/console.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/helpers/context.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/helpers/data/LICENSE +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/helpers/data/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/helpers/data/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/helpers/data/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/helpers/dateFormat.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/helpers/index.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/helpers/json/LICENSE +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/helpers/json/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/helpers/json/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/helpers/json/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/helpers/path.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/helpers/plugins/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/helpers/plugins/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/helpers/plugins/src/api-error.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/helpers/plugins/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/helpers/prototypes.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/helpers/task.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/helpers/text.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/admin/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/admin/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/archiver/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/archiver/build.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/archiver/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/archiver/src/dep/jszip.min.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/archiver/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/async/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/async/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/audit/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/audit/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/audit-store.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/authz-gate/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/authz-gate/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cache/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cache/build.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cache/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cache/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/aliases.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/add.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/arguments.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/build.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/copy.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/cp.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/help.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/help.txt +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/list.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/man.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/mcp-start.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/mcp.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/oas.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/openapi.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/remove.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/rename.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/restart.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/rm.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/start.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/status.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/stop.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/types.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/cache/arguments.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/cache/clear.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/cache/help.txt +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/cache/stats.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/connector/add.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/connector/arguments.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/connector/help.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/connector/help.txt +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/connector/infer.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/connector/list.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/connector/migrate.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/connector/models.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/connector/remove.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/connector/rm.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/connector/test.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/container/arguments.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/container/help.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/container/help.txt +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/container/man.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/container/ps.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/container/stop.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/env/add.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/env/get.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/env/help.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/env/help.txt +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/env/link-dev.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/env/list.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/env/remove.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/env/rm.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/env/set.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/env/unset.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/env/use.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/add.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/arguments.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/build.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/dot.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/get.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/help.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/help.txt +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/init.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/link-node-modules.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/link.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/list.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/man.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/msg.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/open.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/remove.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/reset.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/restart.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/set.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/start.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/status.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/stop.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/tail.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/update.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/version.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/gina-dev.1.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/gina-framework.1.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/gina.1.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/helper.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/i18n/add.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/i18n/arguments.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/i18n/export.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/i18n/help.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/i18n/help.txt +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/i18n/import.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/i18n/scan.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/image/_host.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/image/arguments.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/image/build.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/image/help.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/image/help.txt +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/image/list.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/image/man.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/image/rm.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/image/run.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/index.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/inspector/help.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/inspector/help.txt +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/inspector/open.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/man-render.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/minion/arguments.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/minion/help.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/minion/help.txt +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/minion/kill.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/minion/list.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/msg.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/port/help.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/port/help.txt +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/port/inc/scan.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/port/list.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/port/reset.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/port/set.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/add.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/arguments.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/backup.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/build.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/help.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/help.txt +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/import.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/list.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/man.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/move.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/remove.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/rename.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/restart.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/restore.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/rm.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/start.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/status.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/stop.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/protocol/arguments.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/protocol/help.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/protocol/help.txt +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/protocol/list.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/protocol/remove.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/protocol/set.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/scope/add.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/scope/help.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/scope/help.txt +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/scope/link-local.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/scope/link-production.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/scope/list.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/scope/remove.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/scope/rm.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/scope/use.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/secrets/arguments.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/secrets/check.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/secrets/help.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/secrets/help.txt +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/secrets/scan.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/service/help.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/service/help.txt +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/service/list.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/service/man.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/service/start.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/view/add.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd-status-format/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cmd-status-format/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/collection/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/collection/build.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/collection/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/collection/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/config.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/connector-config/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/connector-config/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/connector-registry/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/connector-registry/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cron/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cron/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/cron/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/domain/LICENSE +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/domain/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/domain/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/domain/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/dto/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/dto/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/dto-pipe/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/dto-pipe/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/dto-types/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/dto-types/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/generator/index.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/i18n/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/i18n/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/image-build/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/image-build/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/index.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/inherits/LICENSE +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/inherits/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/inherits/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/inherits/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/inspector-events/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/inspector-events/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/inspector-redact/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/inspector-redact/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/instrument/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/instrument/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/job/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/job/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/job-store.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/json-config-header/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/json-config-header/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/logger/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/logger/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/logger/src/containers/default/index.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/logger/src/containers/file/index.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/logger/src/containers/mq/index.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/logger/src/containers/mq/listener.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/logger/src/containers/mq/speaker.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/logger/src/helper.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/logger/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/math/index.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/mcp-dispatch/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/mcp-dispatch/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/mcp-http/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/mcp-http/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/mcp-server/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/mcp-server/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/merge/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/merge/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/merge/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/metrics/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/metrics/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/model.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/nunjucks-filters/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/nunjucks-filters/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/nunjucks-filters/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/nunjucks-resolver/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/nunjucks-resolver/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/proc.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/release-watch/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/release-watch/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/render-cache/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/render-cache-store.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/routing/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/routing/build.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/routing/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/routing/src/radix.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/routing-introspect/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/routing-introspect/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/secrets/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/secrets/src/backends/env.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/secrets/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/session-store.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/shell.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/state.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/swig-filters/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/swig-filters/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/swig-filters/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/swig-resolver/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/swig-resolver/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/template-loaders/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/template-loaders/src/loaders/http.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/template-loaders/src/loaders/memory.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/template-loaders/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/url/README.md +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/url/index.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/url/routing.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/uuid/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/uuid/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/validator.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/watcher/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/watcher/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/ws-framing/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/ws-framing/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/ws-query/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/ws-query/src/main.js +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/ws-session/package.json +0 -0
- /package/framework/{v0.5.20 → v0.5.21}/lib/ws-session/src/main.js +0 -0
|
@@ -413,6 +413,14 @@ function Config(opt, contextResetNeeded) {
|
|
|
413
413
|
/**
|
|
414
414
|
* Get env config
|
|
415
415
|
*
|
|
416
|
+
* Non-merged mode (`!self.isStandalone`, bundles on distinct ports):
|
|
417
|
+
* returns `envConf[bundle][env]` untouched. Merged mode (every bundle
|
|
418
|
+
* on the same port, one process): additionally normalises the target
|
|
419
|
+
* bundle's `hostname` to the starting app's (same host:port by
|
|
420
|
+
* definition). The target bundle's `content.routing` is NEVER
|
|
421
|
+
* reassigned (#B137) — each bundle keeps its own table, and the
|
|
422
|
+
* merged view lives in the global `envConf.routing`.
|
|
423
|
+
*
|
|
416
424
|
* @param {string} bundle
|
|
417
425
|
* @param {string} env
|
|
418
426
|
*
|
|
@@ -460,7 +468,17 @@ function Config(opt, contextResetNeeded) {
|
|
|
460
468
|
self.envConf[self.startingApp][env].hostname = hostname;
|
|
461
469
|
|
|
462
470
|
self.envConf[bundle][env].hostname = self.envConf[self.startingApp][env].hostname;
|
|
463
|
-
self.envConf[bundle][env].content.routing = self.envConf[self.startingApp][env].content.routing;
|
|
471
|
+
// #B137 — was: self.envConf[bundle][env].content.routing = self.envConf[self.startingApp][env].content.routing;
|
|
472
|
+
// The 2015 single-table design aliased the target bundle's routing
|
|
473
|
+
// table to the starting app's. Per-bundle `rule@bundle` keying made
|
|
474
|
+
// that pure corruption: the starting app's table cannot hold a
|
|
475
|
+
// sibling's keys, so the first cross-bundle getUrl permanently
|
|
476
|
+
// clobbered the sibling's table — every cross-bundle link rendered
|
|
477
|
+
// the literal `404:[<METHOD>]<rule>@<bundle>` marker, and merged-mode
|
|
478
|
+
// inbound statics dispatch (loadBundleConfiguration → getRouting)
|
|
479
|
+
// could match requests against the wrong bundle's table. The sibling
|
|
480
|
+
// keeps its own table; the merged view of all bundles' rules lives
|
|
481
|
+
// in the global `envConf.routing` (see setRouting).
|
|
464
482
|
|
|
465
483
|
if ( bundle && env ) {
|
|
466
484
|
return self.envConf[bundle][env]
|
|
@@ -1627,6 +1645,10 @@ function Config(opt, contextResetNeeded) {
|
|
|
1627
1645
|
|
|
1628
1646
|
var c = 0
|
|
1629
1647
|
, cLen = configFiles.length
|
|
1648
|
+
// #B132 — set inside the loop when an iteration resolves a REAL
|
|
1649
|
+
// routing config file (bundle or shared; the env-versioned variant
|
|
1650
|
+
// rides its base file's iteration); enforced right after the loop.
|
|
1651
|
+
, routingConfigSeen = false
|
|
1630
1652
|
;
|
|
1631
1653
|
for (; c < cLen; ++c) {
|
|
1632
1654
|
let jsonFile = null;
|
|
@@ -1756,7 +1778,10 @@ function Config(opt, contextResetNeeded) {
|
|
|
1756
1778
|
}
|
|
1757
1779
|
|
|
1758
1780
|
if (!exists) {
|
|
1759
|
-
|
|
1781
|
+
// #B132 rider — `app` was a ReferenceError here (the loop's
|
|
1782
|
+
// bundle-name variable is `bundle`), so this readdir-race
|
|
1783
|
+
// warn could never actually fire: it crashed instead.
|
|
1784
|
+
console.warn('[ ' + bundle + ' ] [ ' + env + ' ]' + new Error('[ ' + filename + ' ] not found'));
|
|
1760
1785
|
} else {
|
|
1761
1786
|
jsonFile = requireJSON(_(filename, true));
|
|
1762
1787
|
}
|
|
@@ -1798,8 +1823,30 @@ function Config(opt, contextResetNeeded) {
|
|
|
1798
1823
|
files[name] = merge(files[name], fileContent);
|
|
1799
1824
|
}
|
|
1800
1825
|
|
|
1826
|
+
// #B132 — `exists` here reflects the MAIN config file (bundle dir or
|
|
1827
|
+
// the shared-config fallback); a readdir↔existsSync race lands false
|
|
1828
|
+
// and correctly routes to the post-loop refusal (supervisor retry).
|
|
1829
|
+
if ( name == 'routing' && exists ) {
|
|
1830
|
+
routingConfigSeen = true;
|
|
1831
|
+
}
|
|
1801
1832
|
|
|
1802
1833
|
} // EO for (var c = 0, cLen = configFiles.length; c < cLen; ++c)
|
|
1834
|
+
|
|
1835
|
+
// #B132 — fail fast on a missing/unreadable routing config. Hydration is
|
|
1836
|
+
// readdir-driven: a config/routing.json absent at boot readdir time is
|
|
1837
|
+
// never iterated, so the bundle's table would silently hold only the
|
|
1838
|
+
// framework-synthetic routes and every app route 404s (or a sibling
|
|
1839
|
+
// bundle's cross-bundle route lookup throws) hours later with no
|
|
1840
|
+
// boot-time signal. A declared bundle without a readable routing config
|
|
1841
|
+
// is a broken deployment (deploy still in progress?) — refuse to start,
|
|
1842
|
+
// matching the malformed-JSON path above (callback(err) leads to
|
|
1843
|
+
// process.exit(1)); the supervisor restart then retries until the
|
|
1844
|
+
// release tree settles.
|
|
1845
|
+
if (!routingConfigSeen) {
|
|
1846
|
+
e = '[ ' + bundle + ' ][ ' + env + ' ] config/routing.json not found — a declared bundle without a readable routing config is a broken deployment (deploy still in progress?); refusing to start';
|
|
1847
|
+
console.error(e);
|
|
1848
|
+
return callback(new Error(e));
|
|
1849
|
+
}
|
|
1803
1850
|
conf[bundle][env] = merge(files, conf[bundle][env]);
|
|
1804
1851
|
|
|
1805
1852
|
// building file list
|
|
@@ -211,12 +211,17 @@ module.exports = function renderJSON(jsonObj, deps) {
|
|
|
211
211
|
}
|
|
212
212
|
} catch (err){
|
|
213
213
|
response.statusCode = 500;
|
|
214
|
+
// #B131 — the reason phrase must be a short single line: a multi-line
|
|
215
|
+
// stack is invalid on the HTTP/1.1 status line (Node rejects the write)
|
|
216
|
+
// and would leak internal paths + frames to the client. The stack goes
|
|
217
|
+
// to the server log instead.
|
|
218
|
+
console.error('[ RENDER-JSON ] status resolution failed: ', err.stack||err.message||err);
|
|
214
219
|
// HTTP/2 (RFC7540 8.1.2.4):
|
|
215
220
|
// This standard for HTTP/2 explicitly states that status messages are not supported.
|
|
216
221
|
// In HTTP/2, the status is conveyed solely by the numerical status code (e.g., 200, 404, 500),
|
|
217
222
|
// and there is no field for a human-readable status message.
|
|
218
223
|
if ( !/http\/2/.test(local.options.conf.server.protocol) ) {
|
|
219
|
-
response.statusMessage = err.
|
|
224
|
+
response.statusMessage = err.message || 'Internal Server Error';
|
|
220
225
|
}
|
|
221
226
|
}
|
|
222
227
|
}
|
|
@@ -209,21 +209,38 @@ module.exports = async function render(userData, displayInspector, errOptions, d
|
|
|
209
209
|
// When present, every framework-injected inline <script> carries a matching
|
|
210
210
|
// nonce="..." attribute so a bundle can drop 'unsafe-inline' from script-src.
|
|
211
211
|
var _cspNonce = (req && req._ginaCspNonce) ? req._ginaCspNonce : null;
|
|
212
|
-
// Stamp the onGinaLoaded bootstrap <script> with
|
|
213
|
-
//
|
|
214
|
-
//
|
|
212
|
+
// Stamp the onGinaLoaded bootstrap <script> with a RENDER-TIME nonce template
|
|
213
|
+
// (#B130). The loader tag flows into the swig-compiled layout, and the compiled
|
|
214
|
+
// template is CACHED per view on serverInstance._cached — so a literal nonce
|
|
215
|
+
// here would be frozen at first compile while the Csp middleware mints a fresh
|
|
216
|
+
// one per request (header != markup on every later request for the view).
|
|
217
|
+
// Injecting swig tags instead keeps the cached artifact nonce-agnostic: the
|
|
218
|
+
// conditional re-evaluates on every compiledTemplate(data) execute against
|
|
219
|
+
// data.page.cspNonce, which BOTH the cache-hit and compile branches assign
|
|
220
|
+
// pre-execute. The loader tag itself is a cached, immutable string (config.js
|
|
221
|
+
// builds it once) — .replace() returns a fresh string and never mutates the
|
|
222
|
+
// shared cache. No-op when no nonce is set (non-CSP deployments bake the
|
|
223
|
+
// plain tag, byte-identical to before).
|
|
215
224
|
var _nonceLoader = function (loaderTag) {
|
|
216
225
|
if (_cspNonce && typeof loaderTag === 'string') {
|
|
217
226
|
return loaderTag.replace(
|
|
218
227
|
'<script type="text/javascript">',
|
|
219
|
-
'<script type="text/javascript" nonce="
|
|
228
|
+
'<script type="text/javascript"{% if page.cspNonce %} nonce="{{ page.cspNonce }}"{% endif %}>'
|
|
220
229
|
);
|
|
221
230
|
}
|
|
222
231
|
return loaderTag;
|
|
223
232
|
};
|
|
224
|
-
// #HDR5 — nonce attribute fragment for
|
|
225
|
-
//
|
|
233
|
+
// #HDR5 — nonce attribute fragment for POST-EXECUTE inline-<script> injections
|
|
234
|
+
// (release banner, cache-patch scripts): those splice into htmlContent after
|
|
235
|
+
// compiledTemplate(data) ran, so the literal per-request value is correct.
|
|
236
|
+
// '' when no nonce is set.
|
|
226
237
|
var _cspNonceAttr = _cspNonce ? (' nonce="' + _cspNonce + '"') : '';
|
|
238
|
+
// #B130 — TEMPLATE form of the same attr for inline <script>s that are baked
|
|
239
|
+
// into the swig-compiled layout PRE-compile (the dev Inspector __ginaData /
|
|
240
|
+
// __ginaLogs pair): the compiled template is cached per view, so a literal
|
|
241
|
+
// value would freeze at first compile. The swig conditional re-evaluates per
|
|
242
|
+
// execute — the same mechanism the statusbar include already uses.
|
|
243
|
+
var _cspNonceTplAttr = _cspNonce ? '{% if page.cspNonce %} nonce="{{ page.cspNonce }}"{% endif %}' : '';
|
|
227
244
|
// Using server cache to cache compiledTemplates
|
|
228
245
|
cache.from(self.serverInstance._cached);
|
|
229
246
|
// Output/render cache goes through the strategy dispatcher (same shared store).
|
|
@@ -893,6 +910,27 @@ module.exports = async function render(userData, displayInspector, errOptions, d
|
|
|
893
910
|
assets = {assets:"${assets}"};
|
|
894
911
|
// replaced: fs.readFileSync — async read (#P29)
|
|
895
912
|
layout = await fs.promises.readFile(layoutPath, 'utf8');
|
|
913
|
+
// #B130 upgrade path — in cached mode the layout-cache file persists the
|
|
914
|
+
// INJECTED layout (it is the {% extends %} target swig compiles from) and
|
|
915
|
+
// is only re-primed when missing, so a file written by a pre-#B130 build
|
|
916
|
+
// still carries the bootstrap loader (and, dev+cache, the Inspector
|
|
917
|
+
// scripts) with a frozen LITERAL nonce baked in — and the injection
|
|
918
|
+
// guards below skip re-injection because onGinaLoaded is already there.
|
|
919
|
+
// Normalize those literals to the render-time conditional; anchored on
|
|
920
|
+
// each script's own idiom (the loader's `<!--` wrapper from config.js,
|
|
921
|
+
// the Inspector scripts' window.__gina* openers), idempotent (the
|
|
922
|
+
// conditional form no longer matches), and persisted back by the
|
|
923
|
+
// layout-cache write below, so this heals once per stale file.
|
|
924
|
+
if ( /<script( type="text\/javascript")? nonce="/.test(layout) ) {
|
|
925
|
+
layout = layout.replace(
|
|
926
|
+
/<script type="text\/javascript" nonce="[^"]*">(\s*<!--)/g,
|
|
927
|
+
'<script type="text/javascript"{% if page.cspNonce %} nonce="{{ page.cspNonce }}"{% endif %}>$1'
|
|
928
|
+
);
|
|
929
|
+
layout = layout.replace(
|
|
930
|
+
/<script nonce="[^"]*">(window\.__gina(Data|Logs))/g,
|
|
931
|
+
'<script{% if page.cspNonce %} nonce="{{ page.cspNonce }}"{% endif %}>$1'
|
|
932
|
+
);
|
|
933
|
+
}
|
|
896
934
|
// Loading from cache
|
|
897
935
|
if (
|
|
898
936
|
String(self.serverInstance._cacheIsEnabled).toLowerCase() === 'true'
|
|
@@ -1346,7 +1384,7 @@ module.exports = async function render(userData, displayInspector, errOptions, d
|
|
|
1346
1384
|
replacement : _redactConf.replacement
|
|
1347
1385
|
});
|
|
1348
1386
|
|
|
1349
|
-
var __gdScript = '<script' +
|
|
1387
|
+
var __gdScript = '<script' + _cspNonceTplAttr + '>window.__ginaData = '
|
|
1350
1388
|
+ JSON.stringify(__gdPayload)
|
|
1351
1389
|
.replace(/<\/script>/gi, '<\\/script>')
|
|
1352
1390
|
.replace(/<!--/g, '<\\!--')
|
|
@@ -1362,7 +1400,7 @@ module.exports = async function render(userData, displayInspector, errOptions, d
|
|
|
1362
1400
|
}
|
|
1363
1401
|
process.emit('inspector#data', __gdPayload);
|
|
1364
1402
|
|
|
1365
|
-
var __logsScript = '<script' +
|
|
1403
|
+
var __logsScript = '<script' + _cspNonceTplAttr + '>'
|
|
1366
1404
|
+ 'window.__ginaLogs = window.__ginaLogs || [];'
|
|
1367
1405
|
+ '(function(w){'
|
|
1368
1406
|
+ 'var _c=w.console,_l=w.__ginaLogs,_b="' + (__gdUser.environment && __gdUser.environment.bundle || '') + '";'
|
|
@@ -3863,6 +3863,24 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
3863
3863
|
handleErrorsDisplay($gForm, gResult.error, gResult.data, _touchedField);
|
|
3864
3864
|
}
|
|
3865
3865
|
}
|
|
3866
|
+
// #B136 — the fresh global pass is VALID but the store still
|
|
3867
|
+
// holds errors from an earlier pass (e.g. a cross-field
|
|
3868
|
+
// comparison fixed by ANOTHER control's change: a checkbox
|
|
3869
|
+
// handler raising the compared field). Every stored error is
|
|
3870
|
+
// stale — clear each previously-errored field's display, not
|
|
3871
|
+
// just the touched field's, so the re-enabled submit trigger
|
|
3872
|
+
// never sits beside a stale blocking-error message.
|
|
3873
|
+
// handleErrorsDisplay's empty-errors path also prunes the
|
|
3874
|
+
// per-field bookkeeping; new errors are never rendered here
|
|
3875
|
+
// (untouched-field display still waits for interaction or
|
|
3876
|
+
// submit).
|
|
3877
|
+
else if ( isFormValid && instance.$forms[formId].errors && instance.$forms[formId].errors.count() > 0 ) {
|
|
3878
|
+
var staleErrors = instance.$forms[formId].errors;
|
|
3879
|
+
instance.$forms[formId].errors = {};
|
|
3880
|
+
for (var staleField in staleErrors) {
|
|
3881
|
+
handleErrorsDisplay($gForm, {}, null, staleField);
|
|
3882
|
+
}
|
|
3883
|
+
}
|
|
3866
3884
|
// Fixed on 2025-03-16
|
|
3867
3885
|
// Eg.: input select change impacting another element: solve `no more errors`
|
|
3868
3886
|
else if ( instance.$forms[formId].errors && !instance.$forms[formId].errors.count() ) {
|
|
@@ -4075,7 +4093,19 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
4075
4093
|
* handleAutoComplete
|
|
4076
4094
|
* This is a temporary fix to handle safari autocomplete/autosuggest
|
|
4077
4095
|
* Will be removed when Safari honores autocomplete="off"
|
|
4096
|
+
*
|
|
4097
|
+
* Intercepts keydown on the field (preventDefault + a programmatic value
|
|
4098
|
+
* rebuild behind a transient readonly) so the browser never sees typing
|
|
4099
|
+
* and offers no autofill/autosuggest. Modifier chords (metaKey/ctrlKey)
|
|
4100
|
+
* are deliberately NOT intercepted (#B134): they return before
|
|
4101
|
+
* preventDefault so the native select-all/copy/paste/cut/undo defaults
|
|
4102
|
+
* run — the rebuild cannot reproduce them.
|
|
4103
|
+
*
|
|
4104
|
+
* Gated to REAL Safari at the registerForLiveChecking call site (#B135):
|
|
4105
|
+
* Chromium UAs carry the Safari token but were never this workaround's
|
|
4106
|
+
* target — they get native behavior.
|
|
4078
4107
|
* @param {object} $el HTMLElement
|
|
4108
|
+
* @param {number} [liveCheckTimer] - live-check debounce handle, cleared per intercepted keystroke
|
|
4079
4109
|
*/
|
|
4080
4110
|
var handleAutoComplete = function($el, liveCheckTimer) {
|
|
4081
4111
|
|
|
@@ -4096,6 +4126,17 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
4096
4126
|
// add once
|
|
4097
4127
|
if ( typeof(gina.events[evtName]) == 'undefined' ) {
|
|
4098
4128
|
addListener(gina, event.currentTarget, evtName, function(e) {
|
|
4129
|
+
// #B134 — modifier chords are NOT intercepted: return before
|
|
4130
|
+
// preventDefault so the native select-all/copy/paste/cut/undo
|
|
4131
|
+
// defaults run. The rebuild below cannot reproduce them — the
|
|
4132
|
+
// printable branch typed the chord letter into the field
|
|
4133
|
+
// (Cmd+A appended "a") and execCommand("paste") is inert in
|
|
4134
|
+
// unprivileged web content. The field is not readonly here
|
|
4135
|
+
// (focusin removed it), so the native edit lands and the
|
|
4136
|
+
// live-check picks it up on the keyup that follows.
|
|
4137
|
+
if ( e.metaKey || e.ctrlKey ) {
|
|
4138
|
+
return;
|
|
4139
|
+
}
|
|
4099
4140
|
e.preventDefault();
|
|
4100
4141
|
clearTimeout(liveCheckTimer);
|
|
4101
4142
|
|
|
@@ -4179,53 +4220,61 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
4179
4220
|
}
|
|
4180
4221
|
break;
|
|
4181
4222
|
// Shortcuts
|
|
4182
|
-
|
|
4183
|
-
|
|
4184
|
-
|
|
4185
|
-
|
|
4186
|
-
|
|
4187
|
-
|
|
4188
|
-
|
|
4189
|
-
|
|
4190
|
-
|
|
4191
|
-
|
|
4192
|
-
|
|
4193
|
-
|
|
4194
|
-
|
|
4195
|
-
|
|
4196
|
-
|
|
4197
|
-
|
|
4198
|
-
|
|
4199
|
-
|
|
4200
|
-
|
|
4201
|
-
|
|
4202
|
-
|
|
4203
|
-
|
|
4204
|
-
|
|
4205
|
-
|
|
4206
|
-
|
|
4207
|
-
|
|
4208
|
-
|
|
4209
|
-
|
|
4210
|
-
|
|
4211
|
-
|
|
4212
|
-
|
|
4213
|
-
|
|
4214
|
-
|
|
4215
|
-
|
|
4216
|
-
|
|
4217
|
-
|
|
4218
|
-
|
|
4219
|
-
|
|
4220
|
-
|
|
4221
|
-
|
|
4222
|
-
|
|
4223
|
-
|
|
4224
|
-
|
|
4225
|
-
|
|
4226
|
-
|
|
4227
|
-
|
|
4228
|
-
|
|
4223
|
+
// #B134 — the modifier-chord cases below are unreachable
|
|
4224
|
+
// since the e.metaKey/e.ctrlKey bail at the top of this
|
|
4225
|
+
// handler: chords now run natively, and the native
|
|
4226
|
+
// copy/cut/paste/select-all/undo defaults are correct
|
|
4227
|
+
// where these re-implementations were not (the paste
|
|
4228
|
+
// re-implementation was inert in unprivileged web
|
|
4229
|
+
// content, and undo-to-defaultValue wiped user input).
|
|
4230
|
+
// Kept commented for the record.
|
|
4231
|
+
// case 17: // CTRL
|
|
4232
|
+
// case 91: // CMD
|
|
4233
|
+
// console.debug("CMD, CTRL hit");
|
|
4234
|
+
// e.preventDefault();
|
|
4235
|
+
// break;
|
|
4236
|
+
// case 67: // to handle CMD+C (copy)
|
|
4237
|
+
// if (
|
|
4238
|
+
// keyboardMapping[67] && keyboardMapping[91] // mac osx
|
|
4239
|
+
// ||
|
|
4240
|
+
// keyboardMapping[67] && keyboardMapping[17] // windows
|
|
4241
|
+
// ) {
|
|
4242
|
+
// $_el.setSelectionRange(posStart, posEnd);
|
|
4243
|
+
// document.execCommand("copy");
|
|
4244
|
+
// break;
|
|
4245
|
+
// }
|
|
4246
|
+
// case 86: // to handle CMD+V (paste)
|
|
4247
|
+
// if (
|
|
4248
|
+
// keyboardMapping[86] && keyboardMapping[91] // mac osx
|
|
4249
|
+
// ||
|
|
4250
|
+
// keyboardMapping[86] && keyboardMapping[17] // windows
|
|
4251
|
+
// ) {
|
|
4252
|
+
// if (posStart != posEnd) {
|
|
4253
|
+
// $_el.value = $_el.value.replace(str.substring(posStart, posEnd), '');
|
|
4254
|
+
// }
|
|
4255
|
+
// setCaretToPos($_el, posStart);
|
|
4256
|
+
// document.execCommand("paste");
|
|
4257
|
+
// break;
|
|
4258
|
+
// }
|
|
4259
|
+
// case 88: // to handle CMD+X (cut)
|
|
4260
|
+
// if (
|
|
4261
|
+
// keyboardMapping[88] && keyboardMapping[91] // mac osx
|
|
4262
|
+
// ||
|
|
4263
|
+
// keyboardMapping[88] && keyboardMapping[17] // windows
|
|
4264
|
+
// ) {
|
|
4265
|
+
// $_el.setSelectionRange(posStart, posEnd);
|
|
4266
|
+
// document.execCommand("cut");
|
|
4267
|
+
// break;
|
|
4268
|
+
// }
|
|
4269
|
+
// case 90: // to handle CMD+Z (undo)
|
|
4270
|
+
// if (
|
|
4271
|
+
// keyboardMapping[90] && keyboardMapping[91] // mac osx
|
|
4272
|
+
// ||
|
|
4273
|
+
// keyboardMapping[90] && keyboardMapping[17] // windows
|
|
4274
|
+
// ) {
|
|
4275
|
+
// $_el.value = $_el.defaultValue;
|
|
4276
|
+
// break;
|
|
4277
|
+
// }
|
|
4229
4278
|
default:
|
|
4230
4279
|
// Replace selection
|
|
4231
4280
|
if (e.key.length > 1) {
|
|
@@ -4294,9 +4343,17 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
4294
4343
|
addLiveForInput($form, $el, liveCheckTimer, isCustomEl);
|
|
4295
4344
|
if ( !isCustomEl ) {
|
|
4296
4345
|
// Bypass Safari autocomplete (native inputs only)
|
|
4346
|
+
// #B135 — REAL Safari only: every Chromium UA (Chrome/Edge/
|
|
4347
|
+
// Brave/Opera...) also carries the "Safari/537.36" token, so
|
|
4348
|
+
// the bare /safari/i test matched them all and ran this
|
|
4349
|
+
// WebKit workaround where it was never intended (see the
|
|
4350
|
+
// handleAutoComplete header). WebKit-on-iOS third-party
|
|
4351
|
+
// browsers (CriOS/FxiOS/EdgiOS — no "Chrome"/"Chromium"
|
|
4352
|
+
// token) stay matched on purpose: they run Safari's engine.
|
|
4297
4353
|
var isAutoCompleteField = $el.getAttribute('autocomplete');
|
|
4298
4354
|
if (
|
|
4299
4355
|
/safari/i.test(navigator.userAgent)
|
|
4356
|
+
&& !/chrom(e|ium)/i.test(navigator.userAgent)
|
|
4300
4357
|
&& isAutoCompleteField
|
|
4301
4358
|
&& /^(off|false)/i.test(isAutoCompleteField)
|
|
4302
4359
|
) {
|
|
@@ -5608,6 +5665,17 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
5608
5665
|
handleErrorsDisplay($gForm, gResult.error, gResult.data, _touchedField);
|
|
5609
5666
|
}
|
|
5610
5667
|
}
|
|
5668
|
+
// #B136 — same stale-clear as processEvent's global pass (keep the
|
|
5669
|
+
// two copies in sync): the fresh pass is valid but the store still
|
|
5670
|
+
// holds earlier errors — clear each previously-errored field's
|
|
5671
|
+
// display, not just the touched field's.
|
|
5672
|
+
else if ( isFormValid && instance.$forms[formId].errors && instance.$forms[formId].errors.count() > 0 ) {
|
|
5673
|
+
var staleErrors = instance.$forms[formId].errors;
|
|
5674
|
+
instance.$forms[formId].errors = {};
|
|
5675
|
+
for (var staleField in staleErrors) {
|
|
5676
|
+
handleErrorsDisplay($gForm, {}, null, staleField);
|
|
5677
|
+
}
|
|
5678
|
+
}
|
|
5611
5679
|
|
|
5612
5680
|
updateSubmitTriggerState( $gForm, isFormValid);
|
|
5613
5681
|
once = false;
|
|
@@ -2163,9 +2163,20 @@ function ServerEngineClass(options) {
|
|
|
2163
2163
|
// only; the shared handle() read (server.js) labels detail=redis.
|
|
2164
2164
|
cacheStatus += '; detail=' + ( (typeof(cachedContentObj.fromMemory) != 'undefined') ? 'memory' : 'fs' );
|
|
2165
2165
|
|
|
2166
|
+
// #B130 — same re-nonce as server.js serveRenderCacheHit (keep in
|
|
2167
|
+
// sync): a hit replays the WRITING request's stored headers + body;
|
|
2168
|
+
// when the stored CSP header carries a nonce, mint fresh + rewrite
|
|
2169
|
+
// the header copy and the body occurrences so nonces stay
|
|
2170
|
+
// per-response. The stored entry is never mutated.
|
|
2171
|
+
var _rn = lib.RenderCache.renonceCspHeaders(
|
|
2172
|
+
( typeof(cachedContentObj.responseHeaders) != 'undefined' )
|
|
2173
|
+
? cachedContentObj.responseHeaders
|
|
2174
|
+
: null
|
|
2175
|
+
);
|
|
2166
2176
|
if ( typeof(cachedContentObj.responseHeaders) != 'undefined' ) {
|
|
2167
|
-
|
|
2168
|
-
|
|
2177
|
+
let _rnHeaders = _rn ? _rn.headers : cachedContentObj.responseHeaders;
|
|
2178
|
+
for (let h in _rnHeaders ) {
|
|
2179
|
+
response.setHeader(h, _rnHeaders[h]);
|
|
2169
2180
|
}
|
|
2170
2181
|
}
|
|
2171
2182
|
response.setHeader('Cache-Status', cacheStatus);
|
|
@@ -2195,15 +2206,39 @@ function ServerEngineClass(options) {
|
|
|
2195
2206
|
typeof(cachedContentObj.fromMemory) != 'undefined'
|
|
2196
2207
|
) {
|
|
2197
2208
|
console.info(request.method +' [200]['+ cacheStatus +'] '+ request.url);
|
|
2198
|
-
return response.end(
|
|
2209
|
+
return response.end(
|
|
2210
|
+
_rn
|
|
2211
|
+
? lib.RenderCache.swapNonces(cachedContentObj.content, _rn.oldNonces, _rn.nonce)
|
|
2212
|
+
: cachedContentObj.content
|
|
2213
|
+
);
|
|
2199
2214
|
}
|
|
2200
2215
|
|
|
2201
2216
|
filename = _(cachedContentObj.filename, true);
|
|
2202
2217
|
|
|
2218
|
+
if ( _rn ) {
|
|
2219
|
+
// #B130 — the re-nonced body needs the whole content in hand;
|
|
2220
|
+
// buffer the disk read-back instead of streaming. Only fires
|
|
2221
|
+
// when the stored headers carry a CSP nonce — nonce-less
|
|
2222
|
+
// entries keep the streaming path below byte-identical.
|
|
2223
|
+
return fs.readFile(filename, 'utf8', function onCachedFileRenonce(err, fileContent) {
|
|
2224
|
+
if (err) {
|
|
2225
|
+
console.error("[SERVER][CACHE][FILE ERROR] ", err.stack||err.message||err);
|
|
2226
|
+
// message-only on the wire — the stack stays in the log above
|
|
2227
|
+
return response.end(''+ (err.message || err));
|
|
2228
|
+
}
|
|
2229
|
+
console.info(request.method +' [200] '+ request.url);
|
|
2230
|
+
return response.end( lib.RenderCache.swapNonces(fileContent, _rn.oldNonces, _rn.nonce) );
|
|
2231
|
+
});
|
|
2232
|
+
}
|
|
2233
|
+
|
|
2203
2234
|
return fs.createReadStream(filename)
|
|
2204
2235
|
.on('error', function onError(err) {
|
|
2205
2236
|
console.error("[SERVER][CACHE][FILE ERROR] ", err.stack||err.message||err);
|
|
2206
|
-
|
|
2237
|
+
// #B131 — message-only on the wire, aligned with the
|
|
2238
|
+
// onCachedFileRenonce buffered sibling above; the stack
|
|
2239
|
+
// stays in the log line above (it previously led the
|
|
2240
|
+
// wire fallback chain, putting frames on the wire).
|
|
2241
|
+
return response.end(''+ (err.message || err));
|
|
2207
2242
|
})
|
|
2208
2243
|
.on('end', function onResponse(){
|
|
2209
2244
|
console.info(request.method +' [200] '+ request.url);
|
|
@@ -5571,9 +5571,19 @@ function Server(options) {
|
|
|
5571
5571
|
_remaining = Math.max(0, Math.floor( (hit.createdAt.getTime() + Math.round(hit.ttl * 1000) - Date.now()) / 1000 ));
|
|
5572
5572
|
}
|
|
5573
5573
|
var _vis = ( hit.visibility === 'public' ) ? 'public' : 'private';
|
|
5574
|
+
// #B130 — a hit replays the STORED headers + body, both minted by the request
|
|
5575
|
+
// that WROTE the entry. When the stored CSP header carries a nonce, replaying
|
|
5576
|
+
// the pair verbatim would reuse one nonce for every client of this URL until
|
|
5577
|
+
// the TTL (and the Csp middleware never re-mints here — the hit short-circuits
|
|
5578
|
+
// dispatch). Mint fresh + rewrite the header copy AND the body occurrences so
|
|
5579
|
+
// nonces stay per-response. The stored entry is never mutated.
|
|
5580
|
+
// Keep in sync with the isaac pre-routing read (server.isaac.js).
|
|
5581
|
+
var _rn = lib.RenderCache.renonceCspHeaders(hit.responseHeaders || null);
|
|
5582
|
+
var _hitContent = _rn ? lib.RenderCache.swapNonces(hit.content, _rn.oldNonces, _rn.nonce) : hit.content;
|
|
5574
5583
|
// The page's own headers first, then the cache metadata.
|
|
5575
5584
|
if ( hit.responseHeaders ) {
|
|
5576
|
-
|
|
5585
|
+
var _hitHeaders = _rn ? _rn.headers : hit.responseHeaders;
|
|
5586
|
+
for (var h in _hitHeaders) { res.setHeader(h, _hitHeaders[h]); }
|
|
5577
5587
|
}
|
|
5578
5588
|
// #RC5 — ONE header string, set AND logged from the same var (the prior dual
|
|
5579
5589
|
// construction at setHeader + console.info was a drift hazard).
|
|
@@ -5595,12 +5605,12 @@ function Server(options) {
|
|
|
5595
5605
|
var _pending = res.getHeaders ? res.getHeaders() : {};
|
|
5596
5606
|
for (var ph in _pending) { _sh[ph] = _pending[ph]; }
|
|
5597
5607
|
res.stream.respond(_sh);
|
|
5598
|
-
res.stream.end(
|
|
5608
|
+
res.stream.end(_hitContent);
|
|
5599
5609
|
res.headersSent = true;
|
|
5600
5610
|
}
|
|
5601
5611
|
} else {
|
|
5602
5612
|
if ( !res.headersSent && !res.writableEnded ) {
|
|
5603
|
-
res.end(
|
|
5613
|
+
res.end(_hitContent);
|
|
5604
5614
|
}
|
|
5605
5615
|
}
|
|
5606
5616
|
console.info(req.method + ' [200][' + _cs + '] ' + (req.originalUrl || req.url));
|
|
@@ -6192,6 +6202,37 @@ function Server(options) {
|
|
|
6192
6202
|
var bundleConf = self.conf[self.appName][self.env];
|
|
6193
6203
|
var _h1ContentType = null;
|
|
6194
6204
|
|
|
6205
|
+
// #B131 — scope-gated stack egress. Feeders (router.js action/middleware
|
|
6206
|
+
// catches, server.js internals) pass `err.stack` pre-flattened as `msg`,
|
|
6207
|
+
// so outside local scope every emit below (the JSON XHR/API branches, the
|
|
6208
|
+
// inline HTML fallback, the custom-error page data built from `err`) would
|
|
6209
|
+
// carry absolute framework paths + stack frames to HTTP clients. Outside
|
|
6210
|
+
// local scope: log the full text server-side (before this gate it only
|
|
6211
|
+
// survived via the wire), then send the message line only / strip the
|
|
6212
|
+
// field. Local scope stays byte-identical — the dev toolbar reads the
|
|
6213
|
+
// stack. The gate reads self.isLocalScope() — the same NODE_SCOPE_IS_LOCAL
|
|
6214
|
+
// env read as controller.js's module-level scope cache (both set once at
|
|
6215
|
+
// gna.js bootstrap), so the server-side and controller-side throwError
|
|
6216
|
+
// gates can never disagree. bundleConf.server.scopeIsLocal was rejected:
|
|
6217
|
+
// it derives from projects.json def_scope (config.js), which can lag the
|
|
6218
|
+
// RUNTIME scope of a boot started with an explicit NODE_SCOPE/--scope.
|
|
6219
|
+
var sanitizeWireError = function(m, c) {
|
|
6220
|
+
if ( self.isLocalScope() ) {
|
|
6221
|
+
return m;
|
|
6222
|
+
}
|
|
6223
|
+
if ( typeof(m) == 'string' && /\n\s+at\s/.test(m) ) {
|
|
6224
|
+
console.error('[ BUNDLE ][ '+ self.appName +' ] '+ local.request.method +' [ '+ c +' ] '+ local.request.url +'\n'+ m);
|
|
6225
|
+
return m.split('\n')[0];
|
|
6226
|
+
}
|
|
6227
|
+
if ( m && typeof(m) == 'object' && typeof(m.stack) != 'undefined' ) {
|
|
6228
|
+
console.error('[ BUNDLE ][ '+ self.appName +' ] '+ local.request.method +' [ '+ c +' ] '+ local.request.url +'\n'+ m.stack);
|
|
6229
|
+
m = JSON.clone(m);
|
|
6230
|
+
delete m.stack;
|
|
6231
|
+
}
|
|
6232
|
+
return m;
|
|
6233
|
+
};
|
|
6234
|
+
msg = sanitizeWireError(msg, code);
|
|
6235
|
+
|
|
6195
6236
|
if ( typeof(msg) != 'object' ) {
|
|
6196
6237
|
err = {
|
|
6197
6238
|
code : code,
|
|
@@ -6211,6 +6252,9 @@ function Server(options) {
|
|
|
6211
6252
|
if ( typeof(code) == 'object' && !msg && typeof(code.status) != 'undefined' && typeof(code.error) != 'undefined' ) {
|
|
6212
6253
|
msg = code.error;
|
|
6213
6254
|
code = code.status;
|
|
6255
|
+
// #B131 — the 1-arg errorObject shape lands `msg` after the
|
|
6256
|
+
// top-of-function gate already ran; sanitize the reshaped value too.
|
|
6257
|
+
msg = sanitizeWireError(msg, code);
|
|
6214
6258
|
}
|
|
6215
6259
|
|
|
6216
6260
|
// Internet Explorer override
|
|
@@ -90,7 +90,13 @@
|
|
|
90
90
|
// },
|
|
91
91
|
"response": {
|
|
92
92
|
"header": {
|
|
93
|
-
|
|
93
|
+
// Accept-Language is a REQUEST header — meaningless on responses.
|
|
94
|
+
// The framework default used to declare it here, so every response
|
|
95
|
+
// (error responses included) emitted a hardcoded accept-language;
|
|
96
|
+
// removed (#B133). A project/bundle env.json may still declare any
|
|
97
|
+
// response header in this block — the override path is intact, and
|
|
98
|
+
// the controller's request-fallback read of a declared value in
|
|
99
|
+
// this block is kept.
|
|
94
100
|
// X-Powered-By is intentionally NOT set here.
|
|
95
101
|
// The framework emits `X-Powered-By: Gina/<version>` from its
|
|
96
102
|
// per-request emission in core/server.js (BOTH engines), gated on
|