gina 0.6.5 → 0.6.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/README.md +23 -36
- package/ROADMAP.md +1 -0
- package/framework/v0.6.6/VERSION +1 -0
- package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/js/gina.js +84 -25
- package/framework/v0.6.6/core/asset/plugin/dist/vendor/gina/js/gina.min.js +643 -0
- package/framework/v0.6.6/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/v0.6.6/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- package/framework/{v0.6.5 → v0.6.6}/lib/logger/src/containers/file/index.js +9 -5
- package/framework/v0.6.6/lib/logger/src/containers/mq/speaker.js +439 -0
- package/framework/{v0.6.5 → v0.6.6}/lib/net-locality/src/main.js +48 -2
- package/framework/{v0.6.5 → v0.6.6}/package.json +1 -1
- package/gna.js +4 -4
- package/llms.txt +30 -30
- package/package.json +3 -3
- package/framework/v0.6.5/VERSION +0 -1
- package/framework/v0.6.5/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -643
- package/framework/v0.6.5/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/v0.6.5/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- package/framework/v0.6.5/lib/logger/src/containers/mq/speaker.js +0 -242
- /package/framework/{v0.6.5 → v0.6.6}/AUTHORS +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/LICENSE +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/html/nolayout.html +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/html/static.html +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/img/android-chrome-192x192.png +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/img/android-chrome-512x512.png +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/img/apple-touch-icon.png +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/img/favicon-16x16.png +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/img/favicon-32x32.png +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/img/favicon.ico +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/config.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/ai/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/ai/lib/connector.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/couchbase/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/couchbase/lib/connector.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/couchbase/lib/connector.v3.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/couchbase/lib/connector.v4.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/couchbase/lib/n1ql.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/couchbase/lib/session-store.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/duckdb/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/duckdb/lib/connector.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/mongodb/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/mongodb/lib/connector.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/mongodb/lib/job-store.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/mongodb/lib/session-store.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/mysql/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/mysql/lib/connector.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/postgresql/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/postgresql/lib/connector.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/redis/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/redis/lib/connector.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/redis/lib/job-store.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/redis/lib/render-cache-store.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/redis/lib/session-store.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/scylladb/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/scylladb/lib/connector.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/scylladb/lib/session-store.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/sql-parser.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/sqlite/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/sqlite/lib/connector.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/sqlite/lib/job-store.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/sqlite/lib/session-store.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/content.encoding +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/controller/controller.framework.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/controller/controller.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/controller/controller.render-json.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/controller/controller.render-nunjucks-async.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/controller/controller.render-nunjucks.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/controller/controller.render-stream.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/controller/controller.render-swig-async.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/controller/controller.render-swig.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/controller/controller.render-v1.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/controller/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/controller/inspector-window-emit.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/controller/release-banner.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/dev/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/dev/lib/class.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/dev/lib/factory.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/dev/lib/tools.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/gna.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/locales/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/locales/currency.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/locales/dist/language/en.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/locales/dist/language/fr.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/locales/dist/region/en.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/locales/dist/region/fr.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/locales/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/mime.types +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/model/entity.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/model/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/model/template/entityFactory.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/model/template/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/csrf/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/csrf/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/csrf/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/coep/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/coep/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/coop/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/coop/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/corp/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/corp/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/csp/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/csp/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/hsts/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/hsts/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/session/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/session/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/session/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/storage/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/storage/build.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/storage/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/storage/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/validator/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/validator/build.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/validator/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/validator/src/form-validator.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/validator/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/router.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/server.express.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/server.isaac.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/server.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/status.codes +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/_gitignore +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle/config/app.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle/config/connectors.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle/config/routing.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle/config/settings.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle/config/templates.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle/config/watchers.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle/locales/en.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_public/css/default.css +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_public/css/home.css +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_public/js/components/x-checklist.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_public/readme.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_public/sw.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_templates/html/includes/x-checklist.html +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/command/gina.bat.tpl +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/command/gina.tpl +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/conf/env.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/conf/manifest.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/conf/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/conf/settings.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/conf/statics.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/conf/templates.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/error/client/json/401.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/error/client/json/403.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/error/client/json/404.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/error/server/html/50x.html +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/error/server/json/500.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/error/server/json/503.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/extensions/logger/config.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/console.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/context.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/data/LICENSE +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/data/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/data/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/data/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/dateFormat.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/json/LICENSE +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/json/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/json/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/json/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/path.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/plugins/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/plugins/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/plugins/src/api-error.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/plugins/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/prototypes.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/task.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/text.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/admin/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/admin/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/archiver/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/archiver/build.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/archiver/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/archiver/src/dep/jszip.min.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/archiver/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/async/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/async/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/audit/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/audit/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/audit-store.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/authn/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/authn/src/lockout.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/authn/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/authn/src/totp.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/authz-gate/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/authz-gate/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cache/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cache/build.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cache/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cache/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/aliases.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/audit/arguments.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/audit/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/audit/verify.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/add.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/arguments.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/build.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/copy.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/cp.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/help.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/list.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/man.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/mcp-start.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/mcp.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/oas.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/openapi.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/remove.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/rename.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/restart.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/rm.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/start.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/status.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/stop.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/types.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/cache/arguments.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/cache/clear.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/cache/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/cache/stats.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/connector/add.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/connector/arguments.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/connector/help.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/connector/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/connector/infer.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/connector/list.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/connector/migrate.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/connector/models.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/connector/remove.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/connector/rm.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/connector/test.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/container/arguments.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/container/help.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/container/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/container/man.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/container/ps.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/container/stop.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/controller/add.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/controller/arguments.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/controller/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/controller/inc/args.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/controller/inc/namespace.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/controller/inc/reference-rewrite.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/controller/inc/reference-scan.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/controller/inc/scaffold.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/controller/remove.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/controller/rename.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/controller/rm.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/env/add.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/env/get.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/env/help.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/env/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/env/link-dev.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/env/list.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/env/remove.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/env/rm.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/env/set.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/env/unset.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/env/use.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/add.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/arguments.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/build.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/dot.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/get.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/help.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/init.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/link-node-modules.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/link.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/list.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/man.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/msg.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/open.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/remove.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/reset.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/restart.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/set.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/start.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/status.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/stop.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/tail.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/update.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/version.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/gina-dev.1.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/gina-framework.1.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/gina.1.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/helper.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/i18n/add.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/i18n/arguments.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/i18n/export.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/i18n/help.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/i18n/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/i18n/import.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/i18n/scan.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/image/_host.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/image/arguments.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/image/build.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/image/help.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/image/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/image/list.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/image/man.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/image/rm.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/image/run.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/inspector/help.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/inspector/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/inspector/open.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/man-render.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/minion/arguments.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/minion/help.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/minion/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/minion/kill.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/minion/list.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/msg.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/port/help.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/port/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/port/inc/scan.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/port/list.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/port/reset.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/port/set.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/add.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/arguments.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/backup.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/build.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/help.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/import.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/list.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/man.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/move.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/remove.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/rename.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/restart.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/restore.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/rm.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/start.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/status.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/stop.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/protocol/arguments.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/protocol/help.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/protocol/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/protocol/list.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/protocol/remove.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/protocol/set.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/scope/add.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/scope/help.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/scope/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/scope/link-local.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/scope/link-production.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/scope/list.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/scope/remove.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/scope/rm.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/scope/use.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/secrets/arguments.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/secrets/check.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/secrets/help.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/secrets/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/secrets/scan.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/service/help.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/service/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/service/list.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/service/man.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/service/start.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/view/add.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd-status-format/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd-status-format/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/collection/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/collection/build.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/collection/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/collection/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/config.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/connector-config/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/connector-config/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/connector-error/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/connector-error/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/connector-registry/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/connector-registry/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cron/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cron/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cron/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/domain/LICENSE +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/domain/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/domain/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/domain/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/dto/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/dto/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/dto-pipe/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/dto-pipe/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/dto-types/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/dto-types/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/generator/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/i18n/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/i18n/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/image-build/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/image-build/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/inherits/LICENSE +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/inherits/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/inherits/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/inherits/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/inspector-events/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/inspector-events/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/inspector-redact/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/inspector-redact/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/instrument/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/instrument/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/job/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/job/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/job-store.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/json-config-header/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/json-config-header/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/loading-state/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/loading-state/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/logger/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/logger/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/logger/src/containers/default/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/logger/src/containers/mq/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/logger/src/containers/mq/listener.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/logger/src/helper.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/logger/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/math/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/mcp-dispatch/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/mcp-dispatch/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/mcp-http/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/mcp-http/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/mcp-server/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/mcp-server/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/merge/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/merge/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/merge/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/metrics/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/metrics/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/model.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/net-locality/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/nunjucks-filters/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/nunjucks-filters/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/nunjucks-filters/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/nunjucks-resolver/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/nunjucks-resolver/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/proc.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/release-watch/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/release-watch/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/render-cache/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/render-cache/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/render-cache-store.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/routing/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/routing/build.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/routing/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/routing/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/routing/src/radix.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/routing-introspect/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/routing-introspect/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/secrets/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/secrets/src/backends/env.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/secrets/src/backends/file.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/secrets/src/env-file.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/secrets/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/session-store.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/shell.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/sqlite-driver.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/state.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/swig-filters/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/swig-filters/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/swig-filters/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/swig-resolver/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/swig-resolver/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/template-loaders/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/template-loaders/src/loaders/http.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/template-loaders/src/loaders/memory.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/template-loaders/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/url/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/url/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/url/routing.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/uuid/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/uuid/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/validator.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/watcher/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/watcher/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/ws-framing/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/ws-framing/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/ws-query/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/ws-query/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/ws-session/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/ws-session/src/main.js +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,16 @@ 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.6.6 - 2026-08-09
|
|
10
|
+
### Added
|
|
11
|
+
* The MQ log speaker now reconnects on its own. It previously dialled the listener exactly once, ever, so anything that ended that connection — a daemon restart, an OOM-killed listener, a container probe — left the bundle logging nowhere, with no error after the first and nothing in the logs to say so. It now redials when the connection closes, backing off exponentially to a 30 second ceiling, and logs a `reconnected` notice when it recovers; a failure is reported once per outage rather than once per attempt. The retry timer is unreferenced, so short-lived CLI processes still exit immediately instead of waiting out a backoff. Frames emitted while the transport is down are dropped rather than queued, which keeps memory bounded during a long outage — the `default` flow still carries those lines to stdout.
|
|
12
|
+
### Fixed
|
|
13
|
+
* Application log lines reach the local MQ listener again when the framework home names another machine — the MQ speaker and file log containers dialled `host_v4` verbatim, so on a `~/.gina` shared across hosts (each host rewriting `settings.json` at boot) or after a stale address was left behind, every runtime log frame was silently shipped off-host while all connection lines read healthy, leaving container logs with only boot output. The two intra-host transports now resolve their dial from the bind side only (`GINA_BIND_HOST`, then `settings.bind_host`): a concrete non-wildcard local bind is dialled, anything else stays on loopback. Pointing `host_v4` at a remote machine to ship logs cross-host was never a supported topology (the listener binds loopback by default) and no longer affects these two clients; `gina tail` and the command socket keep their remote-capable resolution (#B320)
|
|
14
|
+
* The popin `success` event now fires. A popin whose JSON response carried neither a redirect nor a reload previously raised `error` with an HTTP 422 status instead — and because the error branch replaces its payload with the parsed response body, that 422 carried the successful response itself, which read as a server-side failure that had never happened. Subscribers to `success` received nothing at all. If you worked around this by listening on `error` and inspecting its payload, move that handler to `success`.
|
|
15
|
+
* A bundle whose boot blocked the event loop for more than two seconds — the ordinary shape for a container start or a mount off a network filesystem — lost its `mq` log flow for the rest of the process's life, silently. The connect deadline introduced in 0.6.5 read the socket's `connecting` flag from the timers phase, which runs BEFORE the poll phase that clears it, so an overdue deadline destroyed a connection the kernel had already established. Every boot line still read healthy while nothing reached the listener, the file sink or container stdout. The deadline now reaches its verdict one event-loop phase later, so it can no longer cancel a completed connect, while a genuinely unreachable host is still given up on as promptly as before. If you pinned to 0.6.5 or worked around this with `GINA_LOG_STDOUT=true`, you can lift both.
|
|
16
|
+
* Two `data-gina-link` anchors sharing one url no longer collapse onto whichever registered first. The request — and the `data-gina-loading` state, the HTML-callback attribute reads and the per-link XHR events with it — now belongs to the anchor that was actually clicked, on both dispatch paths (a direct click on the anchor, and a click on a nested child element). The public `gina.link.request(url)` call keeps its historical behaviour and resolves the first registration matching the url, since a bare url is all it has.
|
|
17
|
+
* The link plugin now publishes its handler once — `gina.link` is the first activated instance, and a later construction no longer deep-merges itself into the live published one (the same freeze-prone shape the popin and nav plugins were already cured of). Pages constructing a single handler, which is the overwhelmingly common case, behave identically.
|
|
18
|
+
|
|
9
19
|
## 0.6.5 - 2026-08-08
|
|
10
20
|
### Changed
|
|
11
21
|
* The not-ready submit-trigger state is now expressed with the framework-owned `data-gina-form-submit-gated="true"` attribute plus the existing `gina-form-submit-disabled` class, instead of `aria-disabled` (#B312): the trigger is genuinely operable — a click is answered with the validation reveal — so it no longer carries an ARIA claim its behaviour contradicts. `aria-disabled` now has exactly two writers, both honest: your own authored marks, which the click gates enforce and the framework never auto-clears (clear yours when you enable the control — previously a valid form stripped it for you), and the anchor in-flight lock for the request window. A default look ships for the gated state (`cursor: not-allowed` + a modest dim, single-attribute specificity, trivially overridden). If your CSS targeted `[aria-disabled="true"]` on submit triggers, key it on `.gina-form-submit-disabled` (written since 0.5.12) or the new attribute; automation note — a gated trigger no longer fails driver actionability checks, so plain clicks deliver.
|
package/README.md
CHANGED
|
@@ -60,47 +60,34 @@ open https://localhost:3100
|
|
|
60
60
|
|
|
61
61
|
> **npm 12+** blocks install scripts by default, and gina's post-install bootstraps `~/.gina` and the framework dependencies. Install with `npm install -g gina@latest --allow-scripts=gina`, or allow it once for all global installs with `npm config set allow-scripts=gina --location=user`. (Not needed on npm ≤ 11.)
|
|
62
62
|
|
|
63
|
-
## What's in 0.6.
|
|
63
|
+
## What's in 0.6.6
|
|
64
|
+
|
|
65
|
+
> **If you run gina in containers or Kubernetes, upgrade.** `0.6.5` shipped a
|
|
66
|
+
> regression that could silence a bundle's logging permanently — for the whole
|
|
67
|
+
> life of the process, with every startup line before it still reading healthy
|
|
68
|
+
> (#B323, first below). Any deployment whose boot is slow enough to block the
|
|
69
|
+
> event loop for two seconds — a container start, a mount off a network
|
|
70
|
+
> filesystem — was exposed.
|
|
64
71
|
|
|
65
72
|
> **Re-bake your bundles, not just restart them.** The browser bundle changed in
|
|
66
|
-
> this release.
|
|
67
|
-
>
|
|
68
|
-
>
|
|
73
|
+
> this release. The popin and link fixes below live in the bundle, so a restart
|
|
74
|
+
> alone will not deliver them. Rebuild each bundle (`gina bundle:build`) as well
|
|
75
|
+
> as restarting. The logging fixes are server-side and need only the restart.
|
|
69
76
|
|
|
70
|
-
> **No settings reset.** `0.6.
|
|
77
|
+
> **No settings reset.** `0.6.6` is a patch — the `shortVersion` stays `0.6`, so
|
|
71
78
|
> your `~/.gina/0.6/settings.json` is untouched. (`0.6.0` was the reset.)
|
|
72
79
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
**
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
and
|
|
82
|
-
|
|
83
|
-
- **
|
|
84
|
-
- **Fixed — a double-submit guard no longer kills the submit.** Since `0.6.4`, a submit trigger stopped responding to clicks when your own handler set the native `disabled` attribute during the click — the shape the near-universal double-submit guard uses. The click was cancelled before anything was sent, and because your handler cleared the attribute again the button looked perfectly normal while every further click was swallowed. The native attribute is now honoured only where the browser does not already enforce it (anchors, custom elements); on a real form control the browser suppresses the click itself, so the check never protected you there. The same shape is fixed for popin and dialog triggers, the legacy popin dispatch path, and in-popin close buttons, where a capture-phase guard could leave a popin stuck open. (#B293, #B296)
|
|
85
|
-
- **Fixed — a submit button keeps working after its DOM node is replaced.** The shape an AJAX update or a popin re-render produces when it swaps in fresh markup: the replacement went permanently and silently dead — no request, no navigation, no error — while Enter and `submit()` still worked. Click handling is delegated to the form and survived the swap, but the step that runs the submit was bound to the original node. Gina now recognises a replaced trigger on its first click and re-binds it. (#B294)
|
|
86
|
-
- **Fixed — an async `query` rule no longer leaves a valid form blocked.** A form whose last rule is an async uniqueness check stayed marked invalid after the check came back clean, because the completion path decided validity from one field's result and only ran its update when that field failed. Invisible until `0.6.4`, when the submit gate began reading the marker — after which the first click following a settled query was silently swallowed. (#B295)
|
|
87
|
-
- **Fixed — Enter and wrapped-label clicks respect the submit gate.** The submit proxy enforced its gate against a `DOMParser` copy of the form that could only see native `disabled`, so a gated trigger still ran the full cycle and **sent** from a click on markup nested inside the button, or from Enter on a form whose trigger is not a native submit button. Trusted gestures now hit the live registered trigger with the same answer as the click path. Programmatic `$forms[id].submit()` deliberately keeps the fresh-validate path. (#B308)
|
|
88
|
-
- **Fixed — an anchor submit trigger's in-flight lock survives a second click.** On an `<a data-gina-form-submit>` the validity gate and the in-flight lock both wrote `aria-disabled` with opposite lifecycles and could erase each other, leaving a form marked to the framework but operable to assistive technology, or announcing a control operable while its request was still running. With the not-ready state on its own attribute, the lock owns `aria-disabled` exclusively. Button triggers were never affected. (#B309, #B313)
|
|
89
|
-
- **Fixed — required fields accept padded input, and `trim` strips both sides.** `isRequired` treated any value *starting* with whitespace as empty, so `" john"` was rejected as *Cannot be left empty* — and when the rule set also declared `trim`, the same pass then trimmed the value after recording the error. Emptiness now means `undefined`, `null`, the empty string, or whitespace-only. `trim` also rewrote only the first whitespace run it found, so a value padded on both sides kept its trailing run. **Action:** if anything relied on leading whitespace being rejected, enforce it explicitly. (#B245)
|
|
90
|
-
- **Fixed — a popin holding several forms tears all of them down.** The teardown walked its list of forms while removing entries from it, releasing only every other one; the skipped forms kept stale records pointing at discarded markup, so the next open handed back the stale record and the form came up silently inert. Only popins given a validator explicitly are affected. Teardown is also no longer all-or-nothing. (#B265)
|
|
91
|
-
- **Fixed — a popin trigger shows its busy state when it adopts a preload.** The common path when warm-on-intent preloading is on: an open adopting a still-in-flight hover/focus preload left the trigger with no affordance. It is now armed for the adopted wait exactly like a cold load and released when the preload settles either way. An instant open from cache never flashes a busy state. (#B285)
|
|
92
|
-
- **Fixed — a legacy popin trigger cannot start a second load.** An anchor using the older `data-gina-popin-name` markup was marked `aria-disabled` while loading, but its dispatch path tested only the plain `disabled` attribute, which an anchor never carries — so a second click during a slow load issued a second request. In practice this reached triggers that opt out of preloading, i.e. links whose request has side effects on the server. (#B298)
|
|
93
|
-
- **Fixed — a popin close button works with your own id and with nested markup.** Giving the button your own id stopped it working, because gina recognised its close buttons by an id it had assigned itself. More commonly, an icon inside the button broke it too — a click landing on the inner `svg` or `span` was not recognised. Neither reported an error, and gina suppresses the default action either way, so nothing happened at all. (#B299, #B301)
|
|
94
|
-
- **Fixed — `data-gina-link` leaves native affordances to the browser.** Four cases are no longer intercepted: an anchor carrying `download` saves natively instead of being buffered in memory, one carrying `target` opens its window or tab again, one pointing at a bare `#` fragment moves within the page, and a ctrl/cmd/shift/alt click opens the tab or window the browser would. The tests run against the resolved target, so the documented placeholder form keeps working. Cross-origin links are unaffected. (#B288)
|
|
95
|
-
- **Fixed — a `data-gina-link` with your own id dispatches again.** Gina kept the id you wrote but dispatched only links whose id it had generated itself, so `<a id="my-link" data-gina-link>` registered normally and was then silently ignored on every click — with the default action already suppressed, nothing happened at all. Links with no id, and links wrapping a `span` or image, were unaffected, which is why this could sit unnoticed. (#B302)
|
|
96
|
-
- **Fixed — disabled links are refused.** `data-gina-link` anchors had no disabled gate at all: one marked `aria-disabled="true"` still fired its XHR from both dispatch paths. Both now refuse the click with the same predicate the popin and validator gates use, while still suppressing the default navigation. Programmatic `gina.link.request()` deliberately stays ungated. **Action:** this is an enforcement tightening — remove the attribute from any link you still expect to fire. (#B310)
|
|
97
|
-
- **Fixed — download filenames parse and serialize correctly.** Client-side, a `Content-Disposition` carrying no `filename` no longer throws mid-download (the browser derives a name), a quoted-string filename is unquoted and unescaped rather than saved with its quotes, and a trailing extended parameter is no longer folded into the name. Server-side, both emitters now write the filename as an RFC 6266 quoted-string with `"` and `\` escaped, so a name containing spaces, `;` or `,` produces a conformant header instead of a bare token an intermediary may truncate. (#B290, #B297)
|
|
98
|
-
- **Fixed — `gina.setOptions()` writes the config the framework actually reads.** It merged into an orphan object nothing ever read, and was therefore silently ignored for every key since it shipped — the documented `loadingAttribute` rename could not work. It now merges into the exposed `gina.config` in place, with override semantics. **Action:** anything your project was already passing and silently having ignored **will now take effect** — review those calls. The `data-gina-config` script-tag attribute, documented alongside the rename but parsed by nothing, is no longer documented. (#B305)
|
|
99
|
-
- **Fixed — the dev Inspector's standalone window reports its source mode.** The footer badge naming where the window's data comes from never appeared for a window opened from a `?target=` URL, because it was painted only from the data-poll timer that standalone mode deliberately never starts. The same mode did show when the window was reached through the connect form, so the badge's presence depended on how the Inspector had been opened rather than on the mode it was in. Polling is still not started there, deliberately. (#B306)
|
|
100
|
-
- **Fixed — the documented SQLite and DuckDB default database path.** The connector JSDoc and the `connectors.json` schema described the default as version-segmented; the framework resolves the gina home without a version segment, so the documented default now matches the real path. Documentation only — behaviour is unchanged. (#B317)
|
|
101
|
-
- **Fixed — `npm test` runs the suite.** The script pointed at a glob matching no files: 0 tests, exit 0 — a silent green that could pass for a healthy run. It now runs the full suite CI gates on, with `package.json` as the single source of truth for that file list. Adds `npm run test:coverage`, and a `pretest:e2e` step that installs the matching Chromium build so `npm run test:e2e` works from a clean checkout.
|
|
102
|
-
- **Fixed — an unreachable log host no longer stalls gina processes.** With the default `mq` log flow configured and the host unreachable — a powered-off peer, a firewalled segment, a stale `host_v4` after a DHCP reassignment — any fresh gina process, a bare `require()` of framework code included, hung for the OS connect timeout (~75 seconds on macOS) before doing anything. A *refused* connection was always fine; it was the host that answers nothing at all that held the process open, because a still-pending dial is a live request even on an unref'd socket. The dial now carries its own bounded deadline and degrades through the same error path as a refusal — logging stays best-effort, never load-bearing. This fix is server-side: a restart delivers it, no re-bake needed. (#B318)
|
|
103
|
-
- **Fixed — a refused submit keeps its error message visible.** Both refused-submit answers — the gated-trigger reveal and an enabled trigger's failed validation — render the first invalid field's message and then focus that field, and that focus re-engaged the live-check suppression that hides a message while its field is being edited: the answer was clipped to a screen-reader-only state the instant it appeared, so a refused submit looked like a dead click to sighted users. The framework's own answer focus is now exempt, one-shot; the first later keystroke re-engages the mid-typing suppression unchanged, as does clicking into an errored field yourself. Pre-existing — reproduced back to `0.6.4`. (#B319)
|
|
80
|
+
**Two items may need action before you upgrade:** cross-host log shipping via
|
|
81
|
+
`host_v4` no longer reaches the log transports, and popin subscribers that
|
|
82
|
+
worked around the `success` event by listening on `error` should move back. Both
|
|
83
|
+
are called out below and in the [migration guide](https://gina.io/docs/migration).
|
|
84
|
+
|
|
85
|
+
- **Fixed — a slow boot no longer silences a bundle's logging.** `0.6.5` added a two-second deadline so an unreachable log host could not stall a process. That deadline asked the socket whether it was still connecting — but Node clears that flag in the event loop's *poll* phase, and timers run *before* poll. So a boot that blocked the loop past the deadline resumed, ran the overdue deadline first, read a flag nothing had updated yet, and destroyed a connection the kernel had already established. Because the transport dialled exactly once, the bundle then logged nowhere for the rest of its life, with no error after the first. The deadline now reaches its verdict one phase later; a genuinely unreachable host is still given up on just as promptly.
|
|
86
|
+
- **Added — the log transport reconnects.** Previously anything that ended the connection was permanent: a daemon restart under a live bundle orphaned its transport forever, and in a cluster that is a matter of when — liveness probes, out-of-memory kills, node drains. It now redials when the connection closes, backing off exponentially to a 30-second ceiling and logging a `reconnected` notice when it recovers. A failure is reported once per outage rather than once per attempt. Short-lived CLI processes still exit immediately, and frames emitted while the transport is down are dropped rather than queued, so a long outage cannot grow memory — the `default` flow still carries those lines to stdout.
|
|
87
|
+
- **Fixed — log transports always deliver to the local daemon.** The MQ speaker and the file log container dialled `host_v4` verbatim, but their listener runs on the same machine by construction, while `host_v4` describes the address *external* clients use. On a `~/.gina` shared across hosts — where every host rewrites `settings.json` at boot — or after a stale address was left behind, every runtime log line was silently shipped off-host while all connection lines read healthy. Both now resolve their dial from the bind side only. **Action required only if** you deliberately pointed `host_v4` at a remote machine to ship logs cross-host; that was never a supported topology and no longer affects these two transports. `gina tail` and the CLI command socket keep their remote-capable resolution.
|
|
88
|
+
- **Fixed — the popin `success` event fires again.** A popin whose JSON response carried neither a redirect nor a reload raised `error` with an HTTP 422 instead — and because the error branch replaces its payload with the parsed response body, that 422 carried the successful response itself, reading as a server-side failure that had never happened. Subscribers to `success` received nothing at all. **If you worked around this by listening on `error` and inspecting its payload, move that handler to `success`.**
|
|
89
|
+
- **Fixed — a link request belongs to the anchor you clicked.** Two `data-gina-link` anchors sharing one url collapsed onto whichever appeared first in the document: clicking the second armed the *first* one's loading state, read the first one's callback attributes, and fired the first one's events. The clicked anchor now owns all of it, on both dispatch paths — a direct click, and a click on a nested child element. The programmatic `gina.link.request(url)` call keeps resolving the first registration matching the url, since a bare url is all it has.
|
|
90
|
+
- **Fixed — constructing the link handler twice no longer corrupts the first one.** A second construction merged itself into the live published `gina.link`, freezing accessors and scalar state — the shape the popin and nav plugins were already cured of. The first activated instance is now published once. Pages constructing a single handler, the common case, are unaffected.
|
|
104
91
|
|
|
105
92
|
## Documentation
|
|
106
93
|
|
package/ROADMAP.md
CHANGED
|
@@ -57,6 +57,7 @@ This roadmap covers planned features, architectural improvements, new connectors
|
|
|
57
57
|
| **Q4 2026** | `0.6.3` ✅ | **Security**: the client-served routing map (`/_gina/assets/routing.json`) is now built from an ALLOWLIST instead of a denylist — controller dispatch keys (`param.control`/`file`/`path`/`title`), `namespace`, `scopes`, `cache` configuration including invalidation event names, `csrfExempt`, `middlewareIgnored` and `validator::` requirement bodies all stay server-side, and structurally so does every future route key until deliberately added to the roster; client URL building is unaffected, but code reading other keys off `gina.config.routing` must move server-side · **Added**: opt-in SPA-style client-side navigation — a route declares `negotiate: true` and answers `X-Gina-Navigate: fragment` layoutlessly over the same URL, while the new `gina/nav` module swaps same-origin link targets into a `data-gina-nav` region with history, scroll, focus, title, script re-injection and validator rebinding, falling back to a full-page navigation on every uncertainty; negotiable routes advertise `Vary: X-Gina-Navigate` and opt out of the render cache (#SPA1) · a configurable RFC 9211 `Cache-Status` identifier (`server.cache.name`), with a boot warn naming the residual framework disclosure when `hidePoweredBy` is set (#B238) · a Couchbase SDK soak harness that screens a candidate SDK in a fully isolated throwaway project before a consuming project adopts it (#CN12) · **Changed**: `/_gina/assets/routing.json` now revalidates on each page boot (per-variant weak `ETag` + `no-cache`, was `max-age=86400`), so a restart's new route table reaches returning browsers immediately instead of up to 24 hours later · the dormant transitive `object-assign` dependency overridden to a maintained re-export (gina's own tree only — `overrides` are root-manifest-scoped; the consumer-reaching fix is upstream) · **Fixed**: server-side form-body validation now enforces rules authored on bracket-notation (`account[username]`) and nested keys — previously skipped silently, fail-open, for checks, `exclude` and transforms alike (#B241) · the validator's empty-value contract made uniform: five loose-equality sites let `0`, `false` and `[]` ride the empty bypass so `isEmail`/`isJsonWebToken`/`isFloat` reported them VALID outright, and `is`/`isBoolean` joined the same contract (#B233, #B235) · `isBoolean` is now the single adjudicator on every surface — server auto-validation coerced junk to `false` and persisted it — and `isInteger` digit bounds enforce on real numbers, not only strings (#B236) · a `$` token in a rule no longer crashes the validation pass on either surface (#B234, #B239) · required radio groups now gate, and the submit trigger re-enables on a pick (#B221, #B228) · a field driving its own `_case_` block is validated and keeps the value the user picked (#B229, #B230) · a rejected submit no longer kills a form's live check for the rest of the page's life · the documented `setFlash` `[null, "message"]` form works in the browser (#B226) · `pauseRequest()`/`resumeRequest()` replay the byte-exact halted URL, query string included, on both engines (#B215, #B219) · `Controller.store()` publishes each file atomically and surfaces the real filesystem error instead of a fabricated `No file to upload`, where a source-stream error previously killed the bundle process (#B223) · custom error pages answer with their real HTTP status and keep their resolved template instead of falling back to the failing route's own file (#B190) · session stores no longer write an immortal record for an already-expired session (redis wrote an expiry-less SET; couchbase and scylladb stored a never-expires zero expiry) · a Couchbase N1QL parameter the SDK cannot serialize no longer aborts the whole bundle process (#B243), and range SDK pins like `~4.5.0` resolve instead of mangling past the version floor · `lib/math` `checkSumSync` — every array collapsed to the empty-string checksum, data ending in an extension shape was misrouted to the filesystem, and real file paths were hashed as path strings (#B208, #B209, #B210) · `GINA_*` environment variables are visible to the CLI's own bootstrap, the MQ and file logger containers, the MCP bind tier and `${secret:}` resolution · the client routing map serves under every engine, and a non-2xx boot fetch is no longer installed as the client routing table (#B212, #B213) · Inspector bundle-following across a proxy-routed project, per-tab restore, advertised-channel adoption and six scope/display fixes (#B205, #B222, #B225, #B231, #B237) · `bundle:openapi`/`bundle:mcp` no longer drop three declared bound forms when un-collapsing a `validator::{}` requirement · a sub-directory in the run directory no longer aborts every gina command · the scaffolded bundle template's impossible session-store selection (`expressSession.name = 'myRedis'` silently no-ops) |
|
|
58
58
|
| **Q4 2026** | `0.6.4` ✅ | **Added**: a framework-owned loading state for busy controls — clicking a submit trigger, a `data-gina-link` anchor or a popin trigger sets `data-gina-loading="true"` on that control and flips it to `"false"` when the work settles, errors, times out, aborts or is rejected by validation (the case that stranded the state on forever, since a refused submit sends no request at all), with a shipped default look gated on `prefers-reduced-motion` and an opt-in attribute rename (#B247) · `gina.config.a11y` overrides for the status strings gina announces on its own behalf · an opt-in `secrets.file` layer resolving `${secret:KEY}` from `.env`-style files **beneath** the environment, so a non-empty environment value can never be shadowed by a stale file on disk, with later array entries winning, empty-value fall-through warning, and fail-closed resolution · **Security**: secret-file ignore rules now match by glob (`.env`, `.env.*`, `*.env`) in both the repository and published-package ignore lists, where the previous exact `.env` entry left `secrets.env` or `db.env` committable and publishable by default · **Fixed**: a submit trigger disabled by live validation was inert in appearance only and still ran the whole submit cycle when clicked (#B246) · a form's first validation error was the one least likely to be heard, because the polite live region was created, inserted and written in a single synchronous step · submitting a form dropped the keyboard user's focus to the document body, and nothing told assistive technology a submit was under way · validation messages kept `aria-invalid` asserted while `display: none` removed the message from the accessibility tree, and the first-invalid focus loop could stop on a control that never actually took focus · staged uploads gained progressbar semantics with the value dropped rather than zeroed while indeterminate, spoken start/complete/error, an operable reset control, and preview `alt` text taken from the user's own filename · a popin opened over another left the superseded one reachable in the tab order behind it · built-in error pages emitted no doctype, head, title or `lang` and never terminated the document on HTTP/1.1, and the `lang` gina emits is now normalised to BCP-47 · the link plugin reused one `XMLHttpRequest` for every click, so a second click aborted the first and its response vanished in total silence · `gina secrets:check` reported `UNSET` for keys a bundle would have started with once `secrets.file` was declared, and could not resolve version- or scope-templated paths (#B263, #B266) · a declared secrets file that exists but cannot be read was mistaken for an absent one, so a bundle booted healthily on the wrong credential (#B267) · an environment variable that is set but empty now warns as it falls through to the file (#B268) · a trailing `#` comment was read as part of the secret, diverging from the POSIX shell that sources the same file · requiring gina outside a bundle context hung the process instead of failing cleanly, because the logger's MQ socket kept the event loop alive (#B276, #B277) · a bundle starting in an undeclared environment could lose its refusal message to a truncated pipe (#B278) · a gina command died mid-run when an MQ speaker disconnected abruptly, leaving a half-created bundle (#B279) |
|
|
59
59
|
| **Q4 2026** | `0.6.5` ✅ | **Fixed**: the silent-dead-control release — a family of defects where a control looked completely normal and did nothing at all. A submit trigger disabled by your own double-submit guard during the click (a `0.6.4` regression), a submit button whose DOM node an AJAX update or popin re-render replaced, a form left blocked after its async uniqueness check came back clean, a popin close button given your own id or wrapping an icon, a `data-gina-link` given your own id, and a popin holding several forms releasing only every other one — all now work. Trusted gestures (Enter, wrapped-label clicks) respect the submit gate; `data-gina-link` stops swallowing `download`, `target`, `#`-fragment and modified clicks, and gains the disabled gate it never had; download filenames parse and serialize per RFC 6266; `gina.setOptions()` writes the config the framework reads, having been silently ignored since it shipped; `isRequired` accepts padded input and `trim` strips both sides · **Changed**: the not-ready submit-trigger state moves off `aria-disabled` onto the framework-owned `data-gina-form-submit-gated`, with a default look — the marker no longer claims a control is inoperable while gina deliberately answers its click |
|
|
60
|
+
| **Q4 2026** | `0.6.6` ✅ | **Fixed**: the logging-transport release. A slow boot no longer silences a bundle's logging for the life of the process — a two-second connect deadline added in `0.6.5` read a socket flag Node clears one event-loop phase later, so any boot that blocked the loop past it destroyed a connection the kernel had already established (every container start and network-filesystem mount was exposed, and the transport never redialled). The MQ and file log transports also stopped dialling `host_v4`, which on a `~/.gina` shared across hosts silently shipped every log line off-host while all connection lines read healthy. Plus: the popin `success` event fires again instead of raising a 422 carrying the successful response body; a link request belongs to the anchor you clicked rather than the first anchor sharing its url; and constructing the link handler twice no longer corrupts the first instance · **Added**: the log transport reconnects — exponential backoff to a 30-second ceiling, one report per outage, frames dropped rather than queued while down so an outage cannot grow memory |
|
|
60
61
|
| **Q1 2027** | `0.6.x` | HTTP/2 priorities (blocked on Node scheduler hooks) · Beemaster admin + visual translation editor |
|
|
61
62
|
| **2027** | `0.7.0` | Performance — remaining measure-gated candidates: multipart & WebSocket fast paths, render/log cleanups, SIMD scanner (the render-path deep-clone & id-mint reduction shipped early in `0.6.2` with a measured 4.4× render-throughput gain; the profiling baseline itself also shipped in `0.6.2`) |
|
|
62
63
|
| **2027** | `0.8.0` | Financial-messaging foundations — XML request/response handling · pluggable message-schema validation · IBAN/BIC validation rules · money & ISO 4217 minor-unit utilities · idempotency keys · sequence primitive · OAuth2 client-credentials egress |
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.6.6
|
|
@@ -9782,6 +9782,21 @@ define('gina/link', [ 'require', 'lib/domain', 'lib/loading-state', 'lib/merge',
|
|
|
9782
9782
|
var _linkXhr = null;
|
|
9783
9783
|
var _linkSeq = 0;
|
|
9784
9784
|
|
|
9785
|
+
/**
|
|
9786
|
+
* #B287 — the registration the user actually operated, handed from the
|
|
9787
|
+
* dispatch listener in `registerLink` to `linkRequest` so that anchors
|
|
9788
|
+
* sharing one url resolve to the anchor that was clicked rather than to
|
|
9789
|
+
* the first registration whose url matches. Both click paths — the
|
|
9790
|
+
* direct anchor listener and `proxyClick`'s child delegation — dispatch
|
|
9791
|
+
* into that same listener, so this single hand-off covers both.
|
|
9792
|
+
* Consumed (and cleared) at `linkRequest` entry, before anything else
|
|
9793
|
+
* runs, so an early exit can never leak it into a later call; the
|
|
9794
|
+
* public `gina.link.request(url)` path never sets it and keeps the
|
|
9795
|
+
* historical first-match lookup.
|
|
9796
|
+
* @type {object|null}
|
|
9797
|
+
*/
|
|
9798
|
+
var _operatedLink = null;
|
|
9799
|
+
|
|
9785
9800
|
/**
|
|
9786
9801
|
* Build a fresh transport for a single request.
|
|
9787
9802
|
*
|
|
@@ -9947,6 +9962,12 @@ define('gina/link', [ 'require', 'lib/domain', 'lib/loading-state', 'lib/merge',
|
|
|
9947
9962
|
* rather than in the click handlers: `$el` is already the anchor at this point,
|
|
9948
9963
|
* so no click target ever has to be walked back up to it.
|
|
9949
9964
|
*
|
|
9965
|
+
* The link object resolves in two steps (#B287): the operated registration
|
|
9966
|
+
* handed off by the dispatch listener wins; only when none was handed off —
|
|
9967
|
+
* the public `gina.link.request(url)` path — does the historical first-match
|
|
9968
|
+
* url lookup run. Before this order existed, two anchors sharing one url
|
|
9969
|
+
* collapsed onto whichever registered first, whichever was clicked.
|
|
9970
|
+
*
|
|
9950
9971
|
* Side effects: supersedes any request still in flight, arms `data-gina-loading`
|
|
9951
9972
|
* on the anchor for the duration of this one, and releases it from a `loadend`
|
|
9952
9973
|
* listener. An indefinite hang is the single outcome that never releases, because
|
|
@@ -9964,6 +9985,11 @@ define('gina/link', [ 'require', 'lib/domain', 'lib/loading-state', 'lib/merge',
|
|
|
9964
9985
|
* */
|
|
9965
9986
|
function linkRequest(url, options) {
|
|
9966
9987
|
|
|
9988
|
+
// #B287 — consume the operated registration FIRST so no later step
|
|
9989
|
+
// (nor an early exit) can leak it into a subsequent call.
|
|
9990
|
+
var $operated = _operatedLink;
|
|
9991
|
+
_operatedLink = null;
|
|
9992
|
+
|
|
9967
9993
|
// One transport per request, and a sequence taken BEFORE the abort so a
|
|
9968
9994
|
// supersede-abort is stale by construction — its handler sees
|
|
9969
9995
|
// `seq !== _linkSeq` and drops out, which is what keeps the abort from
|
|
@@ -9977,8 +10003,9 @@ define('gina/link', [ 'require', 'lib/domain', 'lib/loading-state', 'lib/merge',
|
|
|
9977
10003
|
var xhr = createXhr();
|
|
9978
10004
|
_linkXhr = xhr;
|
|
9979
10005
|
|
|
9980
|
-
// link object
|
|
9981
|
-
|
|
10006
|
+
// link object — #B287: the operated registration wins; the first-match
|
|
10007
|
+
// url lookup remains only for the public `gina.link.request(url)` path.
|
|
10008
|
+
var $link = $operated || getLinkByUrl(url);
|
|
9982
10009
|
var id = $link.id;
|
|
9983
10010
|
|
|
9984
10011
|
|
|
@@ -10195,6 +10222,7 @@ define('gina/link', [ 'require', 'lib/domain', 'lib/loading-state', 'lib/merge',
|
|
|
10195
10222
|
$localLink.options.withCredentials = false
|
|
10196
10223
|
}
|
|
10197
10224
|
|
|
10225
|
+
_operatedLink = $localLink; // #B287 — hand the operated registration to linkRequest
|
|
10198
10226
|
linkRequest(localUrl, $localLink.options);
|
|
10199
10227
|
|
|
10200
10228
|
//delete gina.events[ $localLink.id ];
|
|
@@ -10387,14 +10415,24 @@ define('gina/link', [ 'require', 'lib/domain', 'lib/loading-state', 'lib/merge',
|
|
|
10387
10415
|
// for proxies, use linkInstance.id as target is always `document`
|
|
10388
10416
|
addListener(gina, instance.target, evt, function(event) {
|
|
10389
10417
|
|
|
10390
|
-
// A modified click belongs to the browser
|
|
10391
|
-
//
|
|
10418
|
+
// A modified click — cmd/ctrl/shift/alt — belongs to the browser (#B288),
|
|
10419
|
+
// so it bails first and nothing below can cancel the event or dispatch for
|
|
10420
|
+
// it. This bail used to carry a second justification, "before the id
|
|
10421
|
+
// backfill below, so deferring leaves no trace on the element either";
|
|
10422
|
+
// that backfill was dead code and is gone (#B324), so only the primary
|
|
10423
|
+
// reason remains.
|
|
10392
10424
|
if ( isModifiedClick(event) ) return;
|
|
10393
10425
|
|
|
10394
|
-
|
|
10395
|
-
|
|
10396
|
-
|
|
10397
|
-
|
|
10426
|
+
// #B324: an id-backfill block used to sit here, gated on
|
|
10427
|
+
// `typeof(event.target.id) == 'undefined'`. An element's `id` IDL attribute
|
|
10428
|
+
// always exists (defaulting to ''), so the gate was never true and the block
|
|
10429
|
+
// never ran — the popin plugin carried the identical dead pair, removed as
|
|
10430
|
+
// #B300. Removed rather than "corrected": `instance.target` is `document`
|
|
10431
|
+
// (see the note above) and `evt` is the literal 'click', so a live body
|
|
10432
|
+
// would write `id="click.<uuid>"` onto EVERY id-less element clicked
|
|
10433
|
+
// anywhere in the page; and since #B302 the dispatch below keys on
|
|
10434
|
+
// `instance.$links[…]` — registration, not the id's SHAPE — so such an id is
|
|
10435
|
+
// absent from `$links` and dispatches nothing. Pollution for zero gain.
|
|
10398
10436
|
|
|
10399
10437
|
|
|
10400
10438
|
|
|
@@ -10434,7 +10472,12 @@ define('gina/link', [ 'require', 'lib/domain', 'lib/loading-state', 'lib/merge',
|
|
|
10434
10472
|
|
|
10435
10473
|
instance.isReady = true;
|
|
10436
10474
|
gina.hasLinkHandler = true;
|
|
10437
|
-
|
|
10475
|
+
// #B326 — publish ONCE: `gina.link` IS the first activated
|
|
10476
|
+
// instance (a LIVE object); later constructions have nothing
|
|
10477
|
+
// to publish, and re-merging would freeze accessors/state (#B90).
|
|
10478
|
+
if ( typeof(gina.link) == 'undefined' || !gina.link ) {
|
|
10479
|
+
gina.link = instance;
|
|
10480
|
+
}
|
|
10438
10481
|
// trigger link ready event
|
|
10439
10482
|
triggerEvent(gina, instance.target, 'ready.' + instance.id, instance);
|
|
10440
10483
|
});
|
|
@@ -22853,10 +22896,12 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/loading-state', 'lib/merge'
|
|
|
22853
22896
|
return false;
|
|
22854
22897
|
}
|
|
22855
22898
|
|
|
22856
|
-
|
|
22857
|
-
|
|
22858
|
-
|
|
22859
|
-
|
|
22899
|
+
// #B300: an id-stamping block used to sit here, gated on
|
|
22900
|
+
// `typeof(event.target.id) == 'undefined'`. An element's `id` IDL attribute
|
|
22901
|
+
// always exists (it defaults to ''), so the gate was never true and the block
|
|
22902
|
+
// never ran. Removed rather than "corrected": making it run would stamp
|
|
22903
|
+
// `click.<n>` — this proxy's own `evt` — onto EVERY id-less element clicked
|
|
22904
|
+
// anywhere in the document, an id matching neither prefix tested below.
|
|
22860
22905
|
|
|
22861
22906
|
if ( /^popin\.close\./.test(event.target.id) ) {
|
|
22862
22907
|
cancelEvent(event);
|
|
@@ -22972,10 +23017,14 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/loading-state', 'lib/merge'
|
|
|
22972
23017
|
//console.debug('This is an action ', event.target);
|
|
22973
23018
|
}*/ else { // close
|
|
22974
23019
|
|
|
22975
|
-
|
|
22976
|
-
|
|
22977
|
-
|
|
22978
|
-
|
|
23020
|
+
// #B300: an id-stamping block used to sit here, gated on
|
|
23021
|
+
// `typeof(event.target.id) == 'undefined'` — never true, since an
|
|
23022
|
+
// element's `id` IDL attribute always exists (defaulting to ''), so it
|
|
23023
|
+
// never ran. Removed rather than "corrected": making it run would
|
|
23024
|
+
// rewrite the clicked node's id to `evt + '.' + _nextId()`, which is
|
|
23025
|
+
// exactly what the note below forbids — the `$close` teardown sweep
|
|
23026
|
+
// finds this listener via `gina.events[eId] == eId`, i.e. it depends on
|
|
23027
|
+
// the element id and the event name being the SAME string.
|
|
22979
23028
|
|
|
22980
23029
|
// #B299/#B301: reaching this branch ALREADY proves the element is a
|
|
22981
23030
|
// `.gina-popin-close` — register('close', …) has a single call site, fed
|
|
@@ -23259,13 +23308,15 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/loading-state', 'lib/merge'
|
|
|
23259
23308
|
i = 0; len = $forms.length;
|
|
23260
23309
|
for(; i < len; ++i) {
|
|
23261
23310
|
|
|
23262
|
-
|
|
23263
|
-
|
|
23264
|
-
|
|
23265
|
-
|
|
23266
|
-
|
|
23267
|
-
|
|
23268
|
-
|
|
23311
|
+
// #B300: this was gated on
|
|
23312
|
+
// `!$forms[i]['id'] || typeof($forms[i]) != 'string'`, whose second clause
|
|
23313
|
+
// tested the form ELEMENT rather than its id — always true for an object —
|
|
23314
|
+
// so the guard was always true and its `else` (`_id = $forms[i]['id']`)
|
|
23315
|
+
// unreachable. Behaviour is unchanged by removing it: for a form that
|
|
23316
|
+
// already carries an id, `getAttribute('id')` returns that same id.
|
|
23317
|
+
_id = $forms[i].getAttribute('id') || 'form.' + _nextId();
|
|
23318
|
+
$forms[i].setAttribute('id', _id);// just in case
|
|
23319
|
+
$forms[i]['id'] = _id
|
|
23269
23320
|
|
|
23270
23321
|
//console.debug('pushing ', _id, $forms[i]['id'], typeof($forms[i]['id']), $forms[i].getAttribute('id'));
|
|
23271
23322
|
if ($popin['$forms'].indexOf(_id) < 0)
|
|
@@ -23895,7 +23946,15 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/loading-state', 'lib/merge'
|
|
|
23895
23946
|
if (GINA_ENV_IS_DEV)
|
|
23896
23947
|
updateToolbar(result);
|
|
23897
23948
|
|
|
23898
|
-
|
|
23949
|
+
// #B315 — this used to dispatch on `$forms[0]`, a free variable:
|
|
23950
|
+
// `$forms` is declared only in `popinBind` (a sibling function), so
|
|
23951
|
+
// reading it here threw ReferenceError into the catch below, which
|
|
23952
|
+
// converted every successful JSON load into `error.<id>` with a 422.
|
|
23953
|
+
// `success` therefore never fired. Dispatching on `$el` matches the
|
|
23954
|
+
// two sibling triggers in this same handler (`loaded.` and `error.`)
|
|
23955
|
+
// — and popinLoad is the CONTENT loader, so a JSON response need not
|
|
23956
|
+
// involve a form at all.
|
|
23957
|
+
triggerEvent(gina, $el, 'success.' + id, result);
|
|
23899
23958
|
|
|
23900
23959
|
}
|
|
23901
23960
|
|