gina 0.6.5 → 0.6.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/README.md +23 -36
- package/ROADMAP.md +1 -0
- package/framework/v0.6.6/VERSION +1 -0
- package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/js/gina.js +84 -25
- package/framework/v0.6.6/core/asset/plugin/dist/vendor/gina/js/gina.min.js +643 -0
- package/framework/v0.6.6/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/v0.6.6/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- package/framework/{v0.6.5 → v0.6.6}/lib/logger/src/containers/file/index.js +9 -5
- package/framework/v0.6.6/lib/logger/src/containers/mq/speaker.js +439 -0
- package/framework/{v0.6.5 → v0.6.6}/lib/net-locality/src/main.js +48 -2
- package/framework/{v0.6.5 → v0.6.6}/package.json +1 -1
- package/gna.js +4 -4
- package/llms.txt +30 -30
- package/package.json +3 -3
- package/framework/v0.6.5/VERSION +0 -1
- package/framework/v0.6.5/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -643
- package/framework/v0.6.5/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/v0.6.5/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- package/framework/v0.6.5/lib/logger/src/containers/mq/speaker.js +0 -242
- /package/framework/{v0.6.5 → v0.6.6}/AUTHORS +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/LICENSE +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/html/nolayout.html +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/html/static.html +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/img/android-chrome-192x192.png +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/img/android-chrome-512x512.png +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/img/apple-touch-icon.png +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/img/favicon-16x16.png +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/img/favicon-32x32.png +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/img/favicon.ico +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/config.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/ai/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/ai/lib/connector.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/couchbase/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/couchbase/lib/connector.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/couchbase/lib/connector.v3.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/couchbase/lib/connector.v4.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/couchbase/lib/n1ql.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/couchbase/lib/session-store.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/duckdb/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/duckdb/lib/connector.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/mongodb/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/mongodb/lib/connector.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/mongodb/lib/job-store.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/mongodb/lib/session-store.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/mysql/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/mysql/lib/connector.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/postgresql/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/postgresql/lib/connector.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/redis/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/redis/lib/connector.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/redis/lib/job-store.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/redis/lib/render-cache-store.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/redis/lib/session-store.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/scylladb/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/scylladb/lib/connector.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/scylladb/lib/session-store.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/sql-parser.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/sqlite/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/sqlite/lib/connector.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/sqlite/lib/job-store.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/connectors/sqlite/lib/session-store.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/content.encoding +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/controller/controller.framework.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/controller/controller.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/controller/controller.render-json.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/controller/controller.render-nunjucks-async.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/controller/controller.render-nunjucks.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/controller/controller.render-stream.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/controller/controller.render-swig-async.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/controller/controller.render-swig.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/controller/controller.render-v1.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/controller/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/controller/inspector-window-emit.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/controller/release-banner.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/dev/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/dev/lib/class.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/dev/lib/factory.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/dev/lib/tools.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/gna.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/locales/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/locales/currency.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/locales/dist/language/en.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/locales/dist/language/fr.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/locales/dist/region/en.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/locales/dist/region/fr.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/locales/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/mime.types +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/model/entity.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/model/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/model/template/entityFactory.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/model/template/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/csrf/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/csrf/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/csrf/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/coep/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/coep/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/coop/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/coop/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/corp/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/corp/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/csp/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/csp/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/hsts/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/hsts/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/session/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/session/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/session/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/storage/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/storage/build.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/storage/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/storage/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/validator/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/validator/build.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/validator/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/validator/src/form-validator.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/plugins/lib/validator/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/router.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/server.express.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/server.isaac.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/server.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/status.codes +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/_gitignore +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle/config/app.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle/config/connectors.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle/config/routing.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle/config/settings.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle/config/templates.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle/config/watchers.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle/locales/en.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_public/css/default.css +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_public/css/home.css +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_public/js/components/x-checklist.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_public/readme.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_public/sw.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_templates/html/includes/x-checklist.html +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/command/gina.bat.tpl +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/command/gina.tpl +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/conf/env.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/conf/manifest.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/conf/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/conf/settings.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/conf/statics.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/conf/templates.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/error/client/json/401.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/error/client/json/403.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/error/client/json/404.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/error/server/html/50x.html +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/error/server/json/500.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/error/server/json/503.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/core/template/extensions/logger/config.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/console.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/context.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/data/LICENSE +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/data/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/data/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/data/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/dateFormat.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/json/LICENSE +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/json/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/json/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/json/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/path.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/plugins/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/plugins/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/plugins/src/api-error.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/plugins/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/prototypes.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/task.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/helpers/text.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/admin/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/admin/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/archiver/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/archiver/build.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/archiver/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/archiver/src/dep/jszip.min.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/archiver/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/async/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/async/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/audit/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/audit/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/audit-store.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/authn/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/authn/src/lockout.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/authn/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/authn/src/totp.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/authz-gate/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/authz-gate/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cache/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cache/build.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cache/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cache/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/aliases.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/audit/arguments.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/audit/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/audit/verify.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/add.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/arguments.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/build.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/copy.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/cp.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/help.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/list.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/man.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/mcp-start.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/mcp.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/oas.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/openapi.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/remove.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/rename.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/restart.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/rm.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/start.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/status.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/stop.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/bundle/types.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/cache/arguments.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/cache/clear.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/cache/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/cache/stats.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/connector/add.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/connector/arguments.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/connector/help.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/connector/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/connector/infer.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/connector/list.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/connector/migrate.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/connector/models.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/connector/remove.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/connector/rm.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/connector/test.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/container/arguments.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/container/help.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/container/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/container/man.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/container/ps.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/container/stop.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/controller/add.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/controller/arguments.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/controller/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/controller/inc/args.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/controller/inc/namespace.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/controller/inc/reference-rewrite.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/controller/inc/reference-scan.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/controller/inc/scaffold.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/controller/remove.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/controller/rename.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/controller/rm.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/env/add.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/env/get.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/env/help.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/env/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/env/link-dev.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/env/list.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/env/remove.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/env/rm.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/env/set.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/env/unset.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/env/use.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/add.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/arguments.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/build.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/dot.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/get.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/help.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/init.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/link-node-modules.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/link.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/list.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/man.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/msg.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/open.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/remove.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/reset.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/restart.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/set.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/start.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/status.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/stop.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/tail.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/update.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/framework/version.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/gina-dev.1.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/gina-framework.1.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/gina.1.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/helper.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/i18n/add.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/i18n/arguments.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/i18n/export.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/i18n/help.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/i18n/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/i18n/import.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/i18n/scan.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/image/_host.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/image/arguments.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/image/build.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/image/help.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/image/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/image/list.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/image/man.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/image/rm.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/image/run.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/inspector/help.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/inspector/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/inspector/open.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/man-render.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/minion/arguments.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/minion/help.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/minion/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/minion/kill.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/minion/list.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/msg.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/port/help.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/port/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/port/inc/scan.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/port/list.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/port/reset.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/port/set.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/add.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/arguments.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/backup.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/build.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/help.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/import.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/list.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/man.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/move.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/remove.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/rename.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/restart.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/restore.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/rm.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/start.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/status.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/project/stop.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/protocol/arguments.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/protocol/help.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/protocol/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/protocol/list.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/protocol/remove.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/protocol/set.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/scope/add.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/scope/help.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/scope/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/scope/link-local.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/scope/link-production.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/scope/list.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/scope/remove.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/scope/rm.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/scope/use.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/secrets/arguments.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/secrets/check.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/secrets/help.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/secrets/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/secrets/scan.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/service/help.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/service/help.txt +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/service/list.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/service/man.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/service/start.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd/view/add.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd-status-format/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cmd-status-format/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/collection/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/collection/build.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/collection/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/collection/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/config.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/connector-config/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/connector-config/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/connector-error/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/connector-error/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/connector-registry/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/connector-registry/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cron/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cron/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/cron/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/domain/LICENSE +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/domain/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/domain/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/domain/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/dto/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/dto/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/dto-pipe/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/dto-pipe/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/dto-types/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/dto-types/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/generator/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/i18n/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/i18n/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/image-build/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/image-build/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/inherits/LICENSE +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/inherits/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/inherits/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/inherits/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/inspector-events/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/inspector-events/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/inspector-redact/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/inspector-redact/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/instrument/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/instrument/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/job/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/job/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/job-store.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/json-config-header/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/json-config-header/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/loading-state/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/loading-state/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/logger/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/logger/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/logger/src/containers/default/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/logger/src/containers/mq/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/logger/src/containers/mq/listener.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/logger/src/helper.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/logger/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/math/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/mcp-dispatch/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/mcp-dispatch/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/mcp-http/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/mcp-http/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/mcp-server/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/mcp-server/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/merge/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/merge/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/merge/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/metrics/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/metrics/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/model.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/net-locality/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/nunjucks-filters/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/nunjucks-filters/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/nunjucks-filters/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/nunjucks-resolver/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/nunjucks-resolver/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/proc.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/release-watch/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/release-watch/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/render-cache/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/render-cache/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/render-cache-store.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/routing/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/routing/build.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/routing/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/routing/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/routing/src/radix.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/routing-introspect/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/routing-introspect/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/secrets/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/secrets/src/backends/env.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/secrets/src/backends/file.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/secrets/src/env-file.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/secrets/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/session-store.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/shell.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/sqlite-driver.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/state.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/swig-filters/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/swig-filters/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/swig-filters/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/swig-resolver/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/swig-resolver/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/template-loaders/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/template-loaders/src/loaders/http.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/template-loaders/src/loaders/memory.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/template-loaders/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/url/README.md +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/url/index.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/url/routing.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/uuid/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/uuid/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/validator.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/watcher/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/watcher/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/ws-framing/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/ws-framing/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/ws-query/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/ws-query/src/main.js +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/ws-session/package.json +0 -0
- /package/framework/{v0.6.5 → v0.6.6}/lib/ws-session/src/main.js +0 -0
|
@@ -186,11 +186,15 @@ function FileContainer(opt, loggers) {
|
|
|
186
186
|
function onPayload(opt, isResuming) {
|
|
187
187
|
// console.debug('mqFile options: ', JSON.stringify(opt, null, 2));
|
|
188
188
|
var port = opt.mqPort || getEnvVar('GINA_MQ_PORT') || 8125;// jshint ignore:line
|
|
189
|
-
// #
|
|
190
|
-
//
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
189
|
+
// #B320 — like the MQ speaker, this container's listener is co-located
|
|
190
|
+
// by construction, so `host_v4` (advertisement state — foreign on a
|
|
191
|
+
// shared or stale `~/.gina`, incl. the value the `gina#bundle-logging`
|
|
192
|
+
// event carries) is not an input of the dial. Dial what the local
|
|
193
|
+
// daemon binds; env first, matching the bind side's own precedence
|
|
194
|
+
// (init.js #B161) and covering the early-call construction window.
|
|
195
|
+
var host = netLocality.resolveLocalDialHost(
|
|
196
|
+
((typeof getEnvVar === 'function' && getEnvVar('GINA_BIND_HOST')) || process.env.GINA_BIND_HOST || null)
|
|
197
|
+
|| opt.bindHost
|
|
194
198
|
);// jshint ignore:line
|
|
195
199
|
var clientOptions = {
|
|
196
200
|
host : host,
|
|
@@ -0,0 +1,439 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
// Imports
|
|
3
|
+
const net = require('net');
|
|
4
|
+
// #B160 — control-plane dial-host resolution (pure, no framework globals)
|
|
5
|
+
var netLocality = require(__dirname + '/../../../../net-locality');
|
|
6
|
+
// var fs = require('fs');
|
|
7
|
+
// var util = require('util');
|
|
8
|
+
|
|
9
|
+
function MQSpeaker(opt, loggers, cb) {
|
|
10
|
+
var self = {
|
|
11
|
+
name: 'MQSpeaker'
|
|
12
|
+
};
|
|
13
|
+
var loggerHelper = require(__dirname +'/../../helper.js')(opt, loggers);
|
|
14
|
+
var format = loggerHelper.format;
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Resolves the framework's connection settings, then starts the speaker.
|
|
20
|
+
*
|
|
21
|
+
* Runs before the framework globals are guaranteed to exist (see the
|
|
22
|
+
* "hack for early calls" block below), so every global read is guarded.
|
|
23
|
+
*
|
|
24
|
+
* @inner
|
|
25
|
+
* @param {object} opt - Logger options; mqPort/hostV4/bindHost are filled in here.
|
|
26
|
+
* @param {function} cb - Passed through to startMQSpeaker.
|
|
27
|
+
* @returns {*} Whatever startMQSpeaker() returns.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* init({ }, function(err, speaker) { });
|
|
31
|
+
*/
|
|
32
|
+
function init(opt, cb) {
|
|
33
|
+
|
|
34
|
+
// ---------- BO - hack for early calls
|
|
35
|
+
var isWin32 = (process.platform === 'win32') ? true : false;
|
|
36
|
+
var binPath = __dirname +'/../../../../../../../';
|
|
37
|
+
var ginaPath = (binPath.replace(/\\/g, '/')).replace('/bin', '');
|
|
38
|
+
ginaPath = (isWin32) ? ginaPath.replace(/\//g, '\\') : ginaPath;
|
|
39
|
+
// loading pack
|
|
40
|
+
var pack = ginaPath + '/package.json';
|
|
41
|
+
pack = (isWin32) ? pack.replace(/\//g, '\\') : pack;
|
|
42
|
+
var packObj = require(pack);
|
|
43
|
+
var version = packObj.version;// jshint ignore:line
|
|
44
|
+
// var frameworkPath = ginaPath + '/framework/v' + version;
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
var shortVersion = version.split('.');
|
|
48
|
+
shortVersion.splice(2);
|
|
49
|
+
shortVersion = shortVersion.join('.');
|
|
50
|
+
|
|
51
|
+
var settings = { mq_port: 8125, host_v4: '127.0.0.1' };
|
|
52
|
+
try {
|
|
53
|
+
// #B160-sibling (3) — honour GINA_HOMEDIR so an isolated home resolves
|
|
54
|
+
// its OWN settings instead of the invoking user's. The variable already
|
|
55
|
+
// carries the `/.gina` segment (bin/cli, bin/gina-init both compose it
|
|
56
|
+
// as `home + '/.gina'`), so it replaces that whole prefix, not just the
|
|
57
|
+
// home.
|
|
58
|
+
// Three tiers, and process.env is load-bearing rather than defensive:
|
|
59
|
+
// this container is constructed BEFORE bin/cli imports the OS env into
|
|
60
|
+
// process.gina (measured: process.gina is empty here, while
|
|
61
|
+
// process.env.GINA_HOMEDIR still holds the value), so the framework-env
|
|
62
|
+
// tier alone would never fire on the CLI path. Framework env still wins
|
|
63
|
+
// where it is populated (bundle processes, gina-container), matching the
|
|
64
|
+
// two-tier read used by the secrets backend and resolveHttpHost.
|
|
65
|
+
var _ginaHome = (typeof getEnvVar === 'function' && getEnvVar('GINA_HOMEDIR'))
|
|
66
|
+
|| process.env.GINA_HOMEDIR
|
|
67
|
+
|| (getUserHome() + '/.gina');
|
|
68
|
+
settings = require( _ginaHome + '/' + shortVersion + '/settings.json');
|
|
69
|
+
} catch (err) {}
|
|
70
|
+
|
|
71
|
+
// Guard: settings.mq_port may be an unresolved template placeholder (e.g. '${}'
|
|
72
|
+
// from a broken W2 migration write). Convert to int and fall back to 8125 if invalid.
|
|
73
|
+
var _mqPort = ~~settings.mq_port;
|
|
74
|
+
opt.mqPort = (_mqPort > 0 && _mqPort < 65536) ? _mqPort : 8125;
|
|
75
|
+
opt.hostV4 = settings.host_v4;
|
|
76
|
+
// #B160 — carry the daemon's bind address so startMQSpeaker() can
|
|
77
|
+
// dial locally when host_v4 names one of this machine's interfaces.
|
|
78
|
+
opt.bindHost = settings.bind_host;
|
|
79
|
+
// ---------- EO - hack for early calls
|
|
80
|
+
|
|
81
|
+
return startMQSpeaker(opt, cb);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Opens the speaker's connection to the MQ listener, and KEEPS it — every
|
|
87
|
+
* dial after the first is a reconnect (#B323).
|
|
88
|
+
*
|
|
89
|
+
* What the caller receives is a stable transport FACADE, not the socket.
|
|
90
|
+
* The sole consumer (`mq/index.js`) captures this return once, at
|
|
91
|
+
* logger-construction time, and holds it for the life of the process — so
|
|
92
|
+
* a speaker that swapped its socket without a facade would leave that
|
|
93
|
+
* consumer writing into the dead one forever. `write()` therefore
|
|
94
|
+
* delegates to whichever socket is current, and reports `false` while the
|
|
95
|
+
* speaker is down.
|
|
96
|
+
*
|
|
97
|
+
* The socket is `unref`'d: a logging transport must never be the reason a
|
|
98
|
+
* process stays alive. Processes that legitimately run long hold the event
|
|
99
|
+
* loop open by their own means — a bundle keeps it alive with its HTTP
|
|
100
|
+
* server (`core/server.js` owns the single `listen()` call for both
|
|
101
|
+
* engines) — so unref'ing costs them nothing while it stops the speaker
|
|
102
|
+
* from outliving its host. The redial timer below is unref'd for exactly
|
|
103
|
+
* the same reason, which is what keeps the reconnect loop from resurrecting
|
|
104
|
+
* the #B276 hang in short-lived CLIs.
|
|
105
|
+
*
|
|
106
|
+
* @inner
|
|
107
|
+
* @param {object} opt - Logger options; `mqPort`/`bindHost` are read here
|
|
108
|
+
* (`hostV4` is deliberately NOT — see the #B320 note at the dial).
|
|
109
|
+
* @param {function} [cb] - Called ONCE, on the FIRST outcome only:
|
|
110
|
+
* `(false, client)` on connect, `(err)` on failure. Later reconnects — and
|
|
111
|
+
* their failures — never re-invoke it, so a caller cannot be surprised by
|
|
112
|
+
* a second settle hours into the process.
|
|
113
|
+
* @returns {object} A stable transport facade: `{ write: function }`.
|
|
114
|
+
* `write()` returns the underlying socket's backpressure boolean, or
|
|
115
|
+
* `false` when the speaker is currently down (the frame is dropped).
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* var transport = startMQSpeaker({ mqPort: 8125, bindHost: '127.0.0.1' });
|
|
119
|
+
* transport.write('{"level":"info","content":"hello"}\r\n');
|
|
120
|
+
*/
|
|
121
|
+
function startMQSpeaker(opt, cb) {
|
|
122
|
+
var port = opt.mqPort || 8125;// jshint ignore:line
|
|
123
|
+
// #B320 — the speaker's listener is CO-LOCATED BY CONSTRUCTION (started
|
|
124
|
+
// by this install's `bin/cli`), so `host_v4` is not an input of this
|
|
125
|
+
// dial at all: it is advertisement state, and on a shared or stale
|
|
126
|
+
// `~/.gina` it can name ANOTHER machine — #B160's remote-unchanged rule
|
|
127
|
+
// then shipped every log frame there while the connect read healthy.
|
|
128
|
+
// Dial what the local daemon binds instead. The env tier mirrors the
|
|
129
|
+
// GINA_HOMEDIR ladder above (and the bind side's own precedence,
|
|
130
|
+
// init.js #B161): process.env is load-bearing for the early-call
|
|
131
|
+
// window in which this container is constructed.
|
|
132
|
+
var _envBindHost = (typeof getEnvVar === 'function' && getEnvVar('GINA_BIND_HOST'))
|
|
133
|
+
|| process.env.GINA_BIND_HOST || null;
|
|
134
|
+
var host = netLocality.resolveLocalDialHost(_envBindHost || opt.bindHost);// jshint ignore:line
|
|
135
|
+
// #B323 — state shared by every dial this speaker makes. Before this,
|
|
136
|
+
// `startMQSpeaker` opened exactly one socket and handed it out; there
|
|
137
|
+
// was no state to share because there was no second attempt, and a
|
|
138
|
+
// speaker that lost its connection stayed silent for the life of the
|
|
139
|
+
// process.
|
|
140
|
+
var current = null; // the socket write() delegates to right now
|
|
141
|
+
var attempts = 0; // CONSECUTIVE failed dials; reset on connect
|
|
142
|
+
var redialTimer = null;
|
|
143
|
+
var cbCalled = false;
|
|
144
|
+
var everConnected = false;
|
|
145
|
+
var warnedDown = false;
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Invokes the caller's callback at most once, on the first outcome.
|
|
149
|
+
*
|
|
150
|
+
* A reconnecting speaker settles repeatedly; a callback contract does
|
|
151
|
+
* not. This flag is what stops an `(err)` from arriving hours after
|
|
152
|
+
* `(false, client)` already did.
|
|
153
|
+
*
|
|
154
|
+
* @inner
|
|
155
|
+
* @param {(string|boolean)} err - Error text, or `false` on connect.
|
|
156
|
+
* @param {object} [client] - The connected socket, on the success path.
|
|
157
|
+
* @returns {void}
|
|
158
|
+
*
|
|
159
|
+
* @example
|
|
160
|
+
* settle(false, client); // the first connect wins
|
|
161
|
+
* settle('ECONNREFUSED'); // ignored once the line above has run
|
|
162
|
+
*/
|
|
163
|
+
function settle(err, client) {
|
|
164
|
+
if ( cbCalled || !cb ) {
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
cbCalled = true;
|
|
168
|
+
cb(err, client);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Arms the next dial, backing off exponentially, capped at 30s.
|
|
173
|
+
*
|
|
174
|
+
* The timer is `unref`'d, which is what keeps the reconnect loop from
|
|
175
|
+
* resurrecting the #B276 hang: a process with nothing else to do exits
|
|
176
|
+
* instead of waiting on it, so a short-lived CLI retries only for as
|
|
177
|
+
* long as it was going to live anyway. A bundle — whose HTTP server
|
|
178
|
+
* holds the loop — keeps retrying at a ≤30s cadence and HEALS on its
|
|
179
|
+
* own if a listener appears later.
|
|
180
|
+
*
|
|
181
|
+
* @inner
|
|
182
|
+
* @returns {void}
|
|
183
|
+
*
|
|
184
|
+
* @example
|
|
185
|
+
* scheduleRedial(); // 500ms, then 1s, 2s, 4s … capped at 30s
|
|
186
|
+
*/
|
|
187
|
+
function scheduleRedial() {
|
|
188
|
+
if ( redialTimer ) {
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
var delay = Math.min(500 * Math.pow(2, attempts), 30000);
|
|
192
|
+
attempts++;
|
|
193
|
+
redialTimer = setTimeout(function () {
|
|
194
|
+
redialTimer = null;
|
|
195
|
+
dial();
|
|
196
|
+
}, delay);
|
|
197
|
+
redialTimer.unref();
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Opens ONE connection to the listener and wires its whole lifecycle.
|
|
202
|
+
*
|
|
203
|
+
* Runs once at startup and again for every reconnect. `clientOptions`
|
|
204
|
+
* is rebuilt per dial deliberately: the listener mints a fresh
|
|
205
|
+
* `sessionId` per connection, and the handshake in the `data` handler
|
|
206
|
+
* only fires while `clientOptions.sessionId` is still unset — so a
|
|
207
|
+
* shared object would make every reconnect skip its own
|
|
208
|
+
* acknowledgement and never register its loggers.
|
|
209
|
+
*
|
|
210
|
+
* @inner
|
|
211
|
+
* @returns {void}
|
|
212
|
+
*
|
|
213
|
+
* @example
|
|
214
|
+
* dial(); // adopts the new socket as `current`, synchronously
|
|
215
|
+
*/
|
|
216
|
+
function dial() {
|
|
217
|
+
var clientOptions = {
|
|
218
|
+
host : host,
|
|
219
|
+
port : port,
|
|
220
|
+
request : 'report'
|
|
221
|
+
};
|
|
222
|
+
var client = net.createConnection(clientOptions, () => {
|
|
223
|
+
// 'connect' listener.
|
|
224
|
+
attempts = 0;
|
|
225
|
+
warnedDown = false;
|
|
226
|
+
// send request
|
|
227
|
+
client.write( JSON.stringify(clientOptions) +'\r\n');
|
|
228
|
+
|
|
229
|
+
// #B323 — name a reconnect for what it is, so an operator
|
|
230
|
+
// reading the log can tell a fresh boot from a recovered one.
|
|
231
|
+
var notice = (everConnected)
|
|
232
|
+
? '[MQSpeaker] reconnected to server on host: '
|
|
233
|
+
: '[MQSpeaker] connected to server on host: ';
|
|
234
|
+
console.info(notice + host +' & port: '+ port +' :) ');
|
|
235
|
+
everConnected = true;
|
|
236
|
+
|
|
237
|
+
settle(false, client);
|
|
238
|
+
});
|
|
239
|
+
// #B323 — the socket becomes `current` at DIAL time, not at connect
|
|
240
|
+
// time: a net.Socket QUEUES writes made while it is still
|
|
241
|
+
// connecting and flushes them once it is up, which is exactly how
|
|
242
|
+
// the frames a bundle logs DURING its own mount survive. Adopting
|
|
243
|
+
// on 'connect' instead would silently drop that entire window —
|
|
244
|
+
// the same frames #B323 was filed to stop losing.
|
|
245
|
+
current = client;
|
|
246
|
+
// #B276 — the logger is a load-time singleton (`lib/index.js` requires it
|
|
247
|
+
// eagerly, `main.js` invokes `Logger()` at module scope), so this socket is
|
|
248
|
+
// opened by the mere act of requiring the framework — including on a boot
|
|
249
|
+
// that is about to throw for want of a bundle context. Without unref, that
|
|
250
|
+
// documented throw becomes unrecoverable: the caller catches the error and
|
|
251
|
+
// the process still cannot exit, because the socket keeps the loop alive.
|
|
252
|
+
// Only bites when something is actually listening on the MQ port; with
|
|
253
|
+
// nothing there the connection is refused and the handle closes itself.
|
|
254
|
+
client.unref();
|
|
255
|
+
// #B318 — `unref()` covers the socket HANDLE but NOT the pending
|
|
256
|
+
// `TCPConnectWrap` REQUEST, and a pending request keeps the event loop
|
|
257
|
+
// alive on its own. The comment above is correct only for the two states
|
|
258
|
+
// it names: a completed connect, and a REFUSED one (reachable host, no
|
|
259
|
+
// listener — the peer sends RST, the handle closes itself). It misses the
|
|
260
|
+
// third: an UNREACHABLE host (powered off, black-holed, a stale
|
|
261
|
+
// `host_v4` left behind by a DHCP reassignment) answers nothing at all,
|
|
262
|
+
// so the connect stays pending for the OS timeout — ~75s on macOS — and
|
|
263
|
+
// the process cannot exit for that whole window. That is exactly the
|
|
264
|
+
// hang #B276 set out to remove, surviving in the one state neither the
|
|
265
|
+
// fix nor its comment considered.
|
|
266
|
+
//
|
|
267
|
+
// The deadline below is itself `unref`'d, so it never keeps the loop
|
|
268
|
+
// alive either: it can only fire while something ELSE is holding the
|
|
269
|
+
// loop open, which during a stalled dial is precisely the connect
|
|
270
|
+
// request it exists to cancel. `destroy(err)` emits `error`, so the
|
|
271
|
+
// outcome flows through the established handler below — same callback
|
|
272
|
+
// contract, same warn text, no new egress path.
|
|
273
|
+
//
|
|
274
|
+
// #B323 — the verdict is deferred one event-loop PHASE, and that
|
|
275
|
+
// deferral is the whole fix. `client.connecting` does not flip when
|
|
276
|
+
// the kernel completes the connect; it flips when the POLL phase
|
|
277
|
+
// runs `afterConnect`. A timer fires in the TIMERS phase, which
|
|
278
|
+
// precedes poll — so on any boot that blocks the loop past the
|
|
279
|
+
// deadline (a bundle mount off a network filesystem, every
|
|
280
|
+
// Kubernetes-class start), the loop resumes, runs the overdue
|
|
281
|
+
// deadline FIRST, and reads `connecting === true` on a connection
|
|
282
|
+
// the kernel established seconds ago. It then destroyed a perfectly
|
|
283
|
+
// live speaker, and with no reconnect the bundle logged nowhere for
|
|
284
|
+
// the rest of its life. Re-checking from `setImmediate` moves the
|
|
285
|
+
// read to the CHECK phase, which runs AFTER poll: a queued
|
|
286
|
+
// `afterConnect` has been processed by then, so a completed connect
|
|
287
|
+
// survives while a genuinely pending one still reads `connecting`
|
|
288
|
+
// and still dies on schedule. Measured both directions — a
|
|
289
|
+
// kernel-completed dial reads true at timers / false at check, a
|
|
290
|
+
// black-holed one reads true at both — so this corrects the safety
|
|
291
|
+
// claim the guard above used to make ("it destroys only while
|
|
292
|
+
// connecting") without weakening the no-hang contract it exists for.
|
|
293
|
+
var connectDeadline = setTimeout(function () {
|
|
294
|
+
setImmediate(function () {
|
|
295
|
+
if (!client.connecting) { return; }
|
|
296
|
+
client.destroy(new Error(
|
|
297
|
+
'connect ETIMEDOUT ' + host + ':' + port +
|
|
298
|
+
' - MQ host unreachable; giving up (logging transport only)'
|
|
299
|
+
));
|
|
300
|
+
});
|
|
301
|
+
}, opt.mqConnectTimeout || 2000);
|
|
302
|
+
connectDeadline.unref();
|
|
303
|
+
client.once('connect', function () { clearTimeout(connectDeadline); });
|
|
304
|
+
client.once('error', function () { clearTimeout(connectDeadline); });
|
|
305
|
+
client.on('error', (data) => {
|
|
306
|
+
var err = data.toString();
|
|
307
|
+
if (cb) {
|
|
308
|
+
// The callback owns error reporting for this speaker, as it
|
|
309
|
+
// always has — it just settles once now (#B323).
|
|
310
|
+
return settle(err);
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
//console.error('[MQSpeaker] (error): ' + err);
|
|
314
|
+
// Identical to console.error
|
|
315
|
+
// But if have to use this one since it can be called from a
|
|
316
|
+
// spawned commande line like `npm install` post_install script
|
|
317
|
+
// console.debug('=> ', process.argv);
|
|
318
|
+
// #B323 — one warn per OUTAGE, not one per attempt. The redial
|
|
319
|
+
// below runs for the life of the process, so an un-gated warn
|
|
320
|
+
// would turn a boot with no listener into a log line every 30s
|
|
321
|
+
// forever. The flag is cleared on connect, so a LATER outage
|
|
322
|
+
// still announces itself once.
|
|
323
|
+
if ( warnedDown ) {
|
|
324
|
+
return;
|
|
325
|
+
}
|
|
326
|
+
warnedDown = true;
|
|
327
|
+
if ( !/(\/bin\/cli|\/bin\/gina)$/.test(process.argv[1]) ) {
|
|
328
|
+
process.stdout.write( format(opt.name, 'warn', '[MQSpeaker] ' + err) );
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
});
|
|
332
|
+
|
|
333
|
+
var payloads = null, i = null;
|
|
334
|
+
client.on('data', (data) => {
|
|
335
|
+
//console.log('[MQSpeaker] (data): ' + data.toString());
|
|
336
|
+
payloads = data.toString();
|
|
337
|
+
|
|
338
|
+
// from speakers & tail
|
|
339
|
+
if ( /^(\{\"|\[\{\")/.test(payloads) ) {
|
|
340
|
+
payloads = payloads.split(/\r\n/g);
|
|
341
|
+
//console.log(payloads);
|
|
342
|
+
i = -1;
|
|
343
|
+
while(i < payloads.length) {
|
|
344
|
+
i++;
|
|
345
|
+
let payload = payloads[i];
|
|
346
|
+
if (
|
|
347
|
+
/^\{/.test(payload) && /\}$/.test(payload)
|
|
348
|
+
|| /^\[\{/.test(payload) && /\}\]$/.test(payload)
|
|
349
|
+
) {
|
|
350
|
+
let pl = null;
|
|
351
|
+
try {
|
|
352
|
+
pl = JSON.parse(payload);
|
|
353
|
+
} catch(plErr) {
|
|
354
|
+
process.stdout.write( '[MQSpeaker] (exception) '+ payload +'\n' );
|
|
355
|
+
continue;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
|
|
359
|
+
if ( pl.sessionId && !clientOptions.sessionId ) {
|
|
360
|
+
// configuring
|
|
361
|
+
clientOptions.sessionId = pl.sessionId;
|
|
362
|
+
clientOptions.loggers = loggers;
|
|
363
|
+
|
|
364
|
+
// acknowledging
|
|
365
|
+
client.write( JSON.stringify(clientOptions) +'\r\n');
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
if (!pl.content) {
|
|
369
|
+
// debug only
|
|
370
|
+
//process.stdout.write( '[MQSpeaker] (undefined content) '+ JSON.stringify(pl, null) +'\n' );
|
|
371
|
+
continue;
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
// debug only when starting the framework with: ./bin/cli start >/usr/local/tmp/gina-smaple.log 2>&1
|
|
375
|
+
// process.stdout.write( '[MQSpeaker] '+ pl.content +'\n' );
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
return
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
// regular messages
|
|
383
|
+
process.stdout.write( '[MQSpeaker] '+ payloads +'\n' );
|
|
384
|
+
|
|
385
|
+
});
|
|
386
|
+
client.on('end', () => {
|
|
387
|
+
console.debug('[MQSpeaker] disconnected from server');
|
|
388
|
+
});
|
|
389
|
+
client.on('close', () => {
|
|
390
|
+
// #B323 — only the CURRENT socket may arm a redial. A
|
|
391
|
+
// superseded one closes too (it was destroyed after its
|
|
392
|
+
// replacement had already been adopted), and letting that close
|
|
393
|
+
// schedule a dial would stack a second connection on top of a
|
|
394
|
+
// healthy speaker. This is also what makes the whole loop
|
|
395
|
+
// self-limiting: exactly one socket is live at a time.
|
|
396
|
+
if ( current !== client ) {
|
|
397
|
+
return;
|
|
398
|
+
}
|
|
399
|
+
current = null;
|
|
400
|
+
scheduleRedial();
|
|
401
|
+
});
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
// #B323 — the stable facade. `mq/index.js` captures this ONCE, at
|
|
405
|
+
// logger-construction time, and holds it for the life of the process,
|
|
406
|
+
// so the reconnect above is only reachable through an indirection the
|
|
407
|
+
// consumer cannot outlive.
|
|
408
|
+
var transport = {
|
|
409
|
+
/**
|
|
410
|
+
* Writes one frame to whichever connection is current.
|
|
411
|
+
*
|
|
412
|
+
* @param {string} chunk - The serialised frame, `\r\n`-terminated.
|
|
413
|
+
* @returns {boolean} The socket's own backpressure signal, or
|
|
414
|
+
* `false` when the speaker is down and the frame was dropped.
|
|
415
|
+
*
|
|
416
|
+
* @example
|
|
417
|
+
* transport.write('{"level":"info","content":"hello"}\r\n');
|
|
418
|
+
*/
|
|
419
|
+
write: function (chunk) {
|
|
420
|
+
if ( current && current.writable ) {
|
|
421
|
+
return current.write(chunk);
|
|
422
|
+
}
|
|
423
|
+
// #B323 — down: DROP the frame rather than queue it. An
|
|
424
|
+
// unbounded buffer behind an outage of unknown length is a
|
|
425
|
+
// memory leak wearing a logging transport's clothes, and the
|
|
426
|
+
// `default` (stdout) flow carries these same lines regardless.
|
|
427
|
+
return false;
|
|
428
|
+
}
|
|
429
|
+
};
|
|
430
|
+
|
|
431
|
+
dial();
|
|
432
|
+
|
|
433
|
+
return transport;
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
|
|
437
|
+
return init(opt, cb);
|
|
438
|
+
}
|
|
439
|
+
module.exports = MQSpeaker;
|
|
@@ -168,7 +168,53 @@ var resolveDialHost = function(hostV4, bindHost, interfaces) {
|
|
|
168
168
|
return '127.0.0.1';
|
|
169
169
|
};
|
|
170
170
|
|
|
171
|
+
/**
|
|
172
|
+
* Resolves the dial target for a client whose server is CO-LOCATED BY
|
|
173
|
+
* CONSTRUCTION — the MQ speaker and the MQ file container, whose listener is
|
|
174
|
+
* started by the same install's daemon (`bin/cli`). `host_v4` is deliberately
|
|
175
|
+
* NOT an input: it is self-describing advertisement state ("the address
|
|
176
|
+
* EXTERNAL clients use to reach this machine"), never a dial target for an
|
|
177
|
+
* intra-host transport. #B320 — on a `~/.gina` shared across hosts (or after
|
|
178
|
+
* a stale address is left behind), `host_v4` can name ANOTHER machine, and
|
|
179
|
+
* `resolveDialHost`'s remote-unchanged rule then ships every log frame to
|
|
180
|
+
* that machine while the local connection story reads healthy.
|
|
181
|
+
*
|
|
182
|
+
* Rules, in order:
|
|
183
|
+
* 1. `bindHost` is a concrete, non-wildcard address of THIS machine → dial
|
|
184
|
+
* it (required when the daemon binds a specific non-loopback interface,
|
|
185
|
+
* where loopback would be refused).
|
|
186
|
+
* 2. Anything else → `127.0.0.1`. A wildcard bind includes loopback; a
|
|
187
|
+
* FOREIGN or unverifiable `bindHost` (shared/stale state again) refuses
|
|
188
|
+
* to leave the host — a loud local ECONNREFUSED beats silently
|
|
189
|
+
* delivering logs to another machine.
|
|
190
|
+
*
|
|
191
|
+
* @param {string} bindHost - The daemon's `bind_host`, when known
|
|
192
|
+
* @param {object} [interfaces] - `os.networkInterfaces()`-shaped map; used by
|
|
193
|
+
* tests for determinism. Defaults to the live `os.networkInterfaces()`.
|
|
194
|
+
* @returns {string} The host to dial
|
|
195
|
+
*
|
|
196
|
+
* @example
|
|
197
|
+
* resolveLocalDialHost('0.0.0.0'); // '127.0.0.1' (wildcard bind)
|
|
198
|
+
* resolveLocalDialHost(undefined); // '127.0.0.1' (default bind)
|
|
199
|
+
* resolveLocalDialHost('192.168.1.20'); // '192.168.1.20' when local,
|
|
200
|
+
* // '127.0.0.1' when not
|
|
201
|
+
*/
|
|
202
|
+
var resolveLocalDialHost = function(bindHost, interfaces) {
|
|
203
|
+
if ( typeof(bindHost) !== 'string' || bindHost === '' ) {
|
|
204
|
+
return '127.0.0.1';
|
|
205
|
+
}
|
|
206
|
+
var b = normalizeHost(bindHost);
|
|
207
|
+
if ( isWildcard(b) ) {
|
|
208
|
+
return '127.0.0.1';
|
|
209
|
+
}
|
|
210
|
+
if ( !isLocalAddress(b, interfaces) ) {
|
|
211
|
+
return '127.0.0.1';
|
|
212
|
+
}
|
|
213
|
+
return bindHost;
|
|
214
|
+
};
|
|
215
|
+
|
|
171
216
|
module.exports = {
|
|
172
|
-
isLocalAddress
|
|
173
|
-
resolveDialHost
|
|
217
|
+
isLocalAddress : isLocalAddress,
|
|
218
|
+
resolveDialHost : resolveDialHost,
|
|
219
|
+
resolveLocalDialHost : resolveLocalDialHost
|
|
174
220
|
};
|
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.6.
|
|
18
|
+
var _gna = require('./framework/v0.6.6/core/gna');
|
|
19
19
|
|
|
20
20
|
// SuperController and EntitySuper — loaded from their source modules
|
|
21
|
-
var SuperController = require('./framework/v0.6.
|
|
22
|
-
var EntitySuper = require('./framework/v0.6.
|
|
21
|
+
var SuperController = require('./framework/v0.6.6/core/controller');
|
|
22
|
+
var EntitySuper = require('./framework/v0.6.6/core/model/entity');
|
|
23
23
|
|
|
24
24
|
// uuid — from the lib registry
|
|
25
|
-
var uuid = require('./framework/v0.6.
|
|
25
|
+
var uuid = require('./framework/v0.6.6/lib/uuid');
|
|
26
26
|
|
|
27
27
|
module.exports = {
|
|
28
28
|
|