gina 0.3.15-alpha.2 → 0.3.15-alpha.4
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/ROADMAP.md +11 -8
- package/framework/v0.3.15-alpha.4/VERSION +1 -0
- package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/asset/plugin/dist/vendor/gina/js/gina.js +58 -1
- package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/asset/plugin/dist/vendor/gina/js/gina.min.js +321 -319
- package/framework/v0.3.15-alpha.4/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/v0.3.15-alpha.4/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- package/framework/v0.3.15-alpha.4/core/plugins/index.js +75 -0
- package/framework/v0.3.15-alpha.4/core/plugins/lib/security-headers/README.md +243 -0
- package/framework/v0.3.15-alpha.4/core/plugins/lib/security-headers/coep/README.md +134 -0
- package/framework/v0.3.15-alpha.4/core/plugins/lib/security-headers/coep/package.json +22 -0
- package/framework/v0.3.15-alpha.4/core/plugins/lib/security-headers/coep/src/main.js +200 -0
- package/framework/v0.3.15-alpha.4/core/plugins/lib/security-headers/coop/README.md +145 -0
- package/framework/v0.3.15-alpha.4/core/plugins/lib/security-headers/coop/package.json +22 -0
- package/framework/v0.3.15-alpha.4/core/plugins/lib/security-headers/coop/src/main.js +219 -0
- package/framework/v0.3.15-alpha.4/core/plugins/lib/security-headers/corp/README.md +139 -0
- package/framework/v0.3.15-alpha.4/core/plugins/lib/security-headers/corp/package.json +22 -0
- package/framework/v0.3.15-alpha.4/core/plugins/lib/security-headers/corp/src/main.js +204 -0
- package/framework/v0.3.15-alpha.4/core/plugins/lib/security-headers/csp/README.md +201 -0
- package/framework/v0.3.15-alpha.4/core/plugins/lib/security-headers/csp/package.json +22 -0
- package/framework/v0.3.15-alpha.4/core/plugins/lib/security-headers/csp/src/main.js +461 -0
- package/framework/v0.3.15-alpha.4/core/plugins/lib/security-headers/hide-powered-by/README.md +121 -0
- package/framework/v0.3.15-alpha.4/core/plugins/lib/security-headers/hide-powered-by/package.json +22 -0
- package/framework/v0.3.15-alpha.4/core/plugins/lib/security-headers/hide-powered-by/src/main.js +180 -0
- package/framework/{v0.3.15-alpha.2/core/plugins/lib → v0.3.15-alpha.4/core/plugins/lib/security-headers}/hsts/README.md +7 -6
- package/framework/{v0.3.15-alpha.2/core/plugins/lib → v0.3.15-alpha.4/core/plugins/lib/security-headers}/hsts/package.json +1 -1
- package/framework/{v0.3.15-alpha.2/core/plugins/lib → v0.3.15-alpha.4/core/plugins/lib/security-headers}/hsts/src/main.js +8 -6
- package/framework/{v0.3.15-alpha.2/core/plugins/lib → v0.3.15-alpha.4/core/plugins/lib/security-headers}/origin-agent-cluster/README.md +6 -5
- package/framework/{v0.3.15-alpha.2/core/plugins/lib → v0.3.15-alpha.4/core/plugins/lib/security-headers}/origin-agent-cluster/package.json +1 -1
- package/framework/{v0.3.15-alpha.2/core/plugins/lib → v0.3.15-alpha.4/core/plugins/lib/security-headers}/origin-agent-cluster/src/main.js +7 -5
- package/framework/v0.3.15-alpha.4/core/plugins/lib/security-headers/package.json +22 -0
- package/framework/{v0.3.15-alpha.2/core/plugins/lib → v0.3.15-alpha.4/core/plugins/lib/security-headers}/referrer-policy/README.md +6 -5
- package/framework/{v0.3.15-alpha.2/core/plugins/lib → v0.3.15-alpha.4/core/plugins/lib/security-headers}/referrer-policy/package.json +1 -1
- package/framework/{v0.3.15-alpha.2/core/plugins/lib → v0.3.15-alpha.4/core/plugins/lib/security-headers}/referrer-policy/src/main.js +7 -5
- package/framework/v0.3.15-alpha.4/core/plugins/lib/security-headers/src/main.js +340 -0
- package/framework/{v0.3.15-alpha.2/core/plugins/lib → v0.3.15-alpha.4/core/plugins/lib/security-headers}/x-content-type-options/README.md +6 -5
- package/framework/{v0.3.15-alpha.2/core/plugins/lib → v0.3.15-alpha.4/core/plugins/lib/security-headers}/x-content-type-options/package.json +1 -1
- package/framework/{v0.3.15-alpha.2/core/plugins/lib → v0.3.15-alpha.4/core/plugins/lib/security-headers}/x-content-type-options/src/main.js +7 -5
- package/framework/v0.3.15-alpha.4/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +104 -0
- package/framework/v0.3.15-alpha.4/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +22 -0
- package/framework/v0.3.15-alpha.4/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +193 -0
- package/framework/v0.3.15-alpha.4/core/plugins/lib/security-headers/x-download-options/README.md +88 -0
- package/framework/v0.3.15-alpha.4/core/plugins/lib/security-headers/x-download-options/package.json +22 -0
- package/framework/v0.3.15-alpha.4/core/plugins/lib/security-headers/x-download-options/src/main.js +161 -0
- package/framework/{v0.3.15-alpha.2/core/plugins/lib → v0.3.15-alpha.4/core/plugins/lib/security-headers}/x-frame-options/README.md +6 -5
- package/framework/{v0.3.15-alpha.2/core/plugins/lib → v0.3.15-alpha.4/core/plugins/lib/security-headers}/x-frame-options/package.json +1 -1
- package/framework/{v0.3.15-alpha.2/core/plugins/lib → v0.3.15-alpha.4/core/plugins/lib/security-headers}/x-frame-options/src/main.js +8 -6
- package/framework/v0.3.15-alpha.4/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +136 -0
- package/framework/v0.3.15-alpha.4/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +22 -0
- package/framework/v0.3.15-alpha.4/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +202 -0
- package/framework/v0.3.15-alpha.4/core/plugins/lib/security-headers/x-xss-protection/README.md +107 -0
- package/framework/v0.3.15-alpha.4/core/plugins/lib/security-headers/x-xss-protection/package.json +22 -0
- package/framework/v0.3.15-alpha.4/core/plugins/lib/security-headers/x-xss-protection/src/main.js +161 -0
- package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/plugins/lib/validator/src/form-validator.js +58 -1
- package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/server.isaac.js +62 -57
- package/framework/v0.3.15-alpha.4/core/template/boilerplate/bundle/index.js +274 -0
- package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/conf/env.json +10 -2
- package/framework/v0.3.15-alpha.4/core/template/conf/settings.json +425 -0
- package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/package.json +1 -1
- package/gna.js +4 -4
- package/llms.txt +59 -30
- package/package.json +2 -2
- package/script/_load_private_tokens.js +29 -7
- package/script/check_no_local_leak.js +7 -9
- package/framework/v0.3.15-alpha.2/VERSION +0 -1
- package/framework/v0.3.15-alpha.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/v0.3.15-alpha.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- package/framework/v0.3.15-alpha.2/core/plugins/index.js +0 -55
- package/framework/v0.3.15-alpha.2/core/template/boilerplate/bundle/index.js +0 -139
- package/framework/v0.3.15-alpha.2/core/template/conf/settings.json +0 -235
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/AUTHORS +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/LICENSE +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/asset/html/nolayout.html +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/asset/html/static.html +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/asset/img/android-chrome-192x192.png +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/asset/img/android-chrome-512x512.png +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/asset/img/apple-touch-icon.png +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/asset/img/favicon-16x16.png +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/asset/img/favicon-32x32.png +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/asset/img/favicon.ico +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/asset/plugin/README.md +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/config.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/connectors/ai/index.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/connectors/ai/lib/connector.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/connectors/couchbase/index.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/connectors/couchbase/lib/connector.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/connectors/couchbase/lib/connector.v2.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/connectors/couchbase/lib/connector.v3.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/connectors/couchbase/lib/connector.v4.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/connectors/couchbase/lib/n1ql.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/connectors/couchbase/lib/session-store.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/connectors/couchbase/lib/session-store.v2.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/connectors/mongodb/index.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/connectors/mongodb/lib/connector.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/connectors/mongodb/lib/session-store.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/connectors/mysql/index.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/connectors/mysql/lib/connector.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/connectors/postgresql/index.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/connectors/postgresql/lib/connector.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/connectors/redis/index.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/connectors/redis/lib/session-store.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/connectors/scylladb/index.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/connectors/scylladb/lib/connector.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/connectors/scylladb/lib/session-store.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/connectors/sql-parser.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/connectors/sqlite/index.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/connectors/sqlite/lib/connector.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/connectors/sqlite/lib/session-store.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/content.encoding +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/controller/controller.framework.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/controller/controller.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/controller/controller.render-json.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/controller/controller.render-nunjucks.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/controller/controller.render-stream.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/controller/controller.render-swig.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/controller/controller.render-v1.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/controller/index.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/deps/busboy-1.6.0/LICENSE +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/deps/busboy-1.6.0/README.md +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/deps/busboy-1.6.0/lib/index.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/deps/busboy-1.6.0/lib/types/multipart.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/deps/busboy-1.6.0/lib/types/urlencoded.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/deps/busboy-1.6.0/lib/utils.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/deps/busboy-1.6.0/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/deps/streamsearch-1.1.0/LICENSE +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/deps/streamsearch-1.1.0/lib/sbmh.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/deps/streamsearch-1.1.0/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/dev/index.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/dev/lib/class.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/dev/lib/factory.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/dev/lib/tools.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/gna.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/locales/README.md +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/locales/currency.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/locales/dist/language/en.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/locales/dist/language/fr.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/locales/dist/region/en.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/locales/dist/region/fr.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/locales/index.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/mime.types +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/model/entity.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/model/index.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/model/template/entityFactory.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/model/template/index.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/plugins/README.md +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/plugins/lib/csrf/README.md +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/plugins/lib/csrf/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/plugins/lib/csrf/src/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/plugins/lib/session/README.md +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/plugins/lib/session/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/plugins/lib/session/src/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/plugins/lib/storage/README.md +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/plugins/lib/storage/build.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/plugins/lib/storage/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/plugins/lib/storage/src/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/plugins/lib/validator/README.md +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/plugins/lib/validator/build.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/plugins/lib/validator/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/plugins/lib/validator/src/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/router.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/server.express.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/server.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/status.codes +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/_gitignore +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/boilerplate/bundle/config/app.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/boilerplate/bundle/config/connectors.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/boilerplate/bundle/config/routing.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/boilerplate/bundle/config/settings.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/boilerplate/bundle/config/templates.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/boilerplate/bundle/config/watchers.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/boilerplate/bundle/locales/en.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/boilerplate/bundle_public/css/default.css +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/boilerplate/bundle_public/css/home.css +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/boilerplate/bundle_public/readme.md +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/boilerplate/bundle_public/sw.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/command/gina.bat.tpl +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/command/gina.tpl +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/conf/manifest.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/conf/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/conf/statics.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/conf/templates.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/error/client/json/401.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/error/client/json/403.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/error/client/json/404.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/error/server/html/50x.html +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/error/server/json/500.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/error/server/json/503.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/template/extensions/logger/config.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/helpers/console.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/helpers/context.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/helpers/data/LICENSE +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/helpers/data/README.md +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/helpers/data/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/helpers/data/src/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/helpers/dateFormat.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/helpers/index.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/helpers/json/LICENSE +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/helpers/json/README.md +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/helpers/json/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/helpers/json/src/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/helpers/path.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/helpers/plugins/README.md +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/helpers/plugins/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/helpers/plugins/src/api-error.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/helpers/plugins/src/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/helpers/prototypes.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/helpers/task.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/helpers/text.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/archiver/README.md +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/archiver/build.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/archiver/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/archiver/src/dep/jszip.min.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/archiver/src/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/async/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/async/src/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cache/README.md +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cache/build.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cache/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cache/src/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/aliases.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/bundle/add.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/bundle/arguments.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/bundle/build.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/bundle/copy.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/bundle/cp.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/bundle/help.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/bundle/help.txt +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/bundle/list.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/bundle/mcp-start.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/bundle/mcp.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/bundle/oas.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/bundle/openapi.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/bundle/remove.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/bundle/rename.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/bundle/restart.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/bundle/rm.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/bundle/start.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/bundle/status.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/bundle/stop.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/cache/stats.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/connector/add.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/connector/arguments.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/connector/help.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/connector/help.txt +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/connector/list.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/connector/migrate.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/connector/remove.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/connector/rm.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/env/add.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/env/get.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/env/help.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/env/help.txt +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/env/link-dev.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/env/list.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/env/remove.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/env/rm.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/env/set.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/env/unset.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/env/use.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/framework/arguments.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/framework/build.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/framework/dot.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/framework/get.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/framework/help.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/framework/help.txt +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/framework/init.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/framework/link-node-modules.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/framework/link.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/framework/msg.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/framework/open.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/framework/restart.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/framework/set.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/framework/start.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/framework/status.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/framework/stop.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/framework/tail.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/framework/update.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/framework/version.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/gina-dev.1.md +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/gina-framework.1.md +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/gina.1.md +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/helper.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/i18n/add.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/i18n/arguments.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/i18n/export.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/i18n/help.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/i18n/help.txt +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/i18n/import.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/i18n/scan.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/index.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/inspector/help.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/inspector/help.txt +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/inspector/open.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/minion/help.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/minion/help.txt +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/msg.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/port/help.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/port/help.txt +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/port/inc/scan.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/port/list.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/port/reset.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/port/set.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/project/add.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/project/arguments.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/project/build.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/project/help.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/project/help.txt +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/project/import.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/project/list.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/project/move.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/project/remove.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/project/rename.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/project/restart.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/project/rm.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/project/start.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/project/status.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/project/stop.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/protocol/help.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/protocol/help.txt +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/protocol/list.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/protocol/set.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/scope/add.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/scope/help.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/scope/help.txt +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/scope/link-local.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/scope/link-production.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/scope/list.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/scope/remove.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/scope/rm.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/scope/use.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/service/help.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/service/help.txt +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/service/list.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cmd/view/add.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/collection/README.md +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/collection/build.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/collection/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/collection/src/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/config.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/connector-registry/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/connector-registry/src/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cron/README.md +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cron/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/cron/src/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/domain/LICENSE +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/domain/README.md +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/domain/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/domain/src/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/generator/index.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/i18n/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/i18n/src/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/index.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/inherits/LICENSE +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/inherits/README.md +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/inherits/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/inherits/src/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/inspector-redact/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/inspector-redact/src/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/logger/README.md +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/logger/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/logger/src/containers/default/index.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/logger/src/containers/file/index.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/logger/src/containers/mq/index.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/logger/src/containers/mq/listener.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/logger/src/containers/mq/speaker.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/logger/src/helper.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/logger/src/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/math/index.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/mcp-dispatch/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/mcp-dispatch/src/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/mcp-http/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/mcp-http/src/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/mcp-server/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/mcp-server/src/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/merge/README.md +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/merge/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/merge/src/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/metrics/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/metrics/src/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/model.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/nunjucks-filters/README.md +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/nunjucks-filters/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/nunjucks-filters/src/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/nunjucks-resolver/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/nunjucks-resolver/src/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/proc.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/routing/README.md +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/routing/build.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/routing/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/routing/src/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/routing/src/radix.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/routing-introspect/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/routing-introspect/src/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/secrets/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/secrets/src/backends/env.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/secrets/src/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/session-store.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/shell.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/state.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/swig-filters/README.md +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/swig-filters/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/swig-filters/src/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/swig-resolver/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/swig-resolver/src/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/url/README.md +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/url/index.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/url/routing.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/uuid/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/uuid/src/main.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/validator.js +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/watcher/package.json +0 -0
- /package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/lib/watcher/src/main.js +0 -0
package/ROADMAP.md
CHANGED
|
@@ -158,7 +158,7 @@ Cross-site request forgery protection. Three-phase defense-in-depth plan aligned
|
|
|
158
158
|
|
|
159
159
|
## Web Security Headers
|
|
160
160
|
|
|
161
|
-
HTTP security response headers as opt-in `gina.plugins.*` middlewares, mirroring the `Session` (#CSRF1) and `Csrf` (#CSRF2/#CSRF3) plugin shape. Each plugin is single-concern, opt-in by default-off, and reads its config from a flat top-level `settings.json` key. Native implementation — no `helmet` dependency. **Phase 1** covers the five modern critical headers (X-Content-Type-Options, X-Frame-Options, Referrer-Policy, HSTS, Origin-Agent-Cluster) — all shipped in `0.3.15-alpha`. **Phase 1.5** covers helmet-parity gap-fill (HidePoweredBy, X-DNS-Prefetch-Control, X-XSS-Protection, X-Download-Options, X-Permitted-Cross-Domain-Policies) — defense-in-depth + parity-with-helmet narrative; modest practical value. **Phase 2** covers CSP + COEP/COOP/CORP (
|
|
161
|
+
HTTP security response headers as opt-in `gina.plugins.*` middlewares, mirroring the `Session` (#CSRF1) and `Csrf` (#CSRF2/#CSRF3) plugin shape. Each plugin is single-concern, opt-in by default-off, and reads its config from a flat top-level `settings.json` key. Native implementation — no `helmet` dependency. **Phase 1** covers the five modern critical headers (X-Content-Type-Options, X-Frame-Options, Referrer-Policy, HSTS, Origin-Agent-Cluster) — all shipped in `0.3.15-alpha`. **Phase 1.5** covers helmet-parity gap-fill (HidePoweredBy, X-DNS-Prefetch-Control, X-XSS-Protection, X-Download-Options, X-Permitted-Cross-Domain-Policies) — defense-in-depth + parity-with-helmet narrative; modest practical value. **Phase 2** (targeted at `0.4.0-alpha`) covers CSP + COEP/COOP/CORP + combined wrapper — CSP (#HDR5), COEP (#HDR6), COOP (#HDR13), CORP (#HDR14) and the `SecurityHeaders` combined wrapper (#HDR15) all shipped 2026-05-17 — **Phase 2 closed**. CORS handling is separate and already lives in `core/server.js` (request-side).
|
|
162
162
|
|
|
163
163
|
| Status | Feature | Version | Target |
|
|
164
164
|
| --- | --- | --- | --- |
|
|
@@ -167,13 +167,16 @@ HTTP security response headers as opt-in `gina.plugins.*` middlewares, mirroring
|
|
|
167
167
|
| ✅ | **`Referrer-Policy` middleware** — Opt-in plugin `gina.plugins.ReferrerPolicy({ value })`. Settings: `referrerPolicy.value` is one of the eight W3C tokens (`"no-referrer"`, `"no-referrer-when-downgrade"`, `"origin"`, `"origin-when-cross-origin"`, `"same-origin"`, `"strict-origin"`, `"strict-origin-when-cross-origin"`, `"unsafe-url"`). Default `"strict-origin-when-cross-origin"` matches the browser default since ~2021. Caller options always win over settings; values are normalised to lowercase per the W3C spec's case-insensitive matching. Invalid tokens throw at factory call time with the full eight-token list + W3C spec URL in the message. Idempotent — first-writer-wins. 56 unit tests. | `0.3.15-alpha` | 2026-05-17 |
|
|
168
168
|
| ✅ | **`Strict-Transport-Security` (HSTS) middleware** — Opt-in plugin `gina.plugins.Hsts({ maxAge, includeSubDomains, preload })`. Defaults: `maxAge: 15552000` (180 days), `includeSubDomains: false`, `preload: false`. Caller options always win over settings. Browser-parity invariant: `preload: true` requires `includeSubDomains: true` AND `maxAge >= 31536000` (1 year) per the HSTS preload-list submission requirements; factory throws at call time on invariant violations with a pointer at https://hstspreload.org/. Also throws on non-integer / negative / NaN / Infinity `maxAge`. Header value built per RFC 6797 §6.1 directive order (`max-age=<n>; includeSubDomains; preload`). Spec deviation documented: emits on every response (helmet-aligned) rather than gating HTTPS-only — receiver enforces correctly anyway per RFC 6797 §8.1. Idempotent — first-writer-wins. 69 unit tests. | `0.3.15-alpha` | 2026-05-17 |
|
|
169
169
|
| ✅ | **`Origin-Agent-Cluster: ?1` middleware** — Opt-in plugin `gina.plugins.OriginAgentCluster()` requests origin-keyed agent clustering — same-site cross-origin pages get isolated agents (can no longer reach in via `document.domain`), mitigating one class of Spectre side-channel attack. Per the HTML spec, `?1` (Structured Header boolean true) is the only useful value; no tunable options. Browser support: Chrome 88+, Edge 88+, Firefox 109+, Safari 15+. Mirrors the #HDR1 shape exactly. Idempotent — first-writer-wins. 33 unit tests. **Closes Phase 1 (modern critical coverage).** | `0.3.15-alpha` | 2026-05-17 |
|
|
170
|
-
|
|
|
171
|
-
|
|
|
172
|
-
|
|
|
173
|
-
|
|
|
174
|
-
|
|
|
175
|
-
|
|
|
176
|
-
|
|
|
170
|
+
| ✅ | **Phase 1.5 — `HidePoweredBy` (#HDR8)** — Opt-in plugin `gina.plugins.HidePoweredBy()` removes the `X-Powered-By` response header that gina emits by default at `server.js:2425` (plus `env.json > response.header`). Reduces the attacker's reconnaissance surface — they no longer learn the server stack identity from the response header. **Different SHAPE from the other HDR plugins**: REMOVE (`res.removeHeader`) not SET. No tunable options today (mirrors helmet's no-opts shape). **Two-engine pairing**: Phase 1 covers the Express engine (`server.js:2425` setHeader fires in early framework middleware before user `app.use()` mounts, so `removeHeader` succeeds). Isaac's 15 direct `response.writeHead({ 'X-Powered-By': ... })` call sites bypass the setHeader/removeHeader interface, so the middleware can't reach them on Isaac. **Phase 2 (shipped 2026-05-17) closed the Isaac gap** via the framework-level `server.hidePoweredBy: true` settings flag (default `false`) that the Isaac engine reads at boot — `_setPoweredByHeader(headers)` closure inside `onPath` wraps 14 object-literal sites + 1 inline `if (!options.hidePoweredBy)` guard at the routing.json setHeader site. Bundles pick the right shape: Express → middleware; Isaac → flag; belt-and-suspenders → both (each no-op on the other engine). Idempotent — `removeHeader` is a no-op when the header is absent. 37 unit tests. **Opens Phase 1.5 (helmet-parity gap-fill).** | `0.3.16-alpha` | 2026-05-17 |
|
|
171
|
+
| ✅ | **Phase 1.5 — `X-DNS-Prefetch-Control` (#HDR9)** — Opt-in plugin `gina.plugins.XDnsPrefetchControl({ value })`. Settings: `xDnsPrefetchControl.value` is one of two tokens (`"on"`, `"off"`); default `"off"` matches helmet (privacy-respecting choice — browser does not pre-resolve DNS for unclicked links, so the resolver only sees hostnames the user actually navigates to). **API-shape divergence from helmet**: helmet uses `{ allow: boolean }`; gina uses `{ value: 'on' \| 'off' }` matching the existing single-token-enum convention (HDR2 / HDR3 / HDR6 / HDR13 / HDR14). README documents the helmet-to-gina mapping for migrators. Caller options always win over settings; values are normalised to lowercase. Mirrors the #HDR14 Corp single-enum plugin shape exactly (`resolveSettingsDefaults` + `mergeOptions` + `resolveValue` throw-on-invalid + idempotent first-writer-wins middleware via `res.getHeader`). Marginal practical value in 2026 — modern Chrome / Firefox have their own DNS-prefetch heuristics that mostly ignore the header; defense-in-depth + helmet-parity narrative. 57 unit tests including a negative-invariant lock on the helmet-shape `{ allow: true }` silent-fallback (it does NOT enable DNS prefetching in gina — emits default `off`). | `0.3.16-alpha` | 2026-05-17 |
|
|
172
|
+
| ✅ | **Phase 1.5 — `X-XSS-Protection: 0` (#HDR10)** — Opt-in plugin `gina.plugins.XXssProtection()` emits the literal header `X-XSS-Protection: 0` to DISABLE Chrome's legacy XSS auditor (the auditor itself had its own vulnerabilities; disabling is the modern recommendation per MDN). **The value `0` is deliberate — not a typo**: HEADER_VALUE is the literal string `"0"`, with a negative-invariant test pinning that the value is NOT any `"1"` enable variant. No tunable options (mirrors helmet's no-opts shape + the #HDR1 XContentTypeOptions plugin shape). Use #HDR5 Csp with a strong policy for the actual XSS defense; this header is defense-in-depth + helmet-parity narrative only. Browser status in 2026: Chrome dropped the auditor in v78 (2019); Edge follows Chrome; Firefox / Safari never implemented; IE11 honoured but is EOL. Idempotent — first-writer-wins via `res.getHeader`; if an upstream middleware accidentally emits the unsafe `"1; mode=block"`, this plugin does NOT override it (mount BEFORE the upstream to win). Mirrors the #HDR1 XContentTypeOptions plugin shape (no opts, single fixed value, same `resolveSettingsDefaults` + `mergeOptions` helpers). 37 unit tests including the negative-invariant lock on no-"1"-variant + the string-not-number "0" emission lock. | `0.3.16-alpha` | 2026-05-17 |
|
|
173
|
+
| ✅ | **Phase 1.5 — `X-Download-Options: noopen` (#HDR11)** — Opt-in plugin `gina.plugins.XDownloadOptions()` emits the literal header `X-Download-Options: noopen` on every response. IE-legacy: prevents IE8+ from opening downloads in the site's security context (an old IE vulnerability shape where the "Open" button on a download dialog opened the file in the SITE's origin, allowing XSS-equivalent via downloaded HTML from a trusted site). `noopen` is the only valid value per MSDN. No tunable options (mirrors helmet's no-opts shape + the #HDR1 / #HDR10 plugin shape). Modern browsers (Chrome / Firefox / Safari / Edge) ignore the header silently; only IE10 / IE11 honour it (both EOL since June 2022). Effectively no-op in modern browsers; defense-in-depth + helmet-parity narrative. Idempotent — first-writer-wins via `res.getHeader`. Mirrors the #HDR1 XContentTypeOptions plugin shape exactly. 35 unit tests. | `0.3.16-alpha` | 2026-05-17 |
|
|
174
|
+
| ✅ | **Phase 1.5 — `X-Permitted-Cross-Domain-Policies` (#HDR12)** — Opt-in plugin `gina.plugins.XPermittedCrossDomainPolicies({ value })` emits the `X-Permitted-Cross-Domain-Policies` response header on every response. Settings: `xPermittedCrossDomainPolicies.value` is one of four Adobe spec tokens (`"none"`, `"master-only"`, `"by-content-type"`, `"all"`); default `"none"` matches helmet (most restrictive — no Flash/PDF cross-domain policy files honoured). **API-shape divergence from helmet**: helmet uses `{ permittedPolicies: <enum> }`; gina uses `{ value: <enum> }` matching the existing single-token-enum convention (HDR2 / HDR3 / HDR6 / HDR9 / HDR13 / HDR14). README documents the helmet-to-gina mapping. Mirrors the #HDR14 Corp single-enum plugin shape exactly (`resolveSettingsDefaults` + `mergeOptions` + `resolveValue` throw-on-invalid + idempotent first-writer-wins via `res.getHeader`). Flash EOL since December 2020; Adobe Reader historically honoured the header but most modern PDF readers ignore it; defense-in-depth + helmet-parity narrative. 60 unit tests including a negative-invariant lock on the helmet-shape `{ permittedPolicies }` silent-fallback (it does NOT switch the gina default — emits default `"none"`). **Closes Phase 1.5.** | `0.3.16-alpha` | 2026-05-17 |
|
|
175
|
+
| ✅ | **`Content-Security-Policy` middleware (Phase 2 — static directives)** — Opt-in plugin `gina.plugins.Csp({ directives, reportOnly })`. **Opens Phase 2** of the security-headers track. v0 ships static directives only; per-response nonce wiring requires template-render integration and defers to a future CSP-aware view-layer plugin. Strict whitelist of 27 CSP Level 3 standard directives — unknown directive names throw at factory call time (CSP typos are silent at the browser; fail-fast catches them). Value parsing accepts arrays of source-list tokens (joined with space), pre-formatted strings, `true` (boolean-only directives + `sandbox`), or `false` (omit). `reportOnly: true` emits `Content-Security-Policy-Report-Only` for non-enforcing migration testing. `directives` is required — no sensible cross-bundle default. Mirrors the HDR1-7 shape (idempotent first-writer-wins via `res.getHeader`). 92 unit tests; full suite 5768/5768. HDR6 Coep/Coop/Corp three-plugin split (per wrapper-consistency design) + HDR15 `SecurityHeaders` combined wrapper composing HDR1-7 + HDR5 + HDR6/13/14 to follow. | `0.4.0-alpha` | 2026-05-17 |
|
|
176
|
+
| ✅ | **`Cross-Origin-Embedder-Policy` (COEP) middleware (Phase 2)** — Opt-in plugin `gina.plugins.Coep({ value })`. Settings: `coep.value` is one of three W3C HTML spec tokens (`"require-corp"`, `"credentialless"`, `"unsafe-none"`); default `"require-corp"` matches helmet. Required (paired with `Coop: same-origin` / #HDR13) to enable SharedArrayBuffer and high-resolution `performance.now()` in the page. Caller options always win over settings; values are normalised to lowercase. Mirrors the #HDR3 ReferrerPolicy single-enum shape with throw-on-invalid validation. The `require-corp` default BREAKS embeds without matching CORP/CORS headers — README walks users through the three escape hatches (set CORP via #HDR14, downgrade to `credentialless`, downgrade to `unsafe-none`). Idempotent — first-writer-wins. 56 unit tests. **First of the three Phase 2 cross-origin policies**; HDR13 Coop and HDR14 Corp to follow, then HDR15 SecurityHeaders combined wrapper closes Phase 2. | `0.4.0-alpha` | 2026-05-17 |
|
|
177
|
+
| ✅ | **`Cross-Origin-Opener-Policy` (COOP) middleware (Phase 2)** — Opt-in plugin `gina.plugins.Coop({ value })`. Settings: `coop.value` is one of four W3C HTML spec tokens (`"same-origin"`, `"same-origin-allow-popups"`, `"noopener-allow-popups"`, `"unsafe-none"`); default `"same-origin"` matches helmet. Required (paired with `Coep: require-corp` / #HDR6) to enable cross-origin isolation. Same-origin isolates `window.opener` references on top-level navigation; same-origin-allow-popups is more compat-friendly for OAuth popup flows. The fourth token `noopener-allow-popups` (W3C spec addition, Chrome 119+/Firefox 131+) severs `window.opener` for popups even at same-origin while keeping the popup window open. Caller options always win over settings; values are normalised to lowercase. Mirrors the #HDR6 Coep single-enum shape. The `same-origin` default BREAKS OAuth popup flows where the popup needs to call back into the opener — README walks users through the three escape hatches. Idempotent — first-writer-wins. 61 unit tests. **Second of the three Phase 2 cross-origin policies**; HDR14 Corp follows, then HDR15 SecurityHeaders combined wrapper closes Phase 2. | `0.4.0-alpha` | 2026-05-17 |
|
|
178
|
+
| ✅ | **`Cross-Origin-Resource-Policy` (CORP) middleware (Phase 2)** — Opt-in plugin `gina.plugins.Corp({ value })`. Settings: `corp.value` is one of three W3C HTML spec tokens (`"same-origin"`, `"same-site"`, `"cross-origin"`); default `"same-origin"` matches helmet's per-middleware default. Resource-side complement to #HDR6 Coep's `require-corp` enforcement — cross-origin embeds under `Coep: require-corp` require the embed-target bundle to set `Corp: cross-origin` (or wider) to load. Most restrictive practical default; defends against side-channel attacks that load a resource cross-origin to measure size/timing for fingerprinting. Caller options always win over settings; values are normalised to lowercase. Mirrors the #HDR6 Coep + #HDR13 Coop single-enum shape. The `same-origin` default BREAKS cross-origin embeds when the resource serves at a separate origin from the embedding page — README walks users through the three escape hatches (pick `same-site` for first-party multi-subdomain setups, pick `cross-origin` for publicly-embeddable CDN assets, per-bundle scoping where the page bundle keeps strict + the CDN bundle adopts `cross-origin`). Idempotent — first-writer-wins. 60 unit tests. **Third and final of the three Phase 2 cross-origin policies**; HDR15 SecurityHeaders combined wrapper follows as the closing slice. | `0.4.0-alpha` | 2026-05-17 |
|
|
179
|
+
| ✅ | **`SecurityHeaders` combined wrapper (Phase 2 — closes #HDR + Phase 1.5 extension)** — Opt-in plugin `gina.plugins.SecurityHeaders({...})` composes the full HDR1-14 set in a single mount with one `settings.json` block (`securityHeaders.*`). **Batteries-included safe set**: calling `SecurityHeaders()` with no opts mounts the **12 non-footgun plugins** (xContentTypeOptions, xFrameOptions, referrerPolicy, hsts, originAgentCluster, hidePoweredBy, xDnsPrefetchControl, xXssProtection, xDownloadOptions, xPermittedCrossDomainPolicies, coop, corp) with per-plugin defaults. CSP (#HDR5) and COEP (#HDR6) are opt-in only (CSP throws on missing directives; COEP `require-corp` breaks embeds without CORP). Per-sub-config explicit opt-out via `<key>: false` or `null` (e.g. `SecurityHeaders({ hsts: false })` for HTTP-only bundles). Individual plugins remain mountable independently as power-user escape hatches — the idempotent first-writer-wins pattern means no double-emit when stacking. Mirrors helmet's `helmet()` orchestrator. **Originally shipped 2026-05-17 with 9 sub-plugins** (HDR1-7 + HDR5 + HDR6/13/14) closing Phase 2; **extended 2026-05-17 to 14 sub-plugins** when Phase 1.5 (HDR8-12) closed — wrapper safe-set grew from 7 to 12 plugins. 92 unit tests (was 83 + 9 for the HDR8-12 sub-config opt-out + override coverage). **Closes Phase 2 + Phase 1.5 extension.** | `0.4.0-alpha` | 2026-05-17 |
|
|
177
180
|
|
|
178
181
|
---
|
|
179
182
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.3.15-alpha.4
|
package/framework/{v0.3.15-alpha.2 → v0.3.15-alpha.4}/core/asset/plugin/dist/vendor/gina/js/gina.js
RENAMED
|
@@ -2982,7 +2982,8 @@ function FormValidatorUtil(data, $fields, xhrOptions, fieldsSet) {
|
|
|
2982
2982
|
'isStringMaxLength': 'Should not be more than %s characters',
|
|
2983
2983
|
'isJsonWebToken': 'Must be a valid JSON Web Token',
|
|
2984
2984
|
'query': 'Must be a valid response',
|
|
2985
|
-
'isApiError': 'Condition not satisfied'
|
|
2985
|
+
'isApiError': 'Condition not satisfied',
|
|
2986
|
+
'isInList': 'Must be one of: %s'
|
|
2986
2987
|
};
|
|
2987
2988
|
var self = null;
|
|
2988
2989
|
if (!data) {
|
|
@@ -4607,6 +4608,62 @@ function FormValidatorUtil(data, $fields, xhrOptions, fieldsSet) {
|
|
|
4607
4608
|
return date
|
|
4608
4609
|
}
|
|
4609
4610
|
|
|
4611
|
+
/**
|
|
4612
|
+
* Check if value is one of the allowed values (strict equality).
|
|
4613
|
+
*
|
|
4614
|
+
* The routing dispatcher spreads array-valued rule configs via
|
|
4615
|
+
* `apply()`, so `isInList: ["a", "b"]` lands here as positional
|
|
4616
|
+
* args; collected via `arguments`. Empty allowed-list rejects
|
|
4617
|
+
* every value (no value can satisfy an empty membership
|
|
4618
|
+
* constraint). Non-primitive args indicate the non-array dispatch
|
|
4619
|
+
* path (`isInList: "draft"`) — throw a config error.
|
|
4620
|
+
*
|
|
4621
|
+
* @param {...(string|number|boolean)} allowedValues - values that pass
|
|
4622
|
+
* @returns {object} field object (chainable)
|
|
4623
|
+
*
|
|
4624
|
+
* @example
|
|
4625
|
+
* // routing.json rule
|
|
4626
|
+
* "field[status]": {
|
|
4627
|
+
* "isString": true,
|
|
4628
|
+
* "isInList": ["draft", "pending", "sent", "paid"]
|
|
4629
|
+
* }
|
|
4630
|
+
* */
|
|
4631
|
+
self[el]['isInList'] = function() {
|
|
4632
|
+
var errors = self[this['name']]['errors'] || {};
|
|
4633
|
+
|
|
4634
|
+
var allowedValues = [];
|
|
4635
|
+
for (var i = 0, len = arguments.length; i < len; ++i) {
|
|
4636
|
+
var t = typeof(arguments[i]);
|
|
4637
|
+
if (t !== 'string' && t !== 'number' && t !== 'boolean') {
|
|
4638
|
+
throw new Error('`isInList` requires an array of allowed primitive values; got ' + t + ' at position ' + i + '. Use `isInList: ["a", "b", "c"]` form.');
|
|
4639
|
+
}
|
|
4640
|
+
allowedValues.push(arguments[i]);
|
|
4641
|
+
}
|
|
4642
|
+
|
|
4643
|
+
var val = local.data[this.name] = this.value;
|
|
4644
|
+
var isValid = false;
|
|
4645
|
+
|
|
4646
|
+
if ( !errors['isRequired'] && (val === '' || val == null) ) {
|
|
4647
|
+
isValid = true;
|
|
4648
|
+
} else if ( allowedValues.indexOf(val) > -1 ) {
|
|
4649
|
+
isValid = true;
|
|
4650
|
+
}
|
|
4651
|
+
|
|
4652
|
+
if (!isValid) {
|
|
4653
|
+
this['size'] = allowedValues.join(', ');
|
|
4654
|
+
errors['isInList'] = replace(this.error || local.errorLabels['isInList'], this);
|
|
4655
|
+
} else if ( typeof(errors['isInList']) != 'undefined' ) {
|
|
4656
|
+
delete errors['isInList'];
|
|
4657
|
+
}
|
|
4658
|
+
|
|
4659
|
+
this.valid = isValid;
|
|
4660
|
+
if ( errors.count() > 0 ) {
|
|
4661
|
+
this['errors'] = errors;
|
|
4662
|
+
}
|
|
4663
|
+
|
|
4664
|
+
return self[this.name]
|
|
4665
|
+
}
|
|
4666
|
+
|
|
4610
4667
|
/**
|
|
4611
4668
|
* Formating date using DateFormatHelper
|
|
4612
4669
|
* Check out documentation in the helper source: `lib/helpers/dateFormat.js`
|