gina 0.6.6 → 0.6.7
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 +26 -0
- package/README.md +26 -23
- package/ROADMAP.md +2 -0
- package/bin/cli +1 -0
- package/framework/v0.6.7/VERSION +1 -0
- package/framework/v0.6.7/core/asset/plugin/dist/vendor/gina/css/gina.min.css +1 -0
- package/framework/v0.6.7/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
- package/framework/v0.6.7/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
- package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +27 -0
- package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +93 -8
- package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/dist/vendor/gina/js/gina.js +443 -28
- package/framework/v0.6.7/core/asset/plugin/dist/vendor/gina/js/gina.min.js +647 -0
- package/framework/v0.6.7/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/v0.6.7/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- package/framework/{v0.6.6 → v0.6.7}/core/config.js +22 -0
- package/framework/{v0.6.6 → v0.6.7}/core/connectors/couchbase/index.js +16 -4
- package/framework/{v0.6.6 → v0.6.7}/core/connectors/duckdb/index.js +5 -2
- package/framework/{v0.6.6 → v0.6.7}/core/connectors/mongodb/index.js +8 -3
- package/framework/{v0.6.6 → v0.6.7}/core/connectors/mysql/index.js +5 -2
- package/framework/v0.6.7/core/connectors/param-redact.js +177 -0
- package/framework/{v0.6.6 → v0.6.7}/core/connectors/postgresql/index.js +5 -2
- package/framework/{v0.6.6 → v0.6.7}/core/connectors/scylladb/index.js +5 -2
- package/framework/{v0.6.6 → v0.6.7}/core/connectors/sqlite/index.js +5 -2
- package/framework/{v0.6.6 → v0.6.7}/core/controller/controller.js +190 -23
- package/framework/{v0.6.6 → v0.6.7}/core/gna.js +186 -0
- package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/validator/src/form-validator.js +91 -7
- package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/validator/src/main.js +352 -21
- package/framework/{v0.6.6 → v0.6.7}/core/server.js +190 -1
- package/framework/{v0.6.6 → v0.6.7}/core/template/conf/settings.json +7 -8
- package/framework/v0.6.7/lib/cmd/storage/arguments.json +6 -0
- package/framework/v0.6.7/lib/cmd/storage/gc.js +418 -0
- package/framework/v0.6.7/lib/cmd/storage/help.txt +63 -0
- package/framework/v0.6.7/lib/cmd/storage/stats.js +396 -0
- package/framework/v0.6.7/lib/cmd/storage/verify.js +413 -0
- package/framework/{v0.6.6 → v0.6.7}/lib/index.js +14 -0
- package/framework/{v0.6.6 → v0.6.7}/lib/secrets/src/main.js +13 -6
- package/framework/v0.6.7/lib/storage/package.json +7 -0
- package/framework/v0.6.7/lib/storage/src/local-cas.js +1186 -0
- package/framework/v0.6.7/lib/storage/src/local.js +599 -0
- package/framework/v0.6.7/lib/storage/src/main.js +890 -0
- package/framework/v0.6.7/lib/storage/src/meta-store.js +506 -0
- package/framework/v0.6.7/lib/storage/src/util.js +336 -0
- package/framework/v0.6.7/lib/storage-store.js +110 -0
- package/framework/{v0.6.6 → v0.6.7}/package.json +1 -1
- package/gna.js +4 -4
- package/llms.txt +10 -9
- package/package.json +3 -3
- package/schema/settings.json +142 -2
- package/types/index.d.ts +7 -0
- package/framework/v0.6.6/VERSION +0 -1
- package/framework/v0.6.6/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -1
- package/framework/v0.6.6/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
- package/framework/v0.6.6/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
- package/framework/v0.6.6/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -643
- package/framework/v0.6.6/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/v0.6.6/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/AUTHORS +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/LICENSE +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/asset/html/nolayout.html +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/asset/html/static.html +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/asset/img/android-chrome-192x192.png +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/asset/img/android-chrome-512x512.png +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/asset/img/apple-touch-icon.png +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/asset/img/favicon-16x16.png +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/asset/img/favicon-32x32.png +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/asset/img/favicon.ico +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/connectors/ai/index.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/connectors/ai/lib/connector.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/connectors/couchbase/lib/connector.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/connectors/couchbase/lib/connector.v3.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/connectors/couchbase/lib/connector.v4.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/connectors/couchbase/lib/n1ql.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/connectors/couchbase/lib/session-store.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/connectors/duckdb/lib/connector.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/connectors/mongodb/lib/connector.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/connectors/mongodb/lib/job-store.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/connectors/mongodb/lib/session-store.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/connectors/mysql/lib/connector.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/connectors/postgresql/lib/connector.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/connectors/redis/index.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/connectors/redis/lib/connector.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/connectors/redis/lib/job-store.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/connectors/redis/lib/render-cache-store.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/connectors/redis/lib/session-store.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/connectors/scylladb/lib/connector.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/connectors/scylladb/lib/session-store.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/connectors/sql-parser.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/connectors/sqlite/lib/connector.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/connectors/sqlite/lib/job-store.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/connectors/sqlite/lib/session-store.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/content.encoding +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/controller/controller.framework.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/controller/controller.render-json.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/controller/controller.render-nunjucks-async.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/controller/controller.render-nunjucks.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/controller/controller.render-stream.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/controller/controller.render-swig-async.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/controller/controller.render-swig.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/controller/controller.render-v1.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/controller/index.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/controller/inspector-window-emit.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/controller/release-banner.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/dev/index.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/dev/lib/class.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/dev/lib/factory.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/dev/lib/tools.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/locales/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/locales/currency.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/locales/dist/language/en.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/locales/dist/language/fr.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/locales/dist/region/en.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/locales/dist/region/fr.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/locales/index.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/mime.types +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/model/entity.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/model/index.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/model/template/entityFactory.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/model/template/index.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/index.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/csrf/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/csrf/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/csrf/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/coep/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/coep/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/coop/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/coop/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/corp/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/corp/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/csp/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/csp/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/hsts/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/hsts/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/session/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/session/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/session/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/storage/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/storage/build.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/storage/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/storage/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/validator/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/validator/build.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/validator/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/router.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/server.express.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/server.isaac.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/status.codes +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/_gitignore +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle/config/app.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle/config/connectors.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle/config/routing.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle/config/settings.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle/config/templates.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle/config/watchers.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle/index.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle/locales/en.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_public/css/default.css +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_public/css/home.css +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_public/js/components/x-checklist.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_public/readme.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_public/sw.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_templates/html/includes/x-checklist.html +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/command/gina.bat.tpl +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/command/gina.tpl +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/conf/env.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/conf/manifest.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/conf/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/conf/statics.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/conf/templates.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/error/client/json/401.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/error/client/json/403.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/error/client/json/404.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/error/server/html/50x.html +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/error/server/json/500.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/error/server/json/503.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/core/template/extensions/logger/config.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/helpers/console.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/helpers/context.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/helpers/data/LICENSE +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/helpers/data/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/helpers/data/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/helpers/data/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/helpers/dateFormat.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/helpers/index.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/helpers/json/LICENSE +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/helpers/json/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/helpers/json/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/helpers/json/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/helpers/path.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/helpers/plugins/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/helpers/plugins/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/helpers/plugins/src/api-error.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/helpers/plugins/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/helpers/prototypes.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/helpers/task.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/helpers/text.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/admin/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/admin/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/archiver/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/archiver/build.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/archiver/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/archiver/src/dep/jszip.min.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/archiver/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/async/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/async/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/audit/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/audit/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/audit-store.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/authn/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/authn/src/lockout.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/authn/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/authn/src/totp.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/authz-gate/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/authz-gate/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cache/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cache/build.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cache/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cache/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/aliases.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/audit/arguments.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/audit/help.txt +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/audit/verify.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/add.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/arguments.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/build.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/copy.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/cp.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/help.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/help.txt +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/list.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/man.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/mcp-start.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/mcp.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/oas.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/openapi.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/remove.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/rename.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/restart.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/rm.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/start.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/status.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/stop.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/types.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/cache/arguments.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/cache/clear.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/cache/help.txt +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/cache/stats.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/connector/add.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/connector/arguments.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/connector/help.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/connector/help.txt +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/connector/infer.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/connector/list.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/connector/migrate.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/connector/models.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/connector/remove.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/connector/rm.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/connector/test.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/container/arguments.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/container/help.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/container/help.txt +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/container/man.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/container/ps.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/container/stop.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/controller/add.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/controller/arguments.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/controller/help.txt +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/controller/inc/args.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/controller/inc/namespace.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/controller/inc/reference-rewrite.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/controller/inc/reference-scan.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/controller/inc/scaffold.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/controller/remove.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/controller/rename.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/controller/rm.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/env/add.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/env/get.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/env/help.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/env/help.txt +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/env/link-dev.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/env/list.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/env/remove.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/env/rm.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/env/set.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/env/unset.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/env/use.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/add.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/arguments.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/build.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/dot.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/get.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/help.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/help.txt +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/init.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/link-node-modules.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/link.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/list.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/man.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/msg.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/open.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/remove.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/reset.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/restart.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/set.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/start.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/status.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/stop.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/tail.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/update.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/version.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/gina-dev.1.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/gina-framework.1.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/gina.1.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/helper.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/i18n/add.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/i18n/arguments.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/i18n/export.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/i18n/help.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/i18n/help.txt +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/i18n/import.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/i18n/scan.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/image/_host.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/image/arguments.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/image/build.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/image/help.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/image/help.txt +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/image/list.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/image/man.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/image/rm.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/image/run.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/index.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/inspector/help.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/inspector/help.txt +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/inspector/open.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/man-render.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/minion/arguments.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/minion/help.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/minion/help.txt +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/minion/kill.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/minion/list.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/msg.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/port/help.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/port/help.txt +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/port/inc/scan.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/port/list.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/port/reset.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/port/set.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/add.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/arguments.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/backup.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/build.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/help.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/help.txt +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/import.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/list.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/man.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/move.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/remove.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/rename.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/restart.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/restore.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/rm.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/start.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/status.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/stop.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/protocol/arguments.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/protocol/help.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/protocol/help.txt +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/protocol/list.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/protocol/remove.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/protocol/set.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/scope/add.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/scope/help.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/scope/help.txt +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/scope/link-local.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/scope/link-production.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/scope/list.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/scope/remove.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/scope/rm.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/scope/use.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/secrets/arguments.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/secrets/check.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/secrets/help.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/secrets/help.txt +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/secrets/scan.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/service/help.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/service/help.txt +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/service/list.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/service/man.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/service/start.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/view/add.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd-status-format/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cmd-status-format/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/collection/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/collection/build.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/collection/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/collection/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/config.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/connector-config/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/connector-config/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/connector-error/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/connector-error/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/connector-registry/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/connector-registry/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cron/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cron/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/cron/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/domain/LICENSE +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/domain/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/domain/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/domain/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/dto/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/dto/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/dto-pipe/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/dto-pipe/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/dto-types/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/dto-types/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/generator/index.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/i18n/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/i18n/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/image-build/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/image-build/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/inherits/LICENSE +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/inherits/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/inherits/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/inherits/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/inspector-events/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/inspector-events/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/inspector-redact/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/inspector-redact/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/instrument/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/instrument/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/job/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/job/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/job-store.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/json-config-header/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/json-config-header/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/loading-state/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/loading-state/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/logger/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/logger/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/logger/src/containers/default/index.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/logger/src/containers/file/index.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/logger/src/containers/mq/index.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/logger/src/containers/mq/listener.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/logger/src/containers/mq/speaker.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/logger/src/helper.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/logger/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/math/index.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/mcp-dispatch/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/mcp-dispatch/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/mcp-http/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/mcp-http/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/mcp-server/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/mcp-server/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/merge/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/merge/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/merge/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/metrics/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/metrics/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/model.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/net-locality/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/net-locality/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/nunjucks-filters/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/nunjucks-filters/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/nunjucks-filters/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/nunjucks-resolver/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/nunjucks-resolver/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/proc.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/release-watch/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/release-watch/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/render-cache/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/render-cache/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/render-cache-store.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/routing/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/routing/build.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/routing/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/routing/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/routing/src/radix.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/routing-introspect/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/routing-introspect/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/secrets/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/secrets/src/backends/env.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/secrets/src/backends/file.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/secrets/src/env-file.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/session-store.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/shell.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/sqlite-driver.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/state.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/swig-filters/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/swig-filters/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/swig-filters/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/swig-resolver/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/swig-resolver/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/template-loaders/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/template-loaders/src/loaders/http.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/template-loaders/src/loaders/memory.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/template-loaders/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/url/README.md +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/url/index.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/url/routing.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/uuid/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/uuid/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/validator.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/watcher/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/watcher/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/ws-framing/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/ws-framing/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/ws-query/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/ws-query/src/main.js +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/ws-session/package.json +0 -0
- /package/framework/{v0.6.6 → v0.6.7}/lib/ws-session/src/main.js +0 -0
|
@@ -6415,21 +6415,28 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
6415
6415
|
// filter also excludes in-tree descendants whose `form="..."` points at a different
|
|
6416
6416
|
// form (parent-form contamination guard).
|
|
6417
6417
|
var getOwnedElements = function($form, tag) {
|
|
6418
|
+
// #B333 — dedup by NODE IDENTITY, not by id. The old `seen` table was
|
|
6419
|
+
// id-keyed, so an ID-LESS control already collected from `$form.elements`
|
|
6420
|
+
// was pushed a second time by the in-tree sweep (`!$el.id` passed the old
|
|
6421
|
+
// condition unconditionally). For an id-less `<button type=submit>` —
|
|
6422
|
+
// gina auto-assigns its id only later, in the submit-binding loop — the
|
|
6423
|
+
// double entry meant `bindSubmitEl` ran twice and every click executed
|
|
6424
|
+
// TWO full validate()+send() cycles. `arr.indexOf($el)` is an identity
|
|
6425
|
+
// test, so the same node can never enter twice regardless of id state.
|
|
6418
6426
|
var arr = []
|
|
6419
|
-
, seen = {}
|
|
6420
6427
|
, tagUpper = tag.toUpperCase()
|
|
6421
6428
|
;
|
|
6422
6429
|
for (let i = 0, len = $form.elements.length; i < len; i++) {
|
|
6423
6430
|
let $el = $form.elements[i];
|
|
6424
6431
|
if ($el.tagName === tagUpper) {
|
|
6425
6432
|
arr.push($el);
|
|
6426
|
-
if ($el.id) seen[$el.id] = true;
|
|
6427
6433
|
}
|
|
6428
6434
|
}
|
|
6429
6435
|
var inTree = $form.getElementsByTagName(tag);
|
|
6430
6436
|
for (let i = 0, len = inTree.length; i < len; i++) {
|
|
6431
6437
|
let $el = inTree[i];
|
|
6432
|
-
if ($el.form === $form && (!$el.id || !seen[$el.id])) {
|
|
6438
|
+
// was: if ($el.form === $form && (!$el.id || !seen[$el.id])) {
|
|
6439
|
+
if ($el.form === $form && arr.indexOf($el) === -1) {
|
|
6433
6440
|
arr.push($el);
|
|
6434
6441
|
}
|
|
6435
6442
|
}
|
|
@@ -8051,7 +8058,18 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
8051
8058
|
// (which is what the operable-trigger design was bought for).
|
|
8052
8059
|
// Checked on the CLICKED element, not `$formInstance.submitTrigger`:
|
|
8053
8060
|
// a form may carry several submit buttons and only one registers.
|
|
8054
|
-
|
|
8061
|
+
//
|
|
8062
|
+
// #B346 carve-out — when the gate's ONLY reason is a `query` verdict
|
|
8063
|
+
// still on the wire (framework gated mark alone, no committed errors,
|
|
8064
|
+
// in-flight marker present), the reveal has NOTHING to reveal and the
|
|
8065
|
+
// refusal ate the click silently. Let that one state through: the
|
|
8066
|
+
// normal submit cycle latches, arms its waiter, and the pending
|
|
8067
|
+
// settle completes it (#B342) — valid ⇒ send, invalid ⇒ render +
|
|
8068
|
+
// release. Every other refusal shape is unchanged.
|
|
8069
|
+
if (
|
|
8070
|
+
/^submit\./i.test(_evt) && isTriggerDisabled($el)
|
|
8071
|
+
&& !isAwaitingQueryVerdictOnly($el, $target, instance.$forms[$form.id] || $form)
|
|
8072
|
+
) {
|
|
8055
8073
|
cancelEvent(event);
|
|
8056
8074
|
revealValidationState( instance.$forms[$form.id] || $form );
|
|
8057
8075
|
return false;
|
|
@@ -8306,6 +8324,21 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
8306
8324
|
// start validation
|
|
8307
8325
|
cancelEvent(event);
|
|
8308
8326
|
|
|
8327
|
+
// #B332 belt — one submit cycle at a time per form. `isSubmitting`
|
|
8328
|
+
// latches below (before validate()) and is released on the XHR settle
|
|
8329
|
+
// AND on the rejected-validation branch (#B192), so a truthy read here
|
|
8330
|
+
// means a full cycle is still between click and settle: refuse the
|
|
8331
|
+
// re-entry (a re-click while a query rule's XHR is in flight, or a
|
|
8332
|
+
// residual duplicate listener on an older bundle) instead of racing
|
|
8333
|
+
// two concurrent cycles against the same form state.
|
|
8334
|
+
var _latchFormId = $target.getAttribute('id');
|
|
8335
|
+
if (
|
|
8336
|
+
typeof(instance.$forms[_latchFormId]) != 'undefined'
|
|
8337
|
+
&& /^true$/i.test(instance.$forms[_latchFormId].isSubmitting)
|
|
8338
|
+
) {
|
|
8339
|
+
return;
|
|
8340
|
+
}
|
|
8341
|
+
|
|
8309
8342
|
// getting fields & values
|
|
8310
8343
|
var $fields = {}
|
|
8311
8344
|
, fields = { '_length': 0 }
|
|
@@ -8472,7 +8505,20 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
8472
8505
|
evt = $submit['id'];
|
|
8473
8506
|
}
|
|
8474
8507
|
|
|
8475
|
-
|
|
8508
|
+
// #B333 — the guard used to test `gina.events[evt]` where `evt` is the
|
|
8509
|
+
// BUTTON id (`click.<uuid>`), a key nothing ever writes: `bindSubmitEl`
|
|
8510
|
+
// registers under the NAMESPACED name (`submit.<id>`). The test was
|
|
8511
|
+
// therefore always true and every extra pass over the same button (the
|
|
8512
|
+
// id-less double-collection fixed in `getOwnedElements`, a re-bind path)
|
|
8513
|
+
// stacked one more live listener -> one more full validate()+send() cycle
|
|
8514
|
+
// per click. Test the key that actually gets registered, against the id
|
|
8515
|
+
// the registry stores. (A trigger REPLACED in the DOM keeps the registry
|
|
8516
|
+
// key but loses the expando marker — the #B294 click-time gate re-binds
|
|
8517
|
+
// that case; this guard only has to stop same-node re-binds.)
|
|
8518
|
+
// was:
|
|
8519
|
+
// if ( typeof(gina.events[evt]) == 'undefined' || gina.events[evt] != $submit.id ) {
|
|
8520
|
+
var _submitEvt = ( /^submit\./i.test(evt) ) ? evt : 'submit.'+ evt;
|
|
8521
|
+
if ( typeof(gina.events[_submitEvt]) == 'undefined' || gina.events[_submitEvt] != $submit.id ) {
|
|
8476
8522
|
bindSubmitEl(evt, $submit);
|
|
8477
8523
|
}
|
|
8478
8524
|
|
|
@@ -8517,7 +8563,15 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
8517
8563
|
// }
|
|
8518
8564
|
if ($formInstance && e.isTrusted) {
|
|
8519
8565
|
var $registeredTrigger = document.getElementById($formInstance.submitTrigger) || null;
|
|
8520
|
-
|
|
8566
|
+
// #B346 — same carve-out as the click proxy's gate: when the ONLY
|
|
8567
|
+
// refusal reason is a query verdict still on the wire, refusing
|
|
8568
|
+
// here ate Enter-key and wrapped-label submits silently (nothing
|
|
8569
|
+
// committed to reveal). Let the pass run and wait for the settle;
|
|
8570
|
+
// every other refusal shape is unchanged.
|
|
8571
|
+
if (
|
|
8572
|
+
isTriggerDisabled($registeredTrigger)
|
|
8573
|
+
&& !isAwaitingQueryVerdictOnly($registeredTrigger, $target, $formInstance)
|
|
8574
|
+
) {
|
|
8521
8575
|
cancelEvent(e);
|
|
8522
8576
|
revealValidationState($formInstance);
|
|
8523
8577
|
return false;
|
|
@@ -8538,12 +8592,19 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
8538
8592
|
// so the registered trigger is the best and only referent. Placed after the
|
|
8539
8593
|
// disabled + defaultPrevented guards above, which both return first.
|
|
8540
8594
|
// NB. the #B308 gesture gate above already cancelled any TRUSTED submit on
|
|
8541
|
-
// a marked trigger
|
|
8542
|
-
//
|
|
8543
|
-
//
|
|
8595
|
+
// a marked trigger (#B346 excepted: a pending-verdict-only refusal now
|
|
8596
|
+
// proceeds, and the arm below covers it via the same carve-out), so this
|
|
8597
|
+
// skip otherwise guards the UNTRUSTED path: a programmatic submit on a
|
|
8598
|
+
// marked form runs the fresh validate pass below and must not flash the
|
|
8599
|
+
// trigger armed for the length of that pass.
|
|
8544
8600
|
if ($formInstance) {
|
|
8545
8601
|
var $loadingTrigger = document.getElementById($formInstance.submitTrigger);
|
|
8546
|
-
|
|
8602
|
+
// #B346 — a pending-verdict bypass proceeds to a real cycle, so it
|
|
8603
|
+
// gets the loading state too (#B247 parity with the click proxy).
|
|
8604
|
+
if (
|
|
8605
|
+
!isTriggerDisabled($loadingTrigger)
|
|
8606
|
+
|| isAwaitingQueryVerdictOnly($loadingTrigger, $target, $formInstance)
|
|
8607
|
+
) {
|
|
8547
8608
|
armSubmitLoading($formInstance, $loadingTrigger);
|
|
8548
8609
|
}
|
|
8549
8610
|
}
|
|
@@ -8653,6 +8714,36 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
8653
8714
|
} else {
|
|
8654
8715
|
rule = getRuleObjByName(id.replace(/\-/g, '.'))
|
|
8655
8716
|
}
|
|
8717
|
+
// #B346 — this pass may proceed while an async query verdict is
|
|
8718
|
+
// still on the wire: the pending-aware gate above lets a trusted
|
|
8719
|
+
// gesture through, and a programmatic submit() never consulted
|
|
8720
|
+
// the gate at all. An un-latched async pass STARVES — with the
|
|
8721
|
+
// query field not declared last, its waiter's completion resolves
|
|
8722
|
+
// to the needsGlobalReValidation display-only work and never runs
|
|
8723
|
+
// this callback. Latch exactly as bindSubmitEl does, so the
|
|
8724
|
+
// latched completion dispatches (#B342) — and mirror the #B332
|
|
8725
|
+
// belt for the window this pass now enters: one cycle at a time.
|
|
8726
|
+
// The owned-field scan mirrors isAwaitingQueryVerdictOnly's
|
|
8727
|
+
// (kept inline THERE — its body literals are pinned); trigger
|
|
8728
|
+
// marks and recorded errors are deliberately not consulted here,
|
|
8729
|
+
// because they do not affect LATCH soundness: an invalid pass
|
|
8730
|
+
// completes through the errors branch and releases via the
|
|
8731
|
+
// rejected-validation release, a clean pass through the latched
|
|
8732
|
+
// dispatch and the send release.
|
|
8733
|
+
var _pendingSel = '[data-gina-form-validator-query-pending]';
|
|
8734
|
+
var _formDomId = $target.id || ( typeof($target.getAttribute) == 'function' ? $target.getAttribute('id') : null );
|
|
8735
|
+
var _safeFormDomId = ( _formDomId && typeof(CSS) != 'undefined' && typeof(CSS.escape) == 'function' ) ? CSS.escape(_formDomId) : _formDomId;
|
|
8736
|
+
var _awaitsQueryVerdict = (
|
|
8737
|
+
typeof($target.querySelector) == 'function' && $target.querySelector(_pendingSel)
|
|
8738
|
+
|| _safeFormDomId && document.querySelector('[form="'+ _safeFormDomId +'"]'+ _pendingSel)
|
|
8739
|
+
) ? true : false;
|
|
8740
|
+
if (_awaitsQueryVerdict) {
|
|
8741
|
+
if ( /^true$/i.test(instance.$forms[id].isSubmitting) ) {
|
|
8742
|
+
return false;
|
|
8743
|
+
}
|
|
8744
|
+
instance.$forms[id].isSubmitting = true;
|
|
8745
|
+
instance.$forms[id].isSending = false;
|
|
8746
|
+
}
|
|
8656
8747
|
instance.$forms[id].isValidating = true;
|
|
8657
8748
|
validate($target, fields, $fields, rule, function onSubmitValidation(result){
|
|
8658
8749
|
instance.$forms[id].isValidating = false;
|
|
@@ -8663,6 +8754,12 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
8663
8754
|
// } else {
|
|
8664
8755
|
// handleErrorsDisplay($target, result.error, result.data);
|
|
8665
8756
|
if ( typeof(gina.events['submit.' + id]) != 'undefined' ) { // if `on('submit', cb)` is binded
|
|
8757
|
+
// #B346 — a consumer's own `on('submit')` handler owns
|
|
8758
|
+
// the rest of the cycle and may never reach send():
|
|
8759
|
+
// the latch cannot ride this dispatch (a stopping
|
|
8760
|
+
// handler would strand it — the #B342 lockout shape).
|
|
8761
|
+
// False -> false when this pass never latched.
|
|
8762
|
+
instance.$forms[id].isSubmitting = false;
|
|
8666
8763
|
triggerEvent(gina, $target, 'submit.' + id, result);
|
|
8667
8764
|
} else {
|
|
8668
8765
|
triggerEvent(gina, $target, 'validate.' + id, result);
|
|
@@ -8726,8 +8823,10 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
8726
8823
|
* marks are removed the moment the form validates. The marker is the
|
|
8727
8824
|
* framework's OWN channel — the trigger carries no ARIA disabled claim,
|
|
8728
8825
|
* because it stays genuinely operable: a click on a gated trigger is
|
|
8729
|
-
* answered by the display-only reveal (#B246),
|
|
8730
|
-
*
|
|
8826
|
+
* answered by the display-only reveal (#B246) — or, when the only blocker
|
|
8827
|
+
* is a query verdict still on the wire, proceeds into a submit pass that
|
|
8828
|
+
* waits for the settle (#B346) — and `isValid()` remains the real send
|
|
8829
|
+
* gate.
|
|
8731
8830
|
*
|
|
8732
8831
|
* `aria-disabled` is deliberately neither written nor cleared here: an
|
|
8733
8832
|
* authored mark belongs to the author (the gates enforce it, and nothing
|
|
@@ -8861,6 +8960,122 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
8861
8960
|
);
|
|
8862
8961
|
};
|
|
8863
8962
|
|
|
8963
|
+
/**
|
|
8964
|
+
* isAwaitingQueryVerdictOnly
|
|
8965
|
+
*
|
|
8966
|
+
* Tells whether a refused submit trigger is refused ONLY because a `query`
|
|
8967
|
+
* verdict is still pending — the one state the #B246 gate misclassifies.
|
|
8968
|
+
*
|
|
8969
|
+
* #B346 — `updateSubmitTriggerState()` gates on a boolean (`isFormValid`)
|
|
8970
|
+
* over a state that is really tri-valued: valid, invalid with COMMITTED
|
|
8971
|
+
* errors, and VERDICT-PENDING (an async `query` XHR on the wire, so the
|
|
8972
|
+
* form has no verdict yet). The #B246 refuse-and-reveal answer is only
|
|
8973
|
+
* coherent for the middle state — with nothing committed there is nothing
|
|
8974
|
+
* to reveal, and the click died silently (measured: wake path fully
|
|
8975
|
+
* healthy, `isSubmitting` never latched, zero sends inside the round-trip
|
|
8976
|
+
* window; the window scales with query LATENCY, not typing speed). When
|
|
8977
|
+
* this returns true the proxy lets the click run the normal submit cycle:
|
|
8978
|
+
* the pass latches and arms its waiter, the engine's in-flight branch
|
|
8979
|
+
* declines to duplicate the XHR, the pending settle wakes the waiter, and
|
|
8980
|
+
* the latched completion dispatches (#B342) — the exact flow live-check-off
|
|
8981
|
+
* forms already run.
|
|
8982
|
+
*
|
|
8983
|
+
* Deliberately NARROW — every arm fails toward the shipped refusal:
|
|
8984
|
+
* - the framework's own gated mark must be the ONLY refusal reason; an
|
|
8985
|
+
* AUTHORED `aria-disabled="true"` or a (non-IDL) native `disabled`
|
|
8986
|
+
* keeps refusing (#B312 — an author's claim is enforced, not
|
|
8987
|
+
* second-guessed);
|
|
8988
|
+
* - any COMMITTED error keeps refusing — refuse-and-reveal stays coherent
|
|
8989
|
+
* when there is something to reveal. Committed means a SETTLED field's:
|
|
8990
|
+
* the pending field itself may carry a provisional `query` entry staged
|
|
8991
|
+
* by the same-value fast path while its verdict is on the wire, and a
|
|
8992
|
+
* provisional entry is not a verdict (measured — counting it refused
|
|
8993
|
+
* every window this helper exists to recognize);
|
|
8994
|
+
* - an owned field must actually carry the in-flight query marker
|
|
8995
|
+
* (`data-gina-form-validator-query-pending`, set by the engine right
|
|
8996
|
+
* before `xhr.send()` and cleared at both settle chokepoints), looked up
|
|
8997
|
+
* inside the form AND among form-reassociated controls (`form="<id>"`).
|
|
8998
|
+
*
|
|
8999
|
+
* @param {object} $el - the clicked submit trigger (DOMObject)
|
|
9000
|
+
* @param {object} $formDom - the owning form element (DOMObject)
|
|
9001
|
+
* @param {object} [$formRecord] - the validator record (`instance.$forms[id]`)
|
|
9002
|
+
*
|
|
9003
|
+
* @returns {boolean} true when the only thing standing between the click
|
|
9004
|
+
* and a verdict is a query still on the wire
|
|
9005
|
+
*
|
|
9006
|
+
* @example
|
|
9007
|
+
* // gated trigger, clean form, uniqueness query in flight -> the click waits for the verdict
|
|
9008
|
+
* isAwaitingQueryVerdictOnly($button, $form, instance.$forms[$form.id]); // true
|
|
9009
|
+
*
|
|
9010
|
+
* @example
|
|
9011
|
+
* // same window but a sibling field has a committed error -> shipped refuse-and-reveal stands
|
|
9012
|
+
* isAwaitingQueryVerdictOnly($button, $form, instance.$forms[$form.id]); // false
|
|
9013
|
+
*
|
|
9014
|
+
* @inner
|
|
9015
|
+
*/
|
|
9016
|
+
var isAwaitingQueryVerdictOnly = function($el, $formDom, $formRecord) {
|
|
9017
|
+
if ( !$el || typeof($el.getAttribute) != 'function' || !$formDom || typeof($formDom.querySelector) != 'function' ) {
|
|
9018
|
+
return false;
|
|
9019
|
+
}
|
|
9020
|
+
// the gated mark must be present, and be the ONLY firing arm
|
|
9021
|
+
if ( $el.getAttribute('data-gina-form-submit-gated') != 'true' ) {
|
|
9022
|
+
return false;
|
|
9023
|
+
}
|
|
9024
|
+
var nativeCounts = !('disabled' in $el);
|
|
9025
|
+
if (
|
|
9026
|
+
nativeCounts
|
|
9027
|
+
&& $el.getAttribute('disabled') != null && $el.getAttribute('disabled') != 'false'
|
|
9028
|
+
||
|
|
9029
|
+
$el.getAttribute('aria-disabled') == 'true'
|
|
9030
|
+
) {
|
|
9031
|
+
return false;
|
|
9032
|
+
}
|
|
9033
|
+
// a query verdict must actually be pending for an owned field — inside
|
|
9034
|
+
// the form, or a form-reassociated control (`form="<id>"`)
|
|
9035
|
+
var pendingSel = '[data-gina-form-validator-query-pending]';
|
|
9036
|
+
var _id = $formDom.id || ( typeof($formDom.getAttribute) == 'function' ? $formDom.getAttribute('id') : null );
|
|
9037
|
+
var _safeId = ( _id && typeof(CSS) != 'undefined' && typeof(CSS.escape) == 'function' ) ? CSS.escape(_id) : _id;
|
|
9038
|
+
var hasPending = (
|
|
9039
|
+
$formDom.querySelector(pendingSel)
|
|
9040
|
+
|| _safeId && document.querySelector('[form="'+ _safeId +'"]'+ pendingSel)
|
|
9041
|
+
) ? true : false;
|
|
9042
|
+
if (!hasPending) {
|
|
9043
|
+
return false;
|
|
9044
|
+
}
|
|
9045
|
+
// COMMITTED errors keep the shipped refuse-and-reveal — but committed
|
|
9046
|
+
// means a SETTLED field's verdict. Measured (#B346): while a query is
|
|
9047
|
+
// on the wire, the same-value fast path stages a provisional `query`
|
|
9048
|
+
// entry under the PENDING field's own key in `$formRecord.errors`, so
|
|
9049
|
+
// a bare `errors.count() > 0` reads the very state this helper exists
|
|
9050
|
+
// to recognize as "no verdict yet" and refuses every window. Count an
|
|
9051
|
+
// erroring field only when it is NOT itself awaiting the verdict.
|
|
9052
|
+
if ( $formRecord && typeof($formRecord.errors) != 'undefined' && $formRecord.errors ) {
|
|
9053
|
+
for (var _fieldName in $formRecord.errors) {
|
|
9054
|
+
if ( !$formRecord.errors.hasOwnProperty(_fieldName) ) {
|
|
9055
|
+
continue;
|
|
9056
|
+
}
|
|
9057
|
+
var _fieldErrors = $formRecord.errors[_fieldName];
|
|
9058
|
+
var _isErroring = ( _fieldErrors && typeof(_fieldErrors.count) == 'function' )
|
|
9059
|
+
? _fieldErrors.count() > 0
|
|
9060
|
+
: !!_fieldErrors;
|
|
9061
|
+
if (!_isErroring) {
|
|
9062
|
+
continue;
|
|
9063
|
+
}
|
|
9064
|
+
var _safeName = ( typeof(CSS) != 'undefined' && typeof(CSS.escape) == 'function' ) ? CSS.escape(_fieldName) : _fieldName;
|
|
9065
|
+
var _erroringIsPending = (
|
|
9066
|
+
$formDom.querySelector('[name="'+ _safeName +'"]'+ pendingSel)
|
|
9067
|
+
|| _safeId && document.querySelector('[form="'+ _safeId +'"][name="'+ _safeName +'"]'+ pendingSel)
|
|
9068
|
+
) ? true : false;
|
|
9069
|
+
if (!_erroringIsPending) {
|
|
9070
|
+
// a settled field carries a real verdict — there IS
|
|
9071
|
+
// something to reveal, the shipped refusal stands
|
|
9072
|
+
return false;
|
|
9073
|
+
}
|
|
9074
|
+
}
|
|
9075
|
+
}
|
|
9076
|
+
return true;
|
|
9077
|
+
};
|
|
9078
|
+
|
|
8864
9079
|
/**
|
|
8865
9080
|
* focusFirstInvalidField
|
|
8866
9081
|
*
|
|
@@ -9391,6 +9606,14 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
9391
9606
|
, $asyncFieldId = null
|
|
9392
9607
|
, asyncEvt = null
|
|
9393
9608
|
, asyncCount = 0
|
|
9609
|
+
// #B332 — fields THIS pass armed an `asyncCompleted.<id>` waiter for.
|
|
9610
|
+
// The arm guard used to consult the global `gina.events` registry, which
|
|
9611
|
+
// cannot tell "this pass already armed it" (legitimate skip — a rules
|
|
9612
|
+
// re-application within one pass) from "a CONCURRENT pass armed it"
|
|
9613
|
+
// (must NOT skip: zeroing `asyncCount` there made this pass complete on
|
|
9614
|
+
// a sync-only verdict and send() fired while the query XHR was in
|
|
9615
|
+
// flight). Pass-local by construction, so only the first case matches.
|
|
9616
|
+
, armedAsyncFields = {}
|
|
9394
9617
|
;
|
|
9395
9618
|
|
|
9396
9619
|
|
|
@@ -9541,15 +9764,42 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
9541
9764
|
asyncEvt = 'asyncCompleted.'+ $asyncFieldId;
|
|
9542
9765
|
|
|
9543
9766
|
var triggeredCount = 0, eventTriggered = false;
|
|
9544
|
-
|
|
9545
|
-
|
|
9546
|
-
|
|
9547
|
-
|
|
9767
|
+
// #B332 — the arm guard is PASS-LOCAL now (see `armedAsyncFields`
|
|
9768
|
+
// at the declaration block). The old registry test saw only that
|
|
9769
|
+
// SOME pass had armed the field: when that pass was a concurrent
|
|
9770
|
+
// one (a duplicate submit listener — #B333, a re-click while the
|
|
9771
|
+
// query XHR was in flight, a live-check cycle beside a submit),
|
|
9772
|
+
// this pass zeroed ITS OWN pending-async counter and returned —
|
|
9773
|
+
// so its terminal block completed on the sync-only verdict, the
|
|
9774
|
+
// `validate.<id>` valid branch ran, and `send()` fired ~200ms
|
|
9775
|
+
// BEFORE the query answered (the "email already registered" error
|
|
9776
|
+
// rendered after the POST had already left). A foreign waiter must
|
|
9777
|
+
// not starve this pass of its own wake-up: waiters stack per pass
|
|
9778
|
+
// (each self-detaches on first fire below) and the ENGINE dedups
|
|
9779
|
+
// the wire via `ginaFormValidatorQueryPending` — no duplicate XHR.
|
|
9780
|
+
// was:
|
|
9781
|
+
// if ( typeof(gina.events[asyncEvt]) != 'undefined' ) {
|
|
9782
|
+
// console.debug('event `'+ asyncEvt +'` already added');
|
|
9783
|
+
// asyncCount = 0;
|
|
9784
|
+
// return;
|
|
9785
|
+
// }
|
|
9786
|
+
if ( typeof(armedAsyncFields[$asyncFieldId]) != 'undefined' ) {
|
|
9787
|
+
console.debug('event `'+ asyncEvt +'` already armed by this pass');
|
|
9788
|
+
continue;
|
|
9548
9789
|
}
|
|
9790
|
+
armedAsyncFields[$asyncFieldId] = true;
|
|
9549
9791
|
++asyncCount;
|
|
9550
9792
|
//console.debug('Adding listner '+asyncEvt);
|
|
9551
9793
|
addListener(gina, $asyncField, asyncEvt, function onasyncCompleted(event) {
|
|
9552
9794
|
event.preventDefault();
|
|
9795
|
+
// #B332/#B334 — one settle per waiter. Waiters stack per pass
|
|
9796
|
+
// now, so each must consume exactly one wake-up and leave the
|
|
9797
|
+
// node: the registry-only `removeListener` in the completion
|
|
9798
|
+
// block below carries no fn ref (a DOM no-op — it only deletes
|
|
9799
|
+
// the `gina.events` key), and a stale un-latched waiter used to
|
|
9800
|
+
// re-enter on every later settle of the same field, replaying a
|
|
9801
|
+
// finished pass's completion against a live one.
|
|
9802
|
+
event.currentTarget.removeEventListener(event.type, onasyncCompleted, false);
|
|
9553
9803
|
|
|
9554
9804
|
triggeredCount++;
|
|
9555
9805
|
--asyncCount;
|
|
@@ -9587,7 +9837,23 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
9587
9837
|
removeListener(gina, event.target, _asyncEvt);
|
|
9588
9838
|
|
|
9589
9839
|
cb._data = d['toData']();
|
|
9590
|
-
|
|
9840
|
+
// #B337 — the completion payload must carry the WHOLE pass's
|
|
9841
|
+
// verdict, not the query field's slice. On a full-form submit
|
|
9842
|
+
// pass `d` holds every field, and scoping to `field` starved
|
|
9843
|
+
// the `validate.<id>` handler of every OTHER invalid field:
|
|
9844
|
+
// their errors were adjudicated (DOM attributes set) but never
|
|
9845
|
+
// rendered on the submit path, and the #A11Y1 first-invalid
|
|
9846
|
+
// focus loop could only ever land on the query field. It also
|
|
9847
|
+
// inverted the query-passes-but-another-field-invalid scene:
|
|
9848
|
+
// the scoped set read empty, the early-return branch was
|
|
9849
|
+
// skipped, and the validated dispatch went out with NO errors
|
|
9850
|
+
// at all. On a single-element live-check pass `d` holds one
|
|
9851
|
+
// field, so the no-arg call is byte-equivalent there — the
|
|
9852
|
+
// touched-field-only DISPLAY below keeps its `field` argument,
|
|
9853
|
+
// which is the live-check contract (§4c). The validated
|
|
9854
|
+
// listener's own fallback was already `d.getErrors()` no-arg.
|
|
9855
|
+
// was: cb._errors = d['getErrors'](field);
|
|
9856
|
+
cb._errors = d['getErrors']();
|
|
9591
9857
|
// console.debug('query callbakc triggered ', cb._errors, '\nisValidating: ', instance.$forms[formId].isValidating);
|
|
9592
9858
|
// update instance form errors
|
|
9593
9859
|
if ( cb._errors && cb._errors.count() > 0) {
|
|
@@ -9624,11 +9890,51 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
9624
9890
|
}
|
|
9625
9891
|
|
|
9626
9892
|
|
|
9627
|
-
|
|
9893
|
+
// #B334 — dispatch where THIS pass's listener actually
|
|
9894
|
+
// sits: $formOrElement (the form on a full-form pass —
|
|
9895
|
+
// identical to $currentForm there — but the ELEMENT on
|
|
9896
|
+
// a single-element pass, whose listener could never
|
|
9897
|
+
// hear a form-dispatched event: bubbling goes up, not
|
|
9898
|
+
// down; it still bubbles up THROUGH the form so
|
|
9899
|
+
// consumer `on('validated')` bindings keep hearing it).
|
|
9900
|
+
// was: triggerEvent(gina, $currentForm, 'validated.' + formId, cb);
|
|
9901
|
+
triggerEvent(gina, $formOrElement, 'validated.' + formId, cb);
|
|
9628
9902
|
return;
|
|
9629
9903
|
}
|
|
9630
9904
|
}
|
|
9631
9905
|
|
|
9906
|
+
// #B342 — a SUBMIT pass has exactly ONE legitimate completer: this
|
|
9907
|
+
// waiter (post-#B338 the terminal block runs while asyncCount is
|
|
9908
|
+
// still > 0, so it can never dispatch for an async pass). On a
|
|
9909
|
+
// CLEAN pass the errors>0 branch above is skipped, and both
|
|
9910
|
+
// branches below are conditional — last-field matches only when
|
|
9911
|
+
// the query field happens to be declared last in the rule set
|
|
9912
|
+
// (minus `exclude:true` splices), and the live-check branch needs
|
|
9913
|
+
// `isValidating`, which a submit pass does not set. A clean submit
|
|
9914
|
+
// whose query field was NOT last exited this block having
|
|
9915
|
+
// dispatched NOTHING: `cb` starved, `validate.<id>` never fired,
|
|
9916
|
+
// no send ever left, and the #B332 `isSubmitting` latch stranded —
|
|
9917
|
+
// gating every later click until reload (measured live on a
|
|
9918
|
+
// consumer login form: value present, every field clean, click
|
|
9919
|
+
// swallowed). Pre-arc this hole was MASKED by the very bugs
|
|
9920
|
+
// #B332/#B333 removed: the duplicate pass's premature sync-only
|
|
9921
|
+
// completion was the accidental completer. A latched form means
|
|
9922
|
+
// this completion belongs to the submit cycle (live-check passes
|
|
9923
|
+
// hard-return while the latch is held), so dispatch it — display
|
|
9924
|
+
// work belongs to the `validate.<id>` handler's send/reject
|
|
9925
|
+
// branches, same as the errors>0 dispatch above.
|
|
9926
|
+
// #B346 note: waiters ARMED before the latch — live-check
|
|
9927
|
+
// passes mid-window, the reveal's own pass — also wake through
|
|
9928
|
+
// this branch once a pending-window gesture latches; each such
|
|
9929
|
+
// dispatch carries THAT waiter's own pass cb, and the #B334
|
|
9930
|
+
// own-pass listener filtering keeps every completion with its
|
|
9931
|
+
// own pass. NEW live-check passes still hard-return on the
|
|
9932
|
+
// latch.
|
|
9933
|
+
if ( /^true$/i.test(instance.$forms[formId].isSubmitting) ) {
|
|
9934
|
+
triggerEvent(gina, $formOrElement, 'validated.' + formId, cb);
|
|
9935
|
+
return;
|
|
9936
|
+
}
|
|
9937
|
+
|
|
9632
9938
|
// is this the last or the only field to be validated ?
|
|
9633
9939
|
var needsGlobalReValidation = false;
|
|
9634
9940
|
if ( listedFields.length == 1 || listedFields[listedFields.length-1] == field) {
|
|
@@ -9663,7 +9969,9 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
9663
9969
|
handleErrorsDisplay($currentForm, cb._errors, cb._data, field);
|
|
9664
9970
|
updateSubmitTriggerState( $currentForm, isFormValid);
|
|
9665
9971
|
}
|
|
9666
|
-
|
|
9972
|
+
// #B334 — same retarget as the completion branch above.
|
|
9973
|
+
// was: triggerEvent(gina, $currentForm, 'validated.' + formId, cb);
|
|
9974
|
+
triggerEvent(gina, $formOrElement, 'validated.' + formId, cb);
|
|
9667
9975
|
}
|
|
9668
9976
|
// just update warning state
|
|
9669
9977
|
else if (/^true$/i.test(instance.$forms[formId].isValidating) && listedFields.length > 1 && listedFields[listedFields.length-1] != field ) {
|
|
@@ -10437,10 +10745,33 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
10437
10745
|
}
|
|
10438
10746
|
|
|
10439
10747
|
|
|
10440
|
-
|
|
10441
|
-
|
|
10748
|
+
// #B334 — three defects lived in this one registration:
|
|
10749
|
+
// (a) it registered for EVERY pass, but a cb-less pass never dispatches
|
|
10750
|
+
// `validated.<id>` (the terminal block returns the result object
|
|
10751
|
+
// instead) — its listener was pure accumulation;
|
|
10752
|
+
// (b) `event.detail` IS the DISPATCHING pass's callback, and the body ran
|
|
10753
|
+
// it unconditionally — so every stale listener replayed the dispatcher's
|
|
10754
|
+
// callback once (measured: two listeners -> one dispatch -> two
|
|
10755
|
+
// `validate.<id>` dispatches -> two send() calls for one click);
|
|
10756
|
+
// (c) the `removeListener` call in the body carries no fn ref, and
|
|
10757
|
+
// events.js then only deletes the registry key —
|
|
10758
|
+
// `removeEventListener(name, undefined)` detaches nothing, so every
|
|
10759
|
+
// pass's listener stayed on the node for the page's lifetime.
|
|
10760
|
+
// The listener now registers only when a callback exists, consumes ONLY its
|
|
10761
|
+
// own pass's dispatch (detail identity), and detaches itself on consumption
|
|
10762
|
+
// (a mid-dispatch removal also stops a not-yet-run duplicate per DOM spec).
|
|
10763
|
+
// was: if (isGFFCtx) {
|
|
10764
|
+
// addListener(gina, $formOrElement, evt, function(event) {
|
|
10765
|
+
if ( isGFFCtx && typeof(cb) === 'function' ) {
|
|
10766
|
+
addListener(gina, $formOrElement, evt, function onValidatedOwnPass(event) {
|
|
10442
10767
|
event.preventDefault();
|
|
10443
10768
|
|
|
10769
|
+
if ( event.detail !== cb ) {
|
|
10770
|
+
// another pass's completion — not ours to consume
|
|
10771
|
+
return;
|
|
10772
|
+
}
|
|
10773
|
+
event.currentTarget.removeEventListener(event.type, onValidatedOwnPass, false);
|
|
10774
|
+
|
|
10444
10775
|
if (!hasBeenValidated) {
|
|
10445
10776
|
hasBeenValidated = true;
|
|
10446
10777
|
hasParsedAllRules = false;
|