gina 0.4.0 → 0.4.1
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 +5 -11
- package/ROADMAP.md +18 -7
- package/bin/cli +12 -0
- package/framework/v0.4.1/VERSION +1 -0
- package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/js/gina.js +0 -3
- package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/js/gina.min.js +1 -1
- package/framework/v0.4.1/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- package/framework/{v0.4.0 → v0.4.1}/core/controller/controller.js +43 -0
- package/framework/{v0.4.0 → v0.4.1}/core/controller/controller.render-nunjucks.js +117 -7
- package/framework/{v0.4.0 → v0.4.1}/core/controller/controller.render-swig.js +21 -1
- package/framework/{v0.4.0 → v0.4.1}/core/server.js +23 -1
- package/framework/{v0.4.0 → v0.4.1}/lib/cache/src/main.js +0 -3
- package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/add.js +24 -0
- package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/arguments.json +3 -1
- package/framework/v0.4.1/lib/cmd/bundle/copy.js +467 -0
- package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/help.txt +74 -0
- package/framework/v0.4.1/lib/cmd/bundle/inc/name-rewrite.js +96 -0
- package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/list.js +7 -90
- package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/remove.js +11 -0
- package/framework/v0.4.1/lib/cmd/bundle/rename.js +506 -0
- package/framework/v0.4.1/lib/cmd/bundle/status.js +170 -0
- package/framework/{v0.4.0 → v0.4.1}/lib/cmd/connector/list.js +2 -18
- package/framework/{v0.4.0 → v0.4.1}/lib/cmd/helper.js +1 -1
- package/framework/v0.4.1/lib/cmd/minion/arguments.json +4 -0
- package/framework/{v0.4.0 → v0.4.1}/lib/cmd/minion/help.txt +5 -1
- package/framework/v0.4.1/lib/cmd/minion/kill.js +336 -0
- package/framework/v0.4.1/lib/cmd/minion/list.js +270 -0
- package/framework/{v0.4.0 → v0.4.1}/lib/cmd/port/set.js +12 -0
- package/framework/{v0.4.0 → v0.4.1}/lib/cmd/project/help.txt +16 -0
- package/framework/{v0.4.0 → v0.4.1}/lib/cmd/project/remove.js +11 -0
- package/framework/v0.4.1/lib/cmd/project/status.js +218 -0
- package/framework/v0.4.1/lib/cmd/protocol/arguments.json +5 -0
- package/framework/{v0.4.0 → v0.4.1}/lib/cmd/protocol/help.txt +8 -3
- package/framework/v0.4.1/lib/cmd/protocol/remove.js +308 -0
- package/framework/{v0.4.0 → v0.4.1}/lib/cmd/protocol/set.js +12 -0
- package/framework/{v0.4.0 → v0.4.1}/lib/cmd/service/list.js +4 -82
- package/framework/{v0.4.0 → v0.4.1}/lib/cmd/view/add.js +13 -0
- package/framework/v0.4.1/lib/cmd-status-format/package.json +17 -0
- package/framework/v0.4.1/lib/cmd-status-format/src/main.js +142 -0
- package/framework/{v0.4.0 → v0.4.1}/lib/collection/src/main.js +0 -3
- package/framework/{v0.4.0 → v0.4.1}/lib/index.js +4 -0
- package/framework/{v0.4.0 → v0.4.1}/package.json +1 -1
- package/gna.js +4 -4
- package/llms.txt +13 -6
- package/package.json +2 -2
- package/script/sync_docs_deps.js +147 -0
- package/framework/v0.4.0/VERSION +0 -1
- package/framework/v0.4.0/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/v0.4.0/lib/cmd/bundle/copy.js +0 -18
- package/framework/v0.4.0/lib/cmd/bundle/rename.js +0 -7
- package/framework/v0.4.0/lib/cmd/bundle/status.js +0 -6
- package/framework/v0.4.0/lib/cmd/project/status.js +0 -3
- /package/framework/{v0.4.0 → v0.4.1}/AUTHORS +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/LICENSE +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/asset/html/nolayout.html +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/asset/html/static.html +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/asset/img/android-chrome-192x192.png +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/asset/img/android-chrome-512x512.png +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/asset/img/apple-touch-icon.png +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/asset/img/favicon-16x16.png +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/asset/img/favicon-32x32.png +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/asset/img/favicon.ico +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/config.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/connectors/ai/index.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/connectors/ai/lib/connector.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/connectors/couchbase/index.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/connectors/couchbase/lib/connector.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/connectors/couchbase/lib/connector.v3.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/connectors/couchbase/lib/connector.v4.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/connectors/couchbase/lib/n1ql.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/connectors/couchbase/lib/session-store.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/connectors/mongodb/index.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/connectors/mongodb/lib/connector.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/connectors/mongodb/lib/session-store.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/connectors/mysql/index.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/connectors/mysql/lib/connector.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/connectors/postgresql/index.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/connectors/postgresql/lib/connector.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/connectors/redis/index.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/connectors/redis/lib/session-store.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/connectors/scylladb/index.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/connectors/scylladb/lib/connector.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/connectors/scylladb/lib/session-store.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/connectors/sql-parser.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/connectors/sqlite/index.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/connectors/sqlite/lib/connector.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/connectors/sqlite/lib/session-store.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/content.encoding +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/controller/controller.framework.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/controller/controller.render-json.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/controller/controller.render-stream.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/controller/controller.render-v1.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/controller/index.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/controller/inspector-window-emit.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/deps/busboy-1.6.0/LICENSE +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/deps/busboy-1.6.0/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/deps/busboy-1.6.0/lib/index.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/deps/busboy-1.6.0/lib/types/multipart.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/deps/busboy-1.6.0/lib/types/urlencoded.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/deps/busboy-1.6.0/lib/utils.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/deps/busboy-1.6.0/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/deps/streamsearch-1.1.0/LICENSE +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/deps/streamsearch-1.1.0/lib/sbmh.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/deps/streamsearch-1.1.0/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/dev/index.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/dev/lib/class.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/dev/lib/factory.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/dev/lib/tools.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/gna.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/locales/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/locales/currency.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/locales/dist/language/en.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/locales/dist/language/fr.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/locales/dist/region/en.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/locales/dist/region/fr.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/locales/index.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/mime.types +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/model/entity.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/model/index.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/model/template/entityFactory.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/model/template/index.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/index.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/csrf/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/csrf/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/csrf/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/coep/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/coep/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/coop/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/coop/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/corp/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/corp/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/csp/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/csp/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/hsts/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/hsts/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/session/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/session/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/session/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/storage/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/storage/build.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/storage/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/storage/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/validator/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/validator/build.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/validator/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/validator/src/form-validator.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/validator/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/router.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/server.express.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/server.isaac.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/status.codes +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/_gitignore +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle/config/app.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle/config/connectors.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle/config/routing.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle/config/settings.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle/config/templates.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle/config/watchers.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle/index.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle/locales/en.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle_public/css/default.css +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle_public/css/home.css +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle_public/readme.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle_public/sw.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/command/gina.bat.tpl +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/command/gina.tpl +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/conf/env.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/conf/manifest.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/conf/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/conf/settings.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/conf/statics.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/conf/templates.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/error/client/json/401.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/error/client/json/403.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/error/client/json/404.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/error/server/html/50x.html +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/error/server/json/500.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/error/server/json/503.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/core/template/extensions/logger/config.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/helpers/console.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/helpers/context.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/helpers/data/LICENSE +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/helpers/data/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/helpers/data/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/helpers/data/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/helpers/dateFormat.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/helpers/index.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/helpers/json/LICENSE +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/helpers/json/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/helpers/json/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/helpers/json/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/helpers/path.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/helpers/plugins/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/helpers/plugins/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/helpers/plugins/src/api-error.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/helpers/plugins/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/helpers/prototypes.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/helpers/task.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/helpers/text.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/archiver/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/archiver/build.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/archiver/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/archiver/src/dep/jszip.min.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/archiver/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/async/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/async/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cache/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cache/build.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cache/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/aliases.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/build.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/cp.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/help.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/mcp-start.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/mcp.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/oas.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/openapi.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/restart.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/rm.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/start.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/bundle/stop.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/cache/stats.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/connector/add.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/connector/arguments.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/connector/help.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/connector/help.txt +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/connector/migrate.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/connector/remove.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/connector/rm.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/env/add.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/env/get.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/env/help.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/env/help.txt +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/env/link-dev.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/env/list.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/env/remove.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/env/rm.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/env/set.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/env/unset.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/env/use.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/arguments.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/build.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/dot.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/get.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/help.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/help.txt +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/init.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/link-node-modules.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/link.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/msg.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/open.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/restart.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/set.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/start.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/status.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/stop.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/tail.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/update.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/framework/version.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/gina-dev.1.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/gina-framework.1.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/gina.1.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/i18n/add.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/i18n/arguments.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/i18n/export.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/i18n/help.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/i18n/help.txt +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/i18n/import.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/i18n/scan.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/index.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/inspector/help.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/inspector/help.txt +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/inspector/open.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/minion/help.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/msg.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/port/help.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/port/help.txt +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/port/inc/scan.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/port/list.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/port/reset.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/project/add.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/project/arguments.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/project/build.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/project/help.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/project/import.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/project/list.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/project/move.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/project/rename.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/project/restart.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/project/rm.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/project/start.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/project/stop.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/protocol/help.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/protocol/list.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/scope/add.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/scope/help.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/scope/help.txt +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/scope/link-local.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/scope/link-production.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/scope/list.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/scope/remove.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/scope/rm.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/scope/use.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/secrets/arguments.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/secrets/check.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/secrets/help.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/secrets/help.txt +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/secrets/scan.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/service/help.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cmd/service/help.txt +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/collection/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/collection/build.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/collection/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/config.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/connector-registry/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/connector-registry/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cron/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cron/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/cron/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/domain/LICENSE +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/domain/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/domain/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/domain/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/generator/index.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/i18n/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/i18n/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/inherits/LICENSE +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/inherits/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/inherits/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/inherits/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/inspector-redact/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/inspector-redact/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/instrument/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/instrument/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/job/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/job/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/logger/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/logger/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/logger/src/containers/default/index.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/logger/src/containers/file/index.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/logger/src/containers/mq/index.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/logger/src/containers/mq/listener.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/logger/src/containers/mq/speaker.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/logger/src/helper.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/logger/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/math/index.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/mcp-dispatch/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/mcp-dispatch/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/mcp-http/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/mcp-http/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/mcp-server/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/mcp-server/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/merge/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/merge/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/merge/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/metrics/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/metrics/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/model.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/nunjucks-filters/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/nunjucks-filters/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/nunjucks-filters/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/nunjucks-resolver/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/nunjucks-resolver/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/proc.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/routing/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/routing/build.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/routing/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/routing/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/routing/src/radix.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/routing-introspect/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/routing-introspect/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/secrets/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/secrets/src/backends/env.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/secrets/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/session-store.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/shell.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/state.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/swig-filters/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/swig-filters/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/swig-filters/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/swig-resolver/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/swig-resolver/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/url/README.md +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/url/index.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/url/routing.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/uuid/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/uuid/src/main.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/validator.js +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/watcher/package.json +0 -0
- /package/framework/{v0.4.0 → v0.4.1}/lib/watcher/src/main.js +0 -0
package/llms.txt
CHANGED
|
@@ -567,6 +567,9 @@ gina bundle:remove <bundle> @<project> # Remove a bundle
|
|
|
567
567
|
gina bundle:list @<project> # List bundles (status, port summary, running state)
|
|
568
568
|
gina bundle:list --all # List bundles for every registered project
|
|
569
569
|
gina bundle:list @<project> --format=json # JSON payload with ports, running, pid per bundle
|
|
570
|
+
gina bundle:status <bundle> @<project> # Status of one bundle (running/stopped, pid, port, env)
|
|
571
|
+
gina project:status @<project> # Status of every bundle in a project (all projects if omitted)
|
|
572
|
+
gina project:status --format=json # JSON payload: per-project array of bundle status objects
|
|
570
573
|
gina service:list # List framework-internal services (@gina-only)
|
|
571
574
|
gina service:list --format=json # JSON payload with ports, running, pid per service
|
|
572
575
|
gina connector:list # List connectors across every registered project (read-only)
|
|
@@ -605,10 +608,7 @@ gina-init # Bootstrap ~/.gina/ from env vars (cont
|
|
|
605
608
|
|
|
606
609
|
**CLI stubs — commands that appear in docs or help.txt but are NOT implemented (handler files are empty or missing):**
|
|
607
610
|
|
|
608
|
-
- `
|
|
609
|
-
- `project:status` / `project:move` / `project:backup` / `project:restore` — empty or missing
|
|
610
|
-
- `protocol:remove` — no handler file (also has a typo "remouve" in help.txt)
|
|
611
|
-
- `minion:kill` / `minion:list` — no handler files
|
|
611
|
+
- `project:move` / `project:backup` / `project:restore` — empty or missing
|
|
612
612
|
- `framework:update` — empty handler
|
|
613
613
|
- `gina --status` / `gina -t` — not in aliases.json, no handler
|
|
614
614
|
|
|
@@ -859,7 +859,9 @@ Dev-mode query instrumentation captures every database query tied to the current
|
|
|
859
859
|
123. **Framework-attribution leak sweeps must cover Mermaid `participant` declarations as a separate surface from prose blocks and inline code examples.** When correcting the standalone-Express idiom across a docs family (per llms.txt #118), the prose-sweep grep targets `require('express')` / `var app = express();` in JS code blocks. That grep does NOT match Mermaid `participant App as express()` lines — diagram syntax is structurally different from prose patterns. The canonical sibling cross-check (csrf.md, the gate prescribed by #118) also fails to reveal the gap because csrf.md's own diagram doesn't have an "App" participant at all (it uses middleware-component participants — `Browser`, `Csrf middleware`, `Controller action` — directly). So a prose-only sweep can leave Mermaid diagrams carrying the wrong adoption-shape indefinitely. Mitigation: when running the #118 sweep, add a SECOND grep over the docs tree: `grep -rn 'participant.*express\|App as express' docs/`. Fix shape: drop the `App` participant entirely and route arrows Client → Plugin → Ctrl directly, matching csrf.md's convention (one less intermediate participant; the `next()` call doesn't bounce through a separate App layer at the diagram level). For diagrams that carry a `Note over App,Plugin: ...` caption, reattach to `Note over Plugin: ...` since App is removed. Precedent: 2026-05-17 — `docs/guides/security-headers.md:24` + `docs/guides/csp.md:32` both had `participant App as express()` (carried forward from helmet's docs since HDR1 + HDR5 first shipped). Fixed in `gina-io/docs` commit `b4095ec` (2 files, 7 ins / 13 del). User-caught via "Why are we still talking about express in the diagrams" mid-session — the #118 sweep had landed earlier the same day and missed both. Generalises: any future framework-attribution correction (rename, vocabulary shift, adoption-convention update) should sweep BOTH prose patterns AND Mermaid `participant` declarations, since they're separate grep surfaces with separate idioms. Cost of the extra Mermaid sweep: 1 grep call. Cost of skipping: visible bug carries forward into the next docs reader's view. Established 2026-05-17.
|
|
860
860
|
|
|
861
861
|
125. **CLI handler authoring & operations — 12 lessons consolidated** (replaces individual entries #17, #23, #24, #55, #56, #58, #59, #60, #62, #63, #102, #112):
|
|
862
|
-
- **CLI stubs** — `
|
|
862
|
+
- **CLI stubs** — `project:move/backup/restore`, `framework:update`, `gina --status/-t` appear in help.txt or docs but have empty/missing handler files; tracked in `ROADMAP.md § CLI` with target versions; never suggest to users without checking the handler file first. `bundle:status` / `project:status` / `minion:list` / `minion:kill` / `protocol:remove` / `bundle:copy` (+ `cp` alias) / `bundle:rename` shipped 0.4.1-alpha.2. Both minion commands are run-dir-driven process-truth (the "minion" abstraction is half-wired — nothing sets `process.isMinion` or writes `*minion*.pid`, so a minion == any running bundle child-process): `minion:list` lists every live `<bundle>@<project>.pid` grouped by project via `lib.cmdStatusFormat`; `minion:kill @<project>` reaps them (hybrid kill-set = run-dir pidfiles + a `ps -ef | grep 'gina: ...@<project>'` sweep for pidfile-less orphans bundle:stop misses), SIGTERM→grace→SIGKILL escalation, `--dry-run` preview, unlinks stale/killed pidfiles, never touches mount symlinks or its own PID. `protocol:remove <bundle> @<project>` reverts a bundle to the project default protocol by deleting ONLY its `server.protocol/scheme/allowHTTP1` override from the bundle's `settings.json` (config.js `:1003-1011` auto-defaults an absent protocol to `def_protocol`/`def_scheme`); it deliberately does NOT mutate the shared `ports*.json` — `project:add` pre-allocates the full protocol×scheme×env matrix, so the default-protocol port already exists and pruning the set's port would be wrong; a per-env port-presence guard refuses (unless `--force`) when the default-protocol port is missing; `--dry-run` preview, header-preserving JSON rewrite (connector:rm pattern). `bundle:copy <source> <new> @<project>` (+ `cp`) duplicates a bundle under a new name in the SAME project: copies the `src/<source>` tree, then word-boundary-rewrites the name footprint (PascalCase `<Src>`→`<Dst>` for controller class names + lowercase whole-word `<src>`→`<new>` for the gina require-var / `app.json` name / webroot path, `.js`/`.json` files only — embedded tokens like `apiClient` are untouched; a first-bundle webroot `/` is repointed to `/<new>`), allocates a fresh FULL protocol×scheme×env port matrix via the shared `setPorts` (a single-port insert would later emerg in `config.js`, which expects the complete matrix), and clones+repoints the source's manifest entry (`src`/`link`/`releases` target paths). `--dry-run` previews every rewrite site before writing; `--force` overwrites an existing target (its `removeDest` mirrors `bundle:remove`'s deletions). TWO positionals leave `self.name` null (CmdHelper sets it only for a single positional), so the handler reads `self.bundles[0]`/`[1]` directly — which also slips past the `cmd.name`-gated existence guard so the not-yet-registered new name isn't rejected. `bundle:rename <old> <new> @<project>` is the move-sibling — it renames a bundle IN PLACE in the same project (`fs.renameSync` move, NOT a copy) reusing the same `inc/name-rewrite.js` engine but with `fixWebroot:false` (rename moves the only bundle, so there's no first-bundle/collision case; a name-derived `/<old>` webroot is still rewritten by the lowercase pass). Its ports are REKEYED, not reallocated — port NUMBERS are preserved: `ports.json` rewrites the `<old>@<project>/` owner prefix back into the SAME `[protocol][scheme][portKey]` slot (avoiding the two `project/rename.js` bugs: the wrong `[protocol][portKey]` slot, and a project-wide owner replace), then `ports.reverse.json` is rekeyed (`pr[new]=pr[old]; delete pr[old]`) and flipped LAST as the canonical existence record. It REFUSES a running bundle with NO `--force` bypass (`--force` only overwrites an existing dest); the whole multi-surface mutation (symlink → renameSync dir → rewrite tree → env → manifest → ports → ports.reverse) is snapshot-guarded (the `bundle:add` rollback model) so any post-move failure reverses the dir move and restores env/manifest/ports/ports.reverse from in-memory snapshots. NOTE: the ROADMAP's "fix the help.txt remouve typo" item was stale — no such typo existed.
|
|
863
|
+
- **Two-guard `@<project>` requirement asymmetry in `lib/cmd/helper.js`** — a `project:*` command that should run without `@<project>` must be exempted in BOTH guards: the early task-shape guard (`!/^project\:(list|help|status)/`) AND the later projectName-resolution guard (`!/\:list$/.test(cmd.task)` → widened to also allow `^project:status$`). Exempting only the first leaves the second falling through to cwd-project-inference and a "No project name found" error before the handler runs. `project:list` is the working precedent that null `projectName` survives `loadAssets()`.
|
|
864
|
+
- **Single-bundle CLI handlers read `cmd.name` / `self.name`, NOT `self.bundle`** — CmdHelper sets `cmd.name = cmd.bundles[0]` only when exactly one bundle positional is present (`lib/cmd/helper.js`, the `cmd.bundles.length == 1` branch); `cmd.bundles` is the array for bulk operations. There is no `self.bundle` property. Precedent: `bundle:stop` / `bundle:start` / `bundle:status` all read `self.name`. (Worked example: a sub-agent investigation reported the slot as `self.bundle`; a single read of `helper.js` refuted it before the handler shipped — verify agent-relayed property names against source.)
|
|
863
865
|
- **`gina start` does not need sudo with a user-prefix install** — `npm install -g --prefix ~/.npm-global` (standard Gina setup) runs as the current user and doesn't touch `/var/run/`. The "Needs to be launched as [sudo]" comment in `lib/cmd/framework/start.js` only applies to system-wide installs.
|
|
864
866
|
- **`gina start` exits with code 1 even on success** — the startup script detaches the daemon; the shell child exits 1 as part of detachment. Always use `gina status` to confirm rather than the exit code. Sibling: a `gina start` framework server left running can hang the full test suite AND bundle boot via stale `~/.gina/procs.json` forcing the server onto a non-canonical port (see `cli-handlers.md § 11`).
|
|
865
867
|
- **CLI reserved flags — `--port` and `--version` must be renamed in subcommands** — both consumed by the framework's global CLI parser (`utils/helper.js::filterArgs` + `bin/cli:74-119`) before the subcommand sees argv. Use domain-prefixed forms: `--connector-port=`, `--driver-version=`. Un-prefixed forms are silently swallowed.
|
|
@@ -875,7 +877,7 @@ Dev-mode query instrumentation captures every database query tied to the current
|
|
|
875
877
|
126. **Release pipeline failure modes & recovery — 9 lessons consolidated** (replaces individual entries #15, #16, #43, #45, #46, #66, #84, #100, #113):
|
|
876
878
|
- **Post-merge state check required after every `git merge --ff-only`** — `post_install.js` does NOT run on a git pull/merge. When the version changes (especially a `shortVersion` bump like `0.2 → 0.3`), three state stores go stale: `~/.gina/main.json` (`def_framework`, `frameworks["${shortVersion}"]`, all metadata keys), `~/.gina/${shortVersion}/settings.json` (missing entirely), `gina.db kv_store` (`main` + `settings/${shortVersion}` keys). Running `npm install` from inside the repo also fails (symlink error); patch the state files directly.
|
|
877
879
|
- **Merge frequency / sync cadence** — merge `dev/wip` → `develop` after every feature/fix. Exception: hold at version boundaries (`0.3.x → 0.4.x`, `0.x → 1.x`) until the full release is prepared, because `git mv framework/v*/` during merge is a live deployment of the globally-installed CLI. Mid-version, the two branches must remain fast-forwardable to each other — never let both branches gain independent commits.
|
|
878
|
-
- **Release pipeline (`script/post_publish.js` chain) — failure modes** — `self.*` chain ordering (gates prepend; non-fatal wrap for polish steps); `syncDocs` alpha-misclass + nested-lifecycle red herring (`publishAlpha`'s `npm publish --tag alpha` triggers a NESTED full lifecycle that legitimately logs `[syncDocs] Alpha release — skipping docs sync`); docs-repo lockfile-mismatch race after stable publish (
|
|
880
|
+
- **Release pipeline (`script/post_publish.js` chain) — failure modes** — `self.*` chain ordering (gates prepend; non-fatal wrap for polish steps); `syncDocs` alpha-misclass + nested-lifecycle red herring (`publishAlpha`'s `npm publish --tag alpha` triggers a NESTED full lifecycle that legitimately logs `[syncDocs] Alpha release — skipping docs sync`); docs-repo lockfile-mismatch race after stable publish (first defense: `script/retry_lockfile_sync.js` `retryWithBackoff`, ~80s ceiling, schedule `[5,15,30,30]`s; when the retry is exhausted — registry lag past ~80s, e.g. the v0.4.0 cut, 3rd recurrence after 0.3.9/0.3.11 — FAILS CLOSED via `script/sync_docs_deps.js` `readLockedGina`+`resolveDocsDepState`: reverts the docs `devDependencies.gina` to the version still pinned in the unregenerated `package-lock.json` so the committed pair stays consistent and docs CONTENT still deploys (only the badge lags), or skips the develop→main merge via a `docsMergeSafe` gate if the locked version is unreadable — never ships a mismatched pair, so `develop`↔`main` stay ff-only; established 2026-05-30); README freshness code-gate (touch-since-tag check); `bumpVersion` `git mv framework/v<old>/ v<new>/` requires state-store pre-sync across `~/.gina/main.json` + `~/.gina/<short>/settings.json` + `gina.db kv_store`; `framework/v*/package.json` gitignored-but-CI-needed (heredoc-derive); lockfile-regen primitive `npm install --package-lock-only --ignore-scripts`; single try/catch around sequential git silently skips downstream work; early-return footgun on multi-side-effect functions; release-session tooling traps (`git filter-repo --replace-text` rewrites blob content only — pair with `--replace-message`; GitHub branch protection `allow_force_pushes: false` blocks ALL force-pushes including admin; full-payload PUT required to toggle; web UI toggle has been observed to silently no-op).
|
|
879
881
|
- **README.md is NOT auto-updated by any release script** — "What's in X.Y.Z" heading and Features-table Swig version reference are hand-maintained. Before `npm publish`: `grep -nE "What's in|Swig [0-9]" README.md`. README freshness is now a code-level gate in `prepare_version.js` (touch-since-tag check, established 2026-05-05 after three skipped manual-checklist steps in a row).
|
|
880
882
|
- **Docs-repo WIP during release merge: stash, don't file-overwrite** — when merging `develop → main` in `~/Sites/gina/docs/repo` to recover from a `syncDocs` miss, with significant in-flight work use `git stash push -u -m "<purpose>"` → `git checkout main` → `git merge --ff-only develop` → `git push origin main` → `git checkout develop` → `git stash pop`. The `-u` is required for untracked files (e.g. new `.mdx` files).
|
|
881
883
|
- **changie body strings — single-quote by default and escape `'` as `''`** — unquoted body containing ` #` (space + hash) → YAML treats it as a comment marker, silently truncating the body; unquoted body containing `:` breaks as a mapping; quoted body with unescaped literal `'` closes the scalar early. Author rule: every new changie entry uses `body: '...'` (single-quoted), every literal `'` inside becomes `''`. Verified by `.githooks/pre-commit` running `script/check_changie_entries.js` against staged `.yaml` files. `changie new -k <Kind> -b <body>` doesn't consistently auto-quote — `head -3 .changes/unreleased/<file>.yaml` after every `changie new` to confirm.
|
|
@@ -928,3 +930,8 @@ Dev-mode query instrumentation captures every database query tied to the current
|
|
|
928
930
|
|
|
929
931
|
141. **CSP per-response nonce — `gina.plugins.Csp({ useNonce: true })` (opt-in, default off) lets a bundle drop `'unsafe-inline'` from `script-src` without breaking the framework's injected inline scripts.** When `useNonce` is true the `ginaCsp` middleware generates a fresh `crypto.randomBytes(16).toString('base64')` nonce PER RESPONSE (128-bit W3C CSP3 floor), stamps it on the per-request carrier `req._ginaCspNonce`, and rebuilds the header per response appending `'nonce-<value>'` to `script-src` (fallback `default-src`; the factory THROWS at call time if neither directive is present, since the nonce has nowhere to attach). **`req._ginaCspNonce` is the carrier — NOT `res.locals`** (gina has no such slot in EITHER engine — verified: zero hits across server.js / server.isaac.js / server.express.js / controller.js; the issue's `res.locals.cspNonce` assumption does not hold) **and NOT `process.gina.*`** (process-global → would leak across concurrent requests, the PROXY_PREFIX bug class; `req._ginaCspNonce` mirrors the `req._ginaProxyPrefix` precedent, written by a middleware + read by the renderer on the same `req` that flows middleware→routing→controller→render in both engines). The static path (`useNonce:false`) precomputes the header once at factory time and writes no `req` slot — **zero behaviour change + zero per-request allocation** for bundles that don't opt in. The swig + nunjucks render delegates capture `_cspNonce = req._ginaCspNonce` alongside the #M1 req/res capture and stamp `nonce="<value>"` on the `onGinaLoaded` bootstrap `<script>`: swig via a function-local `_nonceLoader()` applied at all 3 ginaLoader injection sites; nunjucks by threading the nonce into `injectAssets()`. The bootstrap `<script type="text/javascript">` tag is built ONCE out-of-band in `config.js` and cached, so the nonce is injected at render time via a `.replace()` into a fresh string (never mutating the shared cache). The nonce is generated ONLY when gina is the header writer (the idempotent first-writer-wins `res.getHeader` guard): if a proxy/ingress already set CSP, no nonce is generated and none lands on the tags, keeping header and tags consistent. **Scope:** the always-on `onGinaLoaded` bootstrap (the production blocker — the only inline script emitted in prod) PLUS the dev-only Inspector (`__ginaData` + console-capture) and metrics-patch inline blocks in BOTH engines, all via the same `_cspNonce` capture + a `_cspNonceAttr` fragment (`nonce ? ' nonce="'+nonce+'"' : ''`) spliced into each `'<script' + _cspNonceAttr + '>'` opening. **nunjucks `injectInspectorScripts` reads the STABLE `local._cspNonce` slot** (stamped from the captured req in the main render scope), NOT volatile `local.req` — `render-nunjucks.test.js` §01 enforces "only one `local.req` read (the capture line)" per the #M1 race-discipline, so a `local.req._ginaCspNonce` read inside the helper trips it; the stable-`local._cspNonce` channel mirrors how that helper already reads `local._timeline`/`local._queryLog`. **Follow-up (shipped) — statusbar + application-template nonce helper.** The render delegates also expose the per-request nonce to templates: swig sets `data.page.cspNonce = _cspNonce` before BOTH `compiledTemplate(data)` sites (cache-hit + cache-miss — the swig var re-evaluates per execute, and the app-template helper must resolve on the cache-hit path too); nunjucks sets top-level `data.cspNonce` in the `env.render`/`env.renderString` context (its native top-level-promotion idiom). Both guard `if (_cspNonce)` so the key is ABSENT when no nonce (`{{ page.cspNonce }}` / `{{ cspNonce }}` then render empty + the `{% if %}` wrapper is falsy → no attribute → byte-for-byte back-compat). The Inspector `statusbar.html` (swig-only, dev-only, `{%- include -%}`d from the layout at the **dist** path) opens with `<script{% if page.cspNonce %} nonce="{{ page.cspNonce }}"{% endif %}>` — src + dist kept BYTE-IDENTICAL (dist is the runtime include artifact, not built from src via build.json; its JS body has zero swig delimiters so the line-1 conditional is the only template construct). This doubles as the **application-template nonce helper**: a bundle marks its OWN inline `<script>`s the same way (swig `{{ page.cspNonce }}`, nunjucks `{{ cspNonce }}`). Verified end-to-end with real execution at both ends — `csp-plugin.test.js §13` (middleware emits the header + stamps `req._ginaCspNonce`) and a real-`@rhinostone/swig` harness that `{%- include -%}`s the actual dist statusbar inside a parent template and confirms `page` inherits into the include (nonce attribute carries the exact value; bare tag without). Tests: `csp-plugin.test.js` §10-13, `render-swig.test.js` §14-16, `render-nunjucks.test.js` §04-06. Established 2026-05-27.
|
|
930
932
|
|
|
933
|
+
142. **`bin/cli` resolves the framework dir from `GINA_VERSION` (env/persisted) falling back to `package.json` version, then `require()`s `framework/v<version>/lib/generator` — now guarded by `fs.existsSync(frameworkPath)` BEFORE that require.** A `GINA_VERSION` pointing at a non-installed version (a stale pin, or a bind-mounted dev tree at a different version) otherwise throws `MODULE_NOT_FOUND` that the surrounding `try/catch` mislabels as `gina: could not load [ package.json ]` (package.json actually loaded fine), and the legitimate `existsSync` guard sits AFTER the require so it never fires — every CLI command then fails opaquely (in a container, `project:import` silently fails, so bundles report "not registered" on start). The guard now fails fast with a clear `gina framework:install <version>` message via `process.stderr.write` (`console` is not reassigned to the framework logger until later, so `console.alert` is undefined there). Diagnostic tell: `could not load package.json` followed by `Cannot find module '…/framework/v<X>/lib/generator'` means framework version `<X>` is not installed, not that package.json is broken. (`8fa9c278`, 2026-05-30)
|
|
934
|
+
|
|
935
|
+
143. **`lib/cmd-status-format` — shared run-state/port display primitive for the status/list CLI handlers (`pad` / `pickPreferredPort` / `readPidfile`).** `bundle:list`, `service:list`, `bundle:status`, and `project:status` each carried byte-identical inline copies of three helpers; they now consume `lib.cmdStatusFormat` (`var fmt = lib.cmdStatusFormat;` — the ambient registry global; the bare `require('lib/cmd-status-format')` form does NOT resolve in `bin/cli`/`bin/cmd` daemon scope, the same constraint as `routing-introspect`/`connector-registry`, because the `NODE_PATH` shim runs at bundle runtime). The module is **pure** — requires only node `fs`/`path`, reads no framework globals — so it is unit-testable by a direct require. The load-bearing design move: `readPidfile` was generalised from the inline `readPidfile(bundleName, projectName)` (which read the `GINA_HOMEDIR` + `_` globals) to `readPidfile(runDir, bundleName, projectName)` built with `path.join`; callers pass `GINA_HOMEDIR + '/run'`, and `service:list`'s hardwired `@gina` case becomes `fmt.readPidfile(GINA_HOMEDIR + '/run', name, 'gina')`. `pad` / `pickPreferredPort` were already pure and moved verbatim. **Test-extraction pattern**: the four handler test files were source-inspection suites pinning the inline *definitions*; extraction invalidates those pins, so they were rewritten to consume-the-primitive assertions (`/fmt\.readPidfile\(/` + `doesNotMatch /var readPidfile = function/`) and the behavioural coverage moved to `test/lib/cmd-status-format.test.js` (require-by-path, 15 tests) — the handlers' tests stay thin, the primitive is the behavioural surface. `lib/cmd/connector/list.js`'s byte-identical inline `pad(s, width)` was given the same treatment in `79d71abf` (call site routed through `fmt.pad`, test source-pin re-aimed — the new `var fmt` pin tolerates the column-aligned declaration via `/var fmt\s+= /`); `lib/cmd/cache/stats.js`'s `pad(str, len)` is a different signature and stays inline. Commits `fa0e0c1d`..`45459fa9` (+ `79d71abf` connector:list). Established 2026-05-31.
|
|
936
|
+
|
|
937
|
+
144. **`self.setTemplate(file, ext)` — runtime template override (controller action API, shipped `0.4.1-alpha.2`).** A controller action resolving its template dynamically (e.g. a catch-all dispatcher) calls `self.setTemplate(file, ext)` AFTER `setOptions()` to override the rule's default; it stashes `local.options._templateOverride = {file, ext}` (ext leading-dot-normalised; non-string args ignored; bails if `local.options` unset). BOTH render delegates read it and resolve the override **verbatim under the templates root with NO namespace prefixing**: render-swig in the path-resolution block ahead of the `namespace` branch, gated `!isRenderingCustomError` (swig's block is shared with custom-error rendering, so a leftover override must not hijack the framework error template); render-nunjucks via an early `return ovFile` in `resolveTemplatePath()` (its custom-error path uses `errOptions`, which carries no override, so no gate needed). **Inert-API gotcha — the writer alone is a no-op:** #27 shipped the writer with ZERO readers (it set `_templateOverride` but no delegate consumed it; source-inspection tests on the writer passed while the feature did nothing). When adding any 'the delegates read X' API, grep the delegates for the reader first and back it with a BEHAVIOURAL test that the rendered output changes. Commits `9f2471f0` (#27 writer + swig reader) + `61211bfb` (#29 nunjucks reader). Established 2026-06-01.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gina",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.1",
|
|
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.1/core/gna",
|
|
76
76
|
"types": "./types/index.d.ts",
|
|
77
77
|
"typesVersions": {
|
|
78
78
|
"*": {
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* This file is part of the gina package.
|
|
5
|
+
* Copyright (c) 2009-2026 Rhinostone <contact@gina.io>
|
|
6
|
+
*
|
|
7
|
+
* For the full copyright and license information, please view the LICENSE
|
|
8
|
+
* file that was distributed with this source code.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @file script/sync_docs_deps.js
|
|
13
|
+
*
|
|
14
|
+
* Fail-closed decision helper for `script/post_publish.js → syncDocs`.
|
|
15
|
+
*
|
|
16
|
+
* After a stable publish, `syncDocs` bumps the docs repo's
|
|
17
|
+
* `devDependencies.gina` to the just-published version and regenerates
|
|
18
|
+
* `package-lock.json`. When the npm registry's eventual-consistency window
|
|
19
|
+
* leaves the new version unresolvable past the retry budget (see
|
|
20
|
+
* `retry_lockfile_sync.js`), the regen fails and `package-lock.json` is left
|
|
21
|
+
* pinning the PREVIOUS version while `package.json` has already been bumped to
|
|
22
|
+
* the new one. Committing + merging that mismatched pair to docs `main` breaks
|
|
23
|
+
* the next Vercel `npm ci` deploy (the recurring failure on
|
|
24
|
+
* `gina@0.3.7` / `gina@0.3.9` / `gina@0.3.11` / `gina@0.4.0`).
|
|
25
|
+
*
|
|
26
|
+
* This helper makes that path FAIL CLOSED: on a regen failure it reads the
|
|
27
|
+
* version still pinned in the unregenerated `package-lock.json` and reverts
|
|
28
|
+
* `devDependencies.gina` to match it, so the committed pair stays internally
|
|
29
|
+
* consistent and the docs CONTENT still deploys — only the cosmetic version
|
|
30
|
+
* badge lags until a follow-up bump. If the locked version cannot be read, the
|
|
31
|
+
* merge is skipped entirely rather than ship a mismatch.
|
|
32
|
+
*
|
|
33
|
+
* Both functions are pure (no I/O) so the decision is unit-testable without a
|
|
34
|
+
* real docs repo or registry — the caller passes in the lockfile content and
|
|
35
|
+
* the retry result.
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
'use strict';
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Extract the `gina` version pinned in a docs-repo `package-lock.json`.
|
|
43
|
+
*
|
|
44
|
+
* Handles all three lockfile shapes: `lockfileVersion` 2/3 store packages in a
|
|
45
|
+
* path-keyed `packages` map; `lockfileVersion` 1 (and the legacy half of a
|
|
46
|
+
* `lockfileVersion` 2 file) uses a flat `dependencies` map. The `packages` map
|
|
47
|
+
* is preferred when present.
|
|
48
|
+
*
|
|
49
|
+
* @param {string|null} lockfileContent raw `package-lock.json` text
|
|
50
|
+
* @returns {string|null} the pinned gina version (e.g. `'0.3.15'`), or `null`
|
|
51
|
+
* when the lockfile is absent, unparseable, or carries no gina entry.
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* readLockedGina(fs.readFileSync('package-lock.json', 'utf8')); // '0.3.15'
|
|
55
|
+
* readLockedGina(null); // null
|
|
56
|
+
* readLockedGina('{ not json'); // null
|
|
57
|
+
*/
|
|
58
|
+
function readLockedGina(lockfileContent) {
|
|
59
|
+
if (!lockfileContent) {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
var parsed;
|
|
63
|
+
try {
|
|
64
|
+
parsed = JSON.parse(lockfileContent);
|
|
65
|
+
} catch (e) {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
// lockfileVersion 2/3 — path-keyed packages map.
|
|
69
|
+
if (
|
|
70
|
+
parsed.packages
|
|
71
|
+
&& parsed.packages['node_modules/gina']
|
|
72
|
+
&& parsed.packages['node_modules/gina'].version
|
|
73
|
+
) {
|
|
74
|
+
return parsed.packages['node_modules/gina'].version;
|
|
75
|
+
}
|
|
76
|
+
// lockfileVersion 1 (and the legacy half of a v2 file) — flat dependencies map.
|
|
77
|
+
if (
|
|
78
|
+
parsed.dependencies
|
|
79
|
+
&& parsed.dependencies.gina
|
|
80
|
+
&& parsed.dependencies.gina.version
|
|
81
|
+
) {
|
|
82
|
+
return parsed.dependencies.gina.version;
|
|
83
|
+
}
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Decide what `devDependencies.gina` should be set to, and whether the
|
|
90
|
+
* docs `develop → main` merge is safe, given the outcome of the lockfile regen.
|
|
91
|
+
*
|
|
92
|
+
* @param {object} opts
|
|
93
|
+
* @param {object} opts.lockResult result from `retryWithBackoff` — `{ ok, attempts, lastErr }`
|
|
94
|
+
* @param {string|null} [opts.lockfileContent] raw `package-lock.json` text (read only on the failure path)
|
|
95
|
+
* @param {string} opts.newVersion the just-published gina version (no `^`)
|
|
96
|
+
* @returns {{ devDep: (string|null), mergeToMain: boolean, reason: string }}
|
|
97
|
+
* `devDep` is the spec to set (`'^x.y.z'`), or `null` when no consistent
|
|
98
|
+
* spec can be guaranteed; `mergeToMain` is `false` only when shipping the
|
|
99
|
+
* merge would risk a mismatched pair; `reason` is a stable diagnostic tag.
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* // regen succeeded — lockfile pins the new version, merge is safe
|
|
103
|
+
* resolveDocsDepState({ lockResult: { ok: true }, newVersion: '0.4.0' });
|
|
104
|
+
* // → { devDep: '^0.4.0', mergeToMain: true, reason: 'lockfile-fresh' }
|
|
105
|
+
*
|
|
106
|
+
* // regen failed (registry lag), lockfile still pins the old version —
|
|
107
|
+
* // revert the devDep to match so the committed pair stays consistent
|
|
108
|
+
* resolveDocsDepState({
|
|
109
|
+
* lockResult: { ok: false },
|
|
110
|
+
* lockfileContent: oldLockfileText, // pins gina@0.3.15
|
|
111
|
+
* newVersion: '0.4.0'
|
|
112
|
+
* });
|
|
113
|
+
* // → { devDep: '^0.3.15', mergeToMain: true, reason: 'registry-lag-reverted' }
|
|
114
|
+
*
|
|
115
|
+
* // regen failed AND the locked version is unreadable — fail closed
|
|
116
|
+
* resolveDocsDepState({ lockResult: { ok: false }, lockfileContent: null, newVersion: '0.4.0' });
|
|
117
|
+
* // → { devDep: null, mergeToMain: false, reason: 'manual-recovery' }
|
|
118
|
+
*/
|
|
119
|
+
function resolveDocsDepState(opts) {
|
|
120
|
+
opts = opts || {};
|
|
121
|
+
var lockResult = opts.lockResult || {};
|
|
122
|
+
var newVersion = opts.newVersion;
|
|
123
|
+
|
|
124
|
+
// Regen succeeded → package-lock.json now pins the new version; the devDep
|
|
125
|
+
// already set to ^new is consistent and the merge is safe.
|
|
126
|
+
if (lockResult.ok) {
|
|
127
|
+
return { devDep: '^' + newVersion, mergeToMain: true, reason: 'lockfile-fresh' };
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// Regen failed (registry lag). package-lock.json was NOT regenerated and
|
|
131
|
+
// still pins the previously-locked version. Revert the devDep to match it
|
|
132
|
+
// so the committed pair is internally consistent and content still deploys.
|
|
133
|
+
var locked = readLockedGina(opts.lockfileContent);
|
|
134
|
+
if (locked) {
|
|
135
|
+
return { devDep: '^' + locked, mergeToMain: true, reason: 'registry-lag-reverted' };
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
// Cannot determine the locked version → cannot guarantee a consistent pair.
|
|
139
|
+
// Fail closed: skip the merge so no mismatch reaches docs main.
|
|
140
|
+
return { devDep: null, mergeToMain: false, reason: 'manual-recovery' };
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
module.exports = {
|
|
145
|
+
readLockedGina: readLockedGina,
|
|
146
|
+
resolveDocsDepState: resolveDocsDepState
|
|
147
|
+
};
|
package/framework/v0.4.0/VERSION
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
0.4.0
|
|
Binary file
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module gina/lib/cmd/bundle/copy
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Copy and insall the source bundle into another existing project
|
|
6
|
-
*
|
|
7
|
-
* - throw error if project does not exist
|
|
8
|
-
* - setup:
|
|
9
|
-
* * ~/.gina/ports.json
|
|
10
|
-
* * ~/.gina/portsReverse.json
|
|
11
|
-
* * update ports on /new/path/to/project/env.json
|
|
12
|
-
* * update infos on /new/path/to/project/manifest.json
|
|
13
|
-
* * No cleanup needed since it's only a copy !
|
|
14
|
-
*
|
|
15
|
-
* The main advantage you are gaining over a simple copy/paste is that gina is going to
|
|
16
|
-
* write configuration/settings for you.
|
|
17
|
-
*
|
|
18
|
-
* */
|
|
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.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css
RENAMED
|
File without changes
|
/package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js
RENAMED
|
File without changes
|
/package/framework/{v0.4.0 → v0.4.1}/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.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br
RENAMED
|
File without changes
|
/package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz
RENAMED
|
File without changes
|
|
File without changes
|
/package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/inspector/index.html
RENAMED
|
File without changes
|
/package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css
RENAMED
|
File without changes
|
/package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js
RENAMED
|
File without changes
|
|
File without changes
|
/package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js
RENAMED
|
File without changes
|
/package/framework/{v0.4.0 → v0.4.1}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br
RENAMED
|
File without changes
|
/package/framework/{v0.4.0 → v0.4.1}/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
|
|
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.0 → v0.4.1}/core/plugins/lib/security-headers/hide-powered-by/README.md
RENAMED
|
File without changes
|
/package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/hide-powered-by/package.json
RENAMED
|
File without changes
|
/package/framework/{v0.4.0 → v0.4.1}/core/plugins/lib/security-headers/hide-powered-by/src/main.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|