gina 0.4.2 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/README.md +6 -4
- package/ROADMAP.md +4 -4
- package/framework/v0.4.3/VERSION +1 -0
- package/framework/{v0.4.2 → v0.4.3}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +133 -0
- package/framework/{v0.4.2 → v0.4.3}/core/asset/plugin/dist/vendor/gina/js/gina.js +142 -39
- package/framework/{v0.4.2 → v0.4.3}/core/asset/plugin/dist/vendor/gina/js/gina.min.js +498 -496
- package/framework/v0.4.3/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/v0.4.3/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- package/framework/{v0.4.2 → v0.4.3}/core/gna.js +54 -0
- package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/validator/src/main.js +129 -10
- package/framework/{v0.4.2 → v0.4.3}/core/server.isaac.js +3 -0
- package/framework/{v0.4.2 → v0.4.3}/core/server.js +151 -0
- package/framework/{v0.4.2 → v0.4.3}/core/template/conf/settings.json +5 -1
- package/framework/{v0.4.2 → v0.4.3}/lib/cmd/service/help.txt +14 -0
- package/framework/v0.4.3/lib/cmd/service/start.js +219 -0
- package/framework/v0.4.3/package.json +10 -0
- package/gna.js +4 -4
- package/llms.txt +9 -1
- package/package.json +6 -5
- package/framework/v0.4.2/VERSION +0 -1
- package/framework/v0.4.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/v0.4.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- package/framework/v0.4.2/package.json +0 -9
- /package/framework/{v0.4.2 → v0.4.3}/AUTHORS +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/LICENSE +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/asset/html/nolayout.html +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/asset/html/static.html +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/asset/img/android-chrome-192x192.png +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/asset/img/android-chrome-512x512.png +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/asset/img/apple-touch-icon.png +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/asset/img/favicon-16x16.png +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/asset/img/favicon-32x32.png +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/asset/img/favicon.ico +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/asset/plugin/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/config.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/connectors/ai/index.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/connectors/ai/lib/connector.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/connectors/couchbase/index.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/connectors/couchbase/lib/connector.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/connectors/couchbase/lib/connector.v3.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/connectors/couchbase/lib/connector.v4.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/connectors/couchbase/lib/n1ql.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/connectors/couchbase/lib/session-store.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/connectors/mongodb/index.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/connectors/mongodb/lib/connector.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/connectors/mongodb/lib/session-store.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/connectors/mysql/index.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/connectors/mysql/lib/connector.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/connectors/postgresql/index.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/connectors/postgresql/lib/connector.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/connectors/redis/index.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/connectors/redis/lib/session-store.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/connectors/scylladb/index.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/connectors/scylladb/lib/connector.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/connectors/scylladb/lib/session-store.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/connectors/sql-parser.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/connectors/sqlite/index.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/connectors/sqlite/lib/connector.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/connectors/sqlite/lib/session-store.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/content.encoding +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/controller/controller.framework.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/controller/controller.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/controller/controller.render-json.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/controller/controller.render-nunjucks.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/controller/controller.render-stream.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/controller/controller.render-swig.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/controller/controller.render-v1.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/controller/index.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/controller/inspector-window-emit.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/deps/busboy-1.6.0/LICENSE +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/deps/busboy-1.6.0/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/deps/busboy-1.6.0/lib/index.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/deps/busboy-1.6.0/lib/types/multipart.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/deps/busboy-1.6.0/lib/types/urlencoded.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/deps/busboy-1.6.0/lib/utils.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/deps/busboy-1.6.0/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/deps/streamsearch-1.1.0/LICENSE +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/deps/streamsearch-1.1.0/lib/sbmh.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/deps/streamsearch-1.1.0/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/dev/index.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/dev/lib/class.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/dev/lib/factory.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/dev/lib/tools.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/locales/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/locales/currency.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/locales/dist/language/en.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/locales/dist/language/fr.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/locales/dist/region/en.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/locales/dist/region/fr.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/locales/index.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/mime.types +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/model/entity.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/model/index.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/model/template/entityFactory.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/model/template/index.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/index.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/csrf/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/csrf/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/csrf/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/coep/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/coep/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/coop/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/coop/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/corp/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/corp/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/csp/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/csp/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/hsts/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/hsts/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/session/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/session/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/session/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/storage/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/storage/build.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/storage/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/storage/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/validator/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/validator/build.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/validator/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/plugins/lib/validator/src/form-validator.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/router.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/server.express.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/status.codes +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/_gitignore +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/boilerplate/bundle/config/app.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/boilerplate/bundle/config/connectors.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/boilerplate/bundle/config/routing.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/boilerplate/bundle/config/settings.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/boilerplate/bundle/config/templates.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/boilerplate/bundle/config/watchers.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/boilerplate/bundle/index.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/boilerplate/bundle/locales/en.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/boilerplate/bundle_public/css/default.css +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/boilerplate/bundle_public/css/home.css +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/boilerplate/bundle_public/readme.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/boilerplate/bundle_public/sw.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/command/gina.bat.tpl +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/command/gina.tpl +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/conf/env.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/conf/manifest.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/conf/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/conf/statics.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/conf/templates.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/error/client/json/401.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/error/client/json/403.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/error/client/json/404.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/error/server/html/50x.html +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/error/server/json/500.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/error/server/json/503.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/core/template/extensions/logger/config.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/helpers/console.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/helpers/context.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/helpers/data/LICENSE +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/helpers/data/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/helpers/data/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/helpers/data/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/helpers/dateFormat.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/helpers/index.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/helpers/json/LICENSE +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/helpers/json/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/helpers/json/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/helpers/json/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/helpers/path.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/helpers/plugins/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/helpers/plugins/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/helpers/plugins/src/api-error.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/helpers/plugins/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/helpers/prototypes.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/helpers/task.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/helpers/text.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/archiver/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/archiver/build.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/archiver/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/archiver/src/dep/jszip.min.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/archiver/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/async/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/async/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cache/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cache/build.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cache/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cache/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/aliases.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/bundle/add.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/bundle/arguments.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/bundle/build.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/bundle/copy.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/bundle/cp.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/bundle/help.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/bundle/help.txt +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/bundle/list.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/bundle/mcp-start.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/bundle/mcp.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/bundle/oas.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/bundle/openapi.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/bundle/remove.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/bundle/rename.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/bundle/restart.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/bundle/rm.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/bundle/start.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/bundle/status.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/bundle/stop.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/cache/stats.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/connector/add.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/connector/arguments.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/connector/help.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/connector/help.txt +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/connector/list.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/connector/migrate.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/connector/remove.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/connector/rm.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/env/add.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/env/get.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/env/help.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/env/help.txt +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/env/link-dev.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/env/list.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/env/remove.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/env/rm.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/env/set.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/env/unset.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/env/use.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/framework/arguments.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/framework/build.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/framework/dot.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/framework/get.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/framework/help.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/framework/help.txt +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/framework/init.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/framework/link-node-modules.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/framework/link.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/framework/msg.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/framework/open.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/framework/restart.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/framework/set.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/framework/start.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/framework/status.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/framework/stop.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/framework/tail.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/framework/update.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/framework/version.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/gina-dev.1.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/gina-framework.1.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/gina.1.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/helper.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/i18n/add.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/i18n/arguments.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/i18n/export.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/i18n/help.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/i18n/help.txt +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/i18n/import.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/i18n/scan.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/index.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/inspector/help.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/inspector/help.txt +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/inspector/open.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/minion/arguments.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/minion/help.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/minion/help.txt +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/minion/kill.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/minion/list.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/msg.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/port/help.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/port/help.txt +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/port/inc/scan.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/port/list.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/port/reset.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/port/set.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/project/add.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/project/arguments.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/project/build.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/project/help.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/project/help.txt +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/project/import.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/project/list.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/project/move.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/project/remove.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/project/rename.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/project/restart.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/project/rm.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/project/start.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/project/status.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/project/stop.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/protocol/arguments.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/protocol/help.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/protocol/help.txt +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/protocol/list.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/protocol/remove.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/protocol/set.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/scope/add.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/scope/help.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/scope/help.txt +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/scope/link-local.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/scope/link-production.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/scope/list.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/scope/remove.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/scope/rm.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/scope/use.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/secrets/arguments.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/secrets/check.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/secrets/help.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/secrets/help.txt +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/secrets/scan.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/service/help.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/service/list.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd/view/add.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd-status-format/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cmd-status-format/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/collection/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/collection/build.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/collection/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/collection/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/config.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/connector-registry/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/connector-registry/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cron/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cron/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/cron/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/domain/LICENSE +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/domain/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/domain/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/domain/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/generator/index.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/i18n/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/i18n/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/index.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/inherits/LICENSE +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/inherits/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/inherits/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/inherits/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/inspector-redact/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/inspector-redact/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/instrument/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/instrument/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/job/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/job/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/logger/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/logger/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/logger/src/containers/default/index.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/logger/src/containers/file/index.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/logger/src/containers/mq/index.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/logger/src/containers/mq/listener.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/logger/src/containers/mq/speaker.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/logger/src/helper.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/logger/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/math/index.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/mcp-dispatch/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/mcp-dispatch/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/mcp-http/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/mcp-http/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/mcp-server/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/mcp-server/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/merge/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/merge/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/merge/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/metrics/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/metrics/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/model.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/nunjucks-filters/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/nunjucks-filters/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/nunjucks-filters/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/nunjucks-resolver/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/nunjucks-resolver/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/proc.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/routing/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/routing/build.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/routing/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/routing/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/routing/src/radix.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/routing-introspect/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/routing-introspect/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/secrets/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/secrets/src/backends/env.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/secrets/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/session-store.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/shell.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/state.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/swig-filters/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/swig-filters/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/swig-filters/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/swig-resolver/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/swig-resolver/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/url/README.md +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/url/index.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/url/routing.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/uuid/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/uuid/src/main.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/validator.js +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/watcher/package.json +0 -0
- /package/framework/{v0.4.2 → v0.4.3}/lib/watcher/src/main.js +0 -0
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
var fs = require('fs');
|
|
2
|
+
var path = require('path');
|
|
3
|
+
var spawn = require('child_process').spawn;
|
|
4
|
+
var console = lib.logger;
|
|
5
|
+
var fmt = lib.cmdStatusFormat;
|
|
6
|
+
|
|
7
|
+
var CmdHelper = require('./../helper');
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @module gina/lib/cmd/service/start
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Starts a framework-internal service — a bundle registered under the @gina
|
|
14
|
+
* project (today: `inspector`, `proxy`). The service is launched via the
|
|
15
|
+
* daemon-free `bin/gina-container` foreground launcher spawned detached, so no
|
|
16
|
+
* `gina start` socket server (port 8124) is required. The service is started in
|
|
17
|
+
* the @gina project's own `dev`/`local` defaults (the current shell's
|
|
18
|
+
* `NODE_ENV`/`NODE_SCOPE` are deliberately NOT propagated — these are maintainer
|
|
19
|
+
* tools that only ship a `src/` form; use `bundle:start` for env/scope control).
|
|
20
|
+
*
|
|
21
|
+
* Guards (no-op rather than error where it is safe to):
|
|
22
|
+
* - unknown service name / @gina not registered / src missing → error, exit 1
|
|
23
|
+
* - service already running (live pidfile) → no-op, exit 0
|
|
24
|
+
*
|
|
25
|
+
* `services/` is gitignored + npmignored, so in a fresh `npm install gina` the
|
|
26
|
+
* @gina project and the service src are absent and this command reports the
|
|
27
|
+
* missing src rather than starting anything — it only does real work for a
|
|
28
|
+
* maintainer who scaffolded the framework `services/` project.
|
|
29
|
+
*
|
|
30
|
+
* Usage:
|
|
31
|
+
* gina service:start inspector
|
|
32
|
+
* gina service:start inspector @gina
|
|
33
|
+
* gina service:start inspector --dry-run
|
|
34
|
+
* gina service:start inspector --format=json
|
|
35
|
+
*
|
|
36
|
+
* @class Start
|
|
37
|
+
* @constructor
|
|
38
|
+
* @param {object} opt - Parsed command-line options
|
|
39
|
+
* @param {object} opt.client - Socket client for terminal output
|
|
40
|
+
* @param {string[]} opt.argv - Full argv array
|
|
41
|
+
* @param {number} [opt.debugPort] - Node.js inspector port
|
|
42
|
+
* @param {boolean} [opt.debugBrkEnabled] - True when --inspect-brk is active
|
|
43
|
+
* @param {object} cmd - The cmd dispatcher object (lib/cmd/index.js)
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* // Start the Inspector standalone bundle (dev tooling):
|
|
47
|
+
* // $ gina service:start inspector
|
|
48
|
+
* // [ service:start ] starting inspector@gina ...
|
|
49
|
+
* //
|
|
50
|
+
* // Already running → no-op:
|
|
51
|
+
* // $ gina service:start inspector
|
|
52
|
+
* // [ service:start ] inspector@gina is already running (pid 12345)
|
|
53
|
+
*/
|
|
54
|
+
function Start(opt, cmd) {
|
|
55
|
+
var self = { format: null, dryRun: false, service: null };
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Parse argv, resolve the @gina manifest, guard on src-existence and
|
|
59
|
+
* running-state, then spawn `gina-container <service> @gina` detached.
|
|
60
|
+
*
|
|
61
|
+
* @inner
|
|
62
|
+
* @private
|
|
63
|
+
*/
|
|
64
|
+
var init = function () {
|
|
65
|
+
|
|
66
|
+
// import CMD helpers
|
|
67
|
+
new CmdHelper(self, opt.client, { port: opt.debugPort, brkEnabled: opt.debugBrkEnabled });
|
|
68
|
+
|
|
69
|
+
// check CMD configuration
|
|
70
|
+
if ( !isCmdConfigured() ) return false;
|
|
71
|
+
|
|
72
|
+
for (var i = 3, len = process.argv.length; i < len; i++) {
|
|
73
|
+
var arg = process.argv[i];
|
|
74
|
+
if ( /^\-\-format\=/.test(arg) ) {
|
|
75
|
+
self.format = arg.split(/\=/)[1];
|
|
76
|
+
} else if ( /^\-\-dry\-run$/.test(arg) ) {
|
|
77
|
+
self.dryRun = true;
|
|
78
|
+
} else if ( /^@/.test(arg) ) {
|
|
79
|
+
// Accept `@gina` as an explicit but redundant target; reject any
|
|
80
|
+
// other project — user-defined services are not a surface yet.
|
|
81
|
+
var pname = arg.replace(/^@/, '');
|
|
82
|
+
if (pname !== 'gina') {
|
|
83
|
+
console.error('`service:start` only targets @gina for now. Got: '+ arg);
|
|
84
|
+
process.exit(1);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
} else if ( !/^\-/.test(arg) && !self.service ) {
|
|
88
|
+
self.service = arg;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
if ( !self.service ) {
|
|
93
|
+
console.error('Usage: gina service:start <service> [@gina] [--dry-run] [--format=json]');
|
|
94
|
+
process.exit(1);
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
self.projects = require(_(GINA_HOMEDIR + '/projects.json'));
|
|
99
|
+
var ginaProject = self.projects['gina'];
|
|
100
|
+
if ( typeof(ginaProject) == 'undefined' || ginaProject == null ) {
|
|
101
|
+
console.error('@gina project is not registered. Run `services/configure` from the gina framework directory.');
|
|
102
|
+
process.exit(1);
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
var manifestPath = _(ginaProject.path + '/manifest.json');
|
|
107
|
+
if ( !fs.existsSync(manifestPath) ) {
|
|
108
|
+
console.error('@gina manifest.json not found at '+ manifestPath);
|
|
109
|
+
process.exit(1);
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
var manifest;
|
|
114
|
+
try {
|
|
115
|
+
manifest = requireJSON(manifestPath);
|
|
116
|
+
} catch (err) {
|
|
117
|
+
console.error('Could not parse @gina manifest.json: '+ err.message);
|
|
118
|
+
process.exit(1);
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
var services = manifest.bundles || {};
|
|
123
|
+
if ( typeof(services[self.service]) == 'undefined' ) {
|
|
124
|
+
var available = Object.keys(services).sort().join(', ') || '(none)';
|
|
125
|
+
console.error('Unknown @gina service: '+ self.service +'. Available: '+ available);
|
|
126
|
+
process.exit(1);
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
var src = services[self.service].src || '';
|
|
131
|
+
var srcExists = src && fs.existsSync(_(ginaProject.path + '/' + src));
|
|
132
|
+
if ( !srcExists ) {
|
|
133
|
+
console.error('@gina service `'+ self.service +'` src not found at '+ _(ginaProject.path + '/' + (src || '<unset>')) +' — nothing to start.');
|
|
134
|
+
process.exit(1);
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
// Already-running guard — a live pidfile means a no-op (success).
|
|
139
|
+
var runState = fmt.readPidfile(GINA_HOMEDIR + '/run', self.service, 'gina');
|
|
140
|
+
if ( runState.running ) {
|
|
141
|
+
if ( /^json?/.test(self.format) ) {
|
|
142
|
+
process.stdout.write(JSON.stringify({
|
|
143
|
+
service: self.service, src: src, started: false,
|
|
144
|
+
running: true, pid: runState.pid, reason: 'already-running'
|
|
145
|
+
}));
|
|
146
|
+
} else {
|
|
147
|
+
console.log('[ service:start ] '+ self.service +'@gina is already running (pid '+ runState.pid +')');
|
|
148
|
+
}
|
|
149
|
+
process.exit(0);
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
// Resolve the daemon-free launcher. GINA_DIR is the gina root (set by
|
|
154
|
+
// bin/cli / gina-container); fall back to deriving it from __dirname
|
|
155
|
+
// (lib/cmd/service → up five → gina root).
|
|
156
|
+
var ginaDir = getEnvVar('GINA_DIR') || path.resolve(__dirname, '../../../../../');
|
|
157
|
+
var container = ginaDir + '/bin/gina-container';
|
|
158
|
+
if ( !fs.existsSync(container) ) {
|
|
159
|
+
console.error('gina-container launcher not found at '+ container);
|
|
160
|
+
process.exit(1);
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
if ( self.dryRun ) {
|
|
165
|
+
var preview = process.execPath +' '+ container +' '+ self.service +' @gina';
|
|
166
|
+
if ( /^json?/.test(self.format) ) {
|
|
167
|
+
process.stdout.write(JSON.stringify({
|
|
168
|
+
service: self.service, src: src, started: false,
|
|
169
|
+
running: false, dryRun: true, command: preview
|
|
170
|
+
}));
|
|
171
|
+
} else {
|
|
172
|
+
console.log('[ service:start ] (dry-run) would spawn: '+ preview);
|
|
173
|
+
}
|
|
174
|
+
process.exit(0);
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
// Spawn detached so the service outlives this short-lived CLI process.
|
|
179
|
+
// Scrub the current shell's bundle-identity vars so gina-container
|
|
180
|
+
// resolves inspector@gina from @gina's own def_env/def_scope (dev/local)
|
|
181
|
+
// and its own port — never the caller's env/scope/port. GINA_* (homedir,
|
|
182
|
+
// dir, version) are kept so it targets the same ~/.gina. Keep this spawn
|
|
183
|
+
// shape in sync with the gna.js server.on('started') dev auto-start hook.
|
|
184
|
+
var childEnv = Object.assign({}, process.env);
|
|
185
|
+
delete childEnv.NODE_ENV;
|
|
186
|
+
delete childEnv.NODE_SCOPE;
|
|
187
|
+
delete childEnv.NODE_PORT;
|
|
188
|
+
delete childEnv.NODE_BUNDLE;
|
|
189
|
+
delete childEnv.NODE_PROJECT;
|
|
190
|
+
|
|
191
|
+
var child;
|
|
192
|
+
try {
|
|
193
|
+
child = spawn(process.execPath, [container, self.service, '@gina'], {
|
|
194
|
+
detached: true,
|
|
195
|
+
stdio: 'ignore',
|
|
196
|
+
env: childEnv
|
|
197
|
+
});
|
|
198
|
+
child.unref();
|
|
199
|
+
} catch (spawnErr) {
|
|
200
|
+
console.error('[ service:start ] failed to spawn '+ self.service +'@gina: '+ (spawnErr.message || spawnErr));
|
|
201
|
+
process.exit(1);
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
if ( /^json?/.test(self.format) ) {
|
|
206
|
+
process.stdout.write(JSON.stringify({
|
|
207
|
+
service: self.service, src: src, started: true,
|
|
208
|
+
running: false, pid: (child && child.pid) || null
|
|
209
|
+
}));
|
|
210
|
+
} else {
|
|
211
|
+
console.log('[ service:start ] starting '+ self.service +'@gina ... (pid '+ ((child && child.pid) || '?') +')');
|
|
212
|
+
}
|
|
213
|
+
process.exit(0);
|
|
214
|
+
};
|
|
215
|
+
|
|
216
|
+
init();
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
module.exports = Start;
|
package/gna.js
CHANGED
|
@@ -15,14 +15,14 @@
|
|
|
15
15
|
'use strict';
|
|
16
16
|
|
|
17
17
|
// Framework core — the main gna module (lifecycle hooks, lib, etc.)
|
|
18
|
-
var _gna = require('./framework/v0.4.
|
|
18
|
+
var _gna = require('./framework/v0.4.3/core/gna');
|
|
19
19
|
|
|
20
20
|
// SuperController and EntitySuper — loaded from their source modules
|
|
21
|
-
var SuperController = require('./framework/v0.4.
|
|
22
|
-
var EntitySuper = require('./framework/v0.4.
|
|
21
|
+
var SuperController = require('./framework/v0.4.3/core/controller');
|
|
22
|
+
var EntitySuper = require('./framework/v0.4.3/core/model/entity');
|
|
23
23
|
|
|
24
24
|
// uuid — from the lib registry
|
|
25
|
-
var uuid = require('./framework/v0.4.
|
|
25
|
+
var uuid = require('./framework/v0.4.3/lib/uuid');
|
|
26
26
|
|
|
27
27
|
module.exports = {
|
|
28
28
|
|
package/llms.txt
CHANGED
|
@@ -51,7 +51,7 @@ framework/v${version}/
|
|
|
51
51
|
|
|
52
52
|
### Swig — `@rhinostone/swig` (npm dependency)
|
|
53
53
|
|
|
54
|
-
Maintained fork of the abandoned swig 1.4.2 template engine. Published to npm as `@rhinostone/swig@2.
|
|
54
|
+
Maintained fork of the abandoned swig 1.4.2 template engine. Published to npm as `@rhinostone/swig@2.6.0` (npm org: `rhinostone`, maintainer: `beemaster`). Repo: `https://github.com/gina-io/swig`. Declared in `framework/v*/package.json` — installed via `npm install` inside the framework directory. Requires `npm install` after clone, merge, or worktree switch (the framework `node_modules/` is gitignored).
|
|
55
55
|
|
|
56
56
|
Previously vendored at `core/deps/swig-1.4.2/` — removed in the migration to the npm dep. CVE-2023-25345 parse-time blocklist (`__proto__`/`constructor`/`prototype`) is patched in the fork's `parser.js` and `tags/set.js`. The path traversal boundary check in `controller.render-swig.js` is Gina's own code and is unaffected by this migration.
|
|
57
57
|
|
|
@@ -939,3 +939,11 @@ Dev-mode query instrumentation captures every database query tied to the current
|
|
|
939
939
|
145. **`bin/gina-container` (the daemonless Docker/K8s launcher) defines only a SUBSET of the `GINA_*` globals the daemon defines, so a BARE `GINA_*` read in the request/render path throws `ReferenceError` (HTTP 500) on every view render under it — read injected globals via `getEnvVar('NAME') || <fallback>`, never as a bare identifier.** A bundle child's bare-global namespace is exactly the keys of `ctxObj.envVars` (`gna.js` `defineDefault(envVars)` → `helpers/context.js` `define()` → `Object.defineProperty(global, NAME)`); a name absent from `envVars` is never declared, so a bare read throws while `getEnvVar('NAME')` returns `undefined` safely. The normal `bundle:start` path (`bin/cli` → `framework:init` + `framework/start.js`) seeds ~36 keys incl. `GINA_PID` and `GINA_CULTURE`/`GINA_CULTURES`/…; `gina-container` is daemonless (no socket server, no `framework:init`) and defines only the ~20 it explicitly `setEnvVar`s, omitting `GINA_PID`, `GINA_CULTURE`, et al. Two bare reads in `setOptions`' `hasViews()` block — `controller.js` `GINA_PID` and `GINA_CULTURE` — therefore 500'd every HTML route under `gina-container` (the first masked the second); both now use `getEnvVar('GINA_PID') || String(process.pid)` and `getEnvVar('GINA_CULTURE') || 'en_CM'`, matching the safe siblings (`render-json.js`, `inspector-window-emit.js`) and the culture default (`config.js`, `init.js`). The `String(process.pid)` fallback runs in the bundle child, yielding the child's own pid — exactly what the daemon's `opt.pid` provides; JSON responses were never affected (render-json already used the guarded reader). Established 2026-06-01.
|
|
940
940
|
|
|
941
941
|
146. **#H11 Alt-Svc HTTP/3-advertisement header — opt-in `server.http3Advertisement` makes `completeHeaders` (`core/server.js`) emit `Alt-Svc: h3=":443"; ma=86400` on every routed (user-facing) response, BOTH engines; advertise-only (Gina implements no QUIC).** Gate: `if (conf.server.http3Advertisement && typeof(response.getHeader)=='function' && !response.getHeader('alt-svc')) response.setHeader('alt-svc','h3=":443"; ma=86400')` — idempotent first-writer-wins (an upstream/proxy Alt-Svc is never clobbered), off by default (zero behaviour change when unset). **Why `completeHeaders`, not the #HDR8 `/_gina/*` closure-helper:** a framework header's natural home is wherever the responses it must reach are built. #HDR8's X-Powered-By lives on the Isaac `/_gina/*` `writeHead` sites because that is the ONLY place Isaac emits it (Isaac user pages carry no X-Powered-By); Alt-Svc must reach USER-facing pages (that is where browsers cache the h3-upgrade), whose builder is `completeHeaders` — and it covers BOTH engines (Isaac routed requests reach it via the engine-agnostic `composeHeadersMiddleware` drain that `gna.js` registers with `instance.use()` → `instance.completeHeaders`; the render delegates then fold `response.getHeaders()` into the HTTP/2 `stream.respond`). So one gate covers user pages on both engines; the `/_gina/*` framework endpoints (health / metrics / inspector) are NOT browser-h3-upgrade-relevant and deliberately don't carry it (avoids the 17-site `_setPoweredByHeader`-style fan-out + a parallel test pin for zero functional gain). **`:443` is the EDGE's public QUIC port, NOT gina's own listen port** — a QUIC-capable edge (Caddy / nginx-QUIC / Cloudflare) terminates HTTP/3 on :443; advertising gina's internal port (e.g. :3142) would point clients at a port gina does not serve QUIC on (a bare boolean with a fixed `:443` is therefore more correct than deriving from the bound port). Settings: `settings.json > server.http3Advertisement` (sibling of `hidePoweredBy`) + a commented boilerplate `settings.server.json` doc. Tests: `server.test.js` source-pins + a pure-logic replica (present-when-on / absent-when-off / first-writer-wins / typeof-guard). Empirically smoke-confirmed via `bin/gina-container` on a disposable starter bundle (Isaac engine, http/1.1: flag ON → `alt-svc: h3=":443"; ma=86400` on the wire, OFF → absent). Established 2026-06-02.
|
|
942
|
+
|
|
943
|
+
147. **Layoutless (`renderWithoutLayout`) renders expose controller `userData` BOTH at top level AND under `page.data`; the stash-before-merge order is circular-ref-critical (shipped 0.4.2).** The swig `isWithoutLayout` branch in `controller.render-swig.js` copies each `userData` key into `data.page.data` BEFORE `data = merge(userData, data)`, so a layoutless fragment template resolves bare `{{ var }}` (top level) AND `data.X` / `page.data.X` (via `{% set data = page.data %}` — the data path popins rely on). **The copy MUST precede the merge:** `lib/merge` returns its first argument, so after `merge(userData, data)` `data === userData`; writing `data.page.data = merge(userData, data.page.data)` afterwards would make `data.page.data` alias `data` → a circular structure that throws in the layoutless XHR-data `JSON.stringify` (the `gina-without-layout-xhr-data` hidden input) → HTTP 500. 0.4.1's 'top-level variables' fix had populated ONLY the top level (locked by a negative-invariant test FORBIDDING `page.data`); 0.4.2 restored the `page.data` copy to reach parity with the nunjucks engine (which already populated both) and flipped that test to the both-contract. **Process lesson:** a patch framed as a 'regression fix' that makes a FAILING test pass is suspect — a test that FORBIDS the patched behaviour means the prior choice was deliberate + test-locked; verify the prior decision's intent and treat the test flip as a sanctioned (approval-gated) test change, not a silent restore. Backed by a real-`merge` behavioural replica + a SUBTRACT proving the stash-after-merge cycle in `render-swig.test.js`. Commit `cd690698`. Established 2026-06-02.
|
|
944
|
+
|
|
945
|
+
148. **#INS8 — authenticated WebSocket transport for `/_gina/agent`, alongside the existing SSE channel (the substrate for future bidirectional Inspector features #INS11/#INS12; today still server→client push only).** One file-scope `attachInspectorAgentWs(rawServer, ctx)` in `core/server.js` attaches a single `upgrade` listener to the raw server captured at the unified `listen()` point — covering BOTH engines (the isaac instance IS the raw server; express's `app.listen()` returns it), so there is deliberately NO isaac-specific mirror; the isaac engine.io `server.on('upgrade')` handler (registered only in `ioServer`-attach mode) gains a `/_gina/agent(?:\?|$)` skip-guard so it defers to the WS handler. `ws@^8.20.1` (already transitive via engine.io; now declared in BOTH the root + `framework/v*` manifests) provides `new WebSocketServer({ noServer: true })` + `handleUpgrade`, lazy-required in try/catch so a missing `ws` disables WS and leaves SSE as the transport. **Auth = SSE parity on the upgrade socket:** gate `(dev || process.gina._inspectorAgentEnabled)`; outside dev a valid key via the SHARED `_agentKeyValid(req)` (it already parses `?key=` from `req.url` — browsers can't set WS handshake headers, same constraint that forced `?key=` for EventSource), fail-closed. Denials are RAW status lines written on the upgrade socket (`socket.write('HTTP/1.1 401/404/403 …'); socket.destroy()`) — there is no `ServerResponse` at upgrade time, so the #HDR8 `_setPoweredByHeader` wrapper does NOT apply (deliberate deviation). 404 when not-dev-and-not-enabled (endpoint invisible), 401 on bad key, 403 on Origin mismatch. **Origin allowlist** `inspector.agent.allowedOrigins` (captured to `process.gina._inspectorAgentAllowedOrigins` in `gna.js` alongside the agent key; default `[]` ⇒ allow any origin, parity with the SSE CORS `*`; enforced ONLY when non-empty — cross-origin is the norm, Inspector on :4101 → target on another port). Frames are `{event:'data'|'log', data}` JSON envelopes mirroring the SSE named-event shape; snapshot replay + the `inspector#data`/`logger#default` listener wiring reuse the dev-or-active-window gate (#INS10), cleaned up on ws close/error; inbound frames are reserved (only a `{type:'ping'}` heartbeat answered). **Client `tryAgentWS()`** (Inspector SPA `inspector.js`, the DEFAULT agent transport since #INS9b — `?target=<url>`; `?transport=sse` forces SSE): converts the scheme `http→ws` (`https→wss` preserved), threads `?key=`, parses the envelopes (same data/log apply logic as `tryAgent()`), falls back to SSE ONCE if the socket never opens (e.g. an HTTP/2-only target that can't upgrade). **Anchor-preservation trick:** the existing `var isAgent = tryAgent()` init line is UNCHANGED — `tryAgentWS()` runs before it and claims `source='agent'` only AFTER the socket constructs, so `tryAgent()` short-circuits (a new `if (source === 'agent') return true` guard) on WS success and opens SSE on a constructor throw; this kept the §39/§55 source-pins green with ZERO existing-test changes (the alternative — editing the over-specific `var isAgent = tryAgent()` literal that four pre-existing tests anchor on — would have needed the approval-gated test-change path). **Dev auto-start SHIPPED** (deferral lifted): `gina service:start <service>` (`lib/cmd/service/start.js`) starts a framework-internal `@gina` service (e.g. the standalone Inspector) via the daemon-free `bin/gina-container` launcher — spawned detached+unref'd with the caller's `NODE_ENV`/`NODE_SCOPE`/`NODE_PORT`/`NODE_BUNDLE`/`NODE_PROJECT` scrubbed so it resolves `inspector@gina` from `@gina`'s own dev/local defaults — guarded on srcExists + a `lib.cmdStatusFormat.readPidfile` not-running check (already-running → no-op exit 0), with `--dry-run` + `--format=json`. AND a `gna.js server.on('started')` hook auto-starts the Inspector when a USER bundle boots in dev: gated `isDev && projectName !== 'gina'` (the timing-proof self-spawn guard — a `@gina` service must never re-trigger the auto-start, else the Inspector would re-spawn itself on boot) + srcExists (the local-only no-op — `services/` is gitignored+npmignored so the hook does nothing in a fresh `npm install gina`) + the same readPidfile check, fail-closed; the spawn shape is kept in sync with the command. The correct hook IS `gna.js server.on('started')` per-bundle (NOT the daemon `framework/start.js`, which lacks a per-bundle dev signal). The embedded `/_gina/inspector/` SPA remains for zero-start dev access. Tests: `inspector.test.js` §74-77 (WS) + `service-start.test.js` (command + hook gate, source-pins + pure-logic replicas). Commits `b8b74fc2` (server) + `bc25e328` (SPA). Established 2026-06-02.
|
|
946
|
+
|
|
947
|
+
149. **Client-bundle plugins must NOT inject inline event-handler attributes (`setAttribute('onclick', …)`, `el.onX = …`) — they trip CSP `script-src-attr` under nonce-based policies; suppress the default action with an `addEventListener('click', e => e.preventDefault())` listener instead (popin close + link + validator submit-triggers fixed in `0.4.3-alpha.2`).** Setting an inline event-handler attribute compiles an inline handler governed by CSP `script-src-attr` (which falls back to `script-src`); once a `'nonce-…'` source is present in `script-src`, `'unsafe-inline'` is disabled for inline handlers (CSP Level 3), so the injection is reported in report-only mode and blocked in enforce mode — exactly what stops a nonce-adopting bundle from flipping its CSP to enforce. Three plugins injected `onclick="return false;"` at bind time: the popin close-binding (`popin/main.js`), the link binding (`link/main.js`), and the form-validator anchor submit-trigger binding (`core/plugins/lib/validator/src/main.js`). **The CSP-safe replacement is element-shape-dependent:** (a) popin already had a DIRECT `addEventListener('click', …)` whose `cancelEvent()` (preventDefault + stopPropagation) fires unconditionally, so removing the inline onclick was a pure, behaviour-neutral removal (the "click scrolls to #" worst-case never materialises — the existing listener's `preventDefault` runs regardless); (b) link + validator default-prevention runs through an id-gated DELEGATION listener (link: document-level; validator: form-level `clickProxyHandler`) that misses child-clicks, so each needed a NEW per-element listener — and it MUST be `preventDefault`-only, NOT `cancelEvent`, because `cancelEvent`'s `stopPropagation` would stop the event reaching the delegation listener and break the link AJAX trigger / validator submit. A `preventDefault`-only listener sets `event.defaultPrevented` exactly as the inline handler did (so the validator's `clickProxyHandler` `if (event.defaultPrevented) return` short-circuit still fires identically) and covers direct AND child clicks. In all three, the dead/live `else if` append branch was dropped and the injection gates preserved. **Rule:** replace an inline `on*` attribute with an `addEventListener` listener; use `preventDefault`-only (NOT `cancelEvent`/`stopPropagation`) whenever the element participates in event delegation or bubbling that other handlers depend on. **Browser-verified** (gina-starter harness, real `Content-Security-Policy-Report-Only: script-src-attr 'none'`): the inline-onclick mechanism raises a `script-src-attr` report violation on execution; the `addEventListener`+`preventDefault` mechanism raises none; both prevent default; gina loads clean. Tests: `popin.test.js` §14 + `csp-inline-handler.test.js` (source pins: no `setAttribute('onclick'` in any of the three + the preventDefault listeners + the rebuilt-dist whole-bundle zero-injection invariant). Established 2026-06-03.
|
|
948
|
+
|
|
949
|
+
150. **#A11Y1 — `FormValidator` reflects each managed field's validity into `aria-invalid`, so `aria-errormessage` associations actually reach assistive technology; done at the rule-agnostic error-display chokepoint `handleErrorsDisplay` (`core/plugins/lib/validator/src/main.js`).** Per WAI-ARIA an `aria-errormessage` (or error `aria-describedby`) association is inert unless the field also carries `aria-invalid="true"`, which the validator never set. Now the chokepoint sets `aria-invalid="true"` on a committed error (error-set + refresh branches, gated `!isWarning` so soft live-check warnings while typing are NOT asserted) and `"false"` on clear — but on clear it MIRRORS the native `ValidityState` (`$el.willValidate && $el.validity && !$el.validity.valid` ⇒ keep `"true"`) so it never disagrees with the `:user-invalid` styling already shown for natively-constrained fields. Hidden fields (`$el.type=='hidden'`) are skipped. **No-duplicate-message + auto-wire:** a `_hasConsumerErrMsg` probe hoisted before the branch chain suppresses the injected `form-item-error-message` div when the field already references its own error element via `aria-errormessage`; legacy forms with no association keep the injected div and gain an `aria-errormessage` wire to it — a deterministic `gina-errormessage-<form>-<field>` id (sanitised), marked `data-gina-aria-errormessage` so a gina-owned wire is distinguished from a consumer's, removed on clear, and the refresh branch preserves the owned id. **Submit + blur announcement:** on a failed submit (`onValidate`) focus moves to the first DOM-order invalid field (hidden / unfocusable / zero-count skipped) so AT announces it; blur-time committed errors are announced through a lazily-created per-form visually-hidden `aria-live="polite"` region (`announceA11yError`), gated on the per-field path (`fieldName` set) once focus has LEFT the field — a CSS `:user-invalid` toggle is not reliably announced and on blur the field's own aria state isn't re-read; submit-time errors use focus, not the region. **Scope nuance:** the per-field blur/`input` passes fire only when the form opts into `data-gina-form-live-check-enabled` (the warning branch is gated on it); the always-on submit pass covers `aria-invalid` + focus regardless, so a non-live form still gets submit-time exposure. Rule-agnostic (the chokepoint operates on `errors[name]`, not per rule — `isRequired` / `isEmail` / `isInList` / every rule covered). No public API change; existing `form-item-error` / `form-item-warning` / `form-item-error-message` / `data-gina-form-errors` classes + submit-button toggling unchanged. Real-AT smoke (VoiceOver / NVDA announcing the field + message) is the manual acceptance step — the automated coverage exercises the DOM attributes that drive AT. Shipped as four atomic commits. Tests: `test/core/validator-aria-invalid.test.js` (42 — jsdom DOM-behaviour replicas + source pins). Established 2026-06-03.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gina",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.3",
|
|
4
4
|
"description": "Node.js MVC framework with built-in HTTP/2, multi-bundle architecture, and scope-based data isolation — no Express dependency",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"nodejs",
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
"gina-container": "bin/gina-container",
|
|
73
73
|
"gina-init": "bin/gina-init"
|
|
74
74
|
},
|
|
75
|
-
"main": "./framework/v0.4.
|
|
75
|
+
"main": "./framework/v0.4.3/core/gna",
|
|
76
76
|
"types": "./types/index.d.ts",
|
|
77
77
|
"typesVersions": {
|
|
78
78
|
"*": {
|
|
@@ -94,16 +94,17 @@
|
|
|
94
94
|
"license": "MIT",
|
|
95
95
|
"readmeFilename": "README.md",
|
|
96
96
|
"dependencies": {
|
|
97
|
-
"@rhinostone/swig": "^2.
|
|
97
|
+
"@rhinostone/swig": "^2.6.0",
|
|
98
98
|
"engine.io": "^6.6.7",
|
|
99
|
-
"psl": "^1.15.0"
|
|
99
|
+
"psl": "^1.15.0",
|
|
100
|
+
"ws": "^8.20.1"
|
|
100
101
|
},
|
|
101
102
|
"devDependencies": {
|
|
102
103
|
"csso-cli": "4.0.2",
|
|
103
104
|
"engine.io-client": "^6.6.4",
|
|
104
105
|
"jsdom": "^29.1.1",
|
|
105
106
|
"requirejs": "^2.3.7",
|
|
106
|
-
"sass": "1.
|
|
107
|
+
"sass": "1.100.0"
|
|
107
108
|
},
|
|
108
109
|
"overrides": {
|
|
109
110
|
"ws": "^8.20.1"
|
package/framework/v0.4.2/VERSION
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
0.4.2
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/framework/{v0.4.2 → v0.4.3}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css
RENAMED
|
File without changes
|
/package/framework/{v0.4.2 → v0.4.3}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js
RENAMED
|
File without changes
|
/package/framework/{v0.4.2 → v0.4.3}/core/asset/plugin/dist/vendor/gina/beemaster/index.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/framework/{v0.4.2 → v0.4.3}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br
RENAMED
|
File without changes
|
/package/framework/{v0.4.2 → v0.4.3}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz
RENAMED
|
File without changes
|
|
File without changes
|
/package/framework/{v0.4.2 → v0.4.3}/core/asset/plugin/dist/vendor/gina/inspector/index.html
RENAMED
|
File without changes
|
/package/framework/{v0.4.2 → v0.4.3}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css
RENAMED
|
File without changes
|
|
File without changes
|
/package/framework/{v0.4.2 → v0.4.3}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js
RENAMED
|
File without changes
|
/package/framework/{v0.4.2 → v0.4.3}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br
RENAMED
|
File without changes
|
/package/framework/{v0.4.2 → v0.4.3}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|