gina 0.5.1-alpha.2 → 0.5.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 +9 -0
- package/CONVENTIONS.md +1 -0
- package/README.md +5 -4
- package/ROADMAP.md +1 -0
- package/framework/v0.5.1/VERSION +1 -0
- package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/controller/controller.js +35 -9
- package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/router.js +29 -0
- package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/server.isaac.js +40 -0
- package/framework/{v0.5.1-alpha.2 → v0.5.1}/package.json +1 -1
- package/gna.js +4 -4
- package/llms.txt +15 -50
- package/package.json +3 -3
- package/script/check_changie_entries.js +4 -4
- package/framework/v0.5.1-alpha.2/VERSION +0 -1
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/AUTHORS +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/LICENSE +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/asset/html/nolayout.html +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/asset/html/static.html +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/asset/img/android-chrome-192x192.png +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/asset/img/android-chrome-512x512.png +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/asset/img/apple-touch-icon.png +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/asset/img/favicon-16x16.png +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/asset/img/favicon-32x32.png +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/asset/img/favicon.ico +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/asset/plugin/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/asset/plugin/dist/vendor/gina/js/gina.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/config.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/connectors/ai/index.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/connectors/ai/lib/connector.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/connectors/couchbase/index.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/connectors/couchbase/lib/connector.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/connectors/couchbase/lib/connector.v3.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/connectors/couchbase/lib/connector.v4.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/connectors/couchbase/lib/n1ql.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/connectors/couchbase/lib/session-store.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/connectors/mongodb/index.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/connectors/mongodb/lib/connector.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/connectors/mongodb/lib/session-store.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/connectors/mysql/index.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/connectors/mysql/lib/connector.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/connectors/postgresql/index.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/connectors/postgresql/lib/connector.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/connectors/redis/index.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/connectors/redis/lib/session-store.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/connectors/scylladb/index.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/connectors/scylladb/lib/connector.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/connectors/scylladb/lib/session-store.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/connectors/sql-parser.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/connectors/sqlite/index.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/connectors/sqlite/lib/connector.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/connectors/sqlite/lib/session-store.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/content.encoding +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/controller/controller.framework.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/controller/controller.render-json.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/controller/controller.render-nunjucks-async.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/controller/controller.render-nunjucks.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/controller/controller.render-stream.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/controller/controller.render-swig-async.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/controller/controller.render-swig.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/controller/controller.render-v1.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/controller/index.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/controller/inspector-window-emit.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/deps/busboy-1.6.0/LICENSE +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/deps/busboy-1.6.0/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/deps/busboy-1.6.0/lib/index.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/deps/busboy-1.6.0/lib/types/multipart.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/deps/busboy-1.6.0/lib/types/urlencoded.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/deps/busboy-1.6.0/lib/utils.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/deps/busboy-1.6.0/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/deps/streamsearch-1.1.0/LICENSE +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/deps/streamsearch-1.1.0/lib/sbmh.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/deps/streamsearch-1.1.0/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/dev/index.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/dev/lib/class.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/dev/lib/factory.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/dev/lib/tools.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/gna.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/locales/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/locales/currency.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/locales/dist/language/en.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/locales/dist/language/fr.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/locales/dist/region/en.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/locales/dist/region/fr.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/locales/index.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/mime.types +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/model/entity.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/model/index.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/model/template/entityFactory.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/model/template/index.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/index.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/csrf/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/csrf/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/csrf/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/coep/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/coep/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/coop/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/coop/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/corp/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/corp/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/csp/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/csp/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/hsts/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/hsts/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/session/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/session/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/session/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/storage/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/storage/build.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/storage/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/storage/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/validator/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/validator/build.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/validator/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/validator/src/form-validator.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/plugins/lib/validator/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/server.express.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/server.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/status.codes +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/_gitignore +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/boilerplate/bundle/config/app.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/boilerplate/bundle/config/connectors.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/boilerplate/bundle/config/routing.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/boilerplate/bundle/config/settings.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/boilerplate/bundle/config/templates.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/boilerplate/bundle/config/watchers.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/boilerplate/bundle/index.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/boilerplate/bundle/locales/en.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/boilerplate/bundle_public/css/default.css +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/boilerplate/bundle_public/css/home.css +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/boilerplate/bundle_public/readme.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/boilerplate/bundle_public/sw.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/command/gina.bat.tpl +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/command/gina.tpl +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/conf/env.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/conf/manifest.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/conf/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/conf/settings.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/conf/statics.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/conf/templates.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/error/client/json/401.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/error/client/json/403.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/error/client/json/404.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/error/server/html/50x.html +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/error/server/json/500.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/error/server/json/503.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/core/template/extensions/logger/config.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/helpers/console.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/helpers/context.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/helpers/data/LICENSE +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/helpers/data/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/helpers/data/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/helpers/data/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/helpers/dateFormat.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/helpers/index.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/helpers/json/LICENSE +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/helpers/json/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/helpers/json/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/helpers/json/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/helpers/path.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/helpers/plugins/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/helpers/plugins/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/helpers/plugins/src/api-error.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/helpers/plugins/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/helpers/prototypes.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/helpers/task.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/helpers/text.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/archiver/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/archiver/build.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/archiver/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/archiver/src/dep/jszip.min.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/archiver/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/async/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/async/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cache/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cache/build.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cache/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cache/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/aliases.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/bundle/add.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/bundle/arguments.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/bundle/build.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/bundle/copy.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/bundle/cp.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/bundle/help.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/bundle/help.txt +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/bundle/list.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/bundle/mcp-start.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/bundle/mcp.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/bundle/oas.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/bundle/openapi.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/bundle/remove.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/bundle/rename.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/bundle/restart.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/bundle/rm.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/bundle/start.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/bundle/status.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/bundle/stop.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/cache/stats.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/connector/add.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/connector/arguments.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/connector/help.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/connector/help.txt +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/connector/list.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/connector/migrate.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/connector/remove.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/connector/rm.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/env/add.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/env/get.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/env/help.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/env/help.txt +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/env/link-dev.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/env/list.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/env/remove.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/env/rm.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/env/set.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/env/unset.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/env/use.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/framework/arguments.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/framework/build.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/framework/dot.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/framework/get.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/framework/help.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/framework/help.txt +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/framework/init.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/framework/link-node-modules.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/framework/link.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/framework/msg.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/framework/open.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/framework/restart.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/framework/set.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/framework/start.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/framework/status.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/framework/stop.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/framework/tail.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/framework/update.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/framework/version.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/gina-dev.1.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/gina-framework.1.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/gina.1.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/helper.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/i18n/add.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/i18n/arguments.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/i18n/export.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/i18n/help.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/i18n/help.txt +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/i18n/import.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/i18n/scan.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/index.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/inspector/help.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/inspector/help.txt +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/inspector/open.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/minion/arguments.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/minion/help.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/minion/help.txt +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/minion/kill.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/minion/list.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/msg.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/port/help.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/port/help.txt +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/port/inc/scan.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/port/list.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/port/reset.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/port/set.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/project/add.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/project/arguments.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/project/build.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/project/help.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/project/help.txt +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/project/import.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/project/list.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/project/move.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/project/remove.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/project/rename.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/project/restart.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/project/rm.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/project/start.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/project/status.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/project/stop.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/protocol/arguments.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/protocol/help.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/protocol/help.txt +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/protocol/list.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/protocol/remove.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/protocol/set.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/scope/add.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/scope/help.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/scope/help.txt +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/scope/link-local.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/scope/link-production.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/scope/list.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/scope/remove.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/scope/rm.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/scope/use.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/secrets/arguments.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/secrets/check.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/secrets/help.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/secrets/help.txt +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/secrets/scan.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/service/help.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/service/help.txt +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/service/list.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/service/start.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd/view/add.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd-status-format/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cmd-status-format/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/collection/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/collection/build.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/collection/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/collection/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/config.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/connector-registry/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/connector-registry/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cron/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cron/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/cron/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/domain/LICENSE +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/domain/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/domain/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/domain/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/generator/index.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/i18n/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/i18n/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/index.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/inherits/LICENSE +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/inherits/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/inherits/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/inherits/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/inspector-redact/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/inspector-redact/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/instrument/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/instrument/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/job/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/job/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/logger/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/logger/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/logger/src/containers/default/index.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/logger/src/containers/file/index.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/logger/src/containers/mq/index.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/logger/src/containers/mq/listener.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/logger/src/containers/mq/speaker.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/logger/src/helper.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/logger/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/math/index.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/mcp-dispatch/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/mcp-dispatch/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/mcp-http/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/mcp-http/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/mcp-server/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/mcp-server/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/merge/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/merge/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/merge/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/metrics/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/metrics/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/model.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/nunjucks-filters/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/nunjucks-filters/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/nunjucks-filters/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/nunjucks-resolver/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/nunjucks-resolver/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/proc.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/routing/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/routing/build.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/routing/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/routing/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/routing/src/radix.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/routing-introspect/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/routing-introspect/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/secrets/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/secrets/src/backends/env.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/secrets/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/session-store.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/shell.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/state.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/swig-filters/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/swig-filters/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/swig-filters/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/swig-resolver/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/swig-resolver/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/template-loaders/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/template-loaders/src/loaders/http.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/template-loaders/src/loaders/memory.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/template-loaders/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/url/README.md +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/url/index.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/url/routing.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/uuid/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/uuid/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/validator.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/watcher/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/watcher/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/ws-framing/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/ws-framing/src/main.js +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/ws-session/package.json +0 -0
- /package/framework/{v0.5.1-alpha.2 → v0.5.1}/lib/ws-session/src/main.js +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,15 @@ 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.5.1 - 2026-06-12
|
|
10
|
+
### Added
|
|
11
|
+
* Stable publishes now run a ROADMAP.md consistency gate (script/check_roadmap_consistency.js, wired into the release prepare step alongside the README freshness gate). The publish aborts when an open roadmap row still references the exact version being released (the row would become stale the moment the tag lands) or when a done row is labelled with a version newer than the one shipping; a missing "released" timeline mark is surfaced as a warning only. Alpha publishes skip the gate.
|
|
12
|
+
### Fixed
|
|
13
|
+
* Fixed a bundle-killing crash when an error fired after the response was already sent. A late throwError() — e.g. an entity or query callback resuming after a redirect() had already issued its 301 and released the per-request response — dereferenced the released response and threw TypeError (reading getHeaders), escalating to uncaughtException and a SIGTERM bundle shutdown that also dropped every in-flight request. Late throwError() calls now log the swallowed error and no-op, and headersSent() treats a released response as already-sent so second render calls no-op too (#B31).
|
|
14
|
+
* Fixed a dev-mode per-request memory leak that could kill heavily-loaded bundles with a heap-limit OOM (SIGABRT): the hot-reload eviction cycles (refreshCore in the isaac engine, refreshCoreDependencies in the router) delete and re-require framework modules on every request, and each cache-miss require pushes the fresh Module onto its long-lived parent's children array — Node only dedupes on cache hits — pinning the dead module graphs forever (~1.8 MB of live heap retained per request measured on a minimal bundle, process death at ~2400 requests). Both cycles now prune stale Module references from every cached module's children after eviction; production mode was never affected. (#B32)
|
|
15
|
+
* Fixed the inter-bundle proxy (SuperController::query() over HTTP/2) re-labeling its raw-JSON request body with the incoming request's Content-Type. When the incoming browser request was a plain urlencoded form POST, the receiving bundle parsed the raw JSON through its urlencoded branch — corrupting `+`/`%XX` sequences inside JSON string values (e.g. a `+`-alias email losing its `+`). The `application/json` label query() sets for the body it serializes itself is now preserved; the incoming-Content-Type forward is kept for non-JSON outbound bodies. (#FORMCT2)
|
|
16
|
+
* Fixed a family of bundle-killing crashes when an HTTP/2 inter-bundle query outlives its own request: retry re-entries and late upstream responses ran against a response that a terminal exit (e.g. a redirect that lets the middleware chain continue) had already released, dereferencing null — the header-forward prep block on every retry re-entry, the session lookup behind isHaltedRequest, and both 3xx redirect intercepts. All sites are now null-guarded: forwards and intercepts no-op on a released request (options.headers already carries the first attempt's values, so nothing is lost), and the session lookup reports no session. Live-request behaviour is byte-identical. (#B33)
|
|
17
|
+
|
|
9
18
|
## 0.5.0 - 2026-06-11
|
|
10
19
|
### Added
|
|
11
20
|
* ESM compatibility layer (#M10): package.json now declares an "exports" map with dual CJS/ESM entry points — `import gina from 'gina'` and `import gna from 'gina/gna'` work natively in ESM projects and modern bundlers (default exports only; the gina/gna getter semantics are preserved). CJS `require()` resolution is byte-identical to before, and TypeScript declarations keep resolving via per-entry "types" conditions. The documented public surface is the bare specifier, ./gna and ./package.json; undeclared deep subpaths are no longer resolvable.
|
package/CONVENTIONS.md
CHANGED
|
@@ -391,6 +391,7 @@ exports.setUp = function(done) {
|
|
|
391
391
|
- Test names use `[ category ] description` format for grouping
|
|
392
392
|
- Setup guards (`if (initialized) return done()`) prevent re-execution across test suites
|
|
393
393
|
- New unit tests go in `test/core/` with numeric prefix for ordering
|
|
394
|
+
- **Test counts in docs and changelogs are measured, never estimated.** Don't write an "N unit tests" claim before running the test — estimating from section count consistently undercounts (behaviour sections run 10-15 tests, not ~5). The corrective is mechanical: run `node --test test/core/<file>.test.js 2>&1 | tail -10`, copy the `ℹ tests N` line, and write that exact N. Use `TODO_test_count` placeholders in drafts and fill from the actual output before staging.
|
|
394
395
|
|
|
395
396
|
**Recommendation:**
|
|
396
397
|
Migrate to `node:test` (built-in, Node 18+) for all new test files — `nodeunit` is unmaintained. Do not convert existing tests; add `node:test` tests alongside. The HTTP/2 client mock harness (#UT1) should use `node:test + node:assert` natively.
|
package/README.md
CHANGED
|
@@ -39,11 +39,12 @@ gina bundle:start api @myproject
|
|
|
39
39
|
open https://localhost:3100
|
|
40
40
|
```
|
|
41
41
|
|
|
42
|
-
## What's in 0.5.
|
|
42
|
+
## What's in 0.5.1
|
|
43
43
|
|
|
44
|
-
- **
|
|
45
|
-
- **
|
|
46
|
-
- **
|
|
44
|
+
- **Released-response crash family fixed (bundle-killing).** A late `throwError()` after the response was already sent — e.g. an entity or query callback resuming after a `redirect()` had already issued its 301 — dereferenced the released response, escalating to an `uncaughtException` and a SIGTERM bundle shutdown that dropped every in-flight request. Late calls now log the swallowed error and no-op. The same guard family covers the HTTP/2 inter-bundle query paths: retry re-entries, late upstream responses, and both 3xx redirect intercepts no longer crash when the originating request has already terminated.
|
|
45
|
+
- **Dev-mode hot-reload memory leak fixed.** The per-request hot-reload eviction cycles retained ~1.8 MB of live heap per request through dead `module.children` references, killing heavily-loaded dev bundles with a heap-limit OOM. Both cycles now prune stale module references after eviction; production mode was never affected.
|
|
46
|
+
- **Inter-bundle proxy Content-Type fix.** `query()` over HTTP/2 no longer re-labels the raw-JSON body it serializes itself with the incoming request's Content-Type — a urlencoded browser POST proxied between bundles no longer corrupts `+`/`%XX` sequences inside JSON string values.
|
|
47
|
+
- **ROADMAP consistency release gate.** Stable publishes now abort when a roadmap row is stale relative to the version being released, alongside the existing README freshness gate.
|
|
47
48
|
|
|
48
49
|
See the full [Changelog](./CHANGELOG.md) and [Roadmap](./ROADMAP.md).
|
|
49
50
|
|
package/ROADMAP.md
CHANGED
|
@@ -25,6 +25,7 @@ This roadmap covers planned features, architectural improvements, new connectors
|
|
|
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
26
|
| **Q2 2026** | `0.4.0` ✅ | Couchbase v2 removal (BREAKING — SDK v2 connector + session store dropped) · HTTP/2 response trailers · async-job primitive · CSP per-response nonce · `secrets:scan` / `secrets:check` CLI · SQL column-level index coverage — of the items originally targeted here: AI agents (MCP) shipped `0.3.7`, ScyllaDB `0.3.11`, CLI Tier 2 `0.4.1`, the docs offline ZIP is live on the docs site, and the Advanced tutorial · website redesign · Bun investigation moved to `0.5.x` |
|
|
27
27
|
| **Q2 2026** | `0.5.0` ✅ | ESM entry points (dual CJS/ESM `exports` map) · Mixed template engines per bundle (extension-keyed `.njk` / `.swig` dispatch) · Nunjucks Inspector parity — the other items originally targeted here shipped earlier: structured logging (`0.4.5`), Alt-Svc (`0.4.2`), WebSocket over HTTP/2 (`0.4.7`), Inspector production auth (`0.4.0`) |
|
|
28
|
+
| **Q2 2026** | `0.5.1` ✅ | Patch: released-response crash family — late `throwError()` and the HTTP/2 inter-bundle query retry / late-response / redirect-intercept paths no longer kill the bundle · dev-mode hot-reload `module.children` heap leak fixed (OOM under sustained load) · inter-bundle proxy JSON bodies keep their `application/json` label · ROADMAP consistency release gate |
|
|
28
29
|
| **Q1 2027** | `0.5.x` | HTTP/2 priorities (blocked on Node scheduler hooks) · CLI Tier 3 (project:move, framework:update, backup/restore, man pages) · Beemaster admin + visual translation editor |
|
|
29
30
|
| **Q3 2027** | `1.0.0` | First stable release — Windows alpha compatibility is a hard gate |
|
|
30
31
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.5.1
|
|
@@ -3318,11 +3318,11 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
|
|
|
3318
3318
|
// proxy_set_header X-Ingress-IP $server_addr
|
|
3319
3319
|
// proxy_set_header X-Forwarded-For $remote_addr;
|
|
3320
3320
|
// # EO - Specific headers for Gina
|
|
3321
|
-
if ( typeof(local.req.headers['x-client-ip']) != 'undefined' && local.req.headers['x-client-ip'] != options.headers['x-client-ip'] ) {
|
|
3321
|
+
if ( local.req != null && typeof(local.req.headers['x-client-ip']) != 'undefined' && local.req.headers['x-client-ip'] != options.headers['x-client-ip'] ) {
|
|
3322
3322
|
options.headers['x-client-ip'] = local.req.headers['x-client-ip']
|
|
3323
3323
|
}
|
|
3324
3324
|
|
|
3325
|
-
if ( typeof(local.req.headers['x-ingress-ip']) != 'undefined' && local.req.headers['x-ingress-ip'] != options.headers['x-ingress-ip'] ) {
|
|
3325
|
+
if ( local.req != null && typeof(local.req.headers['x-ingress-ip']) != 'undefined' && local.req.headers['x-ingress-ip'] != options.headers['x-ingress-ip'] ) {
|
|
3326
3326
|
options.headers['x-ingress-ip'] = local.req.headers['x-ingress-ip']
|
|
3327
3327
|
}
|
|
3328
3328
|
|
|
@@ -3859,15 +3859,29 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
|
|
|
3859
3859
|
} = browser.constants;
|
|
3860
3860
|
|
|
3861
3861
|
|
|
3862
|
-
|
|
3862
|
+
// #B33 — every retry re-entry (setTimeout → handleHTTP2ClientRequest) re-executes
|
|
3863
|
+
// these forwards, and a terminal exit (e.g. redirect-then-continue) may have
|
|
3864
|
+
// released local.req in between: each forward is null-guarded with query()'s own
|
|
3865
|
+
// idiom. Skipping a forward on a released request is a no-op, not a behavior
|
|
3866
|
+
// change — options.headers already carries the attempt-1 values (the same options
|
|
3867
|
+
// object travels through every retry).
|
|
3868
|
+
if ( local.req != null && typeof(local.req.headers['x-requested-with']) != 'undefined' ) {
|
|
3863
3869
|
options.headers['x-requested-with'] = local.req.headers['x-requested-with']
|
|
3864
3870
|
}
|
|
3865
3871
|
|
|
3866
|
-
if ( typeof(local.req.headers['access-control-allow-credentials']) != 'undefined' ) {
|
|
3872
|
+
if ( local.req != null && typeof(local.req.headers['access-control-allow-credentials']) != 'undefined' ) {
|
|
3867
3873
|
options.headers['access-control-allow-credentials'] = local.req.headers['access-control-allow-credentials']
|
|
3868
3874
|
}
|
|
3869
3875
|
|
|
3870
|
-
|
|
3876
|
+
// #FORMCT2 — never clobber an `application/json` outbound Content-Type with the
|
|
3877
|
+
// INCOMING request's. query() serializes the inter-bundle body as raw JSON
|
|
3878
|
+
// (queryData = JSON.stringify) and labels it application/json; forwarding the
|
|
3879
|
+
// incoming CT here re-labels that JSON body (e.g. as urlencoded when the browser
|
|
3880
|
+
// request was a plain form POST — canonical case: a haltedRequest resume), and the
|
|
3881
|
+
// receiving bundle's urlencoded parse then corrupts `+`/`%XX` inside JSON string
|
|
3882
|
+
// values (same corruption #FORMCT fixed in the browser validator). The forward is
|
|
3883
|
+
// kept for non-JSON outbound bodies (e.g. the MSIE text/plain override).
|
|
3884
|
+
if ( local.req != null && typeof(local.req.headers['content-type']) != 'undefined' && local.req.headers['content-type'] != options.headers['content-type'] && !/application\/json/i.test(options.headers['content-type']) ) {
|
|
3871
3885
|
options.headers['content-type'] = local.req.headers['content-type']
|
|
3872
3886
|
}
|
|
3873
3887
|
|
|
@@ -3877,11 +3891,11 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
|
|
|
3877
3891
|
// proxy_set_header X-Ingress-IP $server_addr
|
|
3878
3892
|
// proxy_set_header X-Forwarded-For $remote_addr;
|
|
3879
3893
|
// # EO - Specific headers for Gina
|
|
3880
|
-
if ( typeof(local.req.headers['x-client-ip']) != 'undefined' && local.req.headers['x-client-ip'] != options.headers['x-client-ip'] ) {
|
|
3894
|
+
if ( local.req != null && typeof(local.req.headers['x-client-ip']) != 'undefined' && local.req.headers['x-client-ip'] != options.headers['x-client-ip'] ) {
|
|
3881
3895
|
options.headers['x-client-ip'] = local.req.headers['x-client-ip']
|
|
3882
3896
|
}
|
|
3883
3897
|
|
|
3884
|
-
if ( typeof(local.req.headers['x-ingress-ip']) != 'undefined' && local.req.headers['x-ingress-ip'] != options.headers['x-ingress-ip'] ) {
|
|
3898
|
+
if ( local.req != null && typeof(local.req.headers['x-ingress-ip']) != 'undefined' && local.req.headers['x-ingress-ip'] != options.headers['x-ingress-ip'] ) {
|
|
3885
3899
|
options.headers['x-ingress-ip'] = local.req.headers['x-ingress-ip']
|
|
3886
3900
|
}
|
|
3887
3901
|
|
|
@@ -4198,7 +4212,10 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
|
|
|
4198
4212
|
|
|
4199
4213
|
try {
|
|
4200
4214
|
// Intercepting fallback redirect (3xx)
|
|
4201
|
-
|
|
4215
|
+
// #B33 — local.res may be null when the response lands after a terminal
|
|
4216
|
+
// exit released the triplet; skip the intercept and fall through to the
|
|
4217
|
+
// non-2xx handling (whose throwError no-ops on a released response).
|
|
4218
|
+
if (local.res != null && data.status && /^3/.test(data.status) && typeof data.headers !== 'undefined') {
|
|
4202
4219
|
local.res.writeHead(data.status, data.headers);
|
|
4203
4220
|
return local.res.end();
|
|
4204
4221
|
}
|
|
@@ -4270,7 +4287,10 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
|
|
|
4270
4287
|
}
|
|
4271
4288
|
}
|
|
4272
4289
|
|
|
4273
|
-
|
|
4290
|
+
// #B33 — same released-response skip as the callback-mode intercept above;
|
|
4291
|
+
// emitter mode falls through to the query#complete emit so listeners
|
|
4292
|
+
// still learn the outcome.
|
|
4293
|
+
if (local.res != null && data.status && /^3/.test(data.status) && typeof data.headers !== 'undefined') {
|
|
4274
4294
|
self.removeAllListeners(['query#complete']);
|
|
4275
4295
|
local.res.writeHead(data.status, data.headers);
|
|
4276
4296
|
return local.res.end();
|
|
@@ -4937,6 +4957,12 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
|
|
|
4937
4957
|
|
|
4938
4958
|
var getSession = function() {
|
|
4939
4959
|
var session = null;
|
|
4960
|
+
// #B33 — local.req is null after a terminal exit released the triplet; callers
|
|
4961
|
+
// like isHaltedRequest() run from HTTP/2 response handlers that can fire on a
|
|
4962
|
+
// released request (retry/late-response paths). No session on a released request.
|
|
4963
|
+
if ( local.req == null ) {
|
|
4964
|
+
return null;
|
|
4965
|
+
}
|
|
4940
4966
|
if ( typeof(local.req.session) != 'undefined') {
|
|
4941
4967
|
session = local.req.session;
|
|
4942
4968
|
}
|
|
@@ -129,9 +129,38 @@ function Router(env, scope) {
|
|
|
129
129
|
SuperController = require(_(corePath +'/controller/index.js', true));
|
|
130
130
|
|
|
131
131
|
if (_hotReload) _hotReload.core = false; // #M6 — clear flag after eviction
|
|
132
|
+
|
|
133
|
+
pruneDeadModuleChildren();
|
|
132
134
|
corePath = null;
|
|
133
135
|
}
|
|
134
136
|
|
|
137
|
+
/**
|
|
138
|
+
* Prunes stale `Module` references from every cached module's `children`
|
|
139
|
+
* array after the eviction cycle above. Each cache-miss `require()` pushes
|
|
140
|
+
* the fresh `Module` onto the requiring module's `children` (Node only
|
|
141
|
+
* dedupes on cache hits), so without pruning this long-lived router module
|
|
142
|
+
* accumulates one dead controller `Module` per request, each pinning its
|
|
143
|
+
* whole evaluated exports graph — the dev-mode per-request memory leak.
|
|
144
|
+
*
|
|
145
|
+
* Local copy of the sweep in `core/server.isaac.js` — the engine-agnostic
|
|
146
|
+
* router cannot depend on an engine module, and the `lib` registry is
|
|
147
|
+
* itself evicted per request. Keep both copies in sync.
|
|
148
|
+
*
|
|
149
|
+
* @inner
|
|
150
|
+
* @returns {undefined}
|
|
151
|
+
*/
|
|
152
|
+
var pruneDeadModuleChildren = function() {
|
|
153
|
+
var cacheIds = Object.keys(require.cache);
|
|
154
|
+
for (var i = 0, len = cacheIds.length; i < len; i++) {
|
|
155
|
+
var cached = require.cache[cacheIds[i]];
|
|
156
|
+
if (cached && cached.children && cached.children.length > 0) {
|
|
157
|
+
cached.children = cached.children.filter(function onPruneFilter(child) {
|
|
158
|
+
return require.cache[child.id] === child;
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
135
164
|
this.setServerInstance = function(serverInstance) {
|
|
136
165
|
serverInstance._http2streamEventInitalized = false;
|
|
137
166
|
self.serverInstance = serverInstance;
|
|
@@ -243,8 +243,48 @@ var refreshCore = function() {
|
|
|
243
243
|
delete require.cache[require.resolve(pluginsIndexPath)];
|
|
244
244
|
var freshPlugins = require( pluginsIndexPath );
|
|
245
245
|
require.cache[_(corePath + '/gna.js', true)].exports.plugins = freshPlugins;
|
|
246
|
+
|
|
247
|
+
pruneDeadModuleChildren();
|
|
246
248
|
}
|
|
247
249
|
|
|
250
|
+
/**
|
|
251
|
+
* Prunes stale `Module` references from every cached module's `children` array.
|
|
252
|
+
*
|
|
253
|
+
* Each cache-miss `require()` pushes the freshly created `Module` onto the
|
|
254
|
+
* requiring module's `children` array — Node only dedupes on cache hits — so the
|
|
255
|
+
* per-request delete-and-re-require cycles in `refreshCore()` (and the router's
|
|
256
|
+
* `refreshCoreDependencies()`) make long-lived parents accumulate one dead
|
|
257
|
+
* `Module` per eviction: this engine module, `router.js`, and any module with a
|
|
258
|
+
* lazy in-function `require()` of an evicted lib. Every dead `Module` pins its
|
|
259
|
+
* entire evaluated exports graph. Measured on a minimal bundle in dev mode:
|
|
260
|
+
* ~1.8 MB of post-GC live heap retained per request, ending in a heap-limit
|
|
261
|
+
* OOM (SIGABRT) at ~2400 requests.
|
|
262
|
+
*
|
|
263
|
+
* Keeping only children whose resolved id still maps to that same instance in
|
|
264
|
+
* `require.cache` releases the dead graphs. `children` is diagnostic metadata
|
|
265
|
+
* (nothing in Node's resolution reads it), so pruning never unloads a module
|
|
266
|
+
* still referenced elsewhere.
|
|
267
|
+
*
|
|
268
|
+
* A local copy of the same sweep lives in `core/router.js` — the engine-agnostic
|
|
269
|
+
* router cannot depend on an engine module, and the `lib` registry is itself
|
|
270
|
+
* evicted per request. Keep both copies in sync.
|
|
271
|
+
*
|
|
272
|
+
* @memberof module:gina/core/server.isaac
|
|
273
|
+
* @inner
|
|
274
|
+
* @returns {undefined}
|
|
275
|
+
*/
|
|
276
|
+
var pruneDeadModuleChildren = function() {
|
|
277
|
+
var cacheIds = Object.keys(require.cache);
|
|
278
|
+
for (var i = 0, len = cacheIds.length; i < len; i++) {
|
|
279
|
+
var cached = require.cache[cacheIds[i]];
|
|
280
|
+
if (cached && cached.children && cached.children.length > 0) {
|
|
281
|
+
cached.children = cached.children.filter(function onPruneFilter(child) {
|
|
282
|
+
return require.cache[child.id] === child;
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
};
|
|
287
|
+
|
|
248
288
|
// Express compatibility
|
|
249
289
|
const slice = Array.prototype.slice;
|
|
250
290
|
|
package/gna.js
CHANGED
|
@@ -15,14 +15,14 @@
|
|
|
15
15
|
'use strict';
|
|
16
16
|
|
|
17
17
|
// Framework core — the main gna module (lifecycle hooks, lib, etc.)
|
|
18
|
-
var _gna = require('./framework/v0.5.1
|
|
18
|
+
var _gna = require('./framework/v0.5.1/core/gna');
|
|
19
19
|
|
|
20
20
|
// SuperController and EntitySuper — loaded from their source modules
|
|
21
|
-
var SuperController = require('./framework/v0.5.1
|
|
22
|
-
var EntitySuper = require('./framework/v0.5.1
|
|
21
|
+
var SuperController = require('./framework/v0.5.1/core/controller');
|
|
22
|
+
var EntitySuper = require('./framework/v0.5.1/core/model/entity');
|
|
23
23
|
|
|
24
24
|
// uuid — from the lib registry
|
|
25
|
-
var uuid = require('./framework/v0.5.1
|
|
25
|
+
var uuid = require('./framework/v0.5.1/lib/uuid');
|
|
26
26
|
|
|
27
27
|
module.exports = {
|
|
28
28
|
|