gina 0.3.13-alpha.2 → 0.3.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.playwright-mcp/console-2026-05-14T02-27-11-347Z.log +64 -0
- package/.playwright-mcp/d9-after-connector.png +0 -0
- package/.playwright-mcp/d9-after-service.png +0 -0
- package/.playwright-mcp/d9-before-connector-full.png +0 -0
- package/.playwright-mcp/d9-before-connector-leak.png +0 -0
- package/.playwright-mcp/d9-before-connector-top.png +0 -0
- package/.playwright-mcp/d9-before-connector-v2.png +0 -0
- package/.playwright-mcp/d9-before-connector.png +0 -0
- package/.playwright-mcp/page-2026-05-14T02-24-51-996Z.yml +1818 -0
- package/.playwright-mcp/page-2026-05-14T02-26-47-905Z.yml +2063 -0
- package/.playwright-mcp/page-2026-05-14T02-27-11-472Z.yml +406 -0
- package/.playwright-mcp/page-2026-05-14T02-28-37-939Z.yml +2061 -0
- package/.playwright-mcp/page-2026-05-14T02-29-01-333Z.yml +404 -0
- package/CHANGELOG.md +29 -0
- package/README.md +11 -1
- package/ROADMAP.md +16 -6
- package/framework/v0.3.13/VERSION +1 -0
- package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/js/gina.js +21 -6
- package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/js/gina.min.js +47 -46
- package/framework/v0.3.13/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/v0.3.13/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/config.js +13 -0
- package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/plugins/lib/csrf/src/main.js +32 -9
- package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/plugins/lib/validator/src/form-validator.js +11 -1
- package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/plugins/lib/validator/src/main.js +4 -2
- package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/server.isaac.js +56 -11
- package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle/config/settings.server.json +3 -1
- package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle/index.js +14 -4
- package/framework/v0.3.13/core/template/boilerplate/bundle_public/manifest.webmanifest +17 -0
- package/framework/v0.3.13/core/template/boilerplate/bundle_public/readme.md +20 -0
- package/framework/v0.3.13/core/template/boilerplate/bundle_public/sw.js +122 -0
- package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle_templates/html/layouts/main.html +14 -0
- package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/conf/settings.json +11 -4
- package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/json/src/main.js +38 -22
- package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/mcp-start.js +18 -2
- package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/index.js +5 -0
- package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/logger/src/containers/file/index.js +1 -4
- package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/logger/src/containers/mq/index.js +1 -4
- package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/logger/src/main.js +1 -4
- package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/merge/src/main.js +2 -1
- package/framework/v0.3.13/lib/secrets/package.json +17 -0
- package/framework/v0.3.13/lib/secrets/src/backends/env.js +60 -0
- package/framework/v0.3.13/lib/secrets/src/main.js +200 -0
- package/framework/{v0.3.13-alpha.2 → v0.3.13}/package.json +2 -2
- package/gna.js +4 -4
- package/llms.txt +17 -1
- package/package.json +3 -3
- package/framework/v0.3.13-alpha.2/VERSION +0 -1
- package/framework/v0.3.13-alpha.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/v0.3.13-alpha.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- package/framework/v0.3.13-alpha.2/core/plugins/lib/file/package.json +0 -25
- package/framework/v0.3.13-alpha.2/core/plugins/lib/intl/package.json +0 -25
- package/framework/v0.3.13-alpha.2/core/plugins/lib/intl/src/main.js +0 -35
- package/framework/v0.3.13-alpha.2/core/template/boilerplate/bundle_public/readme.md +0 -1
- package/framework/v0.3.13-alpha.2/lib/collection/build.json +0 -0
- package/framework/v0.3.13-alpha.2/lib/routing/build.json +0 -0
- package/framework/v0.3.13-alpha.2/lib/swig-filters/README.md +0 -0
- package/framework/v0.3.13-alpha.2/lib/url/README.md +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/AUTHORS +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/LICENSE +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/html/nolayout.html +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/html/static.html +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/img/android-chrome-192x192.png +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/img/android-chrome-512x512.png +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/img/apple-touch-icon.png +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/img/favicon-16x16.png +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/img/favicon-32x32.png +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/img/favicon.ico +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/README.md +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/ai/index.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/ai/lib/connector.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/couchbase/index.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/couchbase/lib/connector.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/couchbase/lib/connector.v2.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/couchbase/lib/connector.v3.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/couchbase/lib/connector.v4.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/couchbase/lib/n1ql.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/couchbase/lib/session-store.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/couchbase/lib/session-store.v2.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/mongodb/index.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/mongodb/lib/connector.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/mongodb/lib/session-store.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/mysql/index.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/mysql/lib/connector.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/postgresql/index.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/postgresql/lib/connector.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/redis/index.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/redis/lib/session-store.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/scylladb/index.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/scylladb/lib/connector.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/scylladb/lib/session-store.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/sql-parser.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/sqlite/index.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/sqlite/lib/connector.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/connectors/sqlite/lib/session-store.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/content.encoding +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/controller/controller.framework.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/controller/controller.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/controller/controller.render-json.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/controller/controller.render-nunjucks.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/controller/controller.render-stream.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/controller/controller.render-swig.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/controller/controller.render-v1.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/controller/index.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/deps/busboy-1.6.0/LICENSE +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/deps/busboy-1.6.0/README.md +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/deps/busboy-1.6.0/lib/index.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/deps/busboy-1.6.0/lib/types/multipart.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/deps/busboy-1.6.0/lib/types/urlencoded.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/deps/busboy-1.6.0/lib/utils.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/deps/busboy-1.6.0/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/deps/streamsearch-1.1.0/LICENSE +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/deps/streamsearch-1.1.0/lib/sbmh.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/deps/streamsearch-1.1.0/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/dev/index.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/dev/lib/class.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/dev/lib/factory.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/dev/lib/tools.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/gna.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/locales/README.md +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/locales/currency.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/locales/dist/language/en.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/locales/dist/language/fr.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/locales/dist/region/en.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/locales/dist/region/fr.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/locales/index.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/mime.types +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/model/entity.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/model/index.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/model/template/entityFactory.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/model/template/index.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/plugins/README.md +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/plugins/index.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/plugins/lib/csrf/README.md +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/plugins/lib/csrf/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/plugins/lib/session/README.md +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/plugins/lib/session/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/plugins/lib/session/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.2/core/plugins/lib/file → v0.3.13/core/plugins/lib/storage}/README.md +0 -0
- /package/framework/{v0.3.13-alpha.2/core/plugins/lib/file → v0.3.13/core/plugins/lib/storage}/build.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/plugins/lib/storage/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/plugins/lib/storage/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.2/core/plugins/lib/intl → v0.3.13/core/plugins/lib/validator}/README.md +0 -0
- /package/framework/{v0.3.13-alpha.2/core/plugins/lib/intl → v0.3.13/core/plugins/lib/validator}/build.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/plugins/lib/validator/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/router.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/server.express.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/server.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/status.codes +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/_gitignore +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle/config/app.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle/config/connectors.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle/config/routing.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle/config/settings.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle/config/templates.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle/config/watchers.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle/locales/en.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle_public/css/default.css +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle_public/css/home.css +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/command/gina.bat.tpl +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/command/gina.tpl +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/conf/env.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/conf/manifest.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/conf/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/conf/statics.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/conf/templates.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/error/client/json/401.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/error/client/json/403.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/error/client/json/404.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/error/server/html/50x.html +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/error/server/json/500.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/error/server/json/503.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/core/template/extensions/logger/config.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/console.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/context.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/data/LICENSE +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/data/README.md +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/data/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/data/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/dateFormat.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/index.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/json/LICENSE +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/json/README.md +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/json/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/path.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/plugins/README.md +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/plugins/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/plugins/src/api-error.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/plugins/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/prototypes.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/task.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/helpers/text.js +0 -0
- /package/framework/{v0.3.13-alpha.2/core/plugins/lib/storage → v0.3.13/lib/archiver}/README.md +0 -0
- /package/framework/{v0.3.13-alpha.2/core/plugins/lib/storage → v0.3.13/lib/archiver}/build.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/archiver/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/archiver/src/dep/jszip.min.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/archiver/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/async/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/async/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cache/README.md +0 -0
- /package/framework/{v0.3.13-alpha.2/core/plugins/lib/validator → v0.3.13/lib/cache}/build.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cache/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cache/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/aliases.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/add.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/arguments.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/build.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/copy.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/cp.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/help.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/help.txt +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/list.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/mcp.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/oas.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/openapi.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/remove.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/rename.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/restart.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/rm.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/start.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/status.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/bundle/stop.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/cache/stats.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/connector/add.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/connector/arguments.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/connector/help.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/connector/help.txt +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/connector/list.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/connector/migrate.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/connector/remove.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/connector/rm.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/env/add.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/env/get.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/env/help.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/env/help.txt +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/env/link-dev.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/env/list.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/env/remove.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/env/rm.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/env/set.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/env/unset.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/env/use.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/arguments.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/build.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/dot.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/get.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/help.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/help.txt +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/init.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/link-node-modules.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/link.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/msg.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/open.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/restart.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/set.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/start.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/status.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/stop.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/tail.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/update.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/framework/version.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/gina-dev.1.md +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/gina-framework.1.md +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/gina.1.md +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/helper.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/i18n/add.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/i18n/arguments.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/i18n/export.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/i18n/help.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/i18n/help.txt +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/i18n/import.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/i18n/scan.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/index.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/inspector/help.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/inspector/help.txt +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/inspector/open.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/minion/help.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/minion/help.txt +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/msg.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/port/help.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/port/help.txt +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/port/inc/scan.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/port/list.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/port/reset.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/port/set.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/project/add.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/project/arguments.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/project/build.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/project/help.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/project/help.txt +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/project/import.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/project/list.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/project/move.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/project/remove.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/project/rename.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/project/restart.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/project/rm.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/project/start.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/project/status.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/project/stop.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/protocol/help.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/protocol/help.txt +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/protocol/list.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/protocol/set.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/scope/add.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/scope/help.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/scope/help.txt +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/scope/link-local.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/scope/link-production.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/scope/list.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/scope/remove.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/scope/rm.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/scope/use.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/service/help.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/service/help.txt +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/service/list.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cmd/view/add.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/collection/README.md +0 -0
- /package/framework/{v0.3.13-alpha.2/lib/archiver → v0.3.13/lib/collection}/build.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/collection/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/collection/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/config.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/connector-registry/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/connector-registry/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cron/README.md +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cron/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/cron/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/domain/LICENSE +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/domain/README.md +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/domain/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/domain/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/generator/index.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/i18n/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/i18n/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/inherits/LICENSE +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/inherits/README.md +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/inherits/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/inherits/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/inspector-redact/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/inspector-redact/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/logger/README.md +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/logger/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/logger/src/containers/default/index.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/logger/src/containers/mq/listener.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/logger/src/containers/mq/speaker.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/logger/src/helper.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/math/index.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/mcp-dispatch/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/mcp-dispatch/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/mcp-http/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/mcp-http/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/mcp-server/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/mcp-server/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/merge/README.md +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/merge/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/metrics/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/metrics/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/model.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/nunjucks-filters/README.md +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/nunjucks-filters/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/nunjucks-filters/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/nunjucks-resolver/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/nunjucks-resolver/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/proc.js +0 -0
- /package/framework/{v0.3.13-alpha.2/core/plugins/lib/validator → v0.3.13/lib/routing}/README.md +0 -0
- /package/framework/{v0.3.13-alpha.2/lib/cache → v0.3.13/lib/routing}/build.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/routing/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/routing/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/routing/src/radix.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/routing-introspect/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/routing-introspect/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/session-store.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/shell.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/state.js +0 -0
- /package/framework/{v0.3.13-alpha.2/lib/archiver → v0.3.13/lib/swig-filters}/README.md +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/swig-filters/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/swig-filters/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/swig-resolver/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/swig-resolver/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.2/lib/routing → v0.3.13/lib/url}/README.md +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/url/index.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/url/routing.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/uuid/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/uuid/src/main.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/validator.js +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/watcher/package.json +0 -0
- /package/framework/{v0.3.13-alpha.2 → v0.3.13}/lib/watcher/src/main.js +0 -0
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
- generic [ref=e2]:
|
|
2
|
+
- region "Skip to main content":
|
|
3
|
+
- link "Skip to main content" [ref=e3] [cursor=pointer]:
|
|
4
|
+
- /url: "#__docusaurus_skipToContent_fallback"
|
|
5
|
+
- navigation "Main" [ref=e4]:
|
|
6
|
+
- generic [ref=e5]:
|
|
7
|
+
- generic [ref=e6]:
|
|
8
|
+
- link "Gina logo Gina" [ref=e7] [cursor=pointer]:
|
|
9
|
+
- /url: /docs/
|
|
10
|
+
- img "Gina logo" [ref=e9]
|
|
11
|
+
- generic [ref=e10]: Gina
|
|
12
|
+
- link "Docs" [ref=e11] [cursor=pointer]:
|
|
13
|
+
- /url: /docs/intro
|
|
14
|
+
- link "Tutorials" [ref=e12] [cursor=pointer]:
|
|
15
|
+
- /url: /docs/tutorials
|
|
16
|
+
- link "Templating" [ref=e13] [cursor=pointer]:
|
|
17
|
+
- /url: /docs/templating/
|
|
18
|
+
- link "Roadmap" [ref=e14] [cursor=pointer]:
|
|
19
|
+
- /url: /docs/roadmap
|
|
20
|
+
- generic [ref=e15]:
|
|
21
|
+
- generic [ref=e17]:
|
|
22
|
+
- link "Changelog" [ref=e18] [cursor=pointer]:
|
|
23
|
+
- /url: https://github.com/gina-io/gina/releases
|
|
24
|
+
- text: v0.3.12
|
|
25
|
+
- link "GitHub repository" [ref=e19] [cursor=pointer]:
|
|
26
|
+
- /url: https://github.com/gina-io/gina
|
|
27
|
+
- img [ref=e20]
|
|
28
|
+
- link "npm package (stable)" [ref=e22] [cursor=pointer]:
|
|
29
|
+
- /url: https://www.npmjs.com/package/gina/v/0.3.12
|
|
30
|
+
- img [ref=e23]
|
|
31
|
+
- generic "light mode" [ref=e26] [cursor=pointer]:
|
|
32
|
+
- checkbox "Switch between dark and light mode (currently light mode)" [disabled]
|
|
33
|
+
- generic [ref=e27]:
|
|
34
|
+
- generic [ref=e28]: ☾
|
|
35
|
+
- generic [ref=e29]: ☀
|
|
36
|
+
- textbox "Search" [ref=e32]
|
|
37
|
+
- generic [ref=e35]:
|
|
38
|
+
- complementary [ref=e36]:
|
|
39
|
+
- navigation "Docs sidebar" [ref=e39]:
|
|
40
|
+
- list [ref=e40]:
|
|
41
|
+
- listitem [ref=e41]:
|
|
42
|
+
- link "What is Gina?" [ref=e42] [cursor=pointer]:
|
|
43
|
+
- /url: /docs/intro
|
|
44
|
+
- img [ref=e44]
|
|
45
|
+
- generic "What is Gina?" [ref=e46]
|
|
46
|
+
- listitem [ref=e47]:
|
|
47
|
+
- generic [ref=e48]:
|
|
48
|
+
- link "Getting Started" [ref=e49] [cursor=pointer]:
|
|
49
|
+
- /url: /docs/getting-started
|
|
50
|
+
- img [ref=e51]
|
|
51
|
+
- generic "Getting Started" [ref=e56]
|
|
52
|
+
- button "Expand sidebar category 'Getting Started'" [ref=e57] [cursor=pointer]
|
|
53
|
+
- listitem [ref=e58]:
|
|
54
|
+
- generic [ref=e59]:
|
|
55
|
+
- link "Concepts" [ref=e60] [cursor=pointer]:
|
|
56
|
+
- /url: /docs/concepts
|
|
57
|
+
- img [ref=e62]
|
|
58
|
+
- generic "Concepts" [ref=e64]
|
|
59
|
+
- button "Expand sidebar category 'Concepts'" [ref=e65] [cursor=pointer]
|
|
60
|
+
- listitem [ref=e66]:
|
|
61
|
+
- generic [ref=e67]:
|
|
62
|
+
- link "Guides" [ref=e68] [cursor=pointer]:
|
|
63
|
+
- /url: /docs/guides
|
|
64
|
+
- img [ref=e70]
|
|
65
|
+
- generic "Guides" [ref=e73]
|
|
66
|
+
- button "Expand sidebar category 'Guides'" [ref=e74] [cursor=pointer]
|
|
67
|
+
- listitem [ref=e75]:
|
|
68
|
+
- generic [ref=e76]:
|
|
69
|
+
- link "CLI Reference" [ref=e77] [cursor=pointer]:
|
|
70
|
+
- /url: /docs/cli
|
|
71
|
+
- img [ref=e79]
|
|
72
|
+
- generic "CLI Reference" [ref=e81]
|
|
73
|
+
- button "Collapse sidebar category 'CLI Reference'" [expanded] [ref=e82] [cursor=pointer]
|
|
74
|
+
- list [ref=e83]:
|
|
75
|
+
- listitem [ref=e84]:
|
|
76
|
+
- link "bundle" [ref=e85] [cursor=pointer]:
|
|
77
|
+
- /url: /docs/cli/cli-bundle
|
|
78
|
+
- generic "bundle" [ref=e86]
|
|
79
|
+
- listitem [ref=e87]:
|
|
80
|
+
- link "project" [ref=e88] [cursor=pointer]:
|
|
81
|
+
- /url: /docs/cli/cli-project
|
|
82
|
+
- generic "project" [ref=e89]
|
|
83
|
+
- listitem [ref=e90]:
|
|
84
|
+
- link "framework" [ref=e91] [cursor=pointer]:
|
|
85
|
+
- /url: /docs/cli/cli-framework
|
|
86
|
+
- generic "framework" [ref=e92]
|
|
87
|
+
- listitem [ref=e93]:
|
|
88
|
+
- link "env" [ref=e94] [cursor=pointer]:
|
|
89
|
+
- /url: /docs/cli/cli-env
|
|
90
|
+
- generic "env" [ref=e95]
|
|
91
|
+
- listitem [ref=e96]:
|
|
92
|
+
- link "port" [ref=e97] [cursor=pointer]:
|
|
93
|
+
- /url: /docs/cli/cli-port
|
|
94
|
+
- generic "port" [ref=e98]
|
|
95
|
+
- listitem [ref=e99]:
|
|
96
|
+
- link "scope" [ref=e100] [cursor=pointer]:
|
|
97
|
+
- /url: /docs/cli/cli-scope
|
|
98
|
+
- generic "scope" [ref=e101]
|
|
99
|
+
- listitem [ref=e102]:
|
|
100
|
+
- link "view" [ref=e103] [cursor=pointer]:
|
|
101
|
+
- /url: /docs/cli/cli-view
|
|
102
|
+
- generic "view" [ref=e104]
|
|
103
|
+
- listitem [ref=e105]:
|
|
104
|
+
- link "cache" [ref=e106] [cursor=pointer]:
|
|
105
|
+
- /url: /docs/cli/cli-cache
|
|
106
|
+
- generic "cache" [ref=e107]
|
|
107
|
+
- listitem [ref=e108]:
|
|
108
|
+
- link "protocol" [ref=e109] [cursor=pointer]:
|
|
109
|
+
- /url: /docs/cli/cli-protocol
|
|
110
|
+
- generic "protocol" [ref=e110]
|
|
111
|
+
- listitem [ref=e111]:
|
|
112
|
+
- link "service" [ref=e112] [cursor=pointer]:
|
|
113
|
+
- /url: /docs/cli/cli-service
|
|
114
|
+
- generic "service" [ref=e113]
|
|
115
|
+
- listitem [ref=e114]:
|
|
116
|
+
- link "connector" [ref=e115] [cursor=pointer]:
|
|
117
|
+
- /url: /docs/cli/cli-connector
|
|
118
|
+
- generic "connector" [ref=e116]
|
|
119
|
+
- listitem [ref=e117]:
|
|
120
|
+
- generic [ref=e118]:
|
|
121
|
+
- link "Configuration Reference" [ref=e119] [cursor=pointer]:
|
|
122
|
+
- /url: /docs/reference/
|
|
123
|
+
- img [ref=e121]
|
|
124
|
+
- generic "Configuration Reference" [ref=e122]
|
|
125
|
+
- button "Expand sidebar category 'Configuration Reference'" [ref=e123] [cursor=pointer]
|
|
126
|
+
- listitem [ref=e124]:
|
|
127
|
+
- generic [ref=e125]:
|
|
128
|
+
- link "API Reference" [ref=e126] [cursor=pointer]:
|
|
129
|
+
- /url: /docs/api
|
|
130
|
+
- img [ref=e128]
|
|
131
|
+
- generic "API Reference" [ref=e131]
|
|
132
|
+
- button "Expand sidebar category 'API Reference'" [ref=e132] [cursor=pointer]
|
|
133
|
+
- listitem [ref=e133]:
|
|
134
|
+
- generic [ref=e134]:
|
|
135
|
+
- link "Globals" [ref=e135] [cursor=pointer]:
|
|
136
|
+
- /url: /docs/globals
|
|
137
|
+
- img [ref=e137]
|
|
138
|
+
- generic "Globals" [ref=e140]
|
|
139
|
+
- button "Expand sidebar category 'Globals'" [ref=e141] [cursor=pointer]
|
|
140
|
+
- listitem [ref=e142]:
|
|
141
|
+
- link "Security" [ref=e143] [cursor=pointer]:
|
|
142
|
+
- /url: /docs/security
|
|
143
|
+
- img [ref=e145]
|
|
144
|
+
- generic "Security" [ref=e147]
|
|
145
|
+
- listitem [ref=e148]:
|
|
146
|
+
- link "Migration Guide" [ref=e149] [cursor=pointer]:
|
|
147
|
+
- /url: /docs/migration
|
|
148
|
+
- img [ref=e151]
|
|
149
|
+
- generic "Migration Guide" [ref=e153]
|
|
150
|
+
- main [ref=e154]:
|
|
151
|
+
- generic [ref=e156]:
|
|
152
|
+
- generic [ref=e158]:
|
|
153
|
+
- article [ref=e159]:
|
|
154
|
+
- navigation "Breadcrumbs" [ref=e160]:
|
|
155
|
+
- list [ref=e161]:
|
|
156
|
+
- listitem [ref=e162]:
|
|
157
|
+
- link "Home page" [ref=e163] [cursor=pointer]:
|
|
158
|
+
- /url: /docs/
|
|
159
|
+
- img [ref=e164]
|
|
160
|
+
- listitem [ref=e166]:
|
|
161
|
+
- link "CLI Reference" [ref=e167] [cursor=pointer]:
|
|
162
|
+
- /url: /docs/cli
|
|
163
|
+
- listitem [ref=e168]:
|
|
164
|
+
- generic [ref=e169]: service
|
|
165
|
+
- generic [ref=e170]:
|
|
166
|
+
- heading "service" [level=1] [ref=e172]
|
|
167
|
+
- generic [ref=e173]:
|
|
168
|
+
- generic [ref=e174]:
|
|
169
|
+
- generic [ref=e175]:
|
|
170
|
+
- img [ref=e176]
|
|
171
|
+
- text: 1 min read
|
|
172
|
+
- generic [ref=e179]: Intermediate
|
|
173
|
+
- generic [ref=e180]:
|
|
174
|
+
- generic [ref=e181]: Prerequisites
|
|
175
|
+
- list [ref=e182]:
|
|
176
|
+
- listitem [ref=e183]:
|
|
177
|
+
- link "Gina installed globally" [ref=e184] [cursor=pointer]:
|
|
178
|
+
- /url: /docs/getting-started/installation
|
|
179
|
+
- listitem [ref=e185]:
|
|
180
|
+
- link "CLI bundle reference" [ref=e186] [cursor=pointer]:
|
|
181
|
+
- /url: /docs/cli/cli-bundle
|
|
182
|
+
- paragraph [ref=e187]:
|
|
183
|
+
- text: The
|
|
184
|
+
- code [ref=e188]: service
|
|
185
|
+
- text: command group lists
|
|
186
|
+
- strong [ref=e189]: framework-internal services
|
|
187
|
+
- text: — bundles that ship alongside gina and run as companion processes (currently
|
|
188
|
+
- code [ref=e190]: proxy
|
|
189
|
+
- text: and
|
|
190
|
+
- code [ref=e191]: inspector
|
|
191
|
+
- text: ). These services are registered under the reserved
|
|
192
|
+
- code [ref=e192]: "@gina"
|
|
193
|
+
- text: project.
|
|
194
|
+
- generic [ref=e193]:
|
|
195
|
+
- generic [ref=e194]:
|
|
196
|
+
- img [ref=e196]
|
|
197
|
+
- text: Gina-internal surface
|
|
198
|
+
- paragraph [ref=e199]:
|
|
199
|
+
- code [ref=e200]: service:list
|
|
200
|
+
- text: currently rejects any project other than
|
|
201
|
+
- code [ref=e201]: "@gina"
|
|
202
|
+
- text: . User-defined services are not a surface yet — use
|
|
203
|
+
- link "bundle:list" [ref=e202] [cursor=pointer]:
|
|
204
|
+
- /url: /docs/cli/cli-bundle#bundlelist
|
|
205
|
+
- code [ref=e203]: bundle:list
|
|
206
|
+
- text: for bundles in user projects.
|
|
207
|
+
- separator [ref=e204]
|
|
208
|
+
- heading "service:listDirect link to servicelist" [level=2] [ref=e205]:
|
|
209
|
+
- code [ref=e206]: service:list
|
|
210
|
+
- link "Direct link to servicelist" [ref=e207] [cursor=pointer]:
|
|
211
|
+
- /url: "#servicelist"
|
|
212
|
+
- text: "#"
|
|
213
|
+
- paragraph [ref=e208]:
|
|
214
|
+
- emphasis [ref=e209]: New in 0.3.7-alpha.2
|
|
215
|
+
- paragraph [ref=e210]: List framework-internal services with src-existence, preferred-port summary, and host-side running state.
|
|
216
|
+
- code [ref=e214]:
|
|
217
|
+
- generic [ref=e215]: gina service:list
|
|
218
|
+
- code [ref=e219]:
|
|
219
|
+
- generic [ref=e220]: gina service:list @gina
|
|
220
|
+
- paragraph [ref=e221]:
|
|
221
|
+
- strong [ref=e222]: Flags
|
|
222
|
+
- table [ref=e223]:
|
|
223
|
+
- rowgroup [ref=e224]:
|
|
224
|
+
- row "Flag Description" [ref=e225]:
|
|
225
|
+
- columnheader "Flag" [ref=e226]
|
|
226
|
+
- columnheader "Description" [ref=e227]
|
|
227
|
+
- rowgroup [ref=e228]:
|
|
228
|
+
- row "--format=json Emit a JSON payload instead of the human-readable text table" [ref=e229]:
|
|
229
|
+
- cell "--format=json" [ref=e230]:
|
|
230
|
+
- code [ref=e231]: "--format=json"
|
|
231
|
+
- cell "Emit a JSON payload instead of the human-readable text table" [ref=e232]
|
|
232
|
+
- heading "OutputDirect link to Output" [level=3] [ref=e233]:
|
|
233
|
+
- text: Output
|
|
234
|
+
- link "Direct link to Output" [ref=e234] [cursor=pointer]:
|
|
235
|
+
- /url: "#output"
|
|
236
|
+
- text: "#"
|
|
237
|
+
- code [ref=e238]:
|
|
238
|
+
- generic [ref=e239]: "[ running ] inspector http/2.0 dev https 4208 pid 27007"
|
|
239
|
+
- generic [ref=e240]: "[ running ] proxy http/2.0 dev https 4210 pid 15346"
|
|
240
|
+
- list [ref=e241]:
|
|
241
|
+
- listitem [ref=e242]:
|
|
242
|
+
- strong [ref=e243]:
|
|
243
|
+
- code [ref=e244]: "[ running ]"
|
|
244
|
+
- text: /
|
|
245
|
+
- code [ref=e245]: "[ stopped ]"
|
|
246
|
+
- text: /
|
|
247
|
+
- code [ref=e246]: "[ ?! ]"
|
|
248
|
+
- text: — running state (probed from
|
|
249
|
+
- code [ref=e247]: ~/.gina/run/<service>@gina.pid
|
|
250
|
+
- text: with
|
|
251
|
+
- code [ref=e248]: process.kill(pid, 0)
|
|
252
|
+
- text: ) or src-existence when the source directory is missing.
|
|
253
|
+
- listitem [ref=e249]:
|
|
254
|
+
- strong [ref=e250]:
|
|
255
|
+
- code [ref=e251]: http/2.0 dev https 4208
|
|
256
|
+
- text: — preferred port. Read from
|
|
257
|
+
- code [ref=e252]: ~/.gina/ports.reverse.json
|
|
258
|
+
- text: ". Precedence:"
|
|
259
|
+
- code [ref=e253]: http/2.0 https
|
|
260
|
+
- text: →
|
|
261
|
+
- code [ref=e254]: http/1.1 https
|
|
262
|
+
- text: →
|
|
263
|
+
- code [ref=e255]: http/1.1 http
|
|
264
|
+
- text: ;
|
|
265
|
+
- code [ref=e256]: dev
|
|
266
|
+
- text: env is preferred when present, otherwise the first environment in the record. Services with no allocated port render as
|
|
267
|
+
- code [ref=e257]: (no port)
|
|
268
|
+
- text: .
|
|
269
|
+
- listitem [ref=e258]:
|
|
270
|
+
- strong [ref=e259]:
|
|
271
|
+
- code [ref=e260]: pid 27007
|
|
272
|
+
- text: — process id when running.
|
|
273
|
+
- paragraph [ref=e261]:
|
|
274
|
+
- text: With
|
|
275
|
+
- code [ref=e262]: "--format=json"
|
|
276
|
+
- text: ", each service object carries:"
|
|
277
|
+
- code [ref=e266]:
|
|
278
|
+
- generic [ref=e267]: "{"
|
|
279
|
+
- generic [ref=e268]: "\"service\": \"inspector\","
|
|
280
|
+
- generic [ref=e269]: "\"path\": \"src/inspector\","
|
|
281
|
+
- generic [ref=e270]: "\"status\": \"ok\","
|
|
282
|
+
- generic [ref=e271]: "\"ports\": {"
|
|
283
|
+
- generic [ref=e272]: "\"dev\": { \"http/1.1\": { \"http\": 4200, \"https\": 4204 }, \"http/2.0\": { \"https\": 4208 } },"
|
|
284
|
+
- generic [ref=e273]: "\"prod\": { \"http/1.1\": { \"http\": 4201, \"https\": 4205 }, \"http/2.0\": { \"https\": 4209 } }"
|
|
285
|
+
- generic [ref=e274]: "},"
|
|
286
|
+
- generic [ref=e275]: "\"running\": true,"
|
|
287
|
+
- generic [ref=e276]: "\"pid\": 27007"
|
|
288
|
+
- generic [ref=e277]: "}"
|
|
289
|
+
- paragraph [ref=e278]:
|
|
290
|
+
- text: A missing or malformed
|
|
291
|
+
- code [ref=e279]: ports.reverse.json
|
|
292
|
+
- text: is tolerated — the command still renders with every service showing
|
|
293
|
+
- code [ref=e280]: (no port)
|
|
294
|
+
- text: /
|
|
295
|
+
- code [ref=e281]: "ports: null"
|
|
296
|
+
- text: . A stale pidfile (process exited) reports
|
|
297
|
+
- code [ref=e282]: (stopped)
|
|
298
|
+
- text: without being deleted; pidfile clean-up stays with
|
|
299
|
+
- link "bundle:stop" [ref=e283] [cursor=pointer]:
|
|
300
|
+
- /url: /docs/cli/cli-bundle#bundlestop
|
|
301
|
+
- code [ref=e284]: bundle:stop
|
|
302
|
+
- text: .
|
|
303
|
+
- generic [ref=e285]:
|
|
304
|
+
- generic [ref=e286]:
|
|
305
|
+
- img [ref=e288]
|
|
306
|
+
- text: Docker bundles
|
|
307
|
+
- paragraph [ref=e291]:
|
|
308
|
+
- text: Services running inside a Docker container write their pidfile inside the container, not on the host
|
|
309
|
+
- code [ref=e292]: ~/.gina/run/
|
|
310
|
+
- text: directory. Running
|
|
311
|
+
- code [ref=e293]: service:list
|
|
312
|
+
- text: from a host shell will report them as
|
|
313
|
+
- code [ref=e294]: (stopped)
|
|
314
|
+
- text: even when the container is up — use
|
|
315
|
+
- code [ref=e295]: docker ps
|
|
316
|
+
- text: or
|
|
317
|
+
- code [ref=e296]: docker exec <container> gina service:list
|
|
318
|
+
- text: for the container-side view.
|
|
319
|
+
- separator [ref=e297]
|
|
320
|
+
- heading "service:helpDirect link to servicehelp" [level=2] [ref=e298]:
|
|
321
|
+
- code [ref=e299]: service:help
|
|
322
|
+
- link "Direct link to servicehelp" [ref=e300] [cursor=pointer]:
|
|
323
|
+
- /url: "#servicehelp"
|
|
324
|
+
- text: "#"
|
|
325
|
+
- paragraph [ref=e301]:
|
|
326
|
+
- text: Print the usage summary for the
|
|
327
|
+
- code [ref=e302]: service
|
|
328
|
+
- text: command group.
|
|
329
|
+
- code [ref=e306]:
|
|
330
|
+
- generic [ref=e307]: gina service:help
|
|
331
|
+
- code [ref=e311]:
|
|
332
|
+
- generic [ref=e312]: gina service
|
|
333
|
+
- generic [ref=e313]:
|
|
334
|
+
- generic [ref=e314]:
|
|
335
|
+
- generic [ref=e315]: Was this page helpful?
|
|
336
|
+
- generic [ref=e316]:
|
|
337
|
+
- button "Yes, this was helpful" [ref=e317] [cursor=pointer]:
|
|
338
|
+
- generic [ref=e318]: 👍
|
|
339
|
+
- generic [ref=e319]: –
|
|
340
|
+
- button "No, this was not helpful" [ref=e320] [cursor=pointer]:
|
|
341
|
+
- generic [ref=e321]: 👎
|
|
342
|
+
- generic [ref=e322]: –
|
|
343
|
+
- link "Edit this page" [ref=e326] [cursor=pointer]:
|
|
344
|
+
- /url: https://github.com/gina-io/docs/tree/main/docs/cli/service.md
|
|
345
|
+
- img [ref=e327]
|
|
346
|
+
- text: Edit this page
|
|
347
|
+
- navigation "Docs pages" [ref=e331]:
|
|
348
|
+
- link "Previous « protocol" [ref=e332] [cursor=pointer]:
|
|
349
|
+
- /url: /docs/cli/cli-protocol
|
|
350
|
+
- generic [ref=e333]: Previous
|
|
351
|
+
- generic [ref=e334]: « protocol
|
|
352
|
+
- link "Next connector »" [ref=e335] [cursor=pointer]:
|
|
353
|
+
- /url: /docs/cli/cli-connector
|
|
354
|
+
- generic [ref=e336]: Next
|
|
355
|
+
- generic [ref=e337]: connector »
|
|
356
|
+
- list [ref=e341]:
|
|
357
|
+
- listitem [ref=e342]:
|
|
358
|
+
- link "service:list" [ref=e343] [cursor=pointer]:
|
|
359
|
+
- /url: "#servicelist"
|
|
360
|
+
- code [ref=e344]: service:list
|
|
361
|
+
- list [ref=e345]:
|
|
362
|
+
- listitem [ref=e346]:
|
|
363
|
+
- link "Output" [ref=e347] [cursor=pointer]:
|
|
364
|
+
- /url: "#output"
|
|
365
|
+
- listitem [ref=e348]:
|
|
366
|
+
- link "service:help" [ref=e349] [cursor=pointer]:
|
|
367
|
+
- /url: "#servicehelp"
|
|
368
|
+
- code [ref=e350]: service:help
|
|
369
|
+
- contentinfo [ref=e351]:
|
|
370
|
+
- generic [ref=e352]:
|
|
371
|
+
- generic [ref=e353]:
|
|
372
|
+
- generic [ref=e354]:
|
|
373
|
+
- generic [ref=e355]: Docs
|
|
374
|
+
- list [ref=e356]:
|
|
375
|
+
- listitem [ref=e357]:
|
|
376
|
+
- link "Getting Started" [ref=e358] [cursor=pointer]:
|
|
377
|
+
- /url: /docs/intro
|
|
378
|
+
- generic [ref=e359]:
|
|
379
|
+
- generic [ref=e360]: Community
|
|
380
|
+
- list [ref=e361]:
|
|
381
|
+
- listitem [ref=e362]:
|
|
382
|
+
- link "GitHub Issues(opens in new tab)" [ref=e363] [cursor=pointer]:
|
|
383
|
+
- /url: https://github.com/gina-io/gina/issues
|
|
384
|
+
- text: GitHub Issues
|
|
385
|
+
- img "(opens in new tab)" [ref=e364]
|
|
386
|
+
- listitem [ref=e366]:
|
|
387
|
+
- link "GitHub Discussions(opens in new tab)" [ref=e367] [cursor=pointer]:
|
|
388
|
+
- /url: https://github.com/gina-io/gina/discussions
|
|
389
|
+
- text: GitHub Discussions
|
|
390
|
+
- img "(opens in new tab)" [ref=e368]
|
|
391
|
+
- listitem [ref=e370]:
|
|
392
|
+
- link "Support Gina" [ref=e371] [cursor=pointer]:
|
|
393
|
+
- /url: /docs/support
|
|
394
|
+
- generic [ref=e372]:
|
|
395
|
+
- generic [ref=e373]: More
|
|
396
|
+
- list [ref=e374]:
|
|
397
|
+
- listitem [ref=e375]:
|
|
398
|
+
- link "npm(opens in new tab)" [ref=e376] [cursor=pointer]:
|
|
399
|
+
- /url: https://www.npmjs.com/package/gina
|
|
400
|
+
- text: npm
|
|
401
|
+
- img "(opens in new tab)" [ref=e377]
|
|
402
|
+
- generic [ref=e380]: Copyright © 2009-2026 Gina I/O.
|
|
403
|
+
- button "Collapse sidebar" [ref=e382] [cursor=pointer]:
|
|
404
|
+
- img [ref=e383]
|
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,35 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
|
|
|
6
6
|
and is generated by [Changie](https://github.com/miniscruff/changie).
|
|
7
7
|
|
|
8
8
|
|
|
9
|
+
## 0.3.13 - 2026-05-14
|
|
10
|
+
### Added
|
|
11
|
+
* Released `0.3.13` — cumulative stable of the `0.3.13-alpha` cycle. Alpha-cycle headline tracks (detailed under `0.3.13-alpha.3` in the changelog): **`${secret:KEY}` config-placeholder resolver** (#SECRETS1) — `lib/secrets` substitutes `${secret:KEY}` placeholders embedded in bundle JSON configs (`settings.json`, `app.json`, `connectors.json`, `mcp.json`) from `process.env[KEY]` at config-load time, fail-closed on an unset/empty var; ships with a `settings.csrf.secret` slot for `gina.plugins.Csrf()` and `mcp.json` placeholder support for `gina bundle:mcp-start`. **Eval-safety campaign completed** (#M20–#M22) — validator nested-key rule construction refactored off `eval` (#M20); the four HTML event-callback `eval` sites and the conditional-binding evaluator fallback dropped (#M21a, #M21b); the Pattern B user-defined-validator `eval` documented as load-bearing public API with an invariant test (#M21c); the logger ↔ merge circular-require restructured so the three `eval(fs.readFileSync(...))` fallbacks are removed (#M22) — Phase 3c complete, one load-bearing framework `eval` remains by design. Plus the #M1 async-race retrofit follow-up (render-nunjucks terminal-exit closure nulling) and a `requireJSON` line-comment / URL-collision fix. The entries below are the post-alpha-cycle changes that complete the release.
|
|
12
|
+
* Bundle scaffolding now includes a starter Progressive Web App setup. Running view:add adds a manifest.webmanifest and a cache-first service-worker stub (sw.js) to the bundle public directory, and the default HTML layout links the manifest, declares a theme colour, and registers the service worker. Add your own icon PNGs and edit the manifest to describe the app.
|
|
13
|
+
* The Isaac HTTP/2 server now rate-limits rapid-reset stream floods. When a single connection opens more than maxStreamsPerSecond new streams within a rolling one-second window (default 200), the server sends a GOAWAY and closes that session — a targeted, application-level defense against CVE-2023-44487-style attacks on top of the OS-level fix in modern Node.js. Configurable via settings.json http2Options.maxStreamsPerSecond. The /_gina/info endpoint exposes a new rapidResetBlocked counter.
|
|
14
|
+
### Changed
|
|
15
|
+
* Bumped the @rhinostone/swig dependency floor from ^2.2.0 to ^2.3.0 in framework/v*/package.json. Version 2.3.0 drops yargs and terser from the published package production dependencies — CLI argument parsing is now a built-in zero-dependency parser, and terser (used only by swig compile --minify) moved to devDependencies and loads lazily. A library install of @rhinostone/swig now pulls in only @rhinostone/swig-core, so installing gina has a smaller transitive dependency tree. No template-engine API or behavior change; swigResolver DEFAULT_MIN stays at 2.0.0 since the framework does not depend on any new 2.3.0 API.
|
|
16
|
+
### Removed
|
|
17
|
+
* Removed two dormant plugin directories (`core/plugins/lib/file/` and `core/plugins/lib/intl/`) that had no consumers in any known bundle. Slightly smaller npm tarball; no functional change.
|
|
18
|
+
### Fixed
|
|
19
|
+
* Fixed a dev-mode hot-reload crash: refreshCore() overwrote the lib and plugins require.cache entries with their exports objects instead of Module instances, so the controller render delegates threw "Cannot read properties of undefined" after a hot reload.
|
|
20
|
+
|
|
21
|
+
## 0.3.13-alpha.3 - 2026-05-14 (npm only — no git tag)
|
|
22
|
+
### Added
|
|
23
|
+
* `${secret:KEY}` placeholder syntax in bundle JSON configs. Substituted at getConfig() time from process.env[KEY]. Fails closed if the env var is unset or empty. Resolution happens once per config-load cycle (cached). Pluggable-backend support is reserved for a future iteration; only the env-var backend ships in this alpha.
|
|
24
|
+
* `settings.json > csrf.secret` config slot in `gina.plugins.Csrf()` — flows through the `lib/secrets` resolver, so `${secret:KEY}` placeholders work for the Csrf HMAC secret. Precedence is `opts.secret` (test override) > `settings.csrf.secret` > `process.env.GINA_CSRF_SECRET` (back-compat); existing bundles that set `GINA_CSRF_SECRET` keep working unchanged.
|
|
25
|
+
* `${secret:KEY}` placeholder support in `mcp.json` for `gina bundle:mcp-start`. The cmd handler now calls `lib/secrets` on the parsed manifest immediately after `requireJSON()`, so `server.authToken` (and any other future placeholder field in mcp.json) gets filled from `process.env[KEY]` before downstream readers pick it up. Existing bundles that set `process.env.GINA_MCP_AUTH_TOKEN` directly keep working unchanged — that fallback is the last step of the precedence chain.
|
|
26
|
+
### Changed
|
|
27
|
+
* Added terminal-exit closure nulling to render-nunjucks for early per-request memory release, matching render-swig pattern (#M1 retrofit follow-up).
|
|
28
|
+
* Bundle scaffolding (project add / bundle add) now shows the `${secret:KEY}` placeholder pattern as the recommended shape for session and CSRF secrets. `core/template/conf/settings.json` documents the new `settings.csrf.secret` slot (placeholder-compatible) alongside the existing GINA_CSRF_SECRET env-var fallback; `core/template/boilerplate/bundle/index.js` shows `self.getConfig('session').secret` (with bundle/config/session.json holding a `${secret:SESSION_SECRET}` placeholder) as the recommended session-secret wiring, keeping the direct `process.env.SESSION_SECRET` shape as a back-compat note.
|
|
29
|
+
### Fixed
|
|
30
|
+
* `requireJSON` line-comment stripping no longer fails when a bundle config combines a URL string with a bare `//` line-comment separator. The previous `indexOf`-into-greedy-match pass collided on the URL `://` and silently skipped the real separator, leaving `JSON.parse` to throw `Expected double-quoted property name`. The pass is now per-line on the leftmost `//`, matching the prior heuristic without the substring collision.
|
|
31
|
+
### Security
|
|
32
|
+
* Replaced eval() in validator nested-key rule construction (Socket #SCS campaign cluster M20).
|
|
33
|
+
* Removing eval() from 4 HTML event-callback sites in the browser bundle (events.js + validator/main.js). The function-call shape `data-gina-...-event-on-*="fn(args)"` is no longer supported — register the handler on window and use the bare-identifier shape `="fn"`; a deprecation warning is logged at runtime if a function-call shape is encountered. Clears 4 of the 9 remaining Socket `Uses eval` flag sites (#M21a).
|
|
34
|
+
* Removing eval() from the conditional binding evaluator fallback in form-validator.js. Form `condition` strings that previously hit the eval escape-hatch now throw with an explicit message listing the four supported shapes (binary comparison `a OP b`, RegExp instance, boolean, /regex/flags literal). Regex-literal strings still pass through. Clears 1 of the 5 remaining Socket `Uses eval` flag sites (#M21b).
|
|
35
|
+
* Documenting the Pattern B eval surface at form-validator.js (user-defined validator function bodies registered on `gina.forms.validators` from disk-loaded `bundle/validators/<name>/main.js` files at framework boot). The eval is load-bearing public API and stays — no behavior change. Adds an in-source trust-model comment block and pins the invariant with `test/lib/validator-scs1i.test.js` (zero writes to `gina.forms.validators` in framework source; zero request-time identifiers around the userValidator source chain). Closes the M21 cluster (#M21c).
|
|
36
|
+
* Restructuring the logger ↔ merge circular-require so the eval fallbacks at lib/logger/src/main.js + the two logger containers are no longer needed and have been removed. Root cause was merge.js requiring `helpers/index.js` (the for-loop helper loader) at module-load to populate `JSON.clone`, which transitively required `lib/logger` via several helpers and produced a partial-module return under circular load. Fix swaps that for a direct require of `utils/prototypes.json_clone` (a 100-line standalone primitive with zero top-level requires) — same JSON.clone population, no circular trigger. Clears the final 3 server-side Socket `Uses eval` sites (#M22). Phase 3c complete: 1 live framework eval site remains (the load-bearing Pattern B at form-validator.js:1886 / #M21c trust model).
|
|
37
|
+
|
|
9
38
|
## 0.3.12 - 2026-05-12
|
|
10
39
|
### Changed
|
|
11
40
|
* Bumped @rhinostone/swig dependency floor from ^2.0.1 to ^2.1.0 in framework/v*/package.json. Version 2.1.0 introduces a multi-flavor architecture splitting the runtime into a shared @rhinostone/swig-core package plus per-flavor frontends (@rhinostone/swig native syntax, @rhinostone/swig-twig Twig-syntax frontend); the native @rhinostone/swig package remains drop-in compatible with the @rhinostone/swig@1.x and 2.0.x API surface gina depends on (swig.compile, swig.setFilter, swig.setTag, swig.renderFile). swigResolver DEFAULT_MIN stays at 2.0.0 since the framework does not depend on any new 2.1.0-only API. Resolves the version-currency drift surfaced by 'npm view @rhinostone/swig version' returning 2.1.0 against the current ^2.0.1 floor.
|
package/README.md
CHANGED
|
@@ -22,7 +22,7 @@ Node.js MVC framework with built-in HTTP/2, multi-bundle architecture, and scope
|
|
|
22
22
|
| ORM / entities | EventEmitter-based entity system; SQL files auto-wired to entity methods |
|
|
23
23
|
| Connectors | Couchbase, MongoDB, ScyllaDB / Cassandra, MySQL, PostgreSQL, Redis, SQLite, AI (LLM) — loaded from project `node_modules` |
|
|
24
24
|
| AI connector | Any LLM provider via named protocol (`anthropic://`, `openai://`, `ollama://`, …) |
|
|
25
|
-
| Template engine | [`@rhinostone/swig`](https://github.com/gina-io/swig) 2.
|
|
25
|
+
| Template engine | [`@rhinostone/swig`](https://github.com/gina-io/swig) 2.3.0 — maintained fork with CVE-2023-25345 patched; streaming SSE/chunked via `renderStream()`. Nunjucks supported as opt-in via `render.engine = "nunjucks"` |
|
|
26
26
|
| Internationalisation | Per-bundle JSON catalogs, `t()` helper, swig + nunjucks `t` filter, CLDR plurals, ICU MessageFormat opt-in via `t.icu()` |
|
|
27
27
|
| Observability | Built-in `/_gina/metrics` Prometheus endpoint (opt-in, IP-allowlisted) — Node.js process metrics + HTTP counter / duration histogram with cardinality-safe route labels |
|
|
28
28
|
| Hot reload | WatcherService evicts `require.cache` only on file change — zero per-request overhead in dev |
|
|
@@ -39,6 +39,16 @@ gina bundle:start api @myproject
|
|
|
39
39
|
open https://localhost:3100
|
|
40
40
|
```
|
|
41
41
|
|
|
42
|
+
## What's in 0.3.13
|
|
43
|
+
|
|
44
|
+
- **`${secret:KEY}` placeholder substitution** (#SECRETS1) — bundle JSON configs (`settings.json`, `app.json`, `connectors.json`, `mcp.json`, …) can embed `${secret:KEY}` placeholders that the framework resolves from `process.env[KEY]` at config-load time, before the merged config reaches `getConfig()` or any plugin factory. Anchored to whole-string values; fails closed on an unset/empty var. `gina.plugins.Csrf()` reads `settings.csrf.secret` through it, and `gina bundle:mcp-start` resolves `mcp.json` placeholders such as `server.authToken`. Pluggable-backend interface reserved for a future iteration; only the `process.env` backend ships now.
|
|
45
|
+
- **Progressive Web App scaffold** (#R6) — `gina view:add` now drops a `manifest.webmanifest` and a cache-first service-worker stub (`sw.js`) into the bundle's `public/` directory, and wires the manifest `<link>`, a `theme-color` `<meta>`, an apple-touch-icon `<link>`, and an inline service-worker registration into the default layout. Zero runtime dependency — static files plus layout tags.
|
|
46
|
+
- **HTTP/2 rapid-reset rate limiter** (#H9) — the Isaac engine now bounds new-stream creation per session in a rolling one-second window; over `maxStreamsPerSecond` (default 200) it sends a `GOAWAY` and closes the session. An application-level layer over the OS-level CVE-2023-44487 mitigation in modern Node.js, complementing `maxSessionRejectedStreams` (which counts refused, not created, streams). Configurable via `settings.json` `http2Options.maxStreamsPerSecond`; `/_gina/info` exposes a `rapidResetBlocked` counter.
|
|
47
|
+
- **Eval-safety campaign completed** (#M20–#M22) — the multi-release effort to remove `eval` / `new Function` call sites from the published tarball is finished. The validator plugin's `makeObjectFromArgs` was refactored to a segments-array path build; the HTML-event-callback evals and the conditional-binding fallback were dropped; and the logger's circular-require `eval(fs.readFileSync(...))` fallbacks were eliminated by fixing the `merge → helpers → logger` cycle at its source. The one remaining eval is a load-bearing public-API site (user-defined form validators), kept by design with a documented trust model and an invariant test.
|
|
48
|
+
- **`@rhinostone/swig` floor bumped to `^2.3.0`** — `2.3.0` drops `yargs` and `terser` from the published package's production dependencies (CLI parsing is now a built-in zero-dependency parser; `terser` moved to `devDependencies`, loaded lazily), so a library install pulls in only `@rhinostone/swig-core` — a smaller transitive tree. No template-engine API or behaviour change.
|
|
49
|
+
- **`requireJSON` comment / URL fix** — `requireJSON` no longer mis-parses JSON config files that combine a `//` line comment with a URL string value (`"key": "https://…"`); the comment-stripping pass is now per-line on the leftmost `//`, so comment-bearing configs with URLs load cleanly.
|
|
50
|
+
- **Dev-mode hot-reload fix** — `refreshCore()` was rebuilding the `lib` / `plugins` `require.cache` entries with their exports objects instead of `Module` instances, crashing the controller render delegates with `Cannot read properties of undefined` after a hot reload; it now lets `require()` rebuild a proper `Module`. Also removed two dormant internal plugin directories (`core/plugins/lib/file/`, `core/plugins/lib/intl/`) with no known consumers — a slightly smaller npm tarball, no functional change.
|
|
51
|
+
|
|
42
52
|
## What's in 0.3.12
|
|
43
53
|
|
|
44
54
|
- **Spec-correct `+` decoding in URL query strings and urlencoded bodies** — fixes two complementary parsers that didn't decode `+` to space per RFC 1866 / WHATWG URL. The Isaac engine's URL query-string parser had no `+` substitution at all in either of its two branches (multi-value `&` loop + single-key `=` no-`&` path); the body parser's `application/x-www-form-urlencoded` content-type test was inverted, leaving `+` literal in `req.post` / `req.put` / `req.patch` values. Both now correctly produce space. Express engine was already spec-correct via `qs` defaults. Closes #B17.
|
package/ROADMAP.md
CHANGED
|
@@ -23,7 +23,7 @@ This roadmap covers planned features, architectural improvements, new connectors
|
|
|
23
23
|
| **Q4 2026** | `0.3.8` ✅ | Patch: `npm install -g gina@latest` regression fix — `psl` + `@rhinostone/swig` promoted to top-level deps · install scripts decoupled from framework `lib` registry · helpers preload guarding `lib/logger` ↔ `framework/v*/helpers` circular dep |
|
|
24
24
|
| **Q2 2026** | `0.3.9` ✅ | Consumer-feedback batch (11 framework patches): per-request middleware dispatch isolation · Couchbase 4.x JsonTranscoder · `length` filter null safety · `process.env` mirroring · 6 nunjucks render-pipeline patches (libRef fallback · namespace prefix drop · bundle filter wraps · top-level userData · `data.data` alias · ginaLoader placeholders) · `getAssets` mid-URL `{{ }}` strip-guard anchor |
|
|
25
25
|
| **Q2 2026** | `0.3.10` ✅ | FormValidator HTML5 form-reassociation hardening trilogy (`HTMLFormControlsCollection`-based `bindForm` + `unbindForm` symmetry · radio mutual-exclusion + IDL/attribute reconciliation · `defaultChecked` cache for reset) · `X-Forwarded-Prefix` reverse-proxy path-prefix awareness |
|
|
26
|
-
| **Q4 2026** | `0.4.0` | AI agents (MCP) · ScyllaDB connector ·
|
|
26
|
+
| **Q4 2026** | `0.4.0` | AI agents (MCP) · ScyllaDB connector · Advanced tutorial · Website redesign · Docs offline ZIP · Bun investigation · Couchbase v2 removal · Trailer support · CLI Tier 2 (bundle/project status, rename, copy, protocol:remove, minions) |
|
|
27
27
|
| **Q1 2027** | `0.5.0` | ESM support · Template engine migration · Structured logging · Alt-Svc · HTTP/2 priorities · WebSocket over HTTP/2 · Inspector Production · CLI Tier 3 (project:move, framework:update, backup/restore, man pages) |
|
|
28
28
|
| **Q3 2027** | `1.0.0` | First stable release — Windows alpha compatibility is a hard gate |
|
|
29
29
|
|
|
@@ -37,7 +37,7 @@ This roadmap covers planned features, architectural improvements, new connectors
|
|
|
37
37
|
| ✅ | **`watchers.json`** — First-class bundle config for file watchers. Declare watchers on config files with event-based notification (no polling). Foundation for the dev-mode hot-reload system. | `0.2.0` | 2026-03-29 |
|
|
38
38
|
| ✅ | **i18n core** — Per-bundle message catalogs under `bundle/locales/<culture>.json` with a fallback chain (specific culture → base language → default). Server-side `t(key, [params], [culture])` global helper with parameter interpolation and CLDR pluralisation. Swig and Nunjucks filters with the same surface (`{{ "key"\|t }}`, `{{ "key"\|t({ name: x }) }}`). Per-request locale negotiation from URL prefix / cookie / `Accept-Language` / settings default. CLI: `gina i18n:scan` for missing-key coverage per culture, `i18n:add <culture>` to seed a new catalog, `i18n:export` / `i18n:import` for `.po` / `.csv` / `.json` round-trip with translators. Headless by design — the visual translation editor lands later as the first content feature in Beemaster (admin Phase 3). Runtime + filters + `req.culture` negotiation + full CLI all shipped on the `0.3.11-alpha` track. | `0.3.11-alpha` | 2026-05-08 |
|
|
39
39
|
| ✅ | **i18n ICU MessageFormat** — Opt-in `t.icu(key, params, culture)` variant powered by `intl-messageformat`. Adds gender / select / nested combinators (`{count, plural, one {# item} other {# items}}`, `{gender, select, female {…} male {…} other {…}}`) on top of the i18n core. Existing `t()` shape unchanged — v1 catalogs continue to work. Covers grammars (Romance, Slavic) and select expressions the v1 `{name}` + plural-forms shape can't express. Exposed as `gna.t.icu()` (global), `self.t.icu()` (controller helper), and `tIcu` template filter (swig + nunjucks). Library loaded via dynamic `import()` from a module-level loader kicked off at bundle boot — sync API after first-call resolves. | `0.3.11-alpha` | 2026-05-08 |
|
|
40
|
-
|
|
|
40
|
+
| ✅ | **PWA scaffold** — `gina view:add` drops a `manifest.webmanifest` and a cache-first service worker stub (`sw.js`) into the bundle's `public/` directory, and adds the manifest `<link>`, a `theme-color` `<meta>`, an apple-touch-icon `<link>`, and an inline service-worker registration script to the default HTML layout. Zero runtime dependency — static files plus layout tags. Enables Gina apps to be installed on mobile as PWAs without additional tooling. | `0.3.13` | 2026-05-14 |
|
|
41
41
|
| ✅ | **Per-bundle framework version** — Declare `"gina_version": "0.1.8"` on any bundle entry in `manifest.json` to pin that bundle to a specific installed framework version. The socket server continues running its own version; only the spawned bundle process uses the declared version. Validated against the tracked version list in `main.json` before start. `--gina-version=X.Y.Z` flag on `bundle:start` provides the same override without touching config files. | `0.3.0` | 2026-03-31 |
|
|
42
42
|
| ✅ | **PATCH method** — `req.patch` populated with the parsed request body (JSON or form-encoded). `req.body` aliases `req.patch`. URI params merged. `"method": "PATCH"` valid in `routing.json`. Use PATCH for partial updates (only sent fields change) vs PUT which replaces the full resource. | `0.3.0` | 2026-03-31 |
|
|
43
43
|
| ✅ | **HEAD method** — `req.head` populated with query-string and URI params. Full controller action runs so all response headers are set correctly; body is suppressed before writing to the wire. Both `render()` and `renderJSON()` honour HEAD. Routes declared as `GET` automatically accept HEAD — no extra routing rule needed. | `0.3.0` | 2026-03-31 |
|
|
@@ -134,13 +134,13 @@ Four focused follow-up sessions to close the deferred gap left by the `0.3.7-alp
|
|
|
134
134
|
|
|
135
135
|
### Eval safety
|
|
136
136
|
|
|
137
|
-
Complete the removal of `eval` / `new Function` call sites from the published tarball. Four tranches shipped across `0.3.7-alpha.4` / `0.3.7-alpha.5` cleared 13 of 24 catalogued sites; 2 more were removed by deleting orphaned source during the toolbar cleanup (15 of 24 addressed). The validator structural refactor cleared 3 more on `0.3.13-alpha.2` (18 of 24).
|
|
137
|
+
Complete the removal of `eval` / `new Function` call sites from the published tarball. Four tranches shipped across `0.3.7-alpha.4` / `0.3.7-alpha.5` cleared 13 of 24 catalogued sites; 2 more were removed by deleting orphaned source during the toolbar cleanup (15 of 24 addressed). The validator structural refactor cleared 3 more on `0.3.13-alpha.2` (18 of 24). The two remaining clusters — the feature-intrinsic eval design pass and the logger circular-require refactor — completed the campaign in `0.3.13`. The single remaining eval is a load-bearing public-API site (user-defined form validators), kept by design with a documented trust model.
|
|
138
138
|
|
|
139
139
|
| Status | Feature | Version | Target |
|
|
140
140
|
| --- | --- | --- | --- |
|
|
141
141
|
| ✅ | **Validator structural refactor** — Refactored `makeObjectFromArgs` in the validator plugin: the previous string-accumulator path-build + runtime evaluation is replaced by a segments-array threaded through the recursion plus a local safe setter. Cleared 3 eval sites. +27 parity tests in `test/lib/validator-scs1f.test.js`. Browser bundle rebuilt. | `0.3.13-alpha.2` | 2026-05-13 |
|
|
142
|
-
|
|
|
143
|
-
|
|
|
142
|
+
| ✅ | **Feature-intrinsic eval design pass** — 6 sites that eval user-supplied JS by design, across 3 patterns (HTML event callbacks, user-defined form validators, conditional binding fallback). The design pass formalised the trust model; the coding slices dropped the HTML-event-callback evals and the conditional-binding fallback, and documented the user-defined-validator site as a load-bearing public API with an invariant test. | `0.3.13-alpha.3` | 2026-05-14 |
|
|
143
|
+
| ✅ | **Logger circular-require refactor** — 3 load-bearing `eval(fs.readFileSync(...))` fallbacks in the logger worked around a circular `merge → helpers → logger` require chain. Fixed at the source of the cycle: `merge.js` now requires the json-clone primitive directly instead of going through the helpers loader, so the circular chain never fires and the 3 eval fallbacks are unreachable and removed. | `0.3.13` | 2026-05-14 |
|
|
144
144
|
|
|
145
145
|
---
|
|
146
146
|
|
|
@@ -156,6 +156,16 @@ Cross-site request forgery protection. Three-phase defense-in-depth plan aligned
|
|
|
156
156
|
|
|
157
157
|
---
|
|
158
158
|
|
|
159
|
+
## Secrets & Configuration
|
|
160
|
+
|
|
161
|
+
Secrets handling for bundle JSON configs without baking plaintext values into source. Pluggable-backend design with `process.env` as the default; the reserved API surface allows future Vault / SOPS / K8s Secrets backends to slot in without changing call sites or the placeholder syntax.
|
|
162
|
+
|
|
163
|
+
| Status | Feature | Version | Target |
|
|
164
|
+
| --- | --- | --- | --- |
|
|
165
|
+
| ✅ | **`${secret:KEY}` placeholder substitution** — `lib/secrets` resolves `${secret:KEY}` placeholders embedded in bundle JSON configs (`settings.json`, `app.json`, `connectors.json`, `mcp.json`, etc.) at config-load time. Anchored regex matches the entire string value only — mixed strings (`"prefix-${secret:K}-suffix"`) pass through unchanged. Default backend reads `process.env[KEY]`; pluggable-backend interface reserved for a future iteration. Fails closed (throws `Error('Secret resolution failed')`) when an env var is unset or empty; the error message intentionally omits the key name. Resolution is once per config-load cycle (in-place mutation). `WeakMap`-backed path tracking enables a future log-redaction wrapper at merged-conf print sites. Hooked inside `core/config.js::loadBundleConfig`, so downstream readers (`getConfig()`, plugin factories) see resolved values transparently. **Consumers shipped**: `gina.plugins.Csrf()` reads `settings.csrf.secret` (precedence `opts.secret` > `settings.csrf.secret` > `process.env.GINA_CSRF_SECRET` for back-compat); `gina bundle:mcp-start` re-runs the resolver on the parsed `mcp.json` immediately after `requireJSON()` so `server.authToken` and any future placeholder field gets filled before downstream readers; bundle scaffolding (`project:add` / `bundle:add`) recommends the placeholder shape in `core/template/conf/settings.json` and `core/template/boilerplate/bundle/index.js`. 33 tests in `test/core/config-secrets-resolver.test.js`. | `0.3.13-alpha` | 2026-05-13 |
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
159
169
|
## Connectors
|
|
160
170
|
|
|
161
171
|
New database connectors follow the same interface as the existing Couchbase connector: declared in `connectors.json`, acquired via `getConnection()`.
|
|
@@ -237,7 +247,7 @@ A cold audit of the Couchbase connector identified two critical security vulnera
|
|
|
237
247
|
| ✅ | **103 Early Hints** — send `Link` preload headers as informational response before the final response | `0.3.0-alpha.1` | 2026-03-31 | `self.setEarlyHints(links)` on SuperController. HTTP/2: `stream.additionalHeaders({ ':status': 103 })`; HTTP/1.1: `res.writeEarlyHints()` (Node.js 18.11+). Silent no-op on unsupported runtimes. |
|
|
238
248
|
| ✅ | **HTTP/2 session metrics** — expose active session count, stream count, GOAWAY and RST_STREAM totals via `/_gina/info` | `0.3.0-alpha.1` | 2026-04-01 | `server._h2Metrics` counter object instrumented via session event handlers; exposed under `"http2"` key in `/_gina/info` JSON. |
|
|
239
249
|
| ✅ | **Configurable `maxConcurrentStreams` and `initialWindowSize`** — move from hardcoded to `settings.json` `http2Options` | `0.3.0-alpha.1` | 2026-04-05 | All four HTTP/2 server settings configurable: `maxConcurrentStreams` (256), `initialWindowSize` (655350), `maxSessionRejectedStreams` (100), `maxSessionInvalidFrames` (1000). Security guards (`maxHeaderListSize`, `enablePush`) remain hardcoded. |
|
|
240
|
-
|
|
|
250
|
+
| ✅ | **Application-level rapid reset rate limiter** (CVE-2023-44487) — per-session stream creation counter | `0.3.13` | 2026-05-14 | The Isaac HTTP/2 session handler counts new streams in a rolling 1s window per session; over `maxStreamsPerSecond` (default 200) it sends a GOAWAY and closes the session. More targeted than `maxSessionRejectedStreams` (which counts refused streams, not created ones). Configurable via `settings.json` `http2Options.maxStreamsPerSecond`; `/_gina/info` exposes a `rapidResetBlocked` counter. |
|
|
241
251
|
| 📋 | **Trailer support** — `stream.sendTrailers()` + `waitForTrailers: true` | `0.4.0` | Q4 2026 | No trailer support today. Required for gRPC-style streaming (grpc-status trailer) and content integrity use cases. Opt-in: activated only when a controller calls `self.sendTrailers(fields)`. |
|
|
242
252
|
| 📋 | **Alt-Svc header** — advertise HTTP/3 availability | `0.5.0` | Q1 2027 | Set `Alt-Svc: h3=":443"; ma=86400` response header to advertise HTTP/3 (QUIC) availability via a QUIC-capable reverse proxy (nginx, Caddy, Cloudflare). Gina does not need to implement QUIC — just announce it. Opt-in via `settings.server.json`. Native HTTP/3 is out of scope: Node.js has no stable QUIC API, and the standard deployment topology (Gina → proxy → client) already delivers HTTP/3 at the edge. |
|
|
243
253
|
| 📋 | **RFC 9218 Extensible Priorities** — read `Priority: u=N, i` request header | `0.5.0` | Q1 2027 | Use the RFC 9218 priority header to order response writes for multiplexed API clients. Low value for typical HTML page loads; high value for parallel API requests with declared urgency. |
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.3.13
|