gina 0.6.2 → 0.6.3
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 +57 -0
- package/README.md +41 -12
- package/ROADMAP.md +3 -2
- package/bin/cli +19 -2
- package/framework/v0.6.3/VERSION +1 -0
- package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +6 -0
- package/framework/v0.6.3/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
- package/framework/v0.6.3/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
- package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/inspector/index.html +1 -0
- package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +50 -1
- package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +457 -57
- package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/js/gina.js +1457 -58
- package/framework/v0.6.3/core/asset/plugin/dist/vendor/gina/js/gina.min.js +625 -0
- package/framework/v0.6.3/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/v0.6.3/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- package/framework/{v0.6.2 → v0.6.3}/core/connectors/couchbase/index.js +114 -0
- package/framework/{v0.6.2 → v0.6.3}/core/connectors/couchbase/lib/connector.js +14 -3
- package/framework/{v0.6.2 → v0.6.3}/core/connectors/couchbase/lib/session-store.js +14 -3
- package/framework/{v0.6.2 → v0.6.3}/core/connectors/couchbase/lib/session-store.v3.js +29 -2
- package/framework/{v0.6.2 → v0.6.3}/core/connectors/couchbase/lib/session-store.v4.js +29 -2
- package/framework/{v0.6.2 → v0.6.3}/core/connectors/mongodb/lib/session-store.js +24 -2
- package/framework/{v0.6.2 → v0.6.3}/core/connectors/redis/lib/session-store.js +33 -9
- package/framework/{v0.6.2 → v0.6.3}/core/connectors/scylladb/lib/session-store.js +25 -2
- package/framework/{v0.6.2 → v0.6.3}/core/connectors/sqlite/lib/session-store.js +26 -2
- package/framework/{v0.6.2 → v0.6.3}/core/controller/controller.js +201 -21
- package/framework/{v0.6.2 → v0.6.3}/core/controller/controller.render-nunjucks.js +8 -0
- package/framework/{v0.6.2 → v0.6.3}/core/controller/controller.render-swig.js +85 -4
- package/framework/{v0.6.2 → v0.6.3}/core/gna.js +23 -1
- package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/csrf/src/main.js +9 -5
- package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/hide-powered-by/README.md +20 -0
- package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/validator/src/form-validator.js +119 -43
- package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/validator/src/main.js +451 -9
- package/framework/{v0.6.2 → v0.6.3}/core/server.isaac.js +50 -54
- package/framework/{v0.6.2 → v0.6.3}/core/server.js +240 -3
- package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/index.js +6 -4
- package/framework/{v0.6.2 → v0.6.3}/core/template/conf/settings.json +10 -0
- package/framework/{v0.6.2 → v0.6.3}/lib/cache/README.md +9 -1
- package/framework/{v0.6.2 → v0.6.3}/lib/cmd/audit/verify.js +11 -9
- package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/mcp-start.js +21 -12
- package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/help.txt +1 -1
- package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/init.js +13 -1
- package/framework/{v0.6.2 → v0.6.3}/lib/dto/src/main.js +18 -11
- package/framework/{v0.6.2 → v0.6.3}/lib/logger/src/containers/file/index.js +29 -1
- package/framework/{v0.6.2 → v0.6.3}/lib/logger/src/containers/mq/speaker.js +30 -1
- package/framework/{v0.6.2 → v0.6.3}/lib/math/index.js +57 -6
- package/framework/{v0.6.2 → v0.6.3}/lib/merge/src/main.js +34 -5
- package/framework/{v0.6.2 → v0.6.3}/lib/render-cache/src/main.js +77 -4
- package/framework/{v0.6.2 → v0.6.3}/lib/routing/src/main.js +13 -1
- package/framework/{v0.6.2 → v0.6.3}/lib/routing-introspect/src/main.js +64 -2
- package/framework/v0.6.3/lib/secrets/src/backends/env.js +75 -0
- package/framework/{v0.6.2 → v0.6.3}/package.json +1 -1
- package/gna.js +5 -4
- package/llms.txt +19 -17
- package/package.json +5 -4
- package/schema/connectors.json +2 -2
- package/schema/routing.json +5 -0
- package/schema/settings.json +6 -1
- package/script/generate_gna_types.js +1 -1
- package/script/soak/couchbase-soak.js +1316 -0
- package/types/globals.d.ts +2 -0
- package/types/gna.d.ts +5 -0
- package/types/index.d.ts +1 -0
- package/utils/helper.js +38 -7
- package/framework/v0.6.2/VERSION +0 -1
- package/framework/v0.6.2/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
- package/framework/v0.6.2/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
- package/framework/v0.6.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -603
- package/framework/v0.6.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/v0.6.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- package/framework/v0.6.2/lib/secrets/src/backends/env.js +0 -60
- /package/framework/{v0.6.2 → v0.6.3}/AUTHORS +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/LICENSE +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/asset/html/nolayout.html +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/asset/html/static.html +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/asset/img/android-chrome-192x192.png +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/asset/img/android-chrome-512x512.png +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/asset/img/apple-touch-icon.png +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/asset/img/favicon-16x16.png +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/asset/img/favicon-32x32.png +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/asset/img/favicon.ico +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/config.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/connectors/ai/index.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/connectors/ai/lib/connector.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/connectors/couchbase/lib/connector.v3.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/connectors/couchbase/lib/connector.v4.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/connectors/couchbase/lib/n1ql.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/connectors/duckdb/index.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/connectors/duckdb/lib/connector.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/connectors/mongodb/index.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/connectors/mongodb/lib/connector.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/connectors/mongodb/lib/job-store.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/connectors/mysql/index.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/connectors/mysql/lib/connector.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/connectors/postgresql/index.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/connectors/postgresql/lib/connector.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/connectors/redis/index.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/connectors/redis/lib/connector.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/connectors/redis/lib/job-store.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/connectors/redis/lib/render-cache-store.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/connectors/scylladb/index.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/connectors/scylladb/lib/connector.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/connectors/sql-parser.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/connectors/sqlite/index.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/connectors/sqlite/lib/connector.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/connectors/sqlite/lib/job-store.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/content.encoding +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/controller/controller.framework.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/controller/controller.render-json.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/controller/controller.render-nunjucks-async.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/controller/controller.render-stream.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/controller/controller.render-swig-async.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/controller/controller.render-v1.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/controller/index.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/controller/inspector-window-emit.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/controller/release-banner.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/dev/index.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/dev/lib/class.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/dev/lib/factory.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/dev/lib/tools.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/locales/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/locales/currency.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/locales/dist/language/en.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/locales/dist/language/fr.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/locales/dist/region/en.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/locales/dist/region/fr.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/locales/index.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/mime.types +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/model/entity.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/model/index.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/model/template/entityFactory.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/model/template/index.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/index.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/csrf/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/csrf/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/coep/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/coep/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/coop/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/coop/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/corp/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/corp/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/csp/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/csp/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/hsts/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/hsts/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/session/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/session/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/session/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/storage/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/storage/build.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/storage/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/storage/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/validator/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/validator/build.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/validator/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/router.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/server.express.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/status.codes +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/_gitignore +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/config/app.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/config/connectors.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/config/routing.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/config/settings.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/config/templates.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/config/watchers.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/locales/en.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_public/css/default.css +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_public/css/home.css +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_public/js/components/x-checklist.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_public/readme.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_public/sw.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_templates/html/includes/x-checklist.html +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/command/gina.bat.tpl +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/command/gina.tpl +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/conf/env.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/conf/manifest.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/conf/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/conf/statics.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/conf/templates.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/error/client/json/401.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/error/client/json/403.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/error/client/json/404.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/error/server/html/50x.html +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/error/server/json/500.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/error/server/json/503.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/core/template/extensions/logger/config.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/helpers/console.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/helpers/context.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/helpers/data/LICENSE +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/helpers/data/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/helpers/data/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/helpers/data/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/helpers/dateFormat.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/helpers/index.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/helpers/json/LICENSE +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/helpers/json/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/helpers/json/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/helpers/json/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/helpers/path.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/helpers/plugins/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/helpers/plugins/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/helpers/plugins/src/api-error.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/helpers/plugins/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/helpers/prototypes.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/helpers/task.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/helpers/text.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/admin/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/admin/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/archiver/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/archiver/build.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/archiver/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/archiver/src/dep/jszip.min.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/archiver/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/async/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/async/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/audit/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/audit/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/audit-store.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/authn/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/authn/src/lockout.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/authn/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/authn/src/totp.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/authz-gate/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/authz-gate/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cache/build.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cache/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cache/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/aliases.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/audit/arguments.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/audit/help.txt +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/add.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/arguments.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/build.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/copy.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/cp.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/help.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/help.txt +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/list.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/man.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/mcp.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/oas.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/openapi.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/remove.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/rename.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/restart.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/rm.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/start.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/status.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/stop.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/types.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/cache/arguments.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/cache/clear.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/cache/help.txt +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/cache/stats.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/add.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/arguments.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/help.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/infer.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/list.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/migrate.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/models.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/remove.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/rm.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/test.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/container/arguments.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/container/help.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/container/help.txt +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/container/man.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/container/ps.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/container/stop.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/add.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/arguments.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/help.txt +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/inc/args.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/inc/namespace.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/inc/reference-rewrite.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/inc/reference-scan.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/inc/scaffold.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/remove.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/rename.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/rm.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/add.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/get.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/help.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/help.txt +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/link-dev.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/list.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/remove.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/rm.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/set.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/unset.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/use.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/add.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/arguments.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/build.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/dot.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/get.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/help.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/help.txt +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/link-node-modules.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/link.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/list.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/man.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/msg.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/open.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/remove.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/reset.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/restart.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/set.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/start.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/status.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/stop.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/tail.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/update.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/version.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/gina-dev.1.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/gina-framework.1.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/gina.1.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/helper.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/i18n/add.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/i18n/arguments.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/i18n/export.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/i18n/help.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/i18n/help.txt +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/i18n/import.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/i18n/scan.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/image/_host.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/image/arguments.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/image/build.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/image/help.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/image/help.txt +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/image/list.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/image/man.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/image/rm.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/image/run.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/index.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/inspector/help.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/inspector/help.txt +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/inspector/open.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/man-render.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/minion/arguments.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/minion/help.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/minion/help.txt +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/minion/kill.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/minion/list.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/msg.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/port/help.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/port/help.txt +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/port/inc/scan.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/port/list.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/port/reset.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/port/set.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/add.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/arguments.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/backup.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/build.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/help.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/help.txt +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/import.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/list.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/man.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/move.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/remove.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/rename.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/restart.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/restore.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/rm.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/start.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/status.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/stop.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/protocol/arguments.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/protocol/help.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/protocol/help.txt +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/protocol/list.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/protocol/remove.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/protocol/set.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/scope/add.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/scope/help.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/scope/help.txt +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/scope/link-local.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/scope/link-production.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/scope/list.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/scope/remove.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/scope/rm.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/scope/use.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/secrets/arguments.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/secrets/check.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/secrets/help.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/secrets/help.txt +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/secrets/scan.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/service/help.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/service/help.txt +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/service/list.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/service/man.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/service/start.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/view/add.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd-status-format/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cmd-status-format/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/collection/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/collection/build.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/collection/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/collection/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/config.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/connector-config/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/connector-config/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/connector-error/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/connector-error/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/connector-registry/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/connector-registry/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cron/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cron/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/cron/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/domain/LICENSE +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/domain/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/domain/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/domain/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/dto/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/dto-pipe/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/dto-pipe/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/dto-types/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/dto-types/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/generator/index.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/i18n/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/i18n/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/image-build/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/image-build/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/index.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/inherits/LICENSE +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/inherits/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/inherits/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/inherits/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/inspector-events/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/inspector-events/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/inspector-redact/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/inspector-redact/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/instrument/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/instrument/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/job/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/job/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/job-store.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/json-config-header/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/json-config-header/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/logger/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/logger/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/logger/src/containers/default/index.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/logger/src/containers/mq/index.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/logger/src/containers/mq/listener.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/logger/src/helper.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/logger/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/mcp-dispatch/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/mcp-dispatch/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/mcp-http/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/mcp-http/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/mcp-server/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/mcp-server/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/merge/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/merge/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/metrics/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/metrics/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/model.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/net-locality/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/net-locality/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/nunjucks-filters/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/nunjucks-filters/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/nunjucks-filters/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/nunjucks-resolver/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/nunjucks-resolver/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/proc.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/release-watch/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/release-watch/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/render-cache/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/render-cache-store.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/routing/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/routing/build.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/routing/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/routing/src/radix.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/routing-introspect/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/secrets/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/secrets/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/session-store.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/shell.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/sqlite-driver.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/state.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/swig-filters/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/swig-filters/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/swig-filters/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/swig-resolver/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/swig-resolver/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/template-loaders/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/template-loaders/src/loaders/http.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/template-loaders/src/loaders/memory.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/template-loaders/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/url/README.md +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/url/index.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/url/routing.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/uuid/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/uuid/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/validator.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/watcher/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/watcher/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/ws-framing/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/ws-framing/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/ws-query/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/ws-query/src/main.js +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/ws-session/package.json +0 -0
- /package/framework/{v0.6.2 → v0.6.3}/lib/ws-session/src/main.js +0 -0
|
@@ -268,13 +268,205 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
268
268
|
'setCustomRules': setCustomRules
|
|
269
269
|
};
|
|
270
270
|
|
|
271
|
+
/**
|
|
272
|
+
* backendIsPlainObject — plain-data-object test for the #B241 alias walk.
|
|
273
|
+
* Arrays, Date instances and null are LEAF VALUES on the server form-body
|
|
274
|
+
* path (a rule addresses the array/date itself), never containers to
|
|
275
|
+
* descend into.
|
|
276
|
+
*
|
|
277
|
+
* @inner
|
|
278
|
+
* @private
|
|
279
|
+
* @param {*} value
|
|
280
|
+
* @returns {boolean} true for a non-null, non-array, non-Date object
|
|
281
|
+
*/
|
|
282
|
+
var backendIsPlainObject = function (value) {
|
|
283
|
+
return (
|
|
284
|
+
value !== null
|
|
285
|
+
&& typeof(value) == 'object'
|
|
286
|
+
&& !Array.isArray(value)
|
|
287
|
+
&& !(value instanceof Date)
|
|
288
|
+
)
|
|
289
|
+
};
|
|
271
290
|
|
|
272
291
|
/**
|
|
273
|
-
*
|
|
292
|
+
* backendAliasAugment — #B241: synthesize dotted-canon field entries
|
|
293
|
+
* ALONGSIDE the raw posted keys so the per-field rule lookup can join.
|
|
274
294
|
*
|
|
275
|
-
*
|
|
276
|
-
*
|
|
277
|
-
*
|
|
295
|
+
* `parseRules` canonicalizes every rule key to a dotted path (a bracket
|
|
296
|
+
* key `a[b]` becomes `a.b`, a nested rule tree flattens to its dotted
|
|
297
|
+
* leaves) while the fields map keeps the RAW posted keys — so a rule
|
|
298
|
+
* authored on a bracket key, or as a nested tree, never joined on this
|
|
299
|
+
* path and the field was skipped with no warn (fail-open, check AND
|
|
300
|
+
* drop directives alike). Both production wire shapes were affected:
|
|
301
|
+
* flat bracket keys (the client posts the engine's name-keyed data as
|
|
302
|
+
* JSON, which the server parses verbatim) and nested objects (the
|
|
303
|
+
* multipart and urlencoded parsers expand bracket names).
|
|
304
|
+
*
|
|
305
|
+
* The originals are deliberately KEPT in the map: dollar-token
|
|
306
|
+
* substitution reads the raw keys, so cross-field references to
|
|
307
|
+
* bracket-named peers keep resolving exactly as before, and an all-flat
|
|
308
|
+
* payload synthesizes nothing (identity). An alias is only added when
|
|
309
|
+
* its key is still free, so a caller that already posts the dotted form
|
|
310
|
+
* keeps its own entry untouched.
|
|
311
|
+
*
|
|
312
|
+
* @inner
|
|
313
|
+
* @private
|
|
314
|
+
* @param {object} fields - the fields map to augment IN PLACE
|
|
315
|
+
* @param {object} data - the raw posted payload (never mutated)
|
|
316
|
+
* @returns {object} aliases - { count: number, map: { alias: meta } }
|
|
317
|
+
* where meta is { kind: 'bracket', original } or
|
|
318
|
+
* { kind: 'nested', rootKey, path }
|
|
319
|
+
*/
|
|
320
|
+
var backendAliasAugment = function (fields, data) {
|
|
321
|
+
var aliases = { count: 0, map: {} };
|
|
322
|
+
var addNestedLeafAliases = function (rootKey, base, obj, pathSoFar) {
|
|
323
|
+
for (var subKey in obj) {
|
|
324
|
+
var aliasPath = pathSoFar.concat(subKey);
|
|
325
|
+
var subAlias = base + '.' + subKey;
|
|
326
|
+
if ( backendIsPlainObject(obj[subKey]) ) {
|
|
327
|
+
addNestedLeafAliases(rootKey, subAlias, obj[subKey], aliasPath);
|
|
328
|
+
} else if ( typeof(fields[subAlias]) == 'undefined' ) {
|
|
329
|
+
fields[subAlias] = obj[subKey];
|
|
330
|
+
aliases.map[subAlias] = { kind: 'nested', rootKey: rootKey, path: aliasPath };
|
|
331
|
+
++aliases.count;
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
};
|
|
335
|
+
var key = null, alias = null;
|
|
336
|
+
for (key in data) {
|
|
337
|
+
if ( /\[/.test(key) ) {
|
|
338
|
+
alias = key.replace(/\[/g, '.').replace(/\]/g, '');
|
|
339
|
+
if ( typeof(fields[alias]) == 'undefined' ) {
|
|
340
|
+
fields[alias] = data[key];
|
|
341
|
+
aliases.map[alias] = { kind: 'bracket', original: key };
|
|
342
|
+
++aliases.count;
|
|
343
|
+
}
|
|
344
|
+
} else if ( backendIsPlainObject(data[key]) ) {
|
|
345
|
+
addNestedLeafAliases(key, key, data[key], [key]);
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
return aliases;
|
|
349
|
+
};
|
|
350
|
+
|
|
351
|
+
/**
|
|
352
|
+
* backendAliasToBracketName — rebuild the client's DOM-name addressing
|
|
353
|
+
* from a nested alias path (['account','username'] -> account[username]),
|
|
354
|
+
* so restored error keys match what the browser side renders against.
|
|
355
|
+
*
|
|
356
|
+
* @inner
|
|
357
|
+
* @private
|
|
358
|
+
* @param {string} rootKey
|
|
359
|
+
* @param {array} pathArr - path segments, rootKey first
|
|
360
|
+
* @returns {string} the bracket-notation field name
|
|
361
|
+
*/
|
|
362
|
+
var backendAliasToBracketName = function (rootKey, pathArr) {
|
|
363
|
+
var out = rootKey;
|
|
364
|
+
for (var i = 1, len = pathArr.length; i < len; ++i) {
|
|
365
|
+
out += '[' + pathArr[i] + ']';
|
|
366
|
+
}
|
|
367
|
+
return out;
|
|
368
|
+
};
|
|
369
|
+
|
|
370
|
+
/**
|
|
371
|
+
* backendRestoreAliases — #B241 egress: fold every alias outcome back
|
|
372
|
+
* onto the original addressing, so the summary keeps today's contract.
|
|
373
|
+
*
|
|
374
|
+
* Error keys move to the DOM-name bracket form (the addressing the
|
|
375
|
+
* client's error rendering looks up). On `.data` — which the engine has
|
|
376
|
+
* already materialized (bracket originals arrive nested) — the alias
|
|
377
|
+
* flat keys are stripped and their outcomes applied at the original
|
|
378
|
+
* spot: an alias the engine dropped (an `exclude` directive) drops the
|
|
379
|
+
* original leaf too, an alias a transform rewrote wins over the raw
|
|
380
|
+
* value. Parents emptied BY AN EXCLUSION are pruned along that alias's
|
|
381
|
+
* path only — an empty object the caller posted is not this function's
|
|
382
|
+
* to remove.
|
|
383
|
+
*
|
|
384
|
+
* @inner
|
|
385
|
+
* @private
|
|
386
|
+
* @param {object} result - the { isValid, error, data } summary (mutated)
|
|
387
|
+
* @param {object} aliases - backendAliasAugment's return value
|
|
388
|
+
* @returns {object} result
|
|
389
|
+
*/
|
|
390
|
+
var backendRestoreAliases = function (result, aliases) {
|
|
391
|
+
var alias = null, meta = null;
|
|
392
|
+
var errors = {};
|
|
393
|
+
for (alias in (result.error || {})) {
|
|
394
|
+
meta = aliases.map[alias];
|
|
395
|
+
if ( !meta ) {
|
|
396
|
+
errors[alias] = result.error[alias];
|
|
397
|
+
} else if ( meta.kind == 'bracket' ) {
|
|
398
|
+
errors[meta.original] = result.error[alias];
|
|
399
|
+
} else {
|
|
400
|
+
errors[backendAliasToBracketName(meta.rootKey, meta.path)] = result.error[alias];
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
result.error = errors;
|
|
404
|
+
|
|
405
|
+
var data = result.data;
|
|
406
|
+
if ( !data || typeof(data) != 'object' ) {
|
|
407
|
+
return result;
|
|
408
|
+
}
|
|
409
|
+
for (alias in aliases.map) {
|
|
410
|
+
meta = aliases.map[alias];
|
|
411
|
+
var aliasKept = Object.prototype.hasOwnProperty.call(data, alias);
|
|
412
|
+
var aliasValue = aliasKept ? data[alias] : undefined;
|
|
413
|
+
delete data[alias];
|
|
414
|
+
|
|
415
|
+
var segments = ( meta.kind == 'bracket' )
|
|
416
|
+
? meta.original.replace(/\]/g, '').split(/\[/g)
|
|
417
|
+
: meta.path;
|
|
418
|
+
var sLen = segments.length - 1;
|
|
419
|
+
var parent = data, s = 0;
|
|
420
|
+
for (; s < sLen && parent; ++s) {
|
|
421
|
+
parent = parent[ segments[s] ];
|
|
422
|
+
}
|
|
423
|
+
if ( !parent || typeof(parent) != 'object' ) {
|
|
424
|
+
continue;
|
|
425
|
+
}
|
|
426
|
+
if ( !aliasKept ) {
|
|
427
|
+
delete parent[ segments[sLen] ];
|
|
428
|
+
// walk back up THIS path only, dropping parents the exclusion emptied
|
|
429
|
+
for (var back = sLen - 1; back >= 0; --back) {
|
|
430
|
+
var holder = data, b = 0;
|
|
431
|
+
for (; b < back && holder; ++b) {
|
|
432
|
+
holder = holder[ segments[b] ];
|
|
433
|
+
}
|
|
434
|
+
if (
|
|
435
|
+
holder
|
|
436
|
+
&& backendIsPlainObject(holder[ segments[back] ])
|
|
437
|
+
&& Object.keys(holder[ segments[back] ]).length === 0
|
|
438
|
+
) {
|
|
439
|
+
delete holder[ segments[back] ];
|
|
440
|
+
} else {
|
|
441
|
+
break;
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
} else {
|
|
445
|
+
parent[ segments[sLen] ] = aliasValue;
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
return result;
|
|
449
|
+
};
|
|
450
|
+
|
|
451
|
+
/**
|
|
452
|
+
* Backend init — the server half of form-body validation.
|
|
453
|
+
*
|
|
454
|
+
* Builds the fields map from the posted payload, parses the rule set
|
|
455
|
+
* into the dotted canon, and runs the engine. #B241: bracket-notation
|
|
456
|
+
* and nested-authored rule keys join through synthesized dotted aliases
|
|
457
|
+
* (see backendAliasAugment above); verdict keys and the data egress are
|
|
458
|
+
* restored to the original addressing before returning. The no-rules
|
|
459
|
+
* branch is untouched and keeps returning the payload verbatim.
|
|
460
|
+
*
|
|
461
|
+
* @inner
|
|
462
|
+
* @private
|
|
463
|
+
* @param {object} rules - the form's rule set (authored keys)
|
|
464
|
+
* @param {object} data - the posted payload
|
|
465
|
+
* @param {string} [formId]
|
|
466
|
+
* @param {string} [culture]
|
|
467
|
+
* @returns {object} the { isValid, error, data } summary, or a bare
|
|
468
|
+
* FormValidator instance on the no-rules branch
|
|
469
|
+
*/
|
|
278
470
|
var backendInit = function (rules, data, formId, culture) {
|
|
279
471
|
|
|
280
472
|
var $form = ( typeof(formId) != 'undefined' ) ? { 'id': formId } : null;
|
|
@@ -288,6 +480,9 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
288
480
|
// parsing rules
|
|
289
481
|
if ( typeof(rules) != 'undefined' && rules.count() > 0 ) {
|
|
290
482
|
|
|
483
|
+
// #B241 — join bracket/nested rule keys through dotted aliases
|
|
484
|
+
var backendAliases = backendAliasAugment(fields, data);
|
|
485
|
+
|
|
291
486
|
try {
|
|
292
487
|
parseRules(rules, '');
|
|
293
488
|
rules = checkForRulesImports(rules);
|
|
@@ -297,7 +492,16 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
297
492
|
|
|
298
493
|
backendProto.rules = instance.rules;
|
|
299
494
|
|
|
300
|
-
|
|
495
|
+
var backendResult = validate($form, fields, null, instance.rules, null, culture);
|
|
496
|
+
if (
|
|
497
|
+
backendAliases.count > 0
|
|
498
|
+
&& backendResult
|
|
499
|
+
&& typeof(backendResult.isValid) == 'function'
|
|
500
|
+
&& typeof(backendResult.error) != 'undefined'
|
|
501
|
+
) {
|
|
502
|
+
backendRestoreAliases(backendResult, backendAliases);
|
|
503
|
+
}
|
|
504
|
+
return backendResult;
|
|
301
505
|
|
|
302
506
|
} else {
|
|
303
507
|
// without rules - by hand
|
|
@@ -4238,6 +4442,25 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
4238
4442
|
Object.defineProperty($el, 'value', descriptor);
|
|
4239
4443
|
}
|
|
4240
4444
|
|
|
4445
|
+
/**
|
|
4446
|
+
* addLiveForInput
|
|
4447
|
+
* Wires one form control for live checking: registers the gina event
|
|
4448
|
+
* name(s) the control's validation handler consumes, plus the handler
|
|
4449
|
+
* itself (field pass + whole-form silent pass -> updateSubmitTriggerState).
|
|
4450
|
+
* Text-like controls register change./keyup./focusin./focusout.<id>;
|
|
4451
|
+
* radios and checkboxes register changed.<id> (dispatched by their
|
|
4452
|
+
* update relays); a radio ALSO registers change.<id> (#B228) because the
|
|
4453
|
+
* form-level change proxy is the only dispatcher that fires on a user
|
|
4454
|
+
* pick and it only dispatches names that are registered.
|
|
4455
|
+
*
|
|
4456
|
+
* @inner
|
|
4457
|
+
* @param {object} $form - form instance record (`instance.$forms[id]` shape: `.rules`, `.target`)
|
|
4458
|
+
* @param {object} $el - control to wire (DOMObject)
|
|
4459
|
+
* @param {number} liveCheckTimer - shared debounce timer handle
|
|
4460
|
+
* @param {boolean} [isOtherTagAllowed=false] - admit non-input/textarea tags (selects, FACEs)
|
|
4461
|
+
*
|
|
4462
|
+
* @returns {undefined}
|
|
4463
|
+
* */
|
|
4241
4464
|
var addLiveForInput = function($form, $el, liveCheckTimer, isOtherTagAllowed) {
|
|
4242
4465
|
|
|
4243
4466
|
if (typeof(isOtherTagAllowed) == 'undefined' ) {
|
|
@@ -4310,6 +4533,23 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
4310
4533
|
eventsList[_e] = _evt;
|
|
4311
4534
|
++_e;
|
|
4312
4535
|
}
|
|
4536
|
+
// #B228 -- a RADIO also listens on the proxy-dispatched name: the
|
|
4537
|
+
// form-level change proxy dispatches `change.<id>` only when that
|
|
4538
|
+
// exact name is registered, and nothing else fires on a user pick
|
|
4539
|
+
// (the click proxy short-circuits into updateRadio, which never
|
|
4540
|
+
// dispatches; the bare-id relay has no live trigger) -- so the
|
|
4541
|
+
// `changed.<id>` registration above was consume-only dead wiring
|
|
4542
|
+
// on the pick path and the submit trigger kept its bind-time
|
|
4543
|
+
// state forever. The handler's radio arm has accepted
|
|
4544
|
+
// `change.`-typed events all along; checkboxes stay on their
|
|
4545
|
+
// working relay (change proxy -> updateCheckBox -> `changed.<id>`).
|
|
4546
|
+
if ( /^radio$/i.test($el.type) ) {
|
|
4547
|
+
_evt = 'change.'+$el.id;
|
|
4548
|
+
if ( typeof(gina.events[_evt]) == 'undefined' ) {
|
|
4549
|
+
eventsList[_e] = _evt;
|
|
4550
|
+
++_e;
|
|
4551
|
+
}
|
|
4552
|
+
}
|
|
4313
4553
|
}
|
|
4314
4554
|
|
|
4315
4555
|
if (eventsList.length > 0) {
|
|
@@ -7210,6 +7450,20 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
7210
7450
|
$form.send(result['data']);
|
|
7211
7451
|
}
|
|
7212
7452
|
} else {
|
|
7453
|
+
// #B192 — release the submit latch. A rejected submit sends nothing, so it
|
|
7454
|
+
// never reaches the XHR settle (`xhr.onreadystatechange`), which was the only
|
|
7455
|
+
// other site clearing `isSubmitting`. Left latched, the live-check field
|
|
7456
|
+
// listener hard-returns on every subsequent keystroke, `updateSubmitTriggerState`
|
|
7457
|
+
// never runs again and the submit trigger keeps `aria-disabled="true"` +
|
|
7458
|
+
// `gina-form-submit-disabled` until the page is reloaded — and because the flag
|
|
7459
|
+
// lives on the `$forms[id]` object rather than a listener closure, it survives a
|
|
7460
|
+
// full unbind/rebind too. This branch IS the terminal no-send outcome; the valid
|
|
7461
|
+
// branch above deliberately keeps the latch until send() settles, which is what
|
|
7462
|
+
// keeps live-check quiet during a real in-flight submit.
|
|
7463
|
+
if ( instance.$forms[_id] ) {
|
|
7464
|
+
instance.$forms[_id].isSubmitting = false;
|
|
7465
|
+
}
|
|
7466
|
+
|
|
7213
7467
|
// #A11Y1 (slice 3) — failed submit: move focus to the first invalid field so
|
|
7214
7468
|
// assistive tech announces it (accessible name + aria-invalid + the
|
|
7215
7469
|
// aria-errormessage text). DOM order; hidden / unfocusable fields are skipped.
|
|
@@ -7499,6 +7753,18 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
7499
7753
|
&& !/^(true|false)$/.test($target[i].value)
|
|
7500
7754
|
) {
|
|
7501
7755
|
fields[name] = false;
|
|
7756
|
+
} else if ( // #B221: same collection arm as getFormValidationInfos --
|
|
7757
|
+
// an unchecked non-boolean radio group with a truthy isRequired
|
|
7758
|
+
// is collected as an empty value so the submit-path validation
|
|
7759
|
+
// can adjudicate it (see the twin arm there for the rationale).
|
|
7760
|
+
$target[i].type == 'radio'
|
|
7761
|
+
&& rules
|
|
7762
|
+
&& typeof(rules[name]) != 'undefined'
|
|
7763
|
+
&& /^true$/i.test(rules[name].isRequired)
|
|
7764
|
+
&& typeof(rules[name].isBoolean) == 'undefined'
|
|
7765
|
+
&& typeof(fields[name]) == 'undefined'
|
|
7766
|
+
) {
|
|
7767
|
+
fields[name] = '';
|
|
7502
7768
|
}
|
|
7503
7769
|
|
|
7504
7770
|
} else {
|
|
@@ -7655,8 +7921,17 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
7655
7921
|
/**
|
|
7656
7922
|
* getFormValidationInfos
|
|
7657
7923
|
*
|
|
7924
|
+
* Collects a form's named, non-disabled controls into a name->value map
|
|
7925
|
+
* (`fields`) plus a name->DOM-handle map (`$fields`). Radio groups: a
|
|
7926
|
+
* checked member's value is collected by the boolean/legacy arms; an
|
|
7927
|
+
* unchecked non-boolean group whose rule declares a truthy `isRequired`
|
|
7928
|
+
* is collected as an empty string (#B221) so the rule engine can
|
|
7929
|
+
* adjudicate it; any other unchecked group stays absent (native parity;
|
|
7930
|
+
* boolean-declared groups are owned by the force-false arm).
|
|
7931
|
+
*
|
|
7658
7932
|
* @param {object} $form - form target (DOMObject), not the instance
|
|
7659
7933
|
* @param {object} [rules]
|
|
7934
|
+
* @param {boolean} [isOnResetMode=false] - resets hidden/text values to their defaults while walking
|
|
7660
7935
|
*
|
|
7661
7936
|
* @returns {object} { .fields, .$fields, .rules }
|
|
7662
7937
|
*/
|
|
@@ -7812,6 +8087,28 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
7812
8087
|
|
|
7813
8088
|
) {
|
|
7814
8089
|
fields[name] = false;
|
|
8090
|
+
} else if ( // #B221: an unchecked non-boolean radio group with a
|
|
8091
|
+
// declared truthy isRequired never entered `fields`, so no
|
|
8092
|
+
// rule (isRequired above all) could adjudicate it -- and a
|
|
8093
|
+
// radio-group-only form short-circuited the whole pass
|
|
8094
|
+
// (fields count == 0 reads as nothing-to-validate). Collect
|
|
8095
|
+
// it as an empty value so the engine's generic emptiness
|
|
8096
|
+
// test fires. A checked member is always collected by the
|
|
8097
|
+
// arms above; the already-collected guard keeps this arm
|
|
8098
|
+
// from resetting it when an unchecked member iterates after
|
|
8099
|
+
// the checked one. Groups with no rule, isRequired:false,
|
|
8100
|
+
// or an isBoolean declaration keep the legacy
|
|
8101
|
+
// absent-when-unchecked shape (boolean groups are owned by
|
|
8102
|
+
// the force-false arm above; optional groups bypass on
|
|
8103
|
+
// empty anyway, so their wire shape stays byte-identical).
|
|
8104
|
+
$form[i].type == 'radio'
|
|
8105
|
+
&& rules
|
|
8106
|
+
&& typeof(rules[name]) != 'undefined'
|
|
8107
|
+
&& /^true$/i.test(rules[name].isRequired)
|
|
8108
|
+
&& typeof(rules[name].isBoolean) == 'undefined'
|
|
8109
|
+
&& typeof(fields[name]) == 'undefined'
|
|
8110
|
+
) {
|
|
8111
|
+
fields[name] = '';
|
|
7815
8112
|
}
|
|
7816
8113
|
|
|
7817
8114
|
} else {
|
|
@@ -7835,6 +8132,26 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
7835
8132
|
}
|
|
7836
8133
|
}
|
|
7837
8134
|
|
|
8135
|
+
/**
|
|
8136
|
+
* getCastedValue
|
|
8137
|
+
* Returns the value to use for `fieldName` — raw for the engine to
|
|
8138
|
+
* adjudicate, or cast/quoted for dynamised-rules substitution.
|
|
8139
|
+
*
|
|
8140
|
+
* Plain mode (`formatFields`): numeric-rule comma normalisation only;
|
|
8141
|
+
* real booleans pass through as-is and every other value stays RAW — the
|
|
8142
|
+
* engine's own rules cast on acceptance (#B236).
|
|
8143
|
+
* Dynamised mode (`getDynamisedRules`): values are spliced into a
|
|
8144
|
+
* stringified condition, so a boolean-ruled field casts to an unquoted
|
|
8145
|
+
* boolean operand, an empty value becomes a quoted empty string, and
|
|
8146
|
+
* other strings are quoted.
|
|
8147
|
+
*
|
|
8148
|
+
* @inner
|
|
8149
|
+
* @param {object} ruleObj - parsed rules (quoted booleans unquoted)
|
|
8150
|
+
* @param {object} fields - collected field values (MUTATED: comma normalisation)
|
|
8151
|
+
* @param {string} fieldName
|
|
8152
|
+
* @param {boolean|string} [isOnDynamisedRulesMode] - truthy/`'true'` in dynamised mode
|
|
8153
|
+
* @returns {*} the raw, cast, or quoted value
|
|
8154
|
+
*/
|
|
7838
8155
|
var getCastedValue = function(ruleObj, fields, fieldName, isOnDynamisedRulesMode) {
|
|
7839
8156
|
|
|
7840
8157
|
var isOnDynamisedRules = (
|
|
@@ -7879,7 +8196,16 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
7879
8196
|
|
|
7880
8197
|
if ( typeof(fields[fieldName]) == 'boolean') {
|
|
7881
8198
|
return fields[fieldName]
|
|
7882
|
-
|
|
8199
|
+
// #B236 — the boolean pre-cast survives ONLY in dynamised-rules mode, where a
|
|
8200
|
+
// referenced isBoolean field must splice into a stringified condition as an
|
|
8201
|
+
// unquoted boolean operand (`$flag === true`). On the PLAIN pass it funneled
|
|
8202
|
+
// every value not matching the case-insensitive literal `true` to `false`
|
|
8203
|
+
// BEFORE the engine ran, so junk (and the HTML checkbox default `on`, and
|
|
8204
|
+
// the number 1) validated clean and persisted as `false` on the server auto
|
|
8205
|
+
// path. The engine is the single adjudicator now — the same contract the
|
|
8206
|
+
// routing requirements surface always enforced.
|
|
8207
|
+
// was: `} else if (ruleObj[fieldName].isBoolean) {`
|
|
8208
|
+
} else if (isOnDynamisedRules && ruleObj[fieldName].isBoolean) {
|
|
7883
8209
|
return (/^true$/i.test(fields[fieldName])) ? true : false;
|
|
7884
8210
|
}
|
|
7885
8211
|
|
|
@@ -7951,7 +8277,18 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
7951
8277
|
|
|
7952
8278
|
stringifiedRules = stringifiedRules.replace(re, fieldValue );
|
|
7953
8279
|
}
|
|
7954
|
-
|
|
8280
|
+
// #B234 — this second loop is a DOM FALLBACK: it re-derives each splice
|
|
8281
|
+
// value from the live element (`$fields[...].value` / `.checked`), and
|
|
8282
|
+
// the server auto path (`backendInit`) passes `$fields = null`, so ANY
|
|
8283
|
+
// `$` surviving loop 1 threw here — a regex end-anchor in an `is`
|
|
8284
|
+
// condition, or a `$` inside a human-readable message string. Loop 1
|
|
8285
|
+
// already replaces every KNOWN field's token, so what reaches loop 2 is
|
|
8286
|
+
// a leftover it structurally cannot match anyway: skipping when there is
|
|
8287
|
+
// no DOM matches what the client does when this re-scan no-ops, and
|
|
8288
|
+
// leaves every previously-working substitution byte-identical. Same
|
|
8289
|
+
// `$fields &&` guard shape as the #B127 precedent one function later.
|
|
8290
|
+
// was: `if ( /\$(.*)/.test(stringifiedRules) ) {`
|
|
8291
|
+
if ( $fields && /\$(.*)/.test(stringifiedRules) ) {
|
|
7955
8292
|
for (let i = 0, len = arrFields.length; i < len; i++) {
|
|
7956
8293
|
_field = arrFields[i].replace(/\-|\_|\@|\#|\.|\[|\]/g, '\\$&');
|
|
7957
8294
|
re = new RegExp('\\$'+_field, 'g');
|
|
@@ -8016,6 +8353,24 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
8016
8353
|
|
|
8017
8354
|
|
|
8018
8355
|
var re = null, flags = null, args = null;
|
|
8356
|
+
/**
|
|
8357
|
+
* Apply every rule declared for one field to the FormValidator instance `d`.
|
|
8358
|
+
*
|
|
8359
|
+
* Array-form rules (`isInList: [...]`) get their FIRST argument scanned for
|
|
8360
|
+
* `$`-prefixed tokens; a token resolving to a real field (a `d` key with a
|
|
8361
|
+
* defined `.value`) is substituted with that value, anything else stays
|
|
8362
|
+
* LITERAL (#B239 — the blind deref crashed on unknown names and spliced
|
|
8363
|
+
* "undefined" on engine-method-name collisions). Later elements are never
|
|
8364
|
+
* scanned. Cross-field refs inside array rules are consumed upstream by
|
|
8365
|
+
* getDynamisedRules loop 1 (quoted — #B240), so in practice only leftover
|
|
8366
|
+
* non-field tokens reach the scan here.
|
|
8367
|
+
*
|
|
8368
|
+
* @inner
|
|
8369
|
+
* @param {string} field - field name (key into `rules`, `fields` and `d`)
|
|
8370
|
+
* @param {object} rules - parsed rule set for the whole form
|
|
8371
|
+
* @param {object} fields - collected field values
|
|
8372
|
+
* @returns {void} verdicts land on `d[field]` / `d.error`
|
|
8373
|
+
*/
|
|
8019
8374
|
var checkFieldAgainstRules = function(field, rules, fields) {
|
|
8020
8375
|
// ignore field if used as a _case_field
|
|
8021
8376
|
|
|
@@ -8114,7 +8469,25 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
8114
8469
|
if ( /\$[\-\w\[\]]*/.test(args[0]) ) {
|
|
8115
8470
|
var foundVariables = args[0].match(/\$[\-\w\[\]]*/g);
|
|
8116
8471
|
for (var v = 0, vLen = foundVariables.length; v < vLen; ++v) {
|
|
8117
|
-
|
|
8472
|
+
// #B239 — the deref used to be blind, throwing
|
|
8473
|
+
// `TypeError: Cannot read properties of undefined` on
|
|
8474
|
+
// BOTH paths for any token naming no field (`d` is the
|
|
8475
|
+
// FormValidator field map on the client AND the server),
|
|
8476
|
+
// and splicing the string "undefined" for a token whose
|
|
8477
|
+
// name collides with an engine METHOD (isValid, toData —
|
|
8478
|
+
// defined keys with no `.value`). A token that does not
|
|
8479
|
+
// resolve to a real field now stays LITERAL, so strict
|
|
8480
|
+
// comparison applies. Cross-field refs inside array
|
|
8481
|
+
// rules remain owned by #B240 (upstream loop-1 quoting).
|
|
8482
|
+
// was: args[0] = args[0].replace( foundVariables[v], d[foundVariables[v].replace('$', '')].value )
|
|
8483
|
+
var _refName = foundVariables[v].replace('$', '');
|
|
8484
|
+
if (
|
|
8485
|
+
typeof(d[_refName]) == 'undefined'
|
|
8486
|
+
|| typeof(d[_refName].value) == 'undefined'
|
|
8487
|
+
) {
|
|
8488
|
+
continue;
|
|
8489
|
+
}
|
|
8490
|
+
args[0] = args[0].replace( foundVariables[v], d[_refName].value );
|
|
8118
8491
|
}
|
|
8119
8492
|
}
|
|
8120
8493
|
d[field][rule].apply(d[field], args);
|
|
@@ -8333,6 +8706,8 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
8333
8706
|
var localRules = null, caseName = null;
|
|
8334
8707
|
var localRuleObj = null, skipTest = null;
|
|
8335
8708
|
var localFieldType = null;
|
|
8709
|
+
var caseValueBackup = null; // #B229 — see the `caseName == field` arm below
|
|
8710
|
+
var baseValueBackup = null; // #B230 — see the base-rule restore below
|
|
8336
8711
|
|
|
8337
8712
|
//console.debug('parsing ', fields, $fields, rules);
|
|
8338
8713
|
if ( typeof(rules) != 'undefined' ) {
|
|
@@ -8717,13 +9092,80 @@ function ValidatorPlugin(rules, data, formId, culture) {
|
|
|
8717
9092
|
}
|
|
8718
9093
|
}
|
|
8719
9094
|
|
|
8720
|
-
if (isInCase
|
|
9095
|
+
if (isInCase) continue;
|
|
9096
|
+
|
|
9097
|
+
// #B229 — a field that DRIVES a `_case_` still owns its BASE
|
|
9098
|
+
// rules. `caseName` is assigned inside the `_case_` scan loop
|
|
9099
|
+
// above, which runs in full on EVERY field iteration, so at this
|
|
9100
|
+
// point it always holds the LAST scanned `_case_` key's driver
|
|
9101
|
+
// name. The old combined tail therefore skipped the whole rest of
|
|
9102
|
+
// the iteration for that driver — base-rule check included — so a
|
|
9103
|
+
// rule shape { "group": { "isRequired": true }, "_case_group": {…} }
|
|
9104
|
+
// never adjudicated `group` on the bind pass, the live-check
|
|
9105
|
+
// global pass OR the submit pass: the form never gated and an
|
|
9106
|
+
// empty submit went out unvalidated (the #B221 silent-submit
|
|
9107
|
+
// class, resurfacing for the self-driving shape — downstream of
|
|
9108
|
+
// #B221's collection fix, which already admits the group as '').
|
|
9109
|
+
// The driver's `allFields` entry is restored around the call:
|
|
9110
|
+
// checkFieldAgainstRules ends every applied rule with
|
|
9111
|
+
// `delete fields[field]` on the object it is handed, and
|
|
9112
|
+
// `allFields[caseName]` is the case VALUE the scan block re-reads
|
|
9113
|
+
// on every later field iteration — a deleted entry re-seeds from
|
|
9114
|
+
// `$allFields[name].value`, which for a radio group is the FIRST
|
|
9115
|
+
// member's value regardless of `.checked` (#B230, pre-existing).
|
|
9116
|
+
// The direct-case block below stays skipped for the driver, so
|
|
9117
|
+
// WHICH conditions apply is unchanged (measured: that block is
|
|
9118
|
+
// never entered for a self-driving case, pre-fix or post-fix).
|
|
9119
|
+
// was:
|
|
9120
|
+
// if (isInCase || caseName == field) continue;
|
|
9121
|
+
if ( caseName == field ) {
|
|
9122
|
+
if ( typeof(rules[field]) != 'undefined' ) {
|
|
9123
|
+
caseValueBackup = allFields[field];
|
|
9124
|
+
checkFieldAgainstRules(field, rules, allFields);
|
|
9125
|
+
if (
|
|
9126
|
+
typeof(allFields[field]) == 'undefined'
|
|
9127
|
+
&& typeof(caseValueBackup) != 'undefined'
|
|
9128
|
+
) {
|
|
9129
|
+
allFields[field] = caseValueBackup;
|
|
9130
|
+
}
|
|
9131
|
+
}
|
|
9132
|
+
continue;
|
|
9133
|
+
}
|
|
8721
9134
|
|
|
9135
|
+
// #B230 — a `_case_` driver's entry in `allFields` IS the case
|
|
9136
|
+
// VALUE every later reader consumes: the scan block above
|
|
9137
|
+
// re-reads it on every subsequent field iteration (a missing
|
|
9138
|
+
// entry re-seeds from `$allFields[name].value` — a radio
|
|
9139
|
+
// group's FIRST member regardless of `.checked`), and the
|
|
9140
|
+
// direct-case block below reads it in THIS iteration. Site
|
|
9141
|
+
// 3/3's adjudication deletes it (checkFieldAgainstRules ends
|
|
9142
|
+
// every applied rule with `delete fields[field]` on the
|
|
9143
|
+
// object it is handed), so a non-last driver's conditions
|
|
9144
|
+
// matched a value the user never picked on later scans and
|
|
9145
|
+
// matched nothing (`undefined`) in its own direct-case pass.
|
|
9146
|
+
// Back the entry up and restore it after the check — gated
|
|
9147
|
+
// on the field driving a `_case_` in the live `rules` OR in
|
|
9148
|
+
// the pass-entry clone `allRules`: inside a direct-case
|
|
9149
|
+
// recursion `rules` is the condition's own rule set (no
|
|
9150
|
+
// `_case_` keys), so `hasCase` alone is blind there
|
|
9151
|
+
// (measured — the union is load-bearing). Non-driver fields
|
|
9152
|
+
// keep the delete untouched: the pull-in gate, the
|
|
9153
|
+
// direct-case exclude injection and the async-`query`
|
|
9154
|
+
// re-validation input all read those absences today.
|
|
9155
|
+
baseValueBackup = allFields[field];
|
|
8722
9156
|
// check each field against rule only if rule exists 3/3
|
|
8723
9157
|
if ( typeof(rules[field]) != 'undefined' ) {
|
|
8724
9158
|
//checkFieldAgainstRules(field, rules, fields);
|
|
8725
9159
|
checkFieldAgainstRules(field, rules, allFields);
|
|
8726
9160
|
}
|
|
9161
|
+
// #B230 restore — see the block comment above
|
|
9162
|
+
if (
|
|
9163
|
+
( hasCase || typeof(allRules['_case_' + field]) != 'undefined' )
|
|
9164
|
+
&& typeof(baseValueBackup) != 'undefined'
|
|
9165
|
+
&& typeof(allFields[field]) == 'undefined'
|
|
9166
|
+
) {
|
|
9167
|
+
allFields[field] = baseValueBackup;
|
|
9168
|
+
}
|
|
8727
9169
|
|
|
8728
9170
|
if (hasCase) {
|
|
8729
9171
|
++i; // add sub level
|