gina 0.6.12 → 0.6.13
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 +1 -1
- package/README.md +24 -17
- package/ROADMAP.md +3 -2
- package/framework/v0.6.13/VERSION +1 -0
- package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/js/gina.js +8 -0
- package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/js/gina.min.js +165 -165
- package/framework/v0.6.13/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/v0.6.13/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- package/framework/{v0.6.12 → v0.6.13}/core/config.js +26 -0
- package/framework/v0.6.13/core/connectors/redis/index.js +62 -0
- package/framework/v0.6.13/core/connectors/redis/lib/kv-store.js +394 -0
- package/framework/v0.6.13/core/connectors/sqlite/lib/kv-store.js +316 -0
- package/framework/{v0.6.12 → v0.6.13}/core/controller/controller.js +202 -0
- package/framework/{v0.6.12 → v0.6.13}/core/gna.js +85 -0
- package/framework/{v0.6.12 → v0.6.13}/core/model/entity.js +13 -5
- package/framework/{v0.6.12 → v0.6.13}/core/router.js +147 -56
- package/framework/{v0.6.12 → v0.6.13}/core/server.js +61 -0
- package/framework/{v0.6.12 → v0.6.13}/lib/cmd/service/help.txt +8 -2
- package/framework/{v0.6.12 → v0.6.13}/lib/cmd/service/start.js +1 -1
- package/framework/{v0.6.12 → v0.6.13}/lib/index.js +18 -0
- package/framework/v0.6.13/lib/kv/package.json +7 -0
- package/framework/v0.6.13/lib/kv/src/main.js +862 -0
- package/framework/v0.6.13/lib/kv-store.js +112 -0
- package/framework/v0.6.13/lib/rate-limit/package.json +6 -0
- package/framework/v0.6.13/lib/rate-limit/src/main.js +399 -0
- package/framework/{v0.6.12 → v0.6.13}/lib/routing/src/main.js +8 -0
- package/framework/{v0.6.12 → v0.6.13}/package.json +1 -1
- package/gna.js +4 -4
- package/llms.txt +13 -3
- package/package.json +3 -3
- package/schema/routing.json +30 -0
- package/schema/settings.json +101 -0
- package/types/index.d.ts +9 -0
- package/framework/v0.6.12/VERSION +0 -1
- package/framework/v0.6.12/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/v0.6.12/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- package/framework/v0.6.12/core/connectors/redis/index.js +0 -36
- /package/framework/{v0.6.12 → v0.6.13}/AUTHORS +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/LICENSE +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/asset/html/nolayout.html +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/asset/html/static.html +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/asset/img/android-chrome-192x192.png +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/asset/img/android-chrome-512x512.png +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/asset/img/apple-touch-icon.png +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/asset/img/favicon-16x16.png +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/asset/img/favicon-32x32.png +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/asset/img/favicon.ico +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/ai/index.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/ai/lib/connector.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/couchbase/index.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/couchbase/lib/connector.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/couchbase/lib/connector.v3.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/couchbase/lib/connector.v4.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/couchbase/lib/n1ql.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/couchbase/lib/session-store.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/couchbase/lib/storage-store.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/duckdb/index.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/duckdb/lib/connector.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/mongodb/index.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/mongodb/lib/connector.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/mongodb/lib/job-store.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/mongodb/lib/session-store.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/mysql/index.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/mysql/lib/connector.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/param-redact.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/postgresql/index.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/postgresql/lib/connector.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/redis/lib/connector.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/redis/lib/job-store.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/redis/lib/render-cache-store.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/redis/lib/session-store.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/scylladb/index.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/scylladb/lib/connector.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/scylladb/lib/session-store.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/sql-parser.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/sqlite/index.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/sqlite/lib/connector.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/sqlite/lib/job-store.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/connectors/sqlite/lib/session-store.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/content.encoding +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/controller/controller.framework.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/controller/controller.render-json.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/controller/controller.render-nunjucks-async.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/controller/controller.render-nunjucks.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/controller/controller.render-stream.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/controller/controller.render-swig-async.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/controller/controller.render-swig.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/controller/controller.render-v1.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/controller/index.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/controller/inspector-window-emit.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/controller/release-banner.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/dev/index.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/dev/lib/class.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/dev/lib/factory.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/dev/lib/tools.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/locales/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/locales/currency.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/locales/dist/language/en.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/locales/dist/language/fr.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/locales/dist/region/en.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/locales/dist/region/fr.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/locales/index.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/mime.types +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/model/index.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/model/template/entityFactory.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/model/template/index.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/index.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/csrf/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/csrf/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/csrf/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/coep/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/coep/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/coop/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/coop/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/corp/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/corp/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/csp/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/csp/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/hsts/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/hsts/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/session/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/session/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/session/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/storage/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/storage/build.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/storage/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/storage/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/validator/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/validator/build.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/validator/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/validator/src/form-validator.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/validator/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/server.express.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/server.isaac.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/status.codes +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/_gitignore +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle/config/app.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle/config/connectors.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle/config/routing.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle/config/settings.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle/config/templates.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle/config/watchers.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle/index.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle/locales/en.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_public/css/default.css +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_public/css/home.css +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_public/js/components/x-checklist.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_public/readme.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_public/sw.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_templates/html/includes/x-checklist.html +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/command/gina.bat.tpl +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/command/gina.tpl +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/conf/env.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/conf/manifest.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/conf/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/conf/settings.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/conf/statics.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/conf/templates.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/error/client/json/401.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/error/client/json/403.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/error/client/json/404.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/error/server/html/50x.html +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/error/server/json/500.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/error/server/json/503.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/core/template/extensions/logger/config.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/helpers/console.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/helpers/context.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/helpers/data/LICENSE +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/helpers/data/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/helpers/data/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/helpers/data/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/helpers/dateFormat.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/helpers/index.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/helpers/json/LICENSE +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/helpers/json/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/helpers/json/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/helpers/json/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/helpers/path.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/helpers/plugins/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/helpers/plugins/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/helpers/plugins/src/api-error.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/helpers/plugins/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/helpers/prototypes.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/helpers/task.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/helpers/text.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/admin/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/admin/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/archiver/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/archiver/build.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/archiver/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/archiver/src/dep/jszip.min.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/archiver/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/async/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/async/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/audit/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/audit/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/audit-store.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/authn/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/authn/src/lockout.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/authn/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/authn/src/totp.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/authz-gate/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/authz-gate/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cache/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cache/build.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cache/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cache/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/aliases.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/audit/arguments.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/audit/help.txt +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/audit/verify.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/add.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/arguments.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/build.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/copy.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/cp.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/help.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/help.txt +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/list.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/man.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/mcp-start.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/mcp.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/oas.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/openapi.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/remove.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/rename.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/restart.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/rm.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/start.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/status.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/stop.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/types.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/cache/arguments.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/cache/clear.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/cache/help.txt +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/cache/stats.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/connector/add.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/connector/arguments.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/connector/help.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/connector/help.txt +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/connector/infer.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/connector/list.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/connector/migrate.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/connector/models.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/connector/remove.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/connector/rm.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/connector/test.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/container/arguments.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/container/help.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/container/help.txt +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/container/man.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/container/ps.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/container/stop.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/controller/add.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/controller/arguments.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/controller/help.txt +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/controller/inc/args.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/controller/inc/namespace.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/controller/inc/reference-rewrite.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/controller/inc/reference-scan.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/controller/inc/scaffold.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/controller/remove.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/controller/rename.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/controller/rm.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/env/add.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/env/get.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/env/help.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/env/help.txt +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/env/link-dev.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/env/list.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/env/remove.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/env/rm.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/env/set.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/env/unset.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/env/use.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/add.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/arguments.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/build.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/dot.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/get.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/help.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/help.txt +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/init.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/link-node-modules.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/link.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/list.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/man.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/msg.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/open.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/remove.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/reset.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/restart.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/set.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/start.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/status.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/stop.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/tail.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/update.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/version.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/gina-dev.1.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/gina-framework.1.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/gina.1.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/helper.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/i18n/add.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/i18n/arguments.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/i18n/export.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/i18n/help.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/i18n/help.txt +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/i18n/import.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/i18n/scan.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/image/_host.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/image/arguments.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/image/build.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/image/help.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/image/help.txt +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/image/list.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/image/man.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/image/rm.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/image/run.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/index.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/inspector/help.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/inspector/help.txt +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/inspector/open.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/man-render.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/minion/arguments.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/minion/help.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/minion/help.txt +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/minion/kill.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/minion/list.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/msg.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/port/help.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/port/help.txt +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/port/inc/scan.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/port/list.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/port/reset.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/port/set.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/add.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/arguments.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/backup.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/build.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/help.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/help.txt +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/import.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/list.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/man.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/move.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/remove.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/rename.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/restart.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/restore.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/rm.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/start.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/status.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/stop.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/protocol/arguments.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/protocol/help.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/protocol/help.txt +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/protocol/list.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/protocol/remove.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/protocol/set.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/scope/add.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/scope/help.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/scope/help.txt +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/scope/link-local.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/scope/link-production.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/scope/list.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/scope/remove.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/scope/rm.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/scope/use.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/secrets/arguments.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/secrets/check.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/secrets/help.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/secrets/help.txt +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/secrets/scan.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/service/help.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/service/list.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/service/man.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/storage/arguments.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/storage/gc.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/storage/help.txt +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/storage/stats.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/storage/verify.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/view/add.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd-status-format/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cmd-status-format/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/collection/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/collection/build.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/collection/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/collection/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/config.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/connector-config/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/connector-config/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/connector-error/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/connector-error/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/connector-registry/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/connector-registry/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cron/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cron/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/cron/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/domain/LICENSE +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/domain/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/domain/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/domain/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/dto/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/dto/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/dto-pipe/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/dto-pipe/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/dto-types/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/dto-types/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/generator/index.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/i18n/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/i18n/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/image-build/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/image-build/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/inherits/LICENSE +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/inherits/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/inherits/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/inherits/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/inspector-events/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/inspector-events/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/inspector-redact/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/inspector-redact/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/instrument/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/instrument/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/job/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/job/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/job-store.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/json-config-header/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/json-config-header/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/loading-state/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/loading-state/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/logger/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/logger/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/logger/src/containers/default/index.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/logger/src/containers/file/index.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/logger/src/containers/mq/index.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/logger/src/containers/mq/listener.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/logger/src/containers/mq/speaker.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/logger/src/helper.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/logger/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/maintenance/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/maintenance/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/math/index.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/mcp-dispatch/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/mcp-dispatch/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/mcp-http/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/mcp-http/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/mcp-server/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/mcp-server/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/merge/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/merge/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/merge/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/metrics/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/metrics/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/model.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/net-locality/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/net-locality/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/nunjucks-filters/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/nunjucks-filters/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/nunjucks-filters/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/nunjucks-resolver/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/nunjucks-resolver/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/proc.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/push/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/push/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/release-watch/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/release-watch/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/render-cache/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/render-cache/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/render-cache-store.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/routing/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/routing/build.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/routing/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/routing/src/radix.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/routing-introspect/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/routing-introspect/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/secrets/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/secrets/src/backends/env.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/secrets/src/backends/file.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/secrets/src/env-file.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/secrets/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/session-store.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/shell.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/sqlite-driver.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/state.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/storage/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/storage/src/local-cas.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/storage/src/local-stream.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/storage/src/local.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/storage/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/storage/src/meta-store.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/storage/src/s3.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/storage/src/util.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/storage-store.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/swig-filters/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/swig-filters/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/swig-filters/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/swig-resolver/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/swig-resolver/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/template-loaders/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/template-loaders/src/loaders/http.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/template-loaders/src/loaders/memory.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/template-loaders/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/url/README.md +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/url/index.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/url/routing.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/uuid/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/uuid/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/validator.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/watcher/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/watcher/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/ws-framing/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/ws-framing/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/ws-query/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/ws-query/src/main.js +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/ws-session/package.json +0 -0
- /package/framework/{v0.6.12 → v0.6.13}/lib/ws-session/src/main.js +0 -0
|
@@ -254,11 +254,19 @@ function EntitySuper(conn, caller, injected) {
|
|
|
254
254
|
// (its third guard skips setListener when `!Array.isArray`), so
|
|
255
255
|
// this `.on` listener receives the emit arguments directly.
|
|
256
256
|
if ( entity.listenerCount(_fpShortName) === 0 ) {
|
|
257
|
+
// #B395 — these DISPATCH:* dispatch diagnostics use console.debug,
|
|
258
|
+
// NOT console.log, and the distinction is load-bearing: in gina
|
|
259
|
+
// console.log is the logger's raw `process.stdout.write` path, which
|
|
260
|
+
// bypasses container dispatch (file/mq) AND the level gate, while a
|
|
261
|
+
// daemon-spawned bundle's stdout is filtered by lib/cmd/bundle/start.js
|
|
262
|
+
// — so as console.log they reached neither the bundle log nor docker
|
|
263
|
+
// logs, and only flooded a foreground boot. Levelled, they are off by
|
|
264
|
+
// default and appear when a consumer raises the hierarchy to debug.
|
|
257
265
|
var _onFpQueueEmit = function onFpQueueEmit() {
|
|
258
266
|
var _q = entity._callbacks[_fpShortName];
|
|
259
267
|
if ( !_q || _q.length === 0 ) { return; }
|
|
260
268
|
var _fn = _q.shift();
|
|
261
|
-
console.
|
|
269
|
+
console.debug('[ MODEL ][ ENTITY ] DISPATCH:CALLBACK_FLUSH ' + _fpShortName);
|
|
262
270
|
_fn.apply(this, arguments);
|
|
263
271
|
if ( !entity._callbacks[_fpShortName] || entity._callbacks[_fpShortName].length === 0 ) {
|
|
264
272
|
delete entity._callbacks[_fpShortName];
|
|
@@ -268,7 +276,7 @@ function EntitySuper(conn, caller, injected) {
|
|
|
268
276
|
entity.on(_fpShortName, _onFpQueueEmit);
|
|
269
277
|
}
|
|
270
278
|
} else { // in case the event is not ready yet
|
|
271
|
-
console.
|
|
279
|
+
console.debug('[ MODEL ][ ENTITY ] DISPATCH:BUFFER_CALLBACK ' + events[i].shortName);
|
|
272
280
|
// #M2 — queue consume: shift oldest buffered result so concurrent
|
|
273
281
|
// callers each receive their own result, not a shared stale one.
|
|
274
282
|
var _firing2Args = entity._arguments[events[i].shortName].shift();
|
|
@@ -529,7 +537,7 @@ function EntitySuper(conn, caller, injected) {
|
|
|
529
537
|
self
|
|
530
538
|
//.off(events[i].shortName, function(){ delete self._callbacks[trigger]; })
|
|
531
539
|
.on(events[i].shortName, function () {
|
|
532
|
-
console.
|
|
540
|
+
console.debug('[ MODEL ][ ENTITY ] DISPATCH:ALIAS_TRIGGER ' + trigger);
|
|
533
541
|
this._callbacks[trigger.replace(/[0-9]/g, '')].apply(this[method], arguments);
|
|
534
542
|
delete self._callbacks[trigger];
|
|
535
543
|
})
|
|
@@ -537,7 +545,7 @@ function EntitySuper(conn, caller, injected) {
|
|
|
537
545
|
|
|
538
546
|
} else {
|
|
539
547
|
if ( typeof(self._callbacks[trigger]) != 'undefined' ) {
|
|
540
|
-
console.
|
|
548
|
+
console.debug('[ MODEL ][ ENTITY ] DISPATCH:CALLBACK_FLUSH ' + trigger);
|
|
541
549
|
self._callbacks[trigger].apply(this, args);
|
|
542
550
|
delete self._callbacks[trigger];
|
|
543
551
|
} else {
|
|
@@ -562,7 +570,7 @@ function EntitySuper(conn, caller, injected) {
|
|
|
562
570
|
if (!this._arguments[trigger]) {
|
|
563
571
|
this._arguments[trigger] = [];
|
|
564
572
|
}
|
|
565
|
-
console.
|
|
573
|
+
console.debug('[ MODEL ][ ENTITY ] DISPATCH:PREEMPTIVE_BUFFER ' + trigger);
|
|
566
574
|
this._arguments[trigger].push(arguments);
|
|
567
575
|
|
|
568
576
|
})
|
|
@@ -20,6 +20,9 @@ var fs = require('fs')
|
|
|
20
20
|
// #COMPLY1 — the default-on route authorization gate (plain-required in
|
|
21
21
|
// lib/index.js, so this gen-0 binding IS the live module).
|
|
22
22
|
, authzGate = lib.authzGate
|
|
23
|
+
// #MS6 — the identified-caller quota gate (plain-required in lib/index.js,
|
|
24
|
+
// so this gen-0 binding IS the live module).
|
|
25
|
+
, rateLimit = lib.rateLimit
|
|
23
26
|
, SuperController = require('./controller')
|
|
24
27
|
, Config = require('./config')
|
|
25
28
|
;
|
|
@@ -915,9 +918,13 @@ function Router(env, scope) {
|
|
|
915
918
|
Setup.requireController = controller.requireController;
|
|
916
919
|
|
|
917
920
|
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
+
// #B399 — return the app setup's own result instead of the
|
|
922
|
+
// function object (the wrapper's return had zero consumers):
|
|
923
|
+
// an async `setup.js`'s promise was discarded right here, so
|
|
924
|
+
// the dispatch-loop guard could never own its rejection.
|
|
925
|
+
// was: Setup.apply(Setup, arguments);
|
|
926
|
+
// return Setup;
|
|
927
|
+
return Setup.apply(Setup, arguments);
|
|
921
928
|
}(request, response, next)
|
|
922
929
|
}
|
|
923
930
|
}
|
|
@@ -962,41 +969,88 @@ function Router(env, scope) {
|
|
|
962
969
|
return;
|
|
963
970
|
}
|
|
964
971
|
|
|
965
|
-
// #
|
|
966
|
-
//
|
|
967
|
-
//
|
|
968
|
-
//
|
|
969
|
-
//
|
|
970
|
-
//
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
972
|
+
// #MS6 — identified-caller quota gate. AFTER authz (authorizeRequest
|
|
973
|
+
// is the principal resolver — the only writer of req.machineCaller,
|
|
974
|
+
// and session identity is its own predicate) and BEFORE the DTO pipe
|
|
975
|
+
// (a throttled caller must not receive a 422 field map — the same
|
|
976
|
+
// disclosure ordering that puts the 401 above the 422). The band
|
|
977
|
+
// below is wrapped so the armed path can defer it behind the store
|
|
978
|
+
// read; DORMANT (`enabled` not strictly true, exempt route, or no
|
|
979
|
+
// principal) mints ZERO promises — the wrapped band runs on today's
|
|
980
|
+
// exact synchronous path (the #B383 family: async-ness in a gate is
|
|
981
|
+
// a behaviour change, so it is confined to callers who armed it).
|
|
982
|
+
var _dispatchControllerAction = function() {
|
|
983
|
+
// #DTO2 — default-on request-payload validation. A strict NO-OP
|
|
984
|
+
// unless the route declares `param.dto`. Placed BEFORE the
|
|
985
|
+
// reservedActions loop so a 422 short-circuits the whole controller
|
|
986
|
+
// invocation (`onReady` never runs for a rejected request). Route
|
|
987
|
+
// middleware has already drained here, so auth (401) still precedes
|
|
988
|
+
// validation (422).
|
|
989
|
+
if ( !dtoPipe.validateRequestPayload(controller, request, response) ) {
|
|
990
|
+
return;
|
|
979
991
|
}
|
|
980
|
-
}
|
|
981
992
|
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
993
|
+
// handle superController events
|
|
994
|
+
try {
|
|
995
|
+
// #B399 — the reserved-action hooks (`onReady`, `setup`) were dispatched
|
|
996
|
+
// BARE here, OUTSIDE the try, while the main action below owns its
|
|
997
|
+
// promise: an async hook rejection was unowned — no response, the
|
|
998
|
+
// request hung to client/proxy timeout, and the only trace was a
|
|
999
|
+
// levelled line in the daemon-dropped stdout — and a sync hook throw
|
|
1000
|
+
// escaped to process level (isaac: uncaughtException → emerg + SIGTERM,
|
|
1001
|
+
// the whole bundle dies; express: its layer-catch answers its own 500 —
|
|
1002
|
+
// engine-asymmetric). Inside the try, a sync throw is this catch's 500;
|
|
1003
|
+
// the thenable capture gives an async rejection the SAME .catch → 500
|
|
1004
|
+
// the action carries. throwError is `!headersSent`-guarded, so a
|
|
1005
|
+
// rejection landing after the action responded degrades to the #ERRREF
|
|
1006
|
+
// pairing line. Sync/absent hooks mint ZERO promises (the band's
|
|
1007
|
+
// dormancy rule).
|
|
1008
|
+
for (let e=0; e<reservedActions.length; ++e) {
|
|
1009
|
+
if ( typeof(controller[reservedActions[e]]) == 'function' ) {
|
|
1010
|
+
let _hookResult = controller[reservedActions[e]](request, response, next);
|
|
1011
|
+
if ( _hookResult && typeof _hookResult.then === 'function' ) {
|
|
1012
|
+
_hookResult.catch(function(err) {
|
|
1013
|
+
serverInstance.throwError(response, 500, 'reserved action `'+ reservedActions[e] +'` rejected: '+ ( err && (err.stack || err.message) || String(err) ));
|
|
1014
|
+
});
|
|
1015
|
+
}
|
|
1016
|
+
}
|
|
1017
|
+
}
|
|
1018
|
+
|
|
1019
|
+
var _result = controller[action](request, response, next);
|
|
1020
|
+
if (_result && typeof _result.then === 'function') {
|
|
1021
|
+
_result.catch(function(err) {
|
|
1022
|
+
serverInstance.throwError(response, 500, err.stack || err.message || String(err));
|
|
1023
|
+
});
|
|
1024
|
+
}
|
|
1025
|
+
} catch (err) {
|
|
1026
|
+
var superController = new SuperController(options);
|
|
1027
|
+
// Required before setting options
|
|
1028
|
+
superController.serverInstance = serverInstance;
|
|
1029
|
+
superController.setOptions(request, response, next, options);
|
|
1030
|
+
if (typeof (controller) != 'undefined' && typeof (controller[action]) == 'undefined') {
|
|
1031
|
+
return serverInstance.throwError(response, 500, (new Error('control not found: `' + action + '`. Please, check your routing.json ('+ options.rule +') or the related control in your `' + controllerFile + '`.')).stack);
|
|
1032
|
+
}
|
|
1033
|
+
|
|
1034
|
+
return serverInstance.throwError(response, 500, err.stack);
|
|
988
1035
|
}
|
|
989
|
-
}
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
1036
|
+
};
|
|
1037
|
+
var _rlConf = serverInstance._rateLimit;
|
|
1038
|
+
if ( _rlConf && _rlConf.enabled === true ) {
|
|
1039
|
+
var _rlGate = rateLimit.gate(request, response, controller, _rlConf);
|
|
1040
|
+
if ( _rlGate ) {
|
|
1041
|
+
// Every terminal of this promise is owned: allow -> the band,
|
|
1042
|
+
// deny/outage -> answered inside the gate; this catch is the
|
|
1043
|
+
// last-resort belt (an unowned rejection in the dispatch spine
|
|
1044
|
+
// is a hung request with no visible log line).
|
|
1045
|
+
_rlGate.then(function onRateLimitVerdict(proceed) {
|
|
1046
|
+
if (proceed) { _dispatchControllerAction(); }
|
|
1047
|
+
}).catch(function onRateLimitError(rlErr) {
|
|
1048
|
+
serverInstance.throwError(response, 500, (rlErr && rlErr.stack) || String(rlErr));
|
|
1049
|
+
});
|
|
1050
|
+
return;
|
|
996
1051
|
}
|
|
997
|
-
|
|
998
|
-
return serverInstance.throwError(response, 500, err.stack);
|
|
999
1052
|
}
|
|
1053
|
+
_dispatchControllerAction();
|
|
1000
1054
|
|
|
1001
1055
|
});
|
|
1002
1056
|
} else {
|
|
@@ -1011,34 +1065,71 @@ function Router(env, scope) {
|
|
|
1011
1065
|
return;
|
|
1012
1066
|
}
|
|
1013
1067
|
|
|
1014
|
-
// #
|
|
1015
|
-
//
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1068
|
+
// #MS6 — identified-caller quota gate (see the with-middleware site
|
|
1069
|
+
// above for the full rationale: after authz, before the DTO pipe;
|
|
1070
|
+
// dormant mints ZERO promises and runs the band synchronously).
|
|
1071
|
+
var _dispatchControllerAction = function() {
|
|
1072
|
+
// #DTO2 — default-on request-payload validation (see the with-middleware
|
|
1073
|
+
// site above). A strict NO-OP unless the route declares `param.dto`.
|
|
1074
|
+
if ( !dtoPipe.validateRequestPayload(controller, request, response) ) {
|
|
1075
|
+
return;
|
|
1076
|
+
}
|
|
1077
|
+
|
|
1078
|
+
// handle superController events
|
|
1079
|
+
// e.g.: inside your controller, you can defined: `this.onReady = function(){...}` which will always be called before the main action
|
|
1080
|
+
try {
|
|
1081
|
+
// #B399 — the reserved-action hooks (`onReady`, `setup`) were dispatched
|
|
1082
|
+
// BARE here, OUTSIDE the try, while the main action below owns its
|
|
1083
|
+
// promise: an async hook rejection was unowned — no response, the
|
|
1084
|
+
// request hung to client/proxy timeout, and the only trace was a
|
|
1085
|
+
// levelled line in the daemon-dropped stdout — and a sync hook throw
|
|
1086
|
+
// escaped to process level (isaac: uncaughtException → emerg + SIGTERM,
|
|
1087
|
+
// the whole bundle dies; express: its layer-catch answers its own 500 —
|
|
1088
|
+
// engine-asymmetric). Inside the try, a sync throw is this catch's 500;
|
|
1089
|
+
// the thenable capture gives an async rejection the SAME .catch → 500
|
|
1090
|
+
// the action carries. throwError is `!headersSent`-guarded, so a
|
|
1091
|
+
// rejection landing after the action responded degrades to the #ERRREF
|
|
1092
|
+
// pairing line. Sync/absent hooks mint ZERO promises (the band's
|
|
1093
|
+
// dormancy rule).
|
|
1094
|
+
for (let e=0; e<reservedActions.length; ++e) {
|
|
1095
|
+
if ( typeof(controller[reservedActions[e]]) == 'function' ) {
|
|
1096
|
+
let _hookResult = controller[reservedActions[e]](request, response, next);
|
|
1097
|
+
if ( _hookResult && typeof _hookResult.then === 'function' ) {
|
|
1098
|
+
_hookResult.catch(function(err) {
|
|
1099
|
+
serverInstance.throwError(response, 500, 'reserved action `'+ reservedActions[e] +'` rejected: '+ ( err && (err.stack || err.message) || String(err) ));
|
|
1100
|
+
});
|
|
1101
|
+
}
|
|
1102
|
+
}
|
|
1103
|
+
}
|
|
1019
1104
|
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1105
|
+
var _result = controller[action](request, response, next);
|
|
1106
|
+
if (_result && typeof _result.then === 'function') {
|
|
1107
|
+
_result.catch(function(err) {
|
|
1108
|
+
serverInstance.throwError(response, 500, err.stack || err.message || String(err));
|
|
1109
|
+
});
|
|
1110
|
+
}
|
|
1111
|
+
} catch (err) {
|
|
1112
|
+
if ( typeof(controller) != 'undefined' && typeof (controller[action]) == 'undefined') {
|
|
1113
|
+
serverInstance.throwError(response, 500, (new Error('control not found: `' + action + '`. Please, check your routing.json or the related control in your `' + controllerFile + '`.')).stack);
|
|
1114
|
+
} else {
|
|
1115
|
+
serverInstance.throwError(response, 500, err.stack);
|
|
1116
|
+
}
|
|
1117
|
+
return;
|
|
1025
1118
|
}
|
|
1026
|
-
}
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1119
|
+
};
|
|
1120
|
+
var _rlConf = serverInstance._rateLimit;
|
|
1121
|
+
if ( _rlConf && _rlConf.enabled === true ) {
|
|
1122
|
+
var _rlGate = rateLimit.gate(request, response, controller, _rlConf);
|
|
1123
|
+
if ( _rlGate ) {
|
|
1124
|
+
_rlGate.then(function onRateLimitVerdict(proceed) {
|
|
1125
|
+
if (proceed) { _dispatchControllerAction(); }
|
|
1126
|
+
}).catch(function onRateLimitError(rlErr) {
|
|
1127
|
+
serverInstance.throwError(response, 500, (rlErr && rlErr.stack) || String(rlErr));
|
|
1032
1128
|
});
|
|
1129
|
+
return;
|
|
1033
1130
|
}
|
|
1034
|
-
} catch (err) {
|
|
1035
|
-
if ( typeof(controller) != 'undefined' && typeof (controller[action]) == 'undefined') {
|
|
1036
|
-
serverInstance.throwError(response, 500, (new Error('control not found: `' + action + '`. Please, check your routing.json or the related control in your `' + controllerFile + '`.')).stack);
|
|
1037
|
-
} else {
|
|
1038
|
-
serverInstance.throwError(response, 500, err.stack);
|
|
1039
|
-
}
|
|
1040
|
-
return;
|
|
1041
1131
|
}
|
|
1132
|
+
_dispatchControllerAction();
|
|
1042
1133
|
}
|
|
1043
1134
|
|
|
1044
1135
|
// controller = null;
|
|
@@ -2143,6 +2143,36 @@ function Server(options) {
|
|
|
2143
2143
|
}
|
|
2144
2144
|
}
|
|
2145
2145
|
|
|
2146
|
+
/**
|
|
2147
|
+
* #MS5 — resolve and validate the `server.query.circuitBreaker` block ONCE at
|
|
2148
|
+
* engine start, for the stamp below that `controller.query()` reads (the same
|
|
2149
|
+
* boot-resolved-once pattern as `_cacheName` / #B238). Dormant contract: an
|
|
2150
|
+
* absent block, or `enabled` not strictly `true`, resolves to
|
|
2151
|
+
* `{ enabled: false }` and the breaker path in `query()` is never entered.
|
|
2152
|
+
* Structurally invalid values on an ENABLED block are a boot refusal (throw),
|
|
2153
|
+
* not a warn-and-disable: silently running without the protection the operator
|
|
2154
|
+
* asked for is exactly the fail-open shape the storage/kv boot bands refuse.
|
|
2155
|
+
*
|
|
2156
|
+
* @inner
|
|
2157
|
+
* @param {object} [serverConf] - Post-fold `server` block (env.json keys win, settings.json fills — see the config.js #MS5 fold)
|
|
2158
|
+
* @returns {object} `{ enabled: false }` or `{ enabled: true, failureThreshold, cooldownMs }`
|
|
2159
|
+
*/
|
|
2160
|
+
var resolveQueryCircuitBreakerConf = function(serverConf) {
|
|
2161
|
+
var block = serverConf && serverConf.query && serverConf.query.circuitBreaker;
|
|
2162
|
+
if ( !block || block.enabled !== true ) {
|
|
2163
|
+
return { enabled: false };
|
|
2164
|
+
}
|
|
2165
|
+
var threshold = ( typeof(block.failureThreshold) == 'undefined' ) ? 5 : block.failureThreshold;
|
|
2166
|
+
if ( typeof(threshold) != 'number' || threshold !== ~~threshold || threshold < 1 ) {
|
|
2167
|
+
throw new Error('[SERVER][#MS5] `server.query.circuitBreaker.failureThreshold` must be an integer >= 1 — got `'+ threshold +'`');
|
|
2168
|
+
}
|
|
2169
|
+
var cooldownMs = parseTimeout( ( typeof(block.cooldown) == 'undefined' ) ? '30s' : block.cooldown );
|
|
2170
|
+
if ( typeof(cooldownMs) != 'number' || cooldownMs < 1 ) {
|
|
2171
|
+
throw new Error('[SERVER][#MS5] `server.query.circuitBreaker.cooldown` must be a positive timeout (e.g. "30s", 500) — got `'+ block.cooldown +'`');
|
|
2172
|
+
}
|
|
2173
|
+
return { enabled: true, failureThreshold: threshold, cooldownMs: cooldownMs };
|
|
2174
|
+
};
|
|
2175
|
+
|
|
2146
2176
|
/**
|
|
2147
2177
|
* Attaches the server engine instance, injects helper references
|
|
2148
2178
|
* (`throwError`, `getAssets`, `completeHeaders`) onto it, and returns
|
|
@@ -2188,6 +2218,33 @@ function Server(options) {
|
|
|
2188
2218
|
instance._cacheName = lib.RenderCache.resolveCacheName(self.conf[self.appName][self.env].server.cache);
|
|
2189
2219
|
}
|
|
2190
2220
|
|
|
2221
|
+
// #MS5 — per-authority query circuit-breaker policy, resolved ONCE
|
|
2222
|
+
// from the post-fold `server.query.circuitBreaker` and stamped where
|
|
2223
|
+
// `controller.query()` reads it (mirrors the `_cache*` scalars above;
|
|
2224
|
+
// breaker STATE lives separately on `instance._queryCircuitBreakers`,
|
|
2225
|
+
// minted lazily by the controller).
|
|
2226
|
+
if ( typeof(instance._queryCircuitBreaker) == 'undefined' ) {
|
|
2227
|
+
instance._queryCircuitBreaker = resolveQueryCircuitBreakerConf(self.conf[self.appName][self.env].server);
|
|
2228
|
+
}
|
|
2229
|
+
|
|
2230
|
+
// #MS6 — identified-caller quota policy, resolved ONCE from the
|
|
2231
|
+
// post-fold `server.rateLimit` and stamped where the router reads it
|
|
2232
|
+
// (the same instance-scalars family as the breaker above: survives
|
|
2233
|
+
// dev-mode hot reloads, dies on restart). The resolver is fail-closed
|
|
2234
|
+
// on an enabled block (a bad value refuses the boot) and verifies the
|
|
2235
|
+
// named kv namespace is DECLARED — the kv boot band installed the
|
|
2236
|
+
// namespaces before the first request, upstream of this engine start.
|
|
2237
|
+
if ( typeof(instance._rateLimit) == 'undefined' ) {
|
|
2238
|
+
var _rlContent = self.conf[self.appName][self.env].content;
|
|
2239
|
+
instance._rateLimit = lib.rateLimit.resolveConf(self.conf[self.appName][self.env].server, {
|
|
2240
|
+
kv : lib.kv,
|
|
2241
|
+
kvSettings : _rlContent && _rlContent.settings && _rlContent.settings.kv,
|
|
2242
|
+
connectors : _rlContent && _rlContent.connectors,
|
|
2243
|
+
routing : _rlContent && _rlContent.routing,
|
|
2244
|
+
warn : function(rlWarnMsg) { console.warn('[rate-limit] ' + rlWarnMsg); }
|
|
2245
|
+
});
|
|
2246
|
+
}
|
|
2247
|
+
|
|
2191
2248
|
// #B115 — publish the engine so the form-validator's server-side `query`
|
|
2192
2249
|
// rule can hand its hand-built controller the LIVE instance (one engine
|
|
2193
2250
|
// per process). Without this, queryFromBackend mints a second `_cached`
|
|
@@ -7461,6 +7518,10 @@ function Server(options) {
|
|
|
7461
7518
|
queryTimeout : parseTimeout(routing[name].queryTimeout) || null,
|
|
7462
7519
|
// #CSRF2 — per-route opt-out for the Csrf middleware (webhook receivers, etc.)
|
|
7463
7520
|
csrfExempt : routing[name].csrfExempt || false,
|
|
7521
|
+
// #MS6 — per-route rate-limit override/exempt. typeof-guarded,
|
|
7522
|
+
// NOT `||`: `false` is a MEANINGFUL value (exempt) that `|| null`
|
|
7523
|
+
// would erase into the default policy.
|
|
7524
|
+
rateLimit : ( typeof(routing[name].rateLimit) != 'undefined' ) ? routing[name].rateLimit : null,
|
|
7464
7525
|
// #I18N1 slice 3 — per-route culture-prefix opt-in.
|
|
7465
7526
|
// When true, the i18n negotiator reads
|
|
7466
7527
|
// req.routing.param.culture as the highest-priority
|
|
@@ -21,8 +21,14 @@
|
|
|
21
21
|
Notes:
|
|
22
22
|
|
|
23
23
|
`@gina` is the only project currently supported by `service:list`.
|
|
24
|
-
Services
|
|
25
|
-
|
|
24
|
+
Services are bundles of the @gina project under the framework's
|
|
25
|
+
`services/` directory — a maintainer-side tree that is NOT part of the
|
|
26
|
+
published package, so a released install lists nothing until that tree
|
|
27
|
+
exists locally. `inspector` is the one maintained service.
|
|
28
|
+
|
|
29
|
+
gina ships no edge / reverse proxy, by design: run one in front of your
|
|
30
|
+
bundles (nginx, Traefik, an ingress controller). That is the topology the
|
|
31
|
+
authentication, rate-limiting and Kubernetes guidance already assume.
|
|
26
32
|
|
|
27
33
|
Running state is derived from ~/.gina/run/<service>@gina.pid combined
|
|
28
34
|
with `process.kill(pid, 0)` — a stale pidfile (process gone) reports
|
|
@@ -11,7 +11,7 @@ var CmdHelper = require('./../helper');
|
|
|
11
11
|
*/
|
|
12
12
|
/**
|
|
13
13
|
* Starts a framework-internal service — a bundle registered under the @gina
|
|
14
|
-
* project (today: `inspector
|
|
14
|
+
* project (today: `inspector`). The service is launched via the
|
|
15
15
|
* daemon-free `bin/gina-container` foreground launcher spawned detached, so no
|
|
16
16
|
* `gina start` socket server (port 8124) is required. The service is started in
|
|
17
17
|
* the @gina project's own `dev`/`local` defaults (the current shell's
|
|
@@ -104,6 +104,12 @@ function Lib() {
|
|
|
104
104
|
// to protect from eviction). No connector ships an implementation yet —
|
|
105
105
|
// demand-gated, the audit-store shipping order.
|
|
106
106
|
StorageStore : _require('./storage-store'),
|
|
107
|
+
// #KV1 — connector-backed KV namespace-store factory (lib/kv,
|
|
108
|
+
// `settings.kv.namespaces.<name>.store`). Stateless dispatcher invoked
|
|
109
|
+
// once per store-backed namespace at boot; _require like JobStore /
|
|
110
|
+
// StorageStore. No connector ships an implementation yet — naming one
|
|
111
|
+
// refuses the boot (the audit-store shipping order).
|
|
112
|
+
KvStore : _require('./kv-store'),
|
|
107
113
|
SwigFilters : _require('./swig-filters'),
|
|
108
114
|
Cache : require('./cache'), // #B32-residual — plain require (leaf class held at gen-0 via server.isaac.js:35; Cache._events is a Collection). See Collection note above.
|
|
109
115
|
RenderCache : require('./render-cache'), // #B32-residual — plain require (server-only render-cache strategy dispatcher; wraps lib/cache and is held at gen-0 in server.isaac.js + the render delegates). See Cache above.
|
|
@@ -195,6 +201,12 @@ function Lib() {
|
|
|
195
201
|
// per-request require() can never grow a dead-`children` tail (#B32-residual).
|
|
196
202
|
// It also keeps a security gate out of the dev-mode hot-reload path entirely.
|
|
197
203
|
authzGate : require('./authz-gate'),
|
|
204
|
+
// #MS6 — identified-caller quota gate, run by core/router.js between the
|
|
205
|
+
// authz gate and the DTO pipe. require() — NOT _require — for the same
|
|
206
|
+
// reason as dtoPipe/authzGate above: router-bound, load-once, no
|
|
207
|
+
// per-request require() (#B32-residual), and its policy/state live on the
|
|
208
|
+
// engine instance + in the kv store, so hot-reload would gain nothing.
|
|
209
|
+
rateLimit : require('./rate-limit'),
|
|
198
210
|
// #COMPLY3 — authentication hardening primitives (password hashing +
|
|
199
211
|
// verification, password policy, lockout, TOTP). require() — NOT _require —
|
|
200
212
|
// for the authzGate reason above: a security primitive stays out of the
|
|
@@ -334,6 +346,12 @@ function Lib() {
|
|
|
334
346
|
// the same reason job / State / audit are plain requires. Plain require =
|
|
335
347
|
// cache hit = the singleton survives.
|
|
336
348
|
storage : require('./storage'),
|
|
349
|
+
// #KV1 — general-purpose KV primitive (strict-declared namespaces
|
|
350
|
+
// behind gina.kv()). PLAIN require, like job / State / logger /
|
|
351
|
+
// storage: a singleton holding the namespace registry and per-
|
|
352
|
+
// namespace sweep timers — it must survive dev-mode refreshCore(),
|
|
353
|
+
// and re-requiring it would orphan live timers and state.
|
|
354
|
+
kv : require('./kv'),
|
|
337
355
|
};
|
|
338
356
|
|
|
339
357
|
/**
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "kv",
|
|
3
|
+
"description": "General-purpose key-value primitive (#KV1): strict-declared namespaces behind gina.kv(), promise-native 13-op surface (get/set/del/has/ttl/expire/setnx/consume/incr/decr/delIfEquals/clear/getOrSet) over pluggable per-namespace backends. Ships the in-memory backend",
|
|
4
|
+
"version": "0.0.1",
|
|
5
|
+
"private": true,
|
|
6
|
+
"main": "src/main"
|
|
7
|
+
}
|