gina 0.3.13-alpha.1 → 0.3.13-alpha.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/.playwright-mcp/console-2026-05-13T00-40-40-225Z.log +2 -0
- package/.playwright-mcp/page-2026-05-13T00-40-40-476Z.yml +7 -0
- package/CHANGELOG.md +17 -0
- package/ROADMAP.md +12 -2
- package/framework/v0.3.13-alpha.3/VERSION +1 -0
- package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/asset/plugin/dist/vendor/gina/js/gina.js +89 -41
- package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/asset/plugin/dist/vendor/gina/js/gina.min.js +47 -46
- package/framework/v0.3.13-alpha.3/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/v0.3.13-alpha.3/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/config.js +13 -0
- package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/controller/controller.render-nunjucks.js +13 -1
- package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/plugins/lib/csrf/src/main.js +32 -9
- package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/plugins/lib/validator/src/form-validator.js +11 -1
- package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/plugins/lib/validator/src/main.js +72 -37
- package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/boilerplate/bundle/index.js +14 -4
- package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/conf/settings.json +8 -3
- package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/helpers/json/src/main.js +38 -22
- package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/bundle/mcp-start.js +18 -2
- package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/index.js +5 -0
- package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/logger/src/containers/file/index.js +1 -4
- package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/logger/src/containers/mq/index.js +1 -4
- package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/logger/src/main.js +1 -4
- package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/merge/src/main.js +2 -1
- package/framework/v0.3.13-alpha.3/lib/secrets/package.json +17 -0
- package/framework/v0.3.13-alpha.3/lib/secrets/src/backends/env.js +60 -0
- package/framework/v0.3.13-alpha.3/lib/secrets/src/main.js +200 -0
- package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/package.json +1 -1
- package/gna.js +4 -4
- package/llms.txt +6 -0
- package/package.json +2 -2
- package/framework/v0.3.13-alpha.1/VERSION +0 -1
- package/framework/v0.3.13-alpha.1/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/v0.3.13-alpha.1/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/AUTHORS +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/LICENSE +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/asset/html/nolayout.html +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/asset/html/static.html +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/asset/img/android-chrome-192x192.png +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/asset/img/android-chrome-512x512.png +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/asset/img/apple-touch-icon.png +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/asset/img/favicon-16x16.png +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/asset/img/favicon-32x32.png +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/asset/img/favicon.ico +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/asset/plugin/README.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/connectors/ai/index.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/connectors/ai/lib/connector.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/connectors/couchbase/index.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/connectors/couchbase/lib/connector.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/connectors/couchbase/lib/connector.v2.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/connectors/couchbase/lib/connector.v3.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/connectors/couchbase/lib/connector.v4.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/connectors/couchbase/lib/n1ql.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/connectors/couchbase/lib/session-store.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/connectors/couchbase/lib/session-store.v2.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/connectors/mongodb/index.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/connectors/mongodb/lib/connector.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/connectors/mongodb/lib/session-store.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/connectors/mysql/index.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/connectors/mysql/lib/connector.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/connectors/postgresql/index.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/connectors/postgresql/lib/connector.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/connectors/redis/index.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/connectors/redis/lib/session-store.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/connectors/scylladb/index.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/connectors/scylladb/lib/connector.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/connectors/scylladb/lib/session-store.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/connectors/sql-parser.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/connectors/sqlite/index.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/connectors/sqlite/lib/connector.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/connectors/sqlite/lib/session-store.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/content.encoding +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/controller/controller.framework.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/controller/controller.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/controller/controller.render-json.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/controller/controller.render-stream.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/controller/controller.render-swig.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/controller/controller.render-v1.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/controller/index.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/deps/busboy-1.6.0/LICENSE +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/deps/busboy-1.6.0/README.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/deps/busboy-1.6.0/lib/index.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/deps/busboy-1.6.0/lib/types/multipart.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/deps/busboy-1.6.0/lib/types/urlencoded.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/deps/busboy-1.6.0/lib/utils.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/deps/busboy-1.6.0/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/deps/streamsearch-1.1.0/LICENSE +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/deps/streamsearch-1.1.0/lib/sbmh.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/deps/streamsearch-1.1.0/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/dev/index.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/dev/lib/class.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/dev/lib/factory.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/dev/lib/tools.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/gna.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/locales/README.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/locales/currency.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/locales/dist/language/en.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/locales/dist/language/fr.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/locales/dist/region/en.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/locales/dist/region/fr.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/locales/index.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/mime.types +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/model/entity.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/model/index.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/model/template/entityFactory.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/model/template/index.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/plugins/README.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/plugins/index.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/plugins/lib/csrf/README.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/plugins/lib/csrf/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/plugins/lib/file/README.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/plugins/lib/file/build.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/plugins/lib/file/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/plugins/lib/intl/README.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/plugins/lib/intl/build.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/plugins/lib/intl/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/plugins/lib/intl/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/plugins/lib/session/README.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/plugins/lib/session/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/plugins/lib/session/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/plugins/lib/storage/README.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/plugins/lib/storage/build.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/plugins/lib/storage/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/plugins/lib/storage/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/plugins/lib/validator/README.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/plugins/lib/validator/build.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/plugins/lib/validator/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/router.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/server.express.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/server.isaac.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/server.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/status.codes +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/_gitignore +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/boilerplate/bundle/config/app.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/boilerplate/bundle/config/connectors.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/boilerplate/bundle/config/routing.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/boilerplate/bundle/config/settings.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/boilerplate/bundle/config/templates.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/boilerplate/bundle/config/watchers.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/boilerplate/bundle/locales/en.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/boilerplate/bundle_public/css/default.css +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/boilerplate/bundle_public/css/home.css +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/boilerplate/bundle_public/readme.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/command/gina.bat.tpl +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/command/gina.tpl +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/conf/env.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/conf/manifest.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/conf/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/conf/statics.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/conf/templates.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/error/client/json/401.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/error/client/json/403.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/error/client/json/404.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/error/server/html/50x.html +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/error/server/json/500.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/error/server/json/503.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/template/extensions/logger/config.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/helpers/console.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/helpers/context.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/helpers/data/LICENSE +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/helpers/data/README.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/helpers/data/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/helpers/data/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/helpers/dateFormat.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/helpers/index.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/helpers/json/LICENSE +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/helpers/json/README.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/helpers/json/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/helpers/path.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/helpers/plugins/README.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/helpers/plugins/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/helpers/plugins/src/api-error.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/helpers/plugins/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/helpers/prototypes.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/helpers/task.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/helpers/text.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/archiver/README.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/archiver/build.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/archiver/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/archiver/src/dep/jszip.min.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/archiver/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/async/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/async/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cache/README.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cache/build.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cache/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cache/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/aliases.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/bundle/add.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/bundle/arguments.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/bundle/build.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/bundle/copy.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/bundle/cp.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/bundle/help.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/bundle/help.txt +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/bundle/list.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/bundle/mcp.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/bundle/oas.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/bundle/openapi.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/bundle/remove.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/bundle/rename.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/bundle/restart.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/bundle/rm.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/bundle/start.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/bundle/status.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/bundle/stop.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/cache/stats.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/connector/add.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/connector/arguments.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/connector/help.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/connector/help.txt +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/connector/list.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/connector/migrate.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/connector/remove.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/connector/rm.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/env/add.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/env/get.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/env/help.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/env/help.txt +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/env/link-dev.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/env/list.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/env/remove.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/env/rm.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/env/set.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/env/unset.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/env/use.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/framework/arguments.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/framework/build.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/framework/dot.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/framework/get.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/framework/help.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/framework/help.txt +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/framework/init.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/framework/link-node-modules.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/framework/link.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/framework/msg.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/framework/open.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/framework/restart.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/framework/set.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/framework/start.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/framework/status.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/framework/stop.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/framework/tail.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/framework/update.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/framework/version.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/gina-dev.1.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/gina-framework.1.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/gina.1.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/helper.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/i18n/add.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/i18n/arguments.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/i18n/export.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/i18n/help.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/i18n/help.txt +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/i18n/import.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/i18n/scan.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/index.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/inspector/help.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/inspector/help.txt +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/inspector/open.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/minion/help.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/minion/help.txt +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/msg.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/port/help.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/port/help.txt +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/port/inc/scan.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/port/list.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/port/reset.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/port/set.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/project/add.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/project/arguments.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/project/build.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/project/help.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/project/help.txt +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/project/import.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/project/list.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/project/move.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/project/remove.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/project/rename.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/project/restart.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/project/rm.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/project/start.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/project/status.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/project/stop.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/protocol/help.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/protocol/help.txt +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/protocol/list.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/protocol/set.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/scope/add.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/scope/help.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/scope/help.txt +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/scope/link-local.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/scope/link-production.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/scope/list.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/scope/remove.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/scope/rm.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/scope/use.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/service/help.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/service/help.txt +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/service/list.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cmd/view/add.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/collection/README.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/collection/build.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/collection/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/collection/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/config.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/connector-registry/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/connector-registry/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cron/README.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cron/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/cron/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/domain/LICENSE +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/domain/README.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/domain/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/domain/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/generator/index.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/i18n/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/i18n/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/inherits/LICENSE +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/inherits/README.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/inherits/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/inherits/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/inspector-redact/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/inspector-redact/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/logger/README.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/logger/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/logger/src/containers/default/index.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/logger/src/containers/mq/listener.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/logger/src/containers/mq/speaker.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/logger/src/helper.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/math/index.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/mcp-dispatch/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/mcp-dispatch/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/mcp-http/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/mcp-http/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/mcp-server/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/mcp-server/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/merge/README.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/merge/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/metrics/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/metrics/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/model.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/nunjucks-filters/README.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/nunjucks-filters/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/nunjucks-filters/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/nunjucks-resolver/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/nunjucks-resolver/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/proc.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/routing/README.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/routing/build.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/routing/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/routing/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/routing/src/radix.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/routing-introspect/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/routing-introspect/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/session-store.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/shell.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/state.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/swig-filters/README.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/swig-filters/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/swig-filters/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/swig-resolver/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/swig-resolver/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/url/README.md +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/url/index.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/url/routing.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/uuid/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/uuid/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/validator.js +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/watcher/package.json +0 -0
- /package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/lib/watcher/src/main.js +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
[ 213ms] [ERROR] Failed to load resource: the server responded with a status of 404 (File not found) @ http://127.0.0.1:8765/%7B%7B%20page.environment.webroot%20%7D%7D_gina/assets/routing.json:0
|
|
2
|
+
[ 219ms] [ERROR] Failed to load resource: the server responded with a status of 404 (File not found) @ http://127.0.0.1:8765/favicon.ico:0
|
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,23 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
|
|
|
6
6
|
and is generated by [Changie](https://github.com/miniscruff/changie).
|
|
7
7
|
|
|
8
8
|
|
|
9
|
+
## 0.3.13-alpha.3 - 2026-05-14 (npm only — no git tag)
|
|
10
|
+
### Added
|
|
11
|
+
* `${secret:KEY}` placeholder syntax in bundle JSON configs. Substituted at getConfig() time from process.env[KEY]. Fails closed if the env var is unset or empty. Resolution happens once per config-load cycle (cached). Pluggable-backend support is reserved for a future iteration; only the env-var backend ships in this alpha.
|
|
12
|
+
* `settings.json > csrf.secret` config slot in `gina.plugins.Csrf()` — flows through the `lib/secrets` resolver, so `${secret:KEY}` placeholders work for the Csrf HMAC secret. Precedence is `opts.secret` (test override) > `settings.csrf.secret` > `process.env.GINA_CSRF_SECRET` (back-compat); existing bundles that set `GINA_CSRF_SECRET` keep working unchanged.
|
|
13
|
+
* `${secret:KEY}` placeholder support in `mcp.json` for `gina bundle:mcp-start`. The cmd handler now calls `lib/secrets` on the parsed manifest immediately after `requireJSON()`, so `server.authToken` (and any other future placeholder field in mcp.json) gets filled from `process.env[KEY]` before downstream readers pick it up. Existing bundles that set `process.env.GINA_MCP_AUTH_TOKEN` directly keep working unchanged — that fallback is the last step of the precedence chain.
|
|
14
|
+
### Changed
|
|
15
|
+
* Added terminal-exit closure nulling to render-nunjucks for early per-request memory release, matching render-swig pattern (#M1 retrofit follow-up).
|
|
16
|
+
* Bundle scaffolding (project add / bundle add) now shows the `${secret:KEY}` placeholder pattern as the recommended shape for session and CSRF secrets. `core/template/conf/settings.json` documents the new `settings.csrf.secret` slot (placeholder-compatible) alongside the existing GINA_CSRF_SECRET env-var fallback; `core/template/boilerplate/bundle/index.js` shows `self.getConfig('session').secret` (with bundle/config/session.json holding a `${secret:SESSION_SECRET}` placeholder) as the recommended session-secret wiring, keeping the direct `process.env.SESSION_SECRET` shape as a back-compat note.
|
|
17
|
+
### Fixed
|
|
18
|
+
* `requireJSON` line-comment stripping no longer fails when a bundle config combines a URL string with a bare `//` line-comment separator. The previous `indexOf`-into-greedy-match pass collided on the URL `://` and silently skipped the real separator, leaving `JSON.parse` to throw `Expected double-quoted property name`. The pass is now per-line on the leftmost `//`, matching the prior heuristic without the substring collision.
|
|
19
|
+
### Security
|
|
20
|
+
* Replaced eval() in validator nested-key rule construction (Socket #SCS campaign cluster M20).
|
|
21
|
+
* Removing eval() from 4 HTML event-callback sites in the browser bundle (events.js + validator/main.js). The function-call shape `data-gina-...-event-on-*="fn(args)"` is no longer supported — register the handler on window and use the bare-identifier shape `="fn"`; a deprecation warning is logged at runtime if a function-call shape is encountered. Clears 4 of the 9 remaining Socket `Uses eval` flag sites (#M21a).
|
|
22
|
+
* Removing eval() from the conditional binding evaluator fallback in form-validator.js. Form `condition` strings that previously hit the eval escape-hatch now throw with an explicit message listing the four supported shapes (binary comparison `a OP b`, RegExp instance, boolean, /regex/flags literal). Regex-literal strings still pass through. Clears 1 of the 5 remaining Socket `Uses eval` flag sites (#M21b).
|
|
23
|
+
* Documenting the Pattern B eval surface at form-validator.js (user-defined validator function bodies registered on `gina.forms.validators` from disk-loaded `bundle/validators/<name>/main.js` files at framework boot). The eval is load-bearing public API and stays — no behavior change. Adds an in-source trust-model comment block and pins the invariant with `test/lib/validator-scs1i.test.js` (zero writes to `gina.forms.validators` in framework source; zero request-time identifiers around the userValidator source chain). Closes the M21 cluster (#M21c).
|
|
24
|
+
* Restructuring the logger ↔ merge circular-require so the eval fallbacks at lib/logger/src/main.js + the two logger containers are no longer needed and have been removed. Root cause was merge.js requiring `helpers/index.js` (the for-loop helper loader) at module-load to populate `JSON.clone`, which transitively required `lib/logger` via several helpers and produced a partial-module return under circular load. Fix swaps that for a direct require of `utils/prototypes.json_clone` (a 100-line standalone primitive with zero top-level requires) — same JSON.clone population, no circular trigger. Clears the final 3 server-side Socket `Uses eval` sites (#M22). Phase 3c complete: 1 live framework eval site remains (the load-bearing Pattern B at form-validator.js:1886 / #M21c trust model).
|
|
25
|
+
|
|
9
26
|
## 0.3.12 - 2026-05-12
|
|
10
27
|
### Changed
|
|
11
28
|
* Bumped @rhinostone/swig dependency floor from ^2.0.1 to ^2.1.0 in framework/v*/package.json. Version 2.1.0 introduces a multi-flavor architecture splitting the runtime into a shared @rhinostone/swig-core package plus per-flavor frontends (@rhinostone/swig native syntax, @rhinostone/swig-twig Twig-syntax frontend); the native @rhinostone/swig package remains drop-in compatible with the @rhinostone/swig@1.x and 2.0.x API surface gina depends on (swig.compile, swig.setFilter, swig.setTag, swig.renderFile). swigResolver DEFAULT_MIN stays at 2.0.0 since the framework does not depend on any new 2.1.0-only API. Resolves the version-currency drift surfaced by 'npm view @rhinostone/swig version' returning 2.1.0 against the current ^2.0.1 floor.
|
package/ROADMAP.md
CHANGED
|
@@ -134,11 +134,11 @@ Four focused follow-up sessions to close the deferred gap left by the `0.3.7-alp
|
|
|
134
134
|
|
|
135
135
|
### Eval safety
|
|
136
136
|
|
|
137
|
-
Complete the removal of `eval` / `new Function` call sites from the published tarball. Four tranches shipped across `0.3.7-alpha.4` / `0.3.7-alpha.5` cleared 13 of 24 catalogued sites; 2 more were removed by deleting orphaned source during the toolbar cleanup (15 of 24 addressed).
|
|
137
|
+
Complete the removal of `eval` / `new Function` call sites from the published tarball. Four tranches shipped across `0.3.7-alpha.4` / `0.3.7-alpha.5` cleared 13 of 24 catalogued sites; 2 more were removed by deleting orphaned source during the toolbar cleanup (15 of 24 addressed). The validator structural refactor cleared 3 more on `0.3.13-alpha.2` (18 of 24). Two clusters remain, each needing a focused session.
|
|
138
138
|
|
|
139
139
|
| Status | Feature | Version | Target |
|
|
140
140
|
| --- | --- | --- | --- |
|
|
141
|
-
|
|
|
141
|
+
| ✅ | **Validator structural refactor** — Refactored `makeObjectFromArgs` in the validator plugin: the previous string-accumulator path-build + runtime evaluation is replaced by a segments-array threaded through the recursion plus a local safe setter. Cleared 3 eval sites. +27 parity tests in `test/lib/validator-scs1f.test.js`. Browser bundle rebuilt. | `0.3.13-alpha.2` | 2026-05-13 |
|
|
142
142
|
| 📋 | **Feature-intrinsic eval design pass** — 6 sites eval user-supplied JS by design (user-defined form validators, HTML event callbacks on form data attributes). Decision pass: safe-eval sandbox via `vm.Script`, pre-parse to a restricted AST, or formalise "accept and document" with an explicit trust assumption. Outcome may include dropping unused placeholder features. | `0.3.8` | Q1 2027 |
|
|
143
143
|
| 📋 | **Logger circular-require refactor** — 3 load-bearing `eval(fs.readFileSync(...))` fallbacks in the logger work around a circular `merge → helpers → logger` require chain. Restructure the chain so the fallback is no longer needed. Clears the final 3 sites of the campaign. Regression risk touches every logger-consuming test. | `0.3.8` | Q1 2027 |
|
|
144
144
|
|
|
@@ -156,6 +156,16 @@ Cross-site request forgery protection. Three-phase defense-in-depth plan aligned
|
|
|
156
156
|
|
|
157
157
|
---
|
|
158
158
|
|
|
159
|
+
## Secrets & Configuration
|
|
160
|
+
|
|
161
|
+
Secrets handling for bundle JSON configs without baking plaintext values into source. Pluggable-backend design with `process.env` as the default; the reserved API surface allows future Vault / SOPS / K8s Secrets backends to slot in without changing call sites or the placeholder syntax.
|
|
162
|
+
|
|
163
|
+
| Status | Feature | Version | Target |
|
|
164
|
+
| --- | --- | --- | --- |
|
|
165
|
+
| ✅ | **`${secret:KEY}` placeholder substitution** — `lib/secrets` resolves `${secret:KEY}` placeholders embedded in bundle JSON configs (`settings.json`, `app.json`, `connectors.json`, `mcp.json`, etc.) at config-load time. Anchored regex matches the entire string value only — mixed strings (`"prefix-${secret:K}-suffix"`) pass through unchanged. Default backend reads `process.env[KEY]`; pluggable-backend interface reserved for a future iteration. Fails closed (throws `Error('Secret resolution failed')`) when an env var is unset or empty; the error message intentionally omits the key name. Resolution is once per config-load cycle (in-place mutation). `WeakMap`-backed path tracking enables a future log-redaction wrapper at merged-conf print sites. Hooked inside `core/config.js::loadBundleConfig`, so downstream readers (`getConfig()`, plugin factories) see resolved values transparently. **Consumers shipped**: `gina.plugins.Csrf()` reads `settings.csrf.secret` (precedence `opts.secret` > `settings.csrf.secret` > `process.env.GINA_CSRF_SECRET` for back-compat); `gina bundle:mcp-start` re-runs the resolver on the parsed `mcp.json` immediately after `requireJSON()` so `server.authToken` and any future placeholder field gets filled before downstream readers; bundle scaffolding (`project:add` / `bundle:add`) recommends the placeholder shape in `core/template/conf/settings.json` and `core/template/boilerplate/bundle/index.js`. 33 tests in `test/core/config-secrets-resolver.test.js`. | `0.3.13-alpha` | 2026-05-13 |
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
159
169
|
## Connectors
|
|
160
170
|
|
|
161
171
|
New database connectors follow the same interface as the existing Couchbase connector: declared in `connectors.json`, acquired via `getConnection()`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.3.13-alpha.3
|
package/framework/{v0.3.13-alpha.1 → v0.3.13-alpha.3}/core/asset/plugin/dist/vendor/gina/js/gina.js
RENAMED
|
@@ -2732,7 +2732,8 @@ function Merge() {
|
|
|
2732
2732
|
if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
|
|
2733
2733
|
// for unit tests
|
|
2734
2734
|
if ( typeof(JSON.clone) == 'undefined' ) {
|
|
2735
|
-
require
|
|
2735
|
+
// #M22 — direct require of the clone primitive instead of helpers/index.js's for-loop loader (which transitively requires lib/logger and returns a partial merge under circular load)
|
|
2736
|
+
JSON.clone = require(__dirname + '/../../../../../utils/prototypes.json_clone');
|
|
2736
2737
|
}
|
|
2737
2738
|
// Publish as node.js module
|
|
2738
2739
|
module.exports = Merge()
|
|
@@ -3911,7 +3912,8 @@ function FormValidatorUtil(data, $fields, xhrOptions, fieldsSet) {
|
|
|
3911
3912
|
|
|
3912
3913
|
isValid = new RegExp(re, flags).test(this.value)
|
|
3913
3914
|
} else {
|
|
3914
|
-
|
|
3915
|
+
// #M21b — free-form JS condition shape unsupported; declare a documented shape instead
|
|
3916
|
+
throw new Error('[FormValidator] Unsupported condition shape — supported: binary comparison (a OP b), RegExp, boolean, /regex/flags literal. Got: `' + condition + '`');
|
|
3915
3917
|
}
|
|
3916
3918
|
|
|
3917
3919
|
//valid = new RegExp(condition.replace(/\//g, '')).test(this.value)
|
|
@@ -4725,6 +4727,15 @@ function FormValidatorUtil(data, $fields, xhrOptions, fieldsSet) {
|
|
|
4725
4727
|
userValidator = gina.forms.validators[v].toString();
|
|
4726
4728
|
}
|
|
4727
4729
|
|
|
4730
|
+
// #M21c — Pattern B eval surface (trust-model invariant)
|
|
4731
|
+
// Load-bearing: user-defined validator function bodies are registered on
|
|
4732
|
+
// `gina.forms.validators` from disk-loaded `bundle/validators/<name>/main.js`
|
|
4733
|
+
// files at framework boot. Trust assumption: the source of `userValidator`
|
|
4734
|
+
// is always disk-sourced at boot — never request-time input (req.*, request.*,
|
|
4735
|
+
// form values, URL params). End-user data MUST NOT reach this eval.
|
|
4736
|
+
// Invariant pinned by test/lib/validator-scs1i.test.js (zero write sites for
|
|
4737
|
+
// `gina.forms.validators` in framework source; zero request-time identifiers
|
|
4738
|
+
// around the userValidator source chain).
|
|
4728
4739
|
self[el][v] = eval('(' + userValidator + ')\n//# sourceURL='+ v +'.js');
|
|
4729
4740
|
//self[el][v] = Function('errorMessage', 'errorStack', userValidator);
|
|
4730
4741
|
}
|
|
@@ -7493,7 +7504,8 @@ function on(event, cb) {
|
|
|
7493
7504
|
if (htmlSuccesEventCallback != null) {
|
|
7494
7505
|
|
|
7495
7506
|
if ( /\((.*)\)/.test(htmlSuccesEventCallback) ) {
|
|
7496
|
-
|
|
7507
|
+
// #M21a — function-call shape unsupported; register a bare handler on window instead
|
|
7508
|
+
try { console.warn('[gina-event] function-call shape no longer supported on data-gina-'+ type +'-event-on-success — use a bare identifier and register the handler on window: '+ htmlSuccesEventCallback); } catch (e) {}
|
|
7497
7509
|
} else {
|
|
7498
7510
|
$el.on('success.h'+ type, window[htmlSuccesEventCallback])
|
|
7499
7511
|
}
|
|
@@ -7503,7 +7515,8 @@ function on(event, cb) {
|
|
|
7503
7515
|
var htmlErrorEventCallback = $el.target.getAttribute('data-gina-'+ type +'-event-on-error') || null;
|
|
7504
7516
|
if (htmlErrorEventCallback != null) {
|
|
7505
7517
|
if ( /\((.*)\)/.test(htmlErrorEventCallback) ) {
|
|
7506
|
-
|
|
7518
|
+
// #M21a — function-call shape unsupported; register a bare handler on window instead
|
|
7519
|
+
try { console.warn('[gina-event] function-call shape no longer supported on data-gina-'+ type +'-event-on-error — use a bare identifier and register the handler on window: '+ htmlErrorEventCallback); } catch (e) {}
|
|
7507
7520
|
} else {
|
|
7508
7521
|
$el.on('error.h'+ type, window[htmlErrorEventCallback])
|
|
7509
7522
|
}
|
|
@@ -11906,7 +11919,8 @@ function ValidatorPlugin(rules, data, formId) {
|
|
|
11906
11919
|
if (htmlSuccesEventCallback != null) {
|
|
11907
11920
|
|
|
11908
11921
|
if ( /\((.*)\)/.test(htmlSuccesEventCallback) ) {
|
|
11909
|
-
|
|
11922
|
+
// #M21a — function-call shape unsupported; register a bare handler on window instead
|
|
11923
|
+
try { console.warn('[gina-form-event] function-call shape no longer supported on data-gina-form-event-on-submit-success — use a bare identifier and register the handler on window: '+ htmlSuccesEventCallback); } catch (e) {}
|
|
11910
11924
|
} else {
|
|
11911
11925
|
$form.on('success.hform', window[htmlSuccesEventCallback])
|
|
11912
11926
|
}
|
|
@@ -11915,7 +11929,8 @@ function ValidatorPlugin(rules, data, formId) {
|
|
|
11915
11929
|
var htmlErrorEventCallback = $form.target.getAttribute('data-gina-form-event-on-submit-error') || null;
|
|
11916
11930
|
if (htmlErrorEventCallback != null) {
|
|
11917
11931
|
if ( /\((.*)\)/.test(htmlErrorEventCallback) ) {
|
|
11918
|
-
|
|
11932
|
+
// #M21a — function-call shape unsupported; register a bare handler on window instead
|
|
11933
|
+
try { console.warn('[gina-form-event] function-call shape no longer supported on data-gina-form-event-on-submit-error — use a bare identifier and register the handler on window: '+ htmlErrorEventCallback); } catch (e) {}
|
|
11919
11934
|
} else {
|
|
11920
11935
|
$form.on('error.hform', window[htmlErrorEventCallback])
|
|
11921
11936
|
}
|
|
@@ -12509,39 +12524,75 @@ function ValidatorPlugin(rules, data, formId) {
|
|
|
12509
12524
|
|
|
12510
12525
|
|
|
12511
12526
|
/**
|
|
12512
|
-
*
|
|
12527
|
+
* setByPath — Safe property setter that walks a segments array and
|
|
12528
|
+
* assigns a value at the terminal segment, creating intermediate
|
|
12529
|
+
* `{}` / `[]` based on the next segment's type (numeric → array,
|
|
12530
|
+
* otherwise object).
|
|
12513
12531
|
*
|
|
12532
|
+
* @inner
|
|
12533
|
+
* @private
|
|
12514
12534
|
*
|
|
12515
|
-
* @param {
|
|
12516
|
-
* @param {array}
|
|
12517
|
-
* @param {
|
|
12518
|
-
*
|
|
12519
|
-
* @
|
|
12520
|
-
*
|
|
12521
|
-
* @
|
|
12535
|
+
* @param {object|array} rootObj - Root container to mutate in place.
|
|
12536
|
+
* @param {array} segments - Path keys (numbers for array indices, strings for object props).
|
|
12537
|
+
* @param {*} value - Value to assign at the terminal segment.
|
|
12538
|
+
*
|
|
12539
|
+
* @returns {void}
|
|
12540
|
+
*
|
|
12541
|
+
* @example
|
|
12542
|
+
* var root = {};
|
|
12543
|
+
* setByPath(root, ['foo', 'bar'], 42);
|
|
12544
|
+
* // root === { foo: { bar: 42 } }
|
|
12522
12545
|
*
|
|
12523
|
-
* @
|
|
12546
|
+
* @example
|
|
12547
|
+
* var root = {};
|
|
12548
|
+
* setByPath(root, ['items', 0], 'first');
|
|
12549
|
+
* // root === { items: ['first'] }
|
|
12524
12550
|
*/
|
|
12525
|
-
var
|
|
12551
|
+
var setByPath = function(rootObj, segments, value) {
|
|
12552
|
+
var cur = rootObj;
|
|
12553
|
+
for (var i = 0; i < segments.length - 1; i++) {
|
|
12554
|
+
var seg = segments[i];
|
|
12555
|
+
if ( cur[seg] === undefined || cur[seg] === null ) {
|
|
12556
|
+
cur[seg] = (typeof segments[i + 1] === 'number') ? [] : {};
|
|
12557
|
+
}
|
|
12558
|
+
cur = cur[seg];
|
|
12559
|
+
}
|
|
12560
|
+
cur[segments[segments.length - 1]] = value;
|
|
12561
|
+
};
|
|
12526
12562
|
|
|
12527
|
-
// Closure Compiler requirements
|
|
12528
|
-
var _global = window['gina']['_global'];
|
|
12529
|
-
// js_externs
|
|
12530
|
-
_global.register({
|
|
12531
|
-
'root' : _root || null,
|
|
12532
|
-
'obj' : _obj || null,
|
|
12533
|
-
'value' : _value || null,
|
|
12534
|
-
'rootObj' : _rootObj || null
|
|
12535
|
-
});
|
|
12536
12563
|
|
|
12564
|
+
/**
|
|
12565
|
+
* makeObjectFromArgs — Recursive builder of a nested object/array tree
|
|
12566
|
+
* from a flat segments array. Threads a `rootSegments` path through the
|
|
12567
|
+
* recursion and assigns at the terminal via `setByPath`.
|
|
12568
|
+
*
|
|
12569
|
+
* #M20: replaced the previous string-path accumulator and runtime
|
|
12570
|
+
* evaluation with the segments-array + safe setter (see `setByPath`
|
|
12571
|
+
* above).
|
|
12572
|
+
*
|
|
12573
|
+
* @inner
|
|
12574
|
+
* @private
|
|
12575
|
+
*
|
|
12576
|
+
* @param {array} _root - Initial path segments (overwritten in init branch on first call).
|
|
12577
|
+
* @param {array} args - Bracketed key sequence.
|
|
12578
|
+
* @param {object} _obj - Current sub-tree being walked.
|
|
12579
|
+
* @param {number} len - args.length.
|
|
12580
|
+
* @param {number} i - Current index into args.
|
|
12581
|
+
* @param {*} _value - Terminal value to assign.
|
|
12582
|
+
* @param {object} [_rootObj] - Accumulator root object (null on first call).
|
|
12583
|
+
*
|
|
12584
|
+
* @returns {Object} A `JSON.clone`d snapshot of the assembled root tree.
|
|
12585
|
+
*/
|
|
12586
|
+
var makeObjectFromArgs = function(_root, args, _obj, len, i, _value, _rootObj) {
|
|
12587
|
+
|
|
12588
|
+
var rootSegments = Array.isArray(_root) ? _root : ['rootObj'];
|
|
12589
|
+
var obj = _obj || null;
|
|
12590
|
+
var value = _value || null;
|
|
12591
|
+
var rootObj = _rootObj || null;
|
|
12537
12592
|
|
|
12538
12593
|
if (i == len) { // end
|
|
12539
|
-
|
|
12540
|
-
|
|
12541
|
-
var result = JSON.clone(rootObj);
|
|
12542
|
-
// cleanup _global
|
|
12543
|
-
_global.unregister(['root', 'obj', 'rootObj', 'value', 'valueType']);
|
|
12544
|
-
return result
|
|
12594
|
+
setByPath(rootObj, rootSegments.slice(1), value);
|
|
12595
|
+
return JSON.clone(rootObj);
|
|
12545
12596
|
}
|
|
12546
12597
|
|
|
12547
12598
|
var key = args[i].replace(/^\[|\]$/g, '');
|
|
@@ -12549,22 +12600,19 @@ function ValidatorPlugin(rules, data, formId) {
|
|
|
12549
12600
|
// init root object
|
|
12550
12601
|
if ( typeof(rootObj) == 'undefined' || !rootObj ) {
|
|
12551
12602
|
rootObj = {};
|
|
12552
|
-
|
|
12603
|
+
rootSegments = ['rootObj'];
|
|
12553
12604
|
|
|
12554
|
-
|
|
12555
|
-
|
|
12605
|
+
rootSegments.push((/^\d+$/.test(key)) ? parseInt(key, 10) : key);
|
|
12606
|
+
setByPath(rootObj, rootSegments.slice(1), obj);
|
|
12556
12607
|
} else {
|
|
12557
|
-
|
|
12608
|
+
rootSegments.push((/^\d+$/.test(key)) ? parseInt(key, 10) : key);
|
|
12558
12609
|
}
|
|
12559
12610
|
|
|
12560
12611
|
|
|
12561
12612
|
var nextKey = ( typeof(args[i + 1]) != 'undefined' ) ? args[i + 1].replace(/^\[|\]$/g, '') : null;
|
|
12562
12613
|
var valueType = ( nextKey && parseInt(nextKey) == nextKey ) ? [] : {};
|
|
12563
|
-
_global.register({
|
|
12564
|
-
'valueType' : valueType
|
|
12565
|
-
});
|
|
12566
12614
|
if ( nextKey ) {
|
|
12567
|
-
|
|
12615
|
+
setByPath(rootObj, rootSegments.slice(1), valueType);
|
|
12568
12616
|
}
|
|
12569
12617
|
|
|
12570
12618
|
if ( typeof(obj[key]) == 'undefined' ) {
|
|
@@ -12576,11 +12624,11 @@ function ValidatorPlugin(rules, data, formId) {
|
|
|
12576
12624
|
}
|
|
12577
12625
|
|
|
12578
12626
|
++i;
|
|
12579
|
-
return makeObjectFromArgs(
|
|
12627
|
+
return makeObjectFromArgs(rootSegments, args, obj[key], len, i, value, rootObj);
|
|
12580
12628
|
}
|
|
12581
12629
|
|
|
12582
12630
|
++i;
|
|
12583
|
-
return makeObjectFromArgs(
|
|
12631
|
+
return makeObjectFromArgs(rootSegments, args, obj[key], len, i, value, rootObj);
|
|
12584
12632
|
}
|
|
12585
12633
|
|
|
12586
12634
|
|
|
@@ -47,7 +47,7 @@ A.length==0||typeof A=='undefined'?/^true$/i.test(D)?A:U:A}if(A.length==0&&U.len
|
|
|
47
47
|
l=0;for(A=m.length;l<A;++l)Y.push(m[l][n]);for(l=0;l<A;++l)a:for(S=aa||0,ka=D.length;S<ka;++S)if(D[S]!=null&&typeof D[S][n]!='undefined'&&D[S][n]!==m[l][n]){if(Y.indexOf(D[S][n])==-1){m.push(D[S]);Y.push(D[S][n]);aa=S+1;A<ka&&++A;break a}}else if(D[S]!=null&&typeof D[S][n]!='undefined'&&D[S][n]===m[l][n])aa=S+1;else break a;return m}for(l=0;l<A.length;++l)if(Y=null,typeof A=='undefined'||typeof A[l]!='object'||Array.isArray(A[l])||A[l]==null||(Y=Object.getOwnPropertyNames(A[l])),typeof Y!='undefined'&&
|
|
48
48
|
Y!=null&&(Y=Y[0]||null),U.indexOf(A[l])>-1&&D)U.splice(U.indexOf(A[l]),1,A[l]);else if(typeof m[l]=='undefined'&&typeof A[l]=='object')for(c in m=U,typeof m[l]=='undefined'&&(m[l]={}),A[l])m[l].hasOwnProperty(c)||(m[l][c]=A[l][c]);else!D&&m.indexOf(A[l])>-1&&/number/i.test(typeof A[l])&&A[l]!==m[l]?m.push(A[l]):typeof U[l]=='undefined'||/null/i.test(U[l])||typeof U[l][n]=='undefined'||typeof A[l]=='undefined'||typeof A[l][n]=='undefined'||U[l][n]!=A[l][n]?m.indexOf(A[l])==-1&&typeof A[l]!='object'?
|
|
49
49
|
m.push(A[l]):typeof U[l]=='undefined'||/null/i.test(U[l])||typeof U[l][Y]=='undefined'||typeof A[l]=='undefined'||typeof A[l][Y]=='undefined'||U[l][Y]!=A[l][Y]||(m[l]=D?A[l]:U[l]):m[l]=D?A[l]:U[l]}if(m.length>0&&U.length>0||m.length==0&&U.length==0)return m};M.prototype.setKeyComparison=function(A){this.keyComparison=A};var C=function(A){if(!A||{}.toString.call(A)!=='[object Object]'||A.nodeType||A.setInterval)return!1;var U={}.hasOwnProperty,D=U.call(A,'constructor');U=typeof A.constructor!='undefined'?
|
|
50
|
-
U.call(A.constructor.prototype,'isPrototypeOf'):!1;return!A.constructor||D||U?!0:!1};I.setKeyComparison=function(A){M.keyComparison=A;return I};I.getKeyComparison=function(){var A=M.keyComparison||'id';M.keyComparison='id';return A};return I}typeof module!=='undefined'&&module.exports?(typeof JSON.clone=='undefined'&&require('
|
|
50
|
+
U.call(A.constructor.prototype,'isPrototypeOf'):!1;return!A.constructor||D||U?!0:!1};I.setKeyComparison=function(A){M.keyComparison=A;return I};I.getKeyComparison=function(){var A=M.keyComparison||'id';M.keyComparison='id';return A};return I}typeof module!=='undefined'&&module.exports?(typeof JSON.clone=='undefined'&&(JSON.clone=require(__dirname+'/../../../../../utils/prototypes.json_clone')),module.exports=Merge()):typeof define==='function'&&define.amd&&define('lib/merge',[],function(){return Merge()});
|
|
51
51
|
var _alphabet='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',_mask=63,_step=7;function uuid(m){m=m||4;for(var E='';;)for(var I=crypto.getRandomValues(new Uint8Array(_step)),M=0;M<_step;M++){var C=I[M]&_mask;if(C<62&&(E+=_alphabet[C],E.length===m))return E}}
|
|
52
52
|
uuid.customAlphabet=function(m,E){E=E||4;for(var I=1;I<m.length-1;)I=I<<1|1;var M=Math.ceil(1.6*(I+1)*E/m.length);M<5&&(M=5);return function(C){C=C||E;for(var A='';;)for(var U=crypto.getRandomValues(new Uint8Array(M)),D=0;D<M;D++){var Y=U[D]&I;if(Y<m.length&&(A+=m[Y],A.length===C))return A}}};
|
|
53
53
|
if(typeof module!=='undefined'&&module.exports){if(typeof crypto==='undefined'||typeof crypto.getRandomValues!=='function'){var _webcrypto=require('crypto').webcrypto||require('crypto');typeof globalThis!=='undefined'?globalThis.crypto=_webcrypto:crypto=_webcrypto}module.exports=uuid}else typeof define==='function'&&define.amd&&define('lib/uuid',[],function(){return uuid});
|
|
@@ -78,29 +78,29 @@ J.param;L.template&&typeof L.template.ginaLoader=='undefined'&&(L.template.ginaL
|
|
|
78
78
|
0||!ma.isRequired&&this.value==''&&!/^false$/i.test(this.value)&&this.value!=0?L=!0:ma.isRequired||typeof this.value!='string'||this.value!=''||(L=!0);if(!L&&/^(true|false)$/i.test(r))L=r;else if(!L){var G=null,K=null;if(/[!=>><a-z 0-9]+/i.test(r)){if((K=r.match(/\${0}[-_,.\[\]a-z0-9]+/ig))&&K.length>0){for(var B=0,oa=K.length;B<oa;++B)typeof c[K[B]]!='undefined'&&K[B]&&(G=new RegExp('\\$'+K[B]+'(?!\\S+)','g'),r=c[K[B]].value==''?r.replace(G,'""'):typeof c[K[B]].value=='string'?r.replace(G,'"'+c[K[B]].value+
|
|
79
79
|
'"'):r.replace(G,c[K[B]].value));try{if(r=r.replace(/(\(|\)|return)/g,''),/^\//.test(r)){var X=r.match(/^\/(.+)\/([a-z]*)$/);if(!X)throw Error('Invalid regex literal: `'+r+'`');L=(new RegExp(X[1],X[2])).test(this.value)}else{G=/^\s*(null|undefined|true|false|"[^"]*"|-?\d+(?:\.\d+)?)\s*(===|!==|<=|>=|==|!=|<|>)\s*(null|undefined|true|false|"[^"]*"|-?\d+(?:\.\d+)?)\s*$/;var la=typeof r=='string'?r.match(G):null;if(!la)throw Error('Could not evaluate condition `'+r+'`.\n(grammar: <operand><op><operand>; operand \u2208 number | "string" | true | false | null | undefined; op \u2208 === !== == != < > <= >=)');
|
|
80
80
|
G=function(ra){var wa=ra.replace(/^\s+|\s+$/g,'');if(wa==='null')return null;if(wa!=='undefined'){if(wa==='true')return!0;if(wa==='false')return!1;if(/^"[^"]*"$/.test(wa))return wa.slice(1,-1);var Ja=Number(wa);if(!isNaN(Ja)&&wa!=='')return Ja;throw Error('Invalid operand: `'+ra+'`');}};var ea=G(la[1]),qa=la[2],va=G(la[3]);switch(qa){case '===':L=ea===va;break;case '!==':L=ea!==va;break;case '==':L=ea==va;break;case '!=':L=ea!=va;break;case '<':L=ea<va;break;case '>':L=ea>va;break;case '<=':L=ea<=
|
|
81
|
-
va;break;case '>=':L=ea>=va}}}catch(ra){throw Error(ra.stack||ra.message);}}}else if(r instanceof RegExp)L=r.test(this.value)?!0:!1;else if(typeof r=='boolean')L=r?!0:!1;else try{/\/(.*)\//.test(r)
|
|
82
|
-
0&&(this.errors=ma);return c[this.name]};c[g].set=function(r){this.value=l.data[this.name]=r;this.target.setAttribute('value',r);return c[this.name]};c[g].isEmail=function(){this.value=l.data[this.name]=this.value?this.value.toLowerCase():this.value;C&&this.target&&this.target.value!=''&&/[A-Z]+/.test(this.target.value)&&(this.target.value=this.value);
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
this.value=l.data[this.name]=!1}(r=r!==null?!0:!1)?r&&typeof x.isBoolean!='undefined'&&delete x.isBoolean:x.isBoolean=h(this.error||l.errorLabels.isBoolean,this);this.valid=r;x.count()>0&&(this.errors=x);return c[this.name]};c[g].isNumber=function(r,x){var J=this.value,L=!1,fa=!0,ma=!0,G=c[this.name].errors||{};try{typeof J==
|
|
86
|
-
'')))}catch(B){G.isNumber=h(this.error||l.errorLabels.isNumber,this),this.valid=!1,G.count()>0&&(this.errors=G)}if(+J===+J&&(L=!0,!G.isRequired&&J!='')){var K=J.toString().length;r&&typeof r=='number'&&K<r&&(fa=!1,this.size=r);x&&typeof x=='number'&&K>x&&(ma=!1,this.size=x)}L&&fa&&ma||(L||(G.isNumber=h(this.error||
|
|
87
|
-
r===x&&(G.isNumberLength=h(this.error||l.errorLabels.isNumberLength,this))),L=!1);L&&typeof G.isNumberLength!='undefined'&&delete G.isNumberLength;this.valid=L;this.value=l.data[this.name]=J!=''?Number(J):J;G.count()>0&&(this.errors=G);return c[this.name]};c[g].toInteger=function(){var r=this.value,x=c[this.name].errors||
|
|
88
|
-
c[g].isInteger=function(r,x){var J=this.value,L=!1,fa=!0,ma=!0,G=c[this.name].errors||{};+J===+J&&J%1===0&&(L=!0,G.isRequired||J==''||(r&&typeof r=='number'&&J.length<r&&(fa=!1,this.size=r),x&&typeof x=='number'&&J.length>x&&(ma=!1,this.size=x)));L&&fa&&ma||(L||(G.isInteger=h(this.error||l.errorLabels.isInteger,this)),
|
|
89
|
-
h(this.error||l.errorLabels.isIntegerLength,this),L=!1)));this.valid=L;this.value=l.data[this.name]=Number(J);G.count()>0&&(this.errors=G);return c[this.name]};c[g].toFloat=function(r){var x=document.getElementById(this.target.getAttribute('id')).value||this.value;isFloatingWithCommas=!1;typeof x=='string'&&
|
|
90
|
-
parseInt(r):typeof this.decimals=='undefined'&&(this.decimals=2);if(x)if(this.isNumber().valid)try{Number.isFinite(x)||(x=new Number(parseFloat(x.match(/[0-9.,]+/g).join('').replace(/,/,'.'))))}catch(fa){L=!1,J.toFloat=h(this.error||l.errorLabels.toFloat,this),this.valid=!1,J.count()>0&&(this.errors=
|
|
91
|
-
(x=(''+x).replace(/\./g,',')),this.target.setAttribute('value',x));this.valid=L;J.count()>0&&(this.errors=J);return c[this.name]};c[g].isFloat=function(r){typeof this.value=='string'&&(this.value=this.value.replace(/\s+/g,''));var x=l.data[this.name]=this.value;r=c[this.name].errors||
|
|
92
|
-
x=!0):x=!1;r.isRequired||this.value!=''||(x=!0);x||(r.isFloat=h(this.error||l.errorLabels.isFloat,this));this.valid=x;r.count()>0&&(this.errors=r);return c[this.name]};c[g].isRequired=function(r){if(typeof r=='boolean'&&!r)return this.valid=!0,r=l.excluded.indexOf(this.name),r>-1&&
|
|
93
|
-
function(fa){return fa.form===x.form});for(var J=0,L=r.length;J<L;++J)if(r[J].checked){/true|false/.test(r[J].value)?this.value=l.data[this.name]=/true/.test(r[J].value)?!0:!1:this.value=l.data[this.name]=r[J].value;this.valid=!0;break}}r=typeof this.value=='undefined'||
|
|
94
|
-
0&&(this.errors=J);return c[this.name]};c[g].isString=function(r,x){var J=l.data[this.name]=this.value,L=!1,fa=!0,ma=!0,G=c[this.name].errors||{};typeof J!='string'||G.isRequired||J==''||(L=!0,r&&typeof r=='number'&&J.length<r&&(fa=!1,this.size=r),x&&typeof x=='number'&&
|
|
95
|
-
this)),ma||(G.isStringLength=h(this.error||l.errorLabels.isStringMaxLength,this)),r===x&&(G.isStringLength=h(this.error||l.errorLabels.isStringLength,this))));this.valid=L;G.count()>0&&(this.errors=G);return c[this.name]};c[g].isDate=function(r){var x=this.value,J
|
|
96
|
-
l.errorLabels.isDate,this)),this.valid=J,L.count()>0&&(this.errors=L),c[this.name];if(typeof r=='undefined'||typeof r!='undefined'&&/true/i.test(r))r='yyyy-mm-dd';if(x instanceof Date)x=x.format(r);else{try{fa=r.match(/[^\/\- ]+/g)}catch(oa){throw Error('[FormValidator::isDate] Provided mask not allowed: `'+
|
|
97
|
-
x+'`'+oa);}x=this.value=l.data[this.name]=new Date(r);if(/Invalid Date/i.test(x)||x instanceof Date===!1)return L.isRequired||this.value!=''?L.isDate=h(this.error||l.errorLabels.isDate,this):J=!0,this.valid=J,L.count()>0&&(this.errors=L),c[this.name];J=!0}this.valid=J;return x};
|
|
98
|
-
r!=''&&(this.label=r);return c[this.name]};c[g].trim=function(r){if(typeof r=='boolean'&&r)return this.value=this.value.replace(/^\s+|\s+$/,''),l.data[this.name]=l.data[this.name]=this.value,c[this.name]};c[g].exclude=function(r){if(typeof r=='boolean'&&!r)return/^true|false$/i.test(this.value)&&
|
|
99
|
-
c[g].query=u;c[g].getValidationContext=function(){return{isGFFCtx:C,self:c,local:l,replace:h}};if(n()){F=q=null;try{for(let r in gina.forms.validators)F='/validators/'+r+'/main.js',l.errorLabels[r]='Condition not satisfied',C?(q=ka(gina.forms.validators[r].data),q=q.replace(/(\)\s+\{|\)\{){1}/,
|
|
100
|
-
c[g][r]=eval('('+q+')\n//# sourceURL='+r+'.js')}catch(r){throw Error('[UserFormValidator] Could not evaluate: `'+F+'`\n'+r.stack);}}};for(let g in c)V(g,c[g]);c.addField=function(g,q){typeof c[g]=='undefined'&&V(g,q)};c.isValid=function(){return c.getErrors().count()>
|
|
101
|
-
(typeof c[q].errors=='undefined'&&(c[q].errors={}),c[q].errors[F]=g[q][F]));(typeof c[q].errors=='undefined'&&typeof g[q]!='undefined'||typeof c[q].errors!='undefined'&&c[q].errors.count()==0&&typeof g[q]!='undefined')&&delete g[q]}return g};c.getErrors=function(g){var q=
|
|
102
|
-
0&&(q[F]=c[F].errors);return q};c.toData=function(){if(l.excluded.length>0)for(var g=0,q=l.excluded.length;g<q;++g)typeof l.data[l.excluded[g]]!='undefined'&&delete l.data[l.excluded[g]];return l.data};var h=function(g,q){var F=g.match(/%[a-z]+/gi);if(F)for(var N=0,
|
|
103
|
-
typeof module!=='undefined'&&module.exports?module.exports=FormValidatorUtil:typeof define==='function'&&define.amd&&define('lib/form-validator',[],function(){return FormValidatorUtil});
|
|
81
|
+
va;break;case '>=':L=ea>=va}}}catch(ra){throw Error(ra.stack||ra.message);}}}else if(r instanceof RegExp)L=r.test(this.value)?!0:!1;else if(typeof r=='boolean')L=r?!0:!1;else try{if(/\/(.*)\//.test(r))G=r.match(/\/(.*)\//).pop(),K=r.replace('/'+G+'/',''),L=(new RegExp(G,K)).test(this.value);else throw Error('[FormValidator] Unsupported condition shape \u2014 supported: binary comparison (a OP b), RegExp, boolean, /regex/flags literal. Got: `'+r+'`');}catch(ra){throw Error(ra.stack||ra.message);}}L?
|
|
82
|
+
L&&typeof ma[fa]!='undefined'&&delete ma[fa]:(ma[fa]=h(this.error||x||l.errorLabels[fa],this),typeof J!='undefined'&&(ma.stack=J));this.valid=L;ma.count()>0&&(this.errors=ma);return c[this.name]};c[g].set=function(r){this.value=l.data[this.name]=r;this.target.setAttribute('value',r);return c[this.name]};c[g].isEmail=function(){this.value=l.data[this.name]=this.value?this.value.toLowerCase():this.value;C&&this.target&&this.target.value!=''&&/[A-Z]+/.test(this.target.value)&&(this.target.value=this.value);
|
|
83
|
+
var r=/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(this.value)?!0:!1,x=c[this.name].errors||{};x.isRequired||this.value!=''||(r=!0);r?r&&typeof x.isEmail!='undefined'&&delete x.isEmail:x.isEmail=h(this.error||l.errorLabels.isEmail,this);this.valid=r;x.count()>0&&(this.errors=x);return c[this.name]};c[g].isJsonWebToken=function(){this.value=l.data[this.name]=this.value?this.value.toLowerCase():
|
|
84
|
+
this.value;C&&this.target&&this.target.value!=''&&/[A-Z]+/.test(this.target.value)&&(this.target.value=this.value);var r=/^[A-Za-z0-9-_=]+\.[A-Za-z0-9-_=]+\.?[A-Za-z0-9-_.+/=]*$/.test(this.value)?!0:!1,x=c[this.name].errors||{};x.isRequired||this.value!=''||(r=!0);r?r&&typeof x.isJsonWebToken!='undefined'&&delete x.isJsonWebToken:x.isJsonWebToken=h(this.error||l.errorLabels.isJsonWebToken,this);this.valid=r;x.count()>0&&(this.errors=x);return c[this.name]};c[g].isBoolean=function(){var r=null,x=c[this.name].errors||
|
|
85
|
+
{};x.isRequired&&this.value==0&&(delete x.isRequired,this.errors=x);switch(this.value){case 'true':case !0:case 1:r=this.value=l.data[this.name]=!0;break;case 'false':case !1:case 0:r=this.value=l.data[this.name]=!1}(r=r!==null?!0:!1)?r&&typeof x.isBoolean!='undefined'&&delete x.isBoolean:x.isBoolean=h(this.error||l.errorLabels.isBoolean,this);this.valid=r;x.count()>0&&(this.errors=x);return c[this.name]};c[g].isNumber=function(r,x){var J=this.value,L=!1,fa=!0,ma=!0,G=c[this.name].errors||{};try{typeof J==
|
|
86
|
+
'string'&&/,|\./g.test(J)?J=l.data[this.name]=this.value=parseFloat(J.replace(/,/g,'.').replace(/\s+/g,'')):typeof J=='string'&&J!=''&&(J=l.data[this.name]=this.value=parseInt(J.replace(/\s+/g,'')))}catch(B){G.isNumber=h(this.error||l.errorLabels.isNumber,this),this.valid=!1,G.count()>0&&(this.errors=G)}if(+J===+J&&(L=!0,!G.isRequired&&J!='')){var K=J.toString().length;r&&typeof r=='number'&&K<r&&(fa=!1,this.size=r);x&&typeof x=='number'&&K>x&&(ma=!1,this.size=x)}L&&fa&&ma||(L||(G.isNumber=h(this.error||
|
|
87
|
+
l.errorLabels.isNumber,this)),fa&&ma||(fa||(G.isNumberLength=h(this.error||l.errorLabels.isNumberMinLength,this)),ma||(G.isNumberLength=h(this.error||l.errorLabels.isNumberMaxLength,this)),r===x&&(G.isNumberLength=h(this.error||l.errorLabels.isNumberLength,this))),L=!1);L&&typeof G.isNumberLength!='undefined'&&delete G.isNumberLength;this.valid=L;this.value=l.data[this.name]=J!=''?Number(J):J;G.count()>0&&(this.errors=G);return c[this.name]};c[g].toInteger=function(){var r=this.value,x=c[this.name].errors||
|
|
88
|
+
{};if(r)try{this.value=l.data[this.name]=Math.round(r)}catch(J){x.toInteger=h(this.error||l.errorLabels.toInteger,this),this.valid=!1,x.count()>0&&(this.errors=x)}return c[this.name]};c[g].isInteger=function(r,x){var J=this.value,L=!1,fa=!0,ma=!0,G=c[this.name].errors||{};+J===+J&&J%1===0&&(L=!0,G.isRequired||J==''||(r&&typeof r=='number'&&J.length<r&&(fa=!1,this.size=r),x&&typeof x=='number'&&J.length>x&&(ma=!1,this.size=x)));L&&fa&&ma||(L||(G.isInteger=h(this.error||l.errorLabels.isInteger,this)),
|
|
89
|
+
fa&&ma||(fa||(G.isIntegerLength=h(this.error||l.errorLabels.isIntegerMinLength,this),L=!1),ma||(G.isIntegerLength=h(this.error||l.errorLabels.isIntegerMaxLength,this),L=!1),r===x&&(G.isIntegerLength=h(this.error||l.errorLabels.isIntegerLength,this),L=!1)));this.valid=L;this.value=l.data[this.name]=Number(J);G.count()>0&&(this.errors=G);return c[this.name]};c[g].toFloat=function(r){var x=document.getElementById(this.target.getAttribute('id')).value||this.value;isFloatingWithCommas=!1;typeof x=='string'&&
|
|
90
|
+
(x=x.replace(/\s+/g,''),/,/.test(x)&&/\./.test(x)?x=x.replace(/,/g,''):/,/.test(x)&&(x=x.replace(/,/g,'.'),isFloatingWithCommas=!0));l.data[this.name]=x;var J=c[this.name].errors||{},L=!0;r?this.decimals=parseInt(r):typeof this.decimals=='undefined'&&(this.decimals=2);if(x)if(this.isNumber().valid)try{Number.isFinite(x)||(x=new Number(parseFloat(x.match(/[0-9.,]+/g).join('').replace(/,/,'.'))))}catch(fa){L=!1,J.toFloat=h(this.error||l.errorLabels.toFloat,this),this.valid=!1,J.count()>0&&(this.errors=
|
|
91
|
+
J)}else L=!1,J.toFloat=h(this.error||l.errorLabels.toFloatNAN,this);else return c[this.name];this.decimals&&x&&!J.toFloat&&(x=parseFloat(x.toFixed(this.decimals)));this.value=l.data[this.name]=x;C&&(isFloatingWithCommas&&(x=(''+x).replace(/\./g,',')),this.target.setAttribute('value',x));this.valid=L;J.count()>0&&(this.errors=J);return c[this.name]};c[g].isFloat=function(r){typeof this.value=='string'&&(this.value=this.value.replace(/\s+/g,''));var x=l.data[this.name]=this.value;r=c[this.name].errors||
|
|
92
|
+
{};typeof x=='string'&&/\./.test(x)&&Number.isFinite(Number(x));typeof x=='string'&&/,/g.test(x)&&(x=this.value=l.data[this.name]=Number(x.replace(/,/g,'.')));Number(x)===x&&x%1!==0?(this.value=l.data[this.name]=Number(x),x=!0):x=!1;r.isRequired||this.value!=''||(x=!0);x||(r.isFloat=h(this.error||l.errorLabels.isFloat,this));this.valid=x;r.count()>0&&(this.errors=r);return c[this.name]};c[g].isRequired=function(r){if(typeof r=='boolean'&&!r)return this.valid=!0,r=l.excluded.indexOf(this.name),r>-1&&
|
|
93
|
+
l.excluded.splice(r,1),c[this.name];if(C&&this.target&&this.target.tagName=='INPUT'&&typeof this.target.type!='undefined'&&this.target.type=='radio'){var x=this.target;r=document.getElementsByName(this.name);r=Array.prototype.filter.call(r,function(fa){return fa.form===x.form});for(var J=0,L=r.length;J<L;++J)if(r[J].checked){/true|false/.test(r[J].value)?this.value=l.data[this.name]=/true/.test(r[J].value)?!0:!1:this.value=l.data[this.name]=r[J].value;this.valid=!0;break}}r=typeof this.value=='undefined'||
|
|
94
|
+
this.value==null||this.value==''||/^\s+/.test(this.value)?!1:!0;J=c[this.name].errors||{};r?r&&typeof J.isRequired!='undefined'&&delete J.isRequired:J.isRequired=h(this.error||l.errorLabels.isRequired,this);this.valid=r;J.count()>0&&(this.errors=J);return c[this.name]};c[g].isString=function(r,x){var J=l.data[this.name]=this.value,L=!1,fa=!0,ma=!0,G=c[this.name].errors||{};typeof J!='string'||G.isRequired||J==''||(L=!0,r&&typeof r=='number'&&J.length<r&&(fa=!1,this.size=r),x&&typeof x=='number'&&
|
|
95
|
+
J.length>x&&(ma=!1,this.size=x));L&&fa&&ma||(!L&&G.isRequired&&J==''?(L=!1,G.isString=h(this.error||l.errorLabels.isString,this)):L||G.isRequired||(L=!0),fa&&ma||(L=!1,fa||(G.isStringLength=h(this.error||l.errorLabels.isStringMinLength,this)),ma||(G.isStringLength=h(this.error||l.errorLabels.isStringMaxLength,this)),r===x&&(G.isStringLength=h(this.error||l.errorLabels.isStringLength,this))));this.valid=L;G.count()>0&&(this.errors=G);return c[this.name]};c[g].isDate=function(r){var x=this.value,J=
|
|
96
|
+
!1,L=c[this.name].errors||{},fa=null;if(!x||x==''||/NaN|Invalid Date/i.test(x))return/NaN|Invalid Date/i.test(x)&&(console.warn('[FormValidator::isDate] Provided value for field `'+this.name+'` is not allowed: `'+x+'`'),L.isDate=h(this.error||l.errorLabels.isDate,this)),this.valid=J,L.count()>0&&(this.errors=L),c[this.name];if(typeof r=='undefined'||typeof r!='undefined'&&/true/i.test(r))r='yyyy-mm-dd';if(x instanceof Date)x=x.format(r);else{try{fa=r.match(/[^\/\- ]+/g)}catch(oa){throw Error('[FormValidator::isDate] Provided mask not allowed: `'+
|
|
97
|
+
r+'`');}try{x=x.match(/[^\/\- ]+/g);var ma={},G;var K=0;for(G=fa.length;K<G;++K)ma[fa[K]]=x[K];for(var B in ma)r=r.replace(new RegExp(B,'g'),ma[B])}catch(oa){throw Error('[FormValidator::isDate] Provided value not allowed: `'+x+'`'+oa);}x=this.value=l.data[this.name]=new Date(r);if(/Invalid Date/i.test(x)||x instanceof Date===!1)return L.isRequired||this.value!=''?L.isDate=h(this.error||l.errorLabels.isDate,this):J=!0,this.valid=J,L.count()>0&&(this.errors=L),c[this.name];J=!0}this.valid=J;return x};
|
|
98
|
+
c[g].format=function(r,x){var J=this.value;return J?J.format(r,x):c[this.name]};c[g].setFlash=function(r,x){typeof x!='undefined'&&x!=''&&(this.error=x);return c[this.name]};c[g].setLabel=function(r){typeof r!='undefined'&&r!=''&&(this.label=r);return c[this.name]};c[g].trim=function(r){if(typeof r=='boolean'&&r)return this.value=this.value.replace(/^\s+|\s+$/,''),l.data[this.name]=l.data[this.name]=this.value,c[this.name]};c[g].exclude=function(r){if(typeof r=='boolean'&&!r)return/^true|false$/i.test(this.value)&&
|
|
99
|
+
(this.value=/^true$/i.test(this.value)?!0:!1,l.data[this.name]=this.value),c[this.name];this.isExcluded=!1;l.excluded.indexOf(this.name)<0&&(l.excluded.push(this.name),this.isExcluded=!0);return c[this.name]};c[g].query=u;c[g].getValidationContext=function(){return{isGFFCtx:C,self:c,local:l,replace:h}};if(n()){F=q=null;try{for(let r in gina.forms.validators)F='/validators/'+r+'/main.js',l.errorLabels[r]='Condition not satisfied',C?(q=ka(gina.forms.validators[r].data),q=q.replace(/(\)\s+\{|\)\{){1}/,
|
|
100
|
+
'$&\n\tvar validationContext = this.getValidationContext(),isGFFCtx = validationContext.isGFFCtx,self = validationContext.self,local = validationContext.local,replace = validationContext.replace;')):q=gina.forms.validators[r].toString(),c[g][r]=eval('('+q+')\n//# sourceURL='+r+'.js')}catch(r){throw Error('[UserFormValidator] Could not evaluate: `'+F+'`\n'+r.stack);}}};for(let g in c)V(g,c[g]);c.addField=function(g,q){typeof c[g]=='undefined'&&V(g,q)};c.isValid=function(){return c.getErrors().count()>
|
|
101
|
+
0?!1:!0};c.setErrors=function(g){if(!g)return{};for(var q in c)if(typeof c[q]=='object'){for(var F in c[q])typeof g[q]=='object'&&typeof g[q][F]!='undefined'&&(typeof c[q].valid!='undefined'&&/^true$/i.test(c[q].valid)?delete g[q][F]:(typeof c[q].errors=='undefined'&&(c[q].errors={}),c[q].errors[F]=g[q][F]));(typeof c[q].errors=='undefined'&&typeof g[q]!='undefined'||typeof c[q].errors!='undefined'&&c[q].errors.count()==0&&typeof g[q]!='undefined')&&delete g[q]}return g};c.getErrors=function(g){var q=
|
|
102
|
+
{};if(typeof g!='undefined')return typeof c[g]!='undefined'&&c[g]&&typeof c[g].errors!='undefined'&&c[g].errors.count()>0&&(q[g]=c[g].errors),q;for(var F in c)typeof c[F]=='object'&&typeof c[F].errors!='undefined'&&c[F].errors.count()>0&&(q[F]=c[F].errors);return q};c.toData=function(){if(l.excluded.length>0)for(var g=0,q=l.excluded.length;g<q;++g)typeof l.data[l.excluded[g]]!='undefined'&&delete l.data[l.excluded[g]];return l.data};var h=function(g,q){var F=g.match(/%[a-z]+/gi);if(F)for(var N=0,
|
|
103
|
+
r=F.length;N<r;++N)g=g.replace(new RegExp(F[N],'g'),q[l.keys[F[N]]]);return g};c.setErrorLabels=function(g){typeof g!='undefined'&&(l.errorLabels=A(g,l.errorLabels))};return c}typeof module!=='undefined'&&module.exports?module.exports=FormValidatorUtil:typeof define==='function'&&define.amd&&define('lib/form-validator',[],function(){return FormValidatorUtil});
|
|
104
104
|
function Routing(){var m=typeof module!=='undefined'&&module.exports?!1:!0,E={allowedMethods:['get','post','put','delete'],reservedParams:['controle','file','title','namespace','path'],notFound:{},getInstance:function(n){return Routing.instance}};if(typeof Routing.initialized=='undefined')Routing.initialized=!0,Routing.instance=E,Routing._cached=[],Routing._cachedRoutes={},Routing._tries={};else return E=E.getInstance();E.allowedMethodsString=E.allowedMethods.join(',');var I=null,M=null,C=null;m?
|
|
105
105
|
(M&&typeof M=='function'||(M=require('lib/merge')),C&&typeof C=='function'||(C=require('lib/form-validator'))):(require('fs'),require('util'),require('../../inherits'),M=require('../../merge'),I=require(__dirname+'/../../../core/plugins')||getContext('gina').plugins,C=I.Validator);E.getUrlProps=function(n,l){var c={};if(m){var S=window.gina.config;c.hostname=S.hostname;typeof n!='undefined'&&(n=this.getRoute('webroot@'+n),c.hostname=n.hostname,c.host=n.host,c.webroot=n.webroot)}else S=getContext('gina').config,
|
|
106
106
|
typeof getContext('argvFilename')!='undefined'&&(S.getRouting=getContext('gina').Config.instance.getRouting),typeof n=='undefined'&&(n=S.bundle),typeof l=='undefined'&&(l=S.env),c.hostname=S.envConf[n][l].hostname,c.host=S.envConf[n][l].host,c.webroot=S.envConf[n][l].server.webroot,console.debug('[self.getUrlProps][isProxyHost = '+getContext('isProxyHost')+'] hostname ',S.envConf[n][l].hostname,vs,process.gina.PROXY_HOSTNAME);return c};E.cache=function(n,l,c,S,ka){Routing._cached.indexOf(n)==-1&&
|
|
@@ -330,28 +330,29 @@ document.getElementById(y[ta].getAttribute('data-upload-'+b+'-link-id')):documen
|
|
|
330
330
|
b+'-method` was not defined. Switching to `'+k+'` by default.'));var W=a.getAttribute('data-gina-form-upload-'+b+'-is-synchrone');if(/null/i.test(W)||typeof k=='undefined'||k=='')W=!0;z={url:z,method:k,isSynchrone:W,headers:{'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8','X-Requested-With':'XMLHttpRequest'}};h(k)&&(W=V())&&(z.headers['X-Gina-CSRF-Token']=W);z=setupXhr(z);/GET|DELETE/i.test(k)?z.send():z.send(JSON.stringify({files:H}));if(/none/i.test(window.getComputedStyle(a).display)){if(/none/i.test(a.parentElement.style.display)){a.parentElement.style.display=
|
|
331
331
|
'block';return}a.style.display='block'}removeListener(gina,$uploadResetTrigger,'click',function(){f.remove();y[ta].remove()});Z--;ta--;break}}},X=function(a,b,e,k,z){var y=new FileReader;y.addEventListener('load',function(f){f.preventDefault();try{var O=this.result,H=void 0;f='';var W=null;typeof H=='undefined'&&(H=8);var ta=H/8;switch(H){case 8:W=new Uint8Array(O);break;case 16:W=new Uint16Array(O);break;case 32:W=new Uint32Array(O);break;default:W=new Uint8Array(O)}var Z=W.length;O=256+ta;H=0;for(var p=
|
|
332
332
|
ta=null;H<Z;H+=O)ta=Math.min(O,Z-H),p=W.subarray(H,H+ta),f+=String.fromCharCode.apply(null,p);a[this.index].bin+=f;a[this.index].file.type||(a[this.index].file.type='application/octet-stream')}catch(da){return z(da,null,!0)}e+='--'+b+'\r\n';e+='Content-Disposition: form-data; name="'+a[this.index].key+'"; group="'+a[this.index].group+'"; filename="'+a[this.index].file.name+'"\r\nContent-Type: '+a[this.index].file.type+'\r\nContent-Length: '+a[this.index].bin.length+'\r\n\r\n';e+=a[this.index].bin+
|
|
333
|
-
'\r\n';++this.index;this.index==a.length?(e+='--'+b+'--',z(!1,e,!0)):X(a,b,e,this.index,z)},!1);y.index=k;a[k].bin='';y.readAsArrayBuffer(a[k].file)},la=function(a){var b=a.target.getAttribute('data-gina-form-event-on-submit-success')||null;if(b!=null)if(/\((.*)\)/.test(b))
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
'
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
f
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
'
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
c.$forms[
|
|
352
|
-
ia.
|
|
353
|
-
|
|
354
|
-
|
|
333
|
+
'\r\n';++this.index;this.index==a.length?(e+='--'+b+'--',z(!1,e,!0)):X(a,b,e,this.index,z)},!1);y.index=k;a[k].bin='';y.readAsArrayBuffer(a[k].file)},la=function(a){var b=a.target.getAttribute('data-gina-form-event-on-submit-success')||null;if(b!=null)if(/\((.*)\)/.test(b))try{console.warn('[gina-form-event] function-call shape no longer supported on data-gina-form-event-on-submit-success \u2014 use a bare identifier and register the handler on window: '+b)}catch(e){}else a.on('success.hform',window[b]);
|
|
334
|
+
b=a.target.getAttribute('data-gina-form-event-on-submit-error')||null;if(b!=null)if(/\((.*)\)/.test(b))try{console.warn('[gina-form-event] function-call shape no longer supported on data-gina-form-event-on-submit-error \u2014 use a bare identifier and register the handler on window: '+b)}catch(e){}else a.on('error.hform',window[b])},ea=function(a){var b=null,e=a;if(!c.$forms)throw Error('`$forms` collection not found');if(typeof e=='undefined')if(typeof this.id!='undefined'&&this.id!=''&&this.id!=
|
|
335
|
+
null)e=this.id;else throw Error('[ FormValidator::destroy(formId) ] `formId` is missing');if(typeof e=='string')e=e.replace(/#/,'');else{if(typeof e!='object'||Array.isArray(e))throw Error('[ FormValidator::destroy(formId) ] `formId` should be a `string`');a=e.form;e=a.getAttribute('id')||'form.'+U();a.setAttribute('id',e)}typeof c.$forms[e]!='undefined'?b=c.$forms[e]:typeof this.binded!='undefined'&&(b=this);if(b)addListener(gina,b.target,'destroy.'+e,function(k){cancelEvent(k);delete c.$forms[e];
|
|
336
|
+
removeListener(gina,k.currentTarget,k.type);removeListener(gina,k.currentTarget,'destroy')}),b=Sa(b),triggerEvent(gina,b.target,'destroy.'+e);else throw Error('[ FormValidator::destroy(formId) ] `'+e+'` not found');},qa=function(){var a=typeof arguments[0]!='undefined'?arguments[0]:c.rules;for(let k in a){var b=Object.getOwnPropertyNames(a[k]),e=0;let z=b.length,y=!1,f=null;for(;e<z;){if(/^_case_/.test(b[e])){y=!0;f=b[e];break}e++}y||typeof a[k]!='object'||qa(a[k]);if(f&&Array.isArray(a[k][f].conditions)&&
|
|
337
|
+
a[k][f].conditions.length>0)for(b=0,e=a[k][f].conditions.length;b<e;)typeof a[k][f].conditions[b].rules!='undefined'&&a[k][f].conditions[b].rules.count()==0&&(a[k][f].conditions.splice(b,1),e--,b--),b++}},va=function(a){var b=JSON.stringify(a),e=b.match(/("@import\s+[-_a-z A-Z 0-9/.]+")/g)||[],k=[];for(let O=0,H=e.length;O<H;O++)k.indexOf(e[O])<0&&k.push(e[O]);e=k;k=b.match(/("_merging(.*))(\s+:|:)(.*)(",|")/g);c.rules||(c.rules={});if(e&&e.length>0){a={};for(let O=0,H=e.length;O<H;++O){var z=e[O].replace(/(@import\s+|"|')/g,
|
|
338
|
+
'');var y=z.replace(/(@import\s+|"|')/g,'').split(/\s/g);for(let W=0,ta=y.length;W<ta;++W){var f=y[W].replace(/\//g,'.').replace(/\-/g,'.');typeof c.rules[f]!='undefined'?(f=JSON.stringify(c.rules[f]),f=JSON.parse(f),f._comment=typeof f._comment!='undefined'?f._comment+'\n':'',f._comment+='Imported from `'+z+'`',f=JSON.stringify(f),b=b.replace(new RegExp(e[O],'g'),f),c.rules=JSON.parse(JSON.stringify(c.rules).replace(new RegExp(e[O],'g'),'{}'))):console.warn('[formValidator:rules] <@import error> on `'+
|
|
339
|
+
e[O]+'`: rule `'+y[W]+'` not found. Ignoring.')}y=new RegExp(e[O]);if(z=k&&y.test(k.join())?!0:!1)for(let W=0,ta=k.length;W<ta;W++)if(y.test(k[W])){z=JSON.stringify(a);z=z.substring(1,z.length-1);W<ta-1&&(z+=',');try{b=b.replace(new RegExp(k[W],'g'),z),c.rules=JSON.parse(JSON.stringify(c.rules).replace(new RegExp(k[W],'g'),'{}'))}catch(Z){throw Z;}}a={}}a=JSON.parse(b);wa(a,'');try{qa()}catch(O){console.error(O.stack)}}return a},ra=function(a){gina.hasValidator?(c=D(c,gina.validator),c.on('init',
|
|
340
|
+
function(b){c.isReady=!0;triggerEvent(gina,c.target,'ready.'+c.id,c)})):(c.target=document,c.setOptions=q,c.getFormById=F,c.validateFormById=r,c.resetErrorsDisplay=fa,c.resetFields=ma,c.handleErrorsDisplay=L,c.send=K,c.on('init',function(b){if(typeof a!='undefined'&&a.count())try{wa(a,''),a=va(a),gina.forms.rules=typeof gina.forms.rules!='undefined'&&gina.forms.rules?D(gina.forms.rules,a,!0):a,c.rules=D(c.rules,JSON.clone(gina.forms.rules),!0)}catch(ta){throw ta;}ka.count()||(ka=JSON.clone(c.rules));
|
|
341
|
+
S.setOptions=q;S.getFormById=F;S.validateFormById=r;S.resetErrorsDisplay=fa;S.resetFields=ma;S.handleErrorsDisplay=L;S.submit=G;S.send=K;S.unbind=Sa;S.bind=Ya;S.reBind=jb;S.destroy=ea;b=0;for(var e=document.getElementsByTagName('form'),k=0,z=e.length;k<z;++k){if(e[k].getAttribute){var y=e[k].getAttribute('id')||'form.'+U();y!==e[k].getAttribute('id')&&e[k].setAttribute('id',y)}else y='form.'+U(),e[k].setAttribute('id',y);S.id=y;S.target=e[k];c.$forms[y]=D({},S);var f=e[k].getAttribute('data-gina-form-rule');
|
|
342
|
+
if(f){f=f.replace(/\-|\//g,'.');if(typeof a!='undefined'){if(!/^[A-Za-z_$][\w$]*(\.[A-Za-z_$][\w$]*)*$/.test(f))throw Error('Invalid form rule path: `'+f+'`');for(var O=f.split('.'),H=gina.forms.rules,W=0;H!=null&&W<O.length;W++)H=H[O[W]];c.$forms[y].rules[f]=c.rules[f]=ka[f]=D(JSON.clone(H),c.rules[f])}if(typeof ka[f]=='undefined')throw Error('['+y+'] no rule found with key: `'+f+'`. Please check if json is not malformed @ /forms/rules/'+f.replace(/\./g,'/')+'.json');f=c.rules[f]}typeof y=='string'&&
|
|
343
|
+
typeof ka[y.replace(/\-/g,'.')]!='undefined'||typeof f=='object'?(y=c.$forms[y].target,f?Ya(y,f):Ya(y),++b):(typeof e[k].id=='object'?(delete c.$forms[e[k].id],y=e[k].attributes.getNamedItem('id').nodeValue||'form.'+U(),e[k].setAttribute('id',y),e[k].id=y,S.target=e[k],c.$forms[y]=D({},S),y=c.$forms[y].target):y=c.$forms[e[k].id].target,f?Ya(y,f):Ya(y))}if(window.XMLHttpRequest)v=new XMLHttpRequest;else if(window.ActiveXObject)try{v=new ActiveXObject('Msxml2.XMLHTTP')}catch(ta){try{v=new ActiveXObject('Microsoft.XMLHTTP')}catch(Z){}}c.isReady=
|
|
344
|
+
!0;gina.hasValidator=!0;gina.validator=c;triggerEvent(gina,c.target,'ready.'+c.id,c)}));c.initialized=!0;return c},wa=function(a,b){var e;for(e in a)if(typeof a[e]=='object'&&typeof c.rules[b+e]=='undefined'){var k=e;/\[|\]/.test(e)&&(k=e.replace(/\[/g,'.').replace(/\]/g,''));c.rules[b+k]=a[e];wa(a[e],b+k+'.')}},Ja=function(a){if(typeof ka[a]!='undefined')return ka[a];var b=null;if(typeof c.rules[a]=='undefined'){if(wa(ka,''),ka=va(ka),b=ka[a],!b)return{}}else b=c.rules[a];b=JSON.clone(b);var e=new RegExp('^'+
|
|
345
|
+
a),k=new RegExp('^'+a+'.'),z=null,y=function(O,H,W,ta,Z,p,da){if(H.length){var ja=Object.getOwnPropertyNames(O)[0],Q=H[0];Q=Z==''?Z+=Q:Z+'['+Q+']';H.length==1&&(O[ja]=D(O[ja],W,!0));H.splice(0,1);Q==ja?y(O[ja],H,W,ta,Q,p,da):typeof O[ja]!='undefined'?y(O[ja],H,W,ta,Q,p,da):y(O,H,W,ta,Z,p,da)}},f;for(f in c.rules)f!=a&&e.test(f)&&(z=f.replace(k,''),/\./.test(z)&&(z=z.split(/\./g),y(b,z,c.rules[f],b,'',0,b.count()-1)));return ka[a]=b},ca=formatDataFromString,ua=function(a){var b=c.$forms[a.form.getAttribute('id')],
|
|
346
|
+
e=/^true$/i.test(a.disabled)?!0:!1;e&&typeof b.rule!='undefined'&&typeof b.rule[a.name]!='undefined'&&typeof b.rule[a.name].exclude!='undefined'&&/^false$/i.test(b.rule[a.name].exclude)&&(e=!1);if(/^(radio|text|hidden|password|number|date|email)$/i.test(a.type)&&!e){var k=Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,'value'),z=k.set;k.set=function(y){Object.defineProperty(this,'value',{set:z});var f='change.'+this.id;y===this.value&&y===this.defaultValue||y===this.value||(this.value=
|
|
347
|
+
y,console.debug('Value set: '+y),typeof gina.events[f]!='undefined'&&(console.debug('trigger event on: ',this.name,f),triggerEvent(gina,this,f,y)));Object.defineProperty(this,'value',k)};Object.defineProperty(a,'value',k)}},Ba=function(a,b,e,k){typeof k=='undefined'&&(k=!1);var z=a.rules,y=c.$forms[b.form.getAttribute('id')],f=/^true$/i.test(b.disabled)?!0:!1;f&&typeof y.rule!='undefined'&&typeof y.rule[b.name]!='undefined'&&typeof y.rule[b.name].exclude!='undefined'&&/^false$/i.test(y.rule[b.name].exclude)&&
|
|
348
|
+
(f=!1);if(/^(radio|checkbox|text|hidden|password|number|date|email)$/i.test(b.type)&&!f||k&&!f){k=b.name;y=z[k]||null;if(!y&&(Za(z,b),typeof z[k]=='undefined'))return;if(a.target.dataset.ginaFormLiveCheckEnabled&&y&&(k=[],y=null,f=0,/^(radio|checkbox)$/i.test(b.type)?y=/^(radio|checkbox)$/i.test(b.type)?'changed.'+b.id:'change.'+b.id:(addEventListener(gina,b,'focusout.'+b.id,function(H){H.preventDefault();clearTimeout(e)}),y='change.'+b.id,typeof gina.events[y]=='undefined'&&(k[f]=y,++f),y='keyup.'+
|
|
349
|
+
b.id,typeof gina.events[y]=='undefined'&&(k[f]=y,++f),y='focusin.'+b.id,typeof gina.events[y]=='undefined'&&(k[f]=y,++f),y='focusout.'+b.id),typeof gina.events[y]=='undefined'&&(k[f]=y,++f),k.length>0)){var O=!1;addListener(gina,b,k,function(H){H.preventDefault();clearTimeout(e);if(!O&&/^changed\./i.test(H.type)||!O&&/^(radio|checkbox)$/i.test(H.target.type))O=!0;else if(O&&/^changed\./i.test(H.type)||O&&/^(radio|checkbox)$/i.test(H.target.type))return!1;if(typeof c.$forms[H.target.form.getAttribute('id')].isSubmitting!=
|
|
350
|
+
'undefined'&&/true/i.test(c.$forms[H.target.form.getAttribute('id')].isSubmitting))return!1;var W=function(){/^(password)$/i.test(H.target.type)||console.debug('processing: '+H.target.name+'/'+H.target.id);if(!/^(radio|checkbox)$/i.test(H.target.type)&&H.target.value===H.target.defaultValue&&H.target.value!=''){var ta=c.$forms[H.target.form.getAttribute('id')].errors;if(ta&&ta.count()!=0)L(H.target.form,ta,null,H.target.name);else return L(H.target.form,{},null,H.target.name),cancelEvent(H)}ta={};
|
|
351
|
+
var Z={};ta[H.target.name]=H.target.value;Z[H.target.name]=H.target;c.$forms[H.target.form.getAttribute('id')].isValidating=!0;T(H.target,ta,Z,a.rules,function(p){p.isValid()?L(H.target.form,{},p.data,H.target.name):L(H.target.form,p.error,p.data,H.target.name);var da=H.target.form,ja=null,Q=null,ha=null;ha=kb(da,z);ja=ha.fields;Q=ha.$fields;var sa=da.getAttribute('id');ha=c.$forms[sa].rules;c.$forms[sa].isValidating=!0;T(da,ja,Q,ha,function(ia){c.$forms[sa].isValidating=!1;console.debug('['+sa+'] onSilentGlobalLiveValidation: '+
|
|
352
|
+
ia.isValid(),ia,ja);var xa=ia.isValid();A&&C&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&(gina.forms.errors||(gina.forms.errors={}),window.ginaToolbar.update('forms',{id:sa,errors:ia.error||{}}));if(!xa&&ia.error){c.$forms[b.form.getAttribute('id')].errors=D(p.error,ia.error);var Ma=H.target.name;typeof ia.error[Ma]!='undefined'&&(x(Q[Ma]),L(da,ia.error,ia.data,Ma))}else c.$forms[sa].errors&&!c.$forms[sa].errors.count()&&(c.$forms[sa].errors={},console.debug('resetting field: '+b.name),
|
|
353
|
+
J[sa]={},L(da,{},null,b.name));eb(da,xa);O=!1})})};if(/^changed\./i.test(H.type)||/^change\./i.test(H.type)&&H.target.type=='radio')return function(ta,Z){if(!(Z>0))return++Z,setTimeout(()=>{console.debug(' changed .... '+b.id);W()},0)}(O,0);/^focusin\./i.test(H.type)?/\-error/.test(b.parentNode.className)&&(console.debug('#1 you just focusin ....'+b.id,b.value,c.$forms[b.form.getAttribute('id')].isValidating),x(b)):/^focusout\./i.test(H.type)?/\-warning/.test(b.parentNode.className)&&(console.debug('#1 you just focusout ....'+
|
|
354
|
+
b.id,b.value),c.$forms[b.form.getAttribute('id')].isValidating=!1,x(b),L(b.form,c.$forms[b.form.getAttribute('id')].errors,null,b.name)):/^keyup\./i.test(H.type)?(b.ginaFormValidatorTestedValue=b.value,e=setTimeout(function(){['91','17','16'].indexOf(''+H.keyCode)>-1&&aa.count()==0||(console.debug('[A]['+aa.count()+'] keyup ('+H.keyCode+') .... '+b.id,b.value,' VS ',b.ginaFormValidatorTestedValue+'(old)'),W())},1E3)):/^change\./i.test(H.type)&&!/^(checkbox)$/i.test(H.target.type)&&(console.debug(' change .... '+
|
|
355
|
+
b.id),W())})}}},Oa=function(a,b){a.setSelectionRange?(a.focus(),a.setSelectionRange(b,b)):a.createTextRange&&(a=a.createTextRange(),a.collapse(!0),a.moveEnd('character',b),a.moveStart('character',b),a.select())},Ia=function(a,b){if(document.activeElement&&document.activeElement.form){a=Array.prototype.filter.call(document.activeElement.form.querySelectorAll('a:not([disabled]), button:not([disabled]), input[type=text]:not([disabled]), select:not([disabled]), [tabindex]:not([disabled]):not([tabindex="-1"])'),
|
|
355
356
|
function(z){return z.offsetWidth>0||z.offsetHeight>0||z===document.activeElement});var e=a.indexOf(document.activeElement);if(e>-1){var k=a[e+1];b&&(k=a[e-1]);(k||a[0]).focus()}}},Ka=function(a,b){a.setAttribute('readonly','readonly');addListener(gina,a,'focusout.'+a.id,function(e){e.preventDefault();clearTimeout(b);e=e.currentTarget;triggerEvent(gina,e,'change.'+e.id);e.setAttribute('readonly','readonly')});addListener(gina,a,'focusin.'+a.id,function(e){e.preventDefault();e.currentTarget.removeAttribute('readonly');
|
|
356
357
|
var k='keydown.'+e.currentTarget.id;typeof gina.events[k]=='undefined'&&addListener(gina,e.currentTarget,k,function(z){z.preventDefault();clearTimeout(b);var y=z.currentTarget,f=z.currentTarget.value,O=y.selectionStart,H=y.selectionEnd;y.removeAttribute('readonly');switch(z.keyCode){case 46:O!=H?(y.value=f.substring(0,O)+f.substring(H),O==0&&(y.value=f.substring(H+1))):y.value=O==0?f.substring(O+1):f.substring(0,O)+f.substring(H+1);z.currentTarget.setAttribute('readonly','readonly');setTimeout(()=>
|
|
357
358
|
{y.removeAttribute('readonly');setTimeout(()=>{Oa(y,O)},0)},0);break;case 8:O!=H?(y.value=f.substring(0,O)+f.substring(H),O==0&&(y.value=f.substring(H))):y.value=O==0?f.substring(O+1):f.substring(0,O-1)+f.substring(H);z.currentTarget.setAttribute('readonly','readonly');setTimeout(()=>{y.removeAttribute('readonly');setTimeout(()=>{O!=H?Oa(y,O):O==0?Oa(y,O):Oa(y,O-1)},0)},0);break;case 9:aa[16]&&aa[9]?Ia(y,!0):Ia(y);break;case 13:case 16:break;case 37:console.debug('moving left ',O-1);Oa(y,O-1);break;
|
|
Binary file
|