gina 0.5.21 → 0.5.22
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 +15 -0
- package/README.md +30 -12
- package/ROADMAP.md +2 -1
- package/framework/v0.5.22/VERSION +1 -0
- package/framework/{v0.5.21 → v0.5.22}/core/asset/plugin/dist/vendor/gina/js/gina.js +281 -83
- package/framework/v0.5.22/core/asset/plugin/dist/vendor/gina/js/gina.min.js +593 -0
- package/framework/v0.5.22/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/v0.5.22/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- package/framework/{v0.5.21 → v0.5.22}/core/controller/controller.js +10 -1
- package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/validator/src/form-validator.js +75 -15
- package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/validator/src/main.js +51 -5
- package/framework/{v0.5.21 → v0.5.22}/core/server.js +68 -11
- package/framework/{v0.5.21 → v0.5.22}/core/template/conf/package.json +3 -3
- package/framework/{v0.5.21 → v0.5.22}/core/template/conf/settings.json +6 -2
- package/framework/{v0.5.21 → v0.5.22}/lib/cmd/image/build.js +1 -1
- package/framework/{v0.5.21 → v0.5.22}/package.json +1 -1
- package/gna.js +4 -4
- package/llms.txt +15 -5
- package/package.json +8 -5
- package/schema/settings.json +29 -0
- package/script/post_install.js +20 -4
- package/script/pre_install.js +16 -1
- package/framework/v0.5.21/VERSION +0 -1
- package/framework/v0.5.21/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -589
- 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.21 → v0.5.22}/AUTHORS +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/LICENSE +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/asset/html/nolayout.html +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/asset/html/static.html +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/asset/img/android-chrome-192x192.png +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/asset/img/android-chrome-512x512.png +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/asset/img/apple-touch-icon.png +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/asset/img/favicon-16x16.png +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/asset/img/favicon-32x32.png +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/asset/img/favicon.ico +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/asset/plugin/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/config.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/ai/index.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/ai/lib/connector.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/couchbase/index.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/couchbase/lib/connector.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/couchbase/lib/connector.v3.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/couchbase/lib/connector.v4.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/couchbase/lib/n1ql.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/couchbase/lib/session-store.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/mongodb/index.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/mongodb/lib/connector.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/mongodb/lib/job-store.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/mongodb/lib/session-store.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/mysql/index.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/mysql/lib/connector.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/postgresql/index.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/postgresql/lib/connector.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/redis/index.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/redis/lib/connector.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/redis/lib/job-store.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/redis/lib/render-cache-store.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/redis/lib/session-store.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/scylladb/index.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/scylladb/lib/connector.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/scylladb/lib/session-store.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/sql-parser.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/sqlite/index.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/sqlite/lib/connector.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/sqlite/lib/job-store.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/connectors/sqlite/lib/session-store.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/content.encoding +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/controller/controller.framework.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/controller/controller.render-json.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/controller/controller.render-nunjucks-async.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/controller/controller.render-nunjucks.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/controller/controller.render-stream.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/controller/controller.render-swig-async.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/controller/controller.render-swig.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/controller/controller.render-v1.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/controller/index.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/controller/inspector-window-emit.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/controller/release-banner.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/dev/index.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/dev/lib/class.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/dev/lib/factory.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/dev/lib/tools.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/gna.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/locales/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/locales/currency.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/locales/dist/language/en.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/locales/dist/language/fr.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/locales/dist/region/en.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/locales/dist/region/fr.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/locales/index.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/mime.types +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/model/entity.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/model/index.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/model/template/entityFactory.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/model/template/index.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/index.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/csrf/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/csrf/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/csrf/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/coep/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/coep/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/coop/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/coop/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/corp/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/corp/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/csp/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/csp/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/hsts/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/hsts/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/session/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/session/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/session/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/storage/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/storage/build.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/storage/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/storage/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/validator/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/validator/build.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/plugins/lib/validator/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/router.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/server.express.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/server.isaac.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/status.codes +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/_gitignore +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/boilerplate/bundle/config/app.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/boilerplate/bundle/config/connectors.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/boilerplate/bundle/config/routing.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/boilerplate/bundle/config/settings.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/boilerplate/bundle/config/templates.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/boilerplate/bundle/config/watchers.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/boilerplate/bundle/index.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/boilerplate/bundle/locales/en.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/boilerplate/bundle_public/css/default.css +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/boilerplate/bundle_public/css/home.css +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/boilerplate/bundle_public/js/components/x-checklist.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/boilerplate/bundle_public/readme.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/boilerplate/bundle_public/sw.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/boilerplate/bundle_templates/html/includes/x-checklist.html +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/command/gina.bat.tpl +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/command/gina.tpl +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/conf/env.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/conf/manifest.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/conf/statics.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/conf/templates.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/error/client/json/401.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/error/client/json/403.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/error/client/json/404.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/error/server/html/50x.html +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/error/server/json/500.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/error/server/json/503.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/core/template/extensions/logger/config.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/helpers/console.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/helpers/context.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/helpers/data/LICENSE +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/helpers/data/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/helpers/data/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/helpers/data/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/helpers/dateFormat.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/helpers/index.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/helpers/json/LICENSE +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/helpers/json/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/helpers/json/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/helpers/json/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/helpers/path.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/helpers/plugins/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/helpers/plugins/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/helpers/plugins/src/api-error.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/helpers/plugins/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/helpers/prototypes.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/helpers/task.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/helpers/text.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/admin/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/admin/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/archiver/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/archiver/build.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/archiver/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/archiver/src/dep/jszip.min.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/archiver/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/async/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/async/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/audit/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/audit/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/audit-store.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/authz-gate/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/authz-gate/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cache/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cache/build.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cache/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cache/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/aliases.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/bundle/add.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/bundle/arguments.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/bundle/build.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/bundle/copy.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/bundle/cp.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/bundle/help.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/bundle/help.txt +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/bundle/list.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/bundle/man.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/bundle/mcp-start.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/bundle/mcp.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/bundle/oas.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/bundle/openapi.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/bundle/remove.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/bundle/rename.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/bundle/restart.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/bundle/rm.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/bundle/start.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/bundle/status.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/bundle/stop.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/bundle/types.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/cache/arguments.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/cache/clear.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/cache/help.txt +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/cache/stats.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/connector/add.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/connector/arguments.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/connector/help.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/connector/help.txt +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/connector/infer.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/connector/list.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/connector/migrate.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/connector/models.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/connector/remove.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/connector/rm.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/connector/test.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/container/arguments.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/container/help.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/container/help.txt +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/container/man.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/container/ps.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/container/stop.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/env/add.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/env/get.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/env/help.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/env/help.txt +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/env/link-dev.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/env/list.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/env/remove.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/env/rm.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/env/set.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/env/unset.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/env/use.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/framework/add.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/framework/arguments.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/framework/build.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/framework/dot.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/framework/get.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/framework/help.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/framework/help.txt +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/framework/init.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/framework/link-node-modules.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/framework/link.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/framework/list.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/framework/man.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/framework/msg.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/framework/open.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/framework/remove.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/framework/reset.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/framework/restart.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/framework/set.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/framework/start.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/framework/status.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/framework/stop.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/framework/tail.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/framework/update.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/framework/version.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/gina-dev.1.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/gina-framework.1.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/gina.1.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/helper.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/i18n/add.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/i18n/arguments.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/i18n/export.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/i18n/help.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/i18n/help.txt +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/i18n/import.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/i18n/scan.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/image/_host.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/image/arguments.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/image/help.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/image/help.txt +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/image/list.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/image/man.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/image/rm.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/image/run.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/index.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/inspector/help.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/inspector/help.txt +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/inspector/open.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/man-render.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/minion/arguments.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/minion/help.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/minion/help.txt +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/minion/kill.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/minion/list.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/msg.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/port/help.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/port/help.txt +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/port/inc/scan.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/port/list.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/port/reset.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/port/set.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/project/add.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/project/arguments.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/project/backup.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/project/build.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/project/help.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/project/help.txt +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/project/import.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/project/list.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/project/man.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/project/move.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/project/remove.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/project/rename.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/project/restart.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/project/restore.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/project/rm.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/project/start.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/project/status.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/project/stop.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/protocol/arguments.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/protocol/help.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/protocol/help.txt +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/protocol/list.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/protocol/remove.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/protocol/set.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/scope/add.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/scope/help.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/scope/help.txt +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/scope/link-local.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/scope/link-production.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/scope/list.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/scope/remove.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/scope/rm.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/scope/use.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/secrets/arguments.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/secrets/check.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/secrets/help.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/secrets/help.txt +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/secrets/scan.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/service/help.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/service/help.txt +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/service/list.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/service/man.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/service/start.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd/view/add.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd-status-format/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cmd-status-format/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/collection/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/collection/build.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/collection/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/collection/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/config.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/connector-config/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/connector-config/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/connector-registry/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/connector-registry/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cron/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cron/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/cron/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/domain/LICENSE +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/domain/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/domain/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/domain/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/dto/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/dto/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/dto-pipe/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/dto-pipe/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/dto-types/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/dto-types/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/generator/index.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/i18n/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/i18n/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/image-build/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/image-build/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/index.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/inherits/LICENSE +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/inherits/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/inherits/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/inherits/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/inspector-events/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/inspector-events/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/inspector-redact/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/inspector-redact/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/instrument/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/instrument/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/job/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/job/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/job-store.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/json-config-header/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/json-config-header/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/logger/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/logger/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/logger/src/containers/default/index.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/logger/src/containers/file/index.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/logger/src/containers/mq/index.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/logger/src/containers/mq/listener.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/logger/src/containers/mq/speaker.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/logger/src/helper.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/logger/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/math/index.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/mcp-dispatch/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/mcp-dispatch/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/mcp-http/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/mcp-http/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/mcp-server/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/mcp-server/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/merge/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/merge/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/merge/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/metrics/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/metrics/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/model.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/nunjucks-filters/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/nunjucks-filters/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/nunjucks-filters/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/nunjucks-resolver/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/nunjucks-resolver/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/proc.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/release-watch/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/release-watch/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/render-cache/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/render-cache/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/render-cache-store.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/routing/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/routing/build.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/routing/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/routing/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/routing/src/radix.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/routing-introspect/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/routing-introspect/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/secrets/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/secrets/src/backends/env.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/secrets/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/session-store.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/shell.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/state.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/swig-filters/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/swig-filters/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/swig-filters/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/swig-resolver/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/swig-resolver/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/template-loaders/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/template-loaders/src/loaders/http.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/template-loaders/src/loaders/memory.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/template-loaders/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/url/README.md +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/url/index.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/url/routing.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/uuid/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/uuid/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/validator.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/watcher/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/watcher/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/ws-framing/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/ws-framing/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/ws-query/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/ws-query/src/main.js +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/ws-session/package.json +0 -0
- /package/framework/{v0.5.21 → v0.5.22}/lib/ws-session/src/main.js +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,21 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
|
|
|
6
6
|
and is generated by [Changie](https://github.com/miniscruff/changie).
|
|
7
7
|
|
|
8
8
|
|
|
9
|
+
## 0.5.22 - 2026-07-21
|
|
10
|
+
### Added
|
|
11
|
+
* The `settings.i18n.cultures` allowlist is now honoured: a non-empty array constrains which cultures the user-signal negotiation steps (URL prefix, cookie, Accept-Language) may match — e.g. a staged rollout keeps a shipped-but-unlaunched catalog out of negotiation. `null` or `[]` keep the historical derive-from-loaded-catalogs behavior, and the bundle-default step (`settings.region.culture`) is never constrained. The whole `i18n` block (cookieName, devMissingKey, fallbackChain, cultures) is now declared in the published settings.json schema. Restart to apply.
|
|
12
|
+
### Changed
|
|
13
|
+
* The runtime pins now live under the standard `engines` manifest key (formerly the non-standard singular `engine`, which npm and Bun tooling ignore), so unsupported runtimes get install-time warnings (Node `>= 22 <27`, Bun `>= 1.2`). Scaffolded project manifests — the `project:add` template and the install-time fallback package.json — carry the standard object-form key too, and `image:build` reads `engines` with a legacy `engine` fallback.
|
|
14
|
+
### Fixed
|
|
15
|
+
* Popin: reopening an AJAX popin no longer renders the previous open's content — the preload cache was a one-generation-lagging store (every open after the first paid for a network fetch yet rendered the body fetched around the PREVIOUS open, because the leftover entry blocked the fresh warm's dedup check). The cache entry now dies with the open it warmed: close clears the popin's content-URL slot and re-sweeps it once the teardown has drained (the close-time focus-return and pointer re-hover re-warm the slot with close-era content within a millisecond — measured), so every open renders current content; a trigger annotated data-gina-dialog-preload="false" additionally skips the cache read entirely at open, making "false" a hard always-refetch guarantee (its GET always happens at open time, never from a sibling trigger's warm). Warmed-but-never-opened entries keep the documented page-lifetime semantics. Costs at most one extra idempotent GET per close on default triggers; browser-bundled — rebuild your bundles to pick it up (#B139)
|
|
16
|
+
* FormValidator: numbered `is` aliases no longer collapse onto the bare `is` error key on re-validation — the alias handshake re-arms per invocation instead of once per install, so on conditional (`_case_`) re-evaluations and recursive passes each `is<N>` rule keeps its own distinct error key, and the last-declared rule's message no longer renders twice (its own key plus a mirrored bare `is` key carrying the same string; the digit was irrelevant — whichever numbered rule was declared last doubled). Browser-bundled — rebuild your bundles to pick it up (#B138)
|
|
17
|
+
* Multipart binary uploads now arrive byte-identical: file payloads are no longer string-decoded on their way to disk. The request stream stays raw for multipart bodies and the per-file write pipeline passes chunks through verbatim, so content that is not valid UTF-8 — images, PDFs, archives — is no longer mangled and re-sized (pure-ASCII payloads were unaffected, which is what hid the corruption). req.files[].size now reports the real on-disk byte count instead of a decoded character count.
|
|
18
|
+
* FormValidator #B87 — the `query` rule's async result path is now blanket-guarded so a throw can never hang the submit pass. The XHR result lands asynchronously: by processing time the form may have been unbound or the field detached (e.g. a popin closed mid-flight) and the response body is backend-controlled — any throw while handling it left the `asyncCompleted` waiter unfired and the submit path hung for the whole pass (the old `xhr.onload` catch rethrew instead of releasing). The result handler is now a guarded wrapper that warns and releases the waiter on failure (field state as-is; the server re-validates on submit), `xhr.onerror` is guarded the same way, the query value normalisation only lowercases strings (a boolean checkbox routed through a `query` rule no longer throws), and `compileError()` tolerates a non-string error. Browser-bundled: consumers pick the fixes up at their next bundle re-bake.
|
|
19
|
+
* FormValidator #B125 — the #49 checkbox migration warnings now name the payload-only remedy and can be silenced with an explicit form-level declaration. The tick-direction warn false-positived on legitimate post-#49 markup (a checkbox authored `value="true"` with no `checked`, intended to render unticked) where neither listed remedy applied. Both warn messages now name the measured third remedy — remove the `value` attribute; a boolean-classified checkbox posts its live checked state either way — and an explicit `data-gina-form-checkbox-value-as-state="false"` on the form declares the current state model and silences the migration warnings for that form (any explicit value counts; "false" is otherwise behavior-inert). Browser-bundled: consumers pick the change up at their next bundle re-bake.
|
|
20
|
+
* The per-request country-locale resolution: `page.view.locale` now carries the real region record (country name, currency, capital, …) resolved from the request culture's country code. The lookup filtered on a key the region data has never carried, so the object had always been empty when a country code was present — and an arbitrary first record when the culture had no country part (now an explicit empty object). Lowercase country segments are normalized, and the date stamp is unchanged.
|
|
21
|
+
* `npm install -g gina` no longer dies when the effective npm prefix contains a path segment npm's redactor masks (e.g. a UUID-shaped directory — CI sandboxes, generated workspaces): `npm config get prefix` refuses such a read as protected on every current npm generation (10/11/12), and both install scripts ran that probe unguarded. The probe is now guarded, falling back to the prefix npm itself exports to the install lifecycle.
|
|
22
|
+
* Fixed the link plugin's HTML-callback forwarding — `data-gina-link-event-on-success` / `data-gina-link-event-on-error` now fire, and carrying either attribute no longer breaks the link. Previously, adding one of these attributes to a `data-gina-link` anchor made every click throw `ReferenceError: listenToXhrEvents is not defined` before the XHR was opened: no request left the page, no callback ran, and the link was effectively dead. Three defects were fixed together: the registration helper was trapped inside another function's scope (unreachable from the link plugin), the call site passed no type (so even a reachable helper would have read `data-gina-undefined-event-on-*` and registered nothing), and the internal success/error events were named and targeted inconsistently between registration and dispatch. The helper is now a shared global, the link call site passes its type, and the events address the clicked link's own element and id. The programmatic `gina.link.on('success'/'error')` channel is unchanged. Browser-bundled — rebuild your bundles to pick it up.
|
|
23
|
+
|
|
9
24
|
## 0.5.21 - 2026-07-20
|
|
10
25
|
### Added
|
|
11
26
|
* Popin eager preload — a trigger can opt into warming its AJAX content off the critical path with data-gina-dialog-preload="eager" (case-insensitive): after window load, at browser idle, the popin plugin fetches the content one trigger at a time through the same gate as the hover/focus warm (the "false" opt-out, the disabled skip, and the cache dedup all apply — whichever warm runs second is a no-op), so a later open injects instantly with no second GET. The pass is skipped when the browser signals Save-Data. Default behavior is unchanged: hover/focus warm stays the default and "false" still disables warming entirely. Browser-bundled — rebuild your bundles to pick it up.
|
package/README.md
CHANGED
|
@@ -4,11 +4,12 @@
|
|
|
4
4
|
|
|
5
5
|
> **Documentation:** [gina.io/docs](https://gina.io/docs/) · **Issues:** [GitHub](https://github.com/gina-io/gina/issues) · **Changelog:** [CHANGELOG.md](./CHANGELOG.md)
|
|
6
6
|
|
|
7
|
-
Node.js
|
|
7
|
+
MVC framework for Node.js and Bun with built-in HTTP/2, multi-bundle architecture, and scope-based data isolation — no Express dependency.
|
|
8
8
|
|
|
9
9
|
- **HTTP/2 first.** Built-in `isaac` server with TLS, h2c, ALPN, HTTP/1.1 fallback, and full CVE hardening (Rapid Reset, CONTINUATION flood, RST flood, HPACK bomb) — all on by default.
|
|
10
10
|
- **Multi-bundle.** One project hosts multiple independent bundles (API, web, admin, …). Each bundle has its own routing, controllers, models, and config. Share code via the project layer.
|
|
11
11
|
- **Scope isolation.** Run `local`, `beta`, and `production` from the same codebase. Scopes propagate through routing, config interpolation, and data (every DB record is stamped with `_scope`).
|
|
12
|
+
- **Batteries included.** Forms & validation, sessions, uploads, async jobs, response caching, CSRF, security headers, route authorization, audit trail, i18n, OpenAPI + MCP generation — built in, not bolted on.
|
|
12
13
|
|
|
13
14
|
## Features
|
|
14
15
|
|
|
@@ -19,14 +20,30 @@ Node.js MVC framework with built-in HTTP/2, multi-bundle architecture, and scope
|
|
|
19
20
|
| Scope isolation | `local` / `beta` / `production` — per-request and per-record |
|
|
20
21
|
| MVC routing | `routing.json` — declare routes in config, not code; O(m) radix trie lookup |
|
|
21
22
|
| Async/await | Controller actions can be `async`; rejections routed to `throwError` automatically |
|
|
23
|
+
| WebSockets | WS routes in `routing.json` (`"method": "ws"` + channel handlers, `:param` paths); WebSocket-over-HTTP/2 (RFC 8441) |
|
|
22
24
|
| ORM / entities | EventEmitter-based entity system; SQL files auto-wired to entity methods |
|
|
23
25
|
| Connectors | Couchbase, MongoDB, ScyllaDB / Cassandra, MySQL, PostgreSQL, Redis, SQLite, AI (LLM) — loaded from project `node_modules` |
|
|
24
|
-
| AI connector | Any LLM provider via named protocol (`anthropic://`, `openai://`, `ollama://`, …) |
|
|
25
|
-
| Template engine | [`@rhinostone/swig`](https://github.com/gina-io/swig)
|
|
26
|
+
| AI connector | Any LLM provider via named protocol (`anthropic://`, `openai://`, `ollama://`, …) — unified `.infer()`, token streaming via `.stream()`, inference-as-a-job via `self.inferAsync()` |
|
|
27
|
+
| Template engine | [`@rhinostone/swig`](https://github.com/gina-io/swig) — maintained fork with CVE-2023-25345 patched; streaming SSE/chunked via `renderStream()`. Nunjucks supported as opt-in via `render.engine = "nunjucks"` or per-section `"ext": ".njk"` |
|
|
28
|
+
| Forms & validation | One rule engine for client and server — live checks, cross-field rules, ARIA states, localised messages; the server enforces the same rules on submit |
|
|
29
|
+
| DTOs | `gina.dto` schema builder — request validation with localised 422s (`param.dto`), response shaping (`param.responseDto`), JSON Schema export |
|
|
30
|
+
| Sessions | Hardened session plugin (SameSite / HttpOnly / Secure defaults) — Redis, SQLite, MongoDB, Couchbase, and ScyllaDB stores |
|
|
31
|
+
| File uploads | Multipart via the maintained [`@rhinostone/busboy`](https://github.com/gina-io/busboy) fork — named upload groups with per-group extension allow-lists, size / count limits, and target dirs |
|
|
32
|
+
| Async jobs | `self.startJob()` background jobs — durable SQLite / MongoDB / Redis stores, retries with backoff, HMAC-signed completion webhooks, `/_gina/jobs/:id` status endpoint |
|
|
33
|
+
| Response caching | Per-route render cache — memory / fs / Redis tiers, cross-replica warm start, event-driven invalidation, RFC 9211 `Cache-Status` |
|
|
34
|
+
| Route authorization | `requireAuth` / `roles` / `policy` per route, login bounce with `resumeRequest()`, `self.hasRole()` |
|
|
35
|
+
| Audit trail | Opt-in append-only JSONL audit log (`self.audit()`), authorization denials auto-recorded, always-on request ids |
|
|
36
|
+
| CSRF protection | Signed double-submit token middleware + Origin/Referer pre-filter + hardened session cookie |
|
|
37
|
+
| Security headers | CSP with per-response nonces, HSTS, COOP / COEP / CORP, Referrer-Policy and the X-* family — per-header plugins or one `SecurityHeaders` wrapper |
|
|
38
|
+
| Secrets | `${secret:KEY}` placeholders in bundle config — fail-closed, env-backed; `secrets:scan` / `secrets:check` CLI |
|
|
26
39
|
| Internationalisation | Per-bundle JSON catalogs, `t()` helper, swig + nunjucks `t` filter, CLDR plurals, ICU MessageFormat opt-in via `t.icu()` |
|
|
27
|
-
| Observability | Built-in `/_gina/metrics` Prometheus endpoint (opt-in, IP-allowlisted) —
|
|
40
|
+
| Observability | Built-in `/_gina/metrics` Prometheus endpoint (opt-in, IP-allowlisted) — process metrics + HTTP counter / duration histogram with cardinality-safe route labels; structured JSON logs with request ids (`GINA_LOG_FORMAT=json`) |
|
|
41
|
+
| Dev Inspector | Embedded dev SPA at `/_gina/inspector` — request data, live logs, SQL with index-coverage badges, flow timings, app events, AI token stream |
|
|
42
|
+
| OpenAPI & MCP | `bundle:openapi` emits OpenAPI 3.1 from `routing.json`; `bundle:mcp` emits an MCP tool manifest; built-in MCP runtime server (stdio + Streamable HTTP) |
|
|
43
|
+
| TypeScript & ESM | Typed public surface (shipped `.d.ts`), `bundle:types` generates entity types from DTOs, dual CJS / ESM exports |
|
|
28
44
|
| Hot reload | WatcherService evicts `require.cache` only on file change — zero per-request overhead in dev |
|
|
29
45
|
| K8s ready | `gina-container`, `gina-init`, SIGTERM drain, JSON stdout logging |
|
|
46
|
+
| Container tooling | `image:build` synthesizes an OCI image (buildah), `image:run` / `container:ps` / `container:stop` (podman) — local or over SSH |
|
|
30
47
|
| Dependency injection | Mockable connectors and config for unit testing |
|
|
31
48
|
| Runtime | Node.js 22–26, or **Bun** (`bun add -g gina`) — install + boot validated end-to-end by a CI Bun smoke |
|
|
32
49
|
|
|
@@ -42,15 +59,16 @@ open https://localhost:3100
|
|
|
42
59
|
|
|
43
60
|
> **npm 12+** blocks install scripts by default, and gina's post-install bootstraps `~/.gina` and the framework dependencies. Install with `npm install -g gina@latest --allow-scripts=gina`, or allow it once for all global installs with `npm config set allow-scripts=gina --location=user`. (Not needed on npm ≤ 11.)
|
|
44
61
|
|
|
45
|
-
## What's in 0.5.
|
|
62
|
+
## What's in 0.5.22
|
|
46
63
|
|
|
47
|
-
- **
|
|
48
|
-
- **
|
|
49
|
-
- **Fixed —
|
|
50
|
-
- **Fixed —
|
|
51
|
-
- **Fixed —
|
|
52
|
-
- **Fixed —
|
|
53
|
-
- **Added —
|
|
64
|
+
- **Fixed — multipart binary uploads arrive byte-identical.** Binary file payloads uploaded via native multipart (`FormData`, `curl -F`, hand-built bodies) were string-decoded on their way to disk, so any content that is not valid UTF-8 — images, PDFs, archives — arrived mangled and mis-sized. Pure-ASCII payloads were unaffected, which is what hid the corruption. The request stream now stays raw for multipart bodies and the per-file write pipeline passes chunks through verbatim, so files reach `req.files[].path` byte-identical and `req.files[].size` reports the real on-disk byte count instead of a decoded character count. If you base64-encode binaries over JSON to work around this, you can retire that workaround. Server-side — restart your bundles. (#B103)
|
|
65
|
+
- **Fixed — link HTML callbacks (`data-gina-link-event-on-*`) work, and no longer break the link.** Carrying `data-gina-link-event-on-success` or `data-gina-link-event-on-error` on a `data-gina-link` anchor made every click throw before the XHR was even opened: no request left the page, no callback ran, and the link was effectively dead. Three defects were fixed together — the registration helper was trapped inside another function's scope, the call site passed no type, and the internal success/error events were named and targeted inconsistently between registration and dispatch. Name a `window`-level function (bare identifier, no parentheses) and it now receives `(event, result)`. The programmatic `gina.link.on('success'/'error')` channel is unchanged. Browser-bundled — rebuild your bundles. (#B141)
|
|
66
|
+
- **Fixed — reopening a popin no longer renders the previous open's content.** The AJAX popin content cache outlived the open it warmed, so every open after the first paid for a network fetch yet rendered the body fetched around the *previous* open — a one-generation lag that showed a stale snapshot whenever the content changed between opens. The cache entry now dies with the open it warmed, and a trigger annotated `data-gina-dialog-preload="false"` additionally skips the cache read at open, making `"false"` a hard always-refetch guarantee. Costs at most one extra idempotent GET per close on default triggers. Browser-bundled — rebuild your bundles. (#B139)
|
|
67
|
+
- **Fixed — FormValidator: numbered `is<N>` rules, a hung submit, and the checkbox migration warnings.** Numbered `is` aliases no longer collapse onto the bare `is` error key when validation re-applies rules against the same form (a `_case_` re-evaluation, nested field groups) — each keeps its own distinct key and each message renders once, instead of the last-declared rule's message rendering twice (#B138). A `query` rule's async result path is now blanket-guarded, so a throw while handling a backend result — an unbound form, a malformed body, a boolean checkbox value — warns and releases the pass instead of hanging the submit forever (#B87). And the #49 checkbox migration warnings now name the payload-only remedy (remove the `value` attribute — a boolean-classified checkbox posts its live checked state either way) and can be silenced per form with an explicit `data-gina-form-checkbox-value-as-state` declaration (#B125). Browser-bundled — rebuild your bundles.
|
|
68
|
+
- **Fixed — `page.view.locale` carries the real country record.** The per-request country-locale lookup filtered the region data on a key it has never carried, so the object had always been empty when the culture carried a country code — and an arbitrary first record when it did not. Templates now receive the real record (`countryName`, `currency`, `capital`, …) resolved from the request culture's country code, with lowercase country segments normalized and a country-less culture yielding an explicit empty object. Nothing read the broken object before, so no existing template changes behavior. (#B101)
|
|
69
|
+
- **Fixed — install no longer dies on a redactor-matched npm prefix.** `npm install -g gina` failed whenever the effective npm prefix contained a path segment npm's redactor masks — a UUID-shaped directory is enough (CI sandboxes, generated workspaces): `npm config get prefix` refuses such a read as protected on every current npm generation (10/11/12), and both install scripts ran that probe unguarded. The probe is now guarded, falling back to the prefix npm itself exports to the install lifecycle. The fix ships inside the tarball, so it applies from this version's install onward. (#B126)
|
|
70
|
+
- **Added — the `settings.i18n.cultures` allowlist is honoured.** A non-empty array under `settings.json > i18n` now constrains which cultures the user-signal negotiation steps (URL prefix, cookie, `Accept-Language`) may match, so a staged rollout can ship a `locales/de.json` catalog without `de` becoming reachable until it is listed. `null` or `[]` keep the historical derive-from-loaded-catalogs behavior, and the bundle default (`settings.region.culture`) is never constrained. The whole `i18n` block is now declared in the published settings.json schema. Restart to apply.
|
|
71
|
+
- **Changed — runtime pins moved to the standard `engines` manifest key.** The floors (Node `>= 22 <27`, Bun `>= 1.2`) were declared under a non-standard singular `engine` key that npm and Bun tooling ignore entirely, so unsupported runtimes got no install-time warning at all. They now activate npm's standard `EBADENGINE` warning — a hard failure only where `engine-strict` is set. Scaffolded project manifests — the `project:add` template and the install-time fallback `package.json` — carry the standard object-form key too.
|
|
54
72
|
|
|
55
73
|
See the full [Changelog](./CHANGELOG.md) and [Roadmap](./ROADMAP.md).
|
|
56
74
|
|
package/ROADMAP.md
CHANGED
|
@@ -46,6 +46,7 @@ This roadmap covers planned features, architectural improvements, new connectors
|
|
|
46
46
|
| **Q3 2026** | `0.5.19` ✅ | **Added**: route authorization — a `routing.json` rule gates access before the action runs via `param.requireAuth` (a 401 for XHR, a non-cacheable login redirect for a browser navigation, the original request snapshotted for `resumeRequest()`), `param.roles` (ANY-of, implies `requireAuth`), and `param.policy` (a per-bundle function for the ownership/record checks roles can't express, AND-composed after roles); denials stay generic — required roles and the policy name never reach the wire — author mistakes refuse to boot, and `self.hasRole()` authorizes mid-logic · an audit trail — opt-in `self.audit(action, data)` writes a user-attributed append-only JSONL record (its own store, never the logger sinks; an actor snapshot, `X-Forwarded-For` never trusted), route-authorization denials recorded automatically, and an always-on request id correlating audit records to JSON logs · an OCI image/container CLI on the `image:build` host — `image:list` / `image:rm` / `image:run` (podman; publishes the EXPOSEd port, `--env-var` / `--env-file` keep secrets out of argv) and a `container:` group (`container:ps` / `container:stop`, reporting the rung a container came down on) · **Changed**: `redirect()` carries request data through the session by default (a one-shot flash, gone on refresh), the clear-text `?inheritedData=` URL form and its 2000-char cap now session-less-only — removing a plaintext-secret-in-URL disclosure when a session-ful bundle halts a credential-bearing POST · **Fixed**: Prometheus metrics no longer double-count under the isaac engine (#OBS1) · the relative `self.redirect('/path')` form resolves again and an unresolvable target 404s instead of crashing (`redirect()` is now async), and `getRoute()` no longer 500s on a requirements-less GET route with extra params (#B120/#B121) · `image:build` for gina-dependent projects no longer fails at gina-init and the pinned framework wins `require('gina')` (#B118/#B119) · `gina.emit` is an inert stub (#B109) and the checkbox migration warning now covers the un-tick direction (#49) |
|
|
47
47
|
| **Q3 2026** | `0.5.20` ✅ | **Fixed**: region locale data — the generator now emits one standalone file per language with localized country names (a `fr` culture renders `Allemagne` / `États-Unis` / `Royaume-Uni` through the same `getLocales().getCountries()` path, no app changes; rows without an ISO 3166 alpha-2 code are dropped; read once at boot, so restart to pick up), and `getCountries(code)` honors its projection argument — adding the requested field while the four historical fields stay untouched, an empty locale set degrading to an empty list instead of throwing (#50) · **Fixed**: FormValidator — numbered `is` rules (`is1`, `is2`, …) now install and enforce on client and server (previously silently skipped; **sweep rule JSONs before upgrading — forms may begin 422ing**), each alias keying its error distinctly and server-side `$`-cross-field rules no longer crashing; injected/popin forms resolve `data-gina-form-rule` so live checking activates; boolean `_case_` conditions match live (#B127/#B128/#B129) · **Changed**: multipart parsing uses `@rhinostone/busboy` installed from npm instead of a patched vendored copy — a strict superset of upstream busboy 1.6.0, upload behaviour and the wire format unchanged, pickup is the version plus a bundle restart |
|
|
48
48
|
| **Q3 2026** | `0.5.21` ✅ | **Security**: server-side error responses no longer serialize stack traces to HTTP clients outside local scope — the responder logs the full stack server-side and ships the message line only (JSON bodies, the inline HTML fallback, custom-error-page data; local scope keeps the development-toolbar stack) · **Changed**: a bundle whose `config/routing.json` is missing at boot now refuses to start with an error naming the bundle and environment (previously a silent half-boot with only the framework-synthetic routes; an external supervisor's restart retries until the release tree settles — the daemon itself is fail-stop), and the route-lookup not-found error names the bundle and its rule count · **Fixed**: FormValidator — modifier chords (Cmd/Ctrl+A/C/V/X/Z) run their native defaults again on `autocomplete="off"` live-check fields, the Safari-autocomplete interception gates on real Safari only (Chromium UAs no longer intercepted), and a whole-form live-check pass that turns valid clears every previously-errored field's message (#B134/#B135/#B136) · **Fixed**: merged-process (same-port multi-bundle) projects — the first cross-bundle getUrl no longer permanently replaces the target bundle's routing table with the starting app's, which rendered every cross-bundle link as a literal `404:[…]` marker; distinct-port projects were never affected (#B137) · **Fixed**: CSP `useNonce` on cache-enabled routes — the header and inline-bootstrap nonces now match and rotate per response, on cache hits and misses alike · **Fixed**: the env template's hardcoded `accept-language` response header is gone (a request header, wrongly emitted on every response) · **Added**: popin eager preload — `data-gina-dialog-preload="eager"` warms a popin's AJAX content at browser idle after window load, same safety gates as the hover/focus warm, skipped under Save-Data |
|
|
49
|
+
| **Q3 2026** | `0.5.22` ✅ | **Fixed**: multipart binary uploads arrive byte-identical — file payloads are no longer string-decoded on their way to disk, so images, PDFs and archives stop arriving mangled and mis-sized (pure-ASCII payloads were unaffected, which is what hid it), and `req.files[].size` reports the real on-disk byte count (#B103) · link HTML callbacks work and no longer break the link — `data-gina-link-event-on-success` / `-on-error` used to make every click throw before the request was opened, leaving a dead link; both attributes now fire a `window`-level function with `(event, result)`, the programmatic `gina.link.on()` channel unchanged (#B141) · reopening an AJAX popin renders current content instead of the previous open's — the content cache now dies with the open it warmed, and `data-gina-dialog-preload="false"` becomes a hard always-refetch guarantee (#B139) · FormValidator — numbered `is<N>` rules keep their distinct error keys on re-validation instead of collapsing onto a doubled bare `is` (#B138), a `query` rule failure can no longer hang the submit pass (#B87), and the #49 checkbox migration warnings name the payload-only remedy and can be silenced per form (#B125) · `page.view.locale` carries the real country record instead of an empty object (#B101) · `npm install -g gina` no longer dies when the effective npm prefix contains a path segment npm's redactor masks (#B126) · **Added**: the `settings.i18n.cultures` allowlist is honoured — a non-empty array constrains which cultures the user-signal negotiation steps may match, so a shipped-but-unlaunched catalog stays unreachable until listed; the whole `i18n` block is now in the published schema · **Changed**: runtime pins moved to the standard `engines` manifest key, so unsupported runtimes finally get npm's `EBADENGINE` warning |
|
|
49
50
|
| **Q4 2026** | `0.6.0` | Security & compliance controls (technical safeguards mapping to PCI-DSS / SOC2 / HIPAA) |
|
|
50
51
|
| **Q1 2027** | `0.5.x` | HTTP/2 priorities (blocked on Node scheduler hooks) · Beemaster admin + visual translation editor |
|
|
51
52
|
| **Q3 2027** | `1.0.0` | First stable release — Windows alpha compatibility is a hard gate |
|
|
@@ -392,7 +393,7 @@ A cold audit of the Couchbase connector identified two critical security vulnera
|
|
|
392
393
|
| --- | --- | --- | --- | --- |
|
|
393
394
|
| ✅ | **`NODE_COMPILE_CACHE` — V8 bytecode startup cache** | `0.2.0` | Q2 2026 | Node.js 22.8+ caches compiled V8 bytecode to disk. Set once at startup — 30–60% faster cold start on subsequent runs with zero code changes to user bundles. No-op on Node < 22.8, so safe to ship unconditionally. |
|
|
394
395
|
| ✅ | **Route radix trie — compile `routing.json` at startup** | `0.3.0-alpha.1` | 2026-04-01 | `lib/routing/src/radix.js` builds a segment-level trie once at startup. O(m) candidate lookup per request (m = segment count). `Set.has()` check skips non-candidates in the `for…in` loop. Internal change — no user-facing API change. |
|
|
395
|
-
|
|
|
396
|
+
| ✅ | **Bun runtime support** | `0.5.5` | 2026-06-21 | Gina runs on the [Bun](https://bun.sh) runtime (Bun `>= 1.2`) as a supported, CI-gated target — `bun add -g gina` installs and boots end-to-end, validated by a blocking CI Bun smoke. Both investigated blockers cleared: dev-mode `require.cache` hot-reload and `node:http2` work under Bun (one upstream gap remains: RFC 8441 extended-CONNECT advertisement, affecting only opt-in WebSocket-over-HTTP/2). Gina self-bootstraps on first run; Node `>= 22 < 27` remains fully supported. |
|
|
396
397
|
| ✅ | **V8 pointer compression support** | `0.2.0` | Q2 2026 | Node.js built with `--experimental-enable-pointer-compression` (e.g. [node-caged](https://github.com/platformatic/node-caged) or a custom build) delivers ~50% heap memory reduction across all pointer-heavy structures. Gina is pure JS — compatible out of the box. Adds: startup detection + `GINA_V8_POINTER_COMPRESSED` env var, Dockerfile guide with custom build recipe (full-icu + pointer compression), 4 GB ceiling documentation, N-API-only connector policy. |
|
|
397
398
|
|
|
398
399
|
---
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.5.22
|