gina 0.5.4 → 0.5.5
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 +26 -0
- package/README.md +12 -12
- package/ROADMAP.md +11 -6
- package/bin/cli-debug +7 -1
- package/bin/gina +25 -4
- package/framework/v0.5.5/VERSION +1 -0
- package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/js/gina.js +85 -30
- package/framework/v0.5.5/core/asset/plugin/dist/vendor/gina/js/gina.min.js +573 -0
- package/framework/v0.5.5/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/v0.5.5/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- package/framework/{v0.5.4 → v0.5.5}/core/config.js +18 -4
- package/framework/{v0.5.4 → v0.5.5}/core/controller/controller.js +48 -6
- package/framework/{v0.5.4 → v0.5.5}/core/gna.js +70 -4
- package/framework/{v0.5.4 → v0.5.5}/core/server.isaac.js +115 -6
- package/framework/{v0.5.4 → v0.5.5}/core/server.js +74 -0
- package/framework/{v0.5.4 → v0.5.5}/lib/archiver/src/main.js +109 -0
- package/framework/v0.5.5/lib/cmd/bundle/man.js +10 -0
- package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/start.js +17 -3
- package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/status.js +22 -10
- package/framework/v0.5.5/lib/cmd/framework/add.js +498 -0
- package/framework/v0.5.5/lib/cmd/framework/arguments.json +13 -0
- package/framework/v0.5.5/lib/cmd/framework/help.txt +62 -0
- package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/init.js +52 -10
- package/framework/v0.5.5/lib/cmd/framework/list.js +352 -0
- package/framework/v0.5.5/lib/cmd/framework/man.js +9 -0
- package/framework/v0.5.5/lib/cmd/framework/remove.js +411 -0
- package/framework/v0.5.5/lib/cmd/framework/reset.js +206 -0
- package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/tail.js +9 -1
- package/framework/v0.5.5/lib/cmd/framework/update.js +477 -0
- package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/version.js +12 -1
- package/framework/{v0.5.4 → v0.5.5}/lib/cmd/gina-framework.1.md +10 -1
- package/framework/{v0.5.4 → v0.5.5}/lib/cmd/helper.js +4 -2
- package/framework/v0.5.5/lib/cmd/man-render.js +144 -0
- package/framework/{v0.5.4 → v0.5.5}/lib/cmd/project/arguments.json +2 -0
- package/framework/v0.5.5/lib/cmd/project/backup.js +228 -0
- package/framework/{v0.5.4 → v0.5.5}/lib/cmd/project/help.txt +18 -8
- package/framework/v0.5.5/lib/cmd/project/man.js +10 -0
- package/framework/v0.5.5/lib/cmd/project/move.js +215 -0
- package/framework/v0.5.5/lib/cmd/project/restore.js +221 -0
- package/framework/{v0.5.4 → v0.5.5}/lib/cmd/project/status.js +24 -12
- package/framework/v0.5.5/lib/cmd/service/man.js +10 -0
- package/framework/{v0.5.4 → v0.5.5}/lib/index.js +8 -0
- package/framework/{v0.5.4 → v0.5.5}/lib/logger/src/containers/mq/listener.js +6 -1
- package/framework/{v0.5.4 → v0.5.5}/lib/proc.js +7 -0
- package/framework/v0.5.5/lib/ws-query/package.json +10 -0
- package/framework/v0.5.5/lib/ws-query/src/main.js +145 -0
- package/framework/{v0.5.4 → v0.5.5}/package.json +2 -2
- package/gna.js +4 -4
- package/llms.txt +20 -4
- package/package.json +8 -6
- package/script/post_install.js +7 -1
- package/script/smoke_in_container.js +336 -0
- package/script/smoke_test_tarball.js +283 -0
- package/utils/helper.js +34 -7
- package/utils/runtime.js +103 -0
- package/framework/v0.5.4/VERSION +0 -1
- package/framework/v0.5.4/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -572
- package/framework/v0.5.4/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/v0.5.4/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- package/framework/v0.5.4/lib/cmd/framework/arguments.json +0 -7
- package/framework/v0.5.4/lib/cmd/framework/help.txt +0 -36
- package/framework/v0.5.4/lib/cmd/framework/update.js +0 -0
- package/framework/v0.5.4/lib/cmd/project/move.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/AUTHORS +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/LICENSE +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/asset/html/nolayout.html +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/asset/html/static.html +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/asset/img/android-chrome-192x192.png +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/asset/img/android-chrome-512x512.png +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/asset/img/apple-touch-icon.png +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/asset/img/favicon-16x16.png +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/asset/img/favicon-32x32.png +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/asset/img/favicon.ico +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/connectors/ai/index.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/connectors/ai/lib/connector.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/connectors/couchbase/index.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/connectors/couchbase/lib/connector.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/connectors/couchbase/lib/connector.v3.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/connectors/couchbase/lib/connector.v4.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/connectors/couchbase/lib/n1ql.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/connectors/couchbase/lib/session-store.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/connectors/mongodb/index.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/connectors/mongodb/lib/connector.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/connectors/mongodb/lib/session-store.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/connectors/mysql/index.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/connectors/mysql/lib/connector.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/connectors/postgresql/index.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/connectors/postgresql/lib/connector.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/connectors/redis/index.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/connectors/redis/lib/session-store.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/connectors/scylladb/index.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/connectors/scylladb/lib/connector.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/connectors/scylladb/lib/session-store.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/connectors/sql-parser.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/connectors/sqlite/index.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/connectors/sqlite/lib/connector.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/connectors/sqlite/lib/session-store.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/content.encoding +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/controller/controller.framework.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/controller/controller.render-json.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/controller/controller.render-nunjucks-async.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/controller/controller.render-nunjucks.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/controller/controller.render-stream.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/controller/controller.render-swig-async.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/controller/controller.render-swig.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/controller/controller.render-v1.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/controller/index.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/controller/inspector-window-emit.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/deps/busboy-1.6.0/LICENSE +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/deps/busboy-1.6.0/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/deps/busboy-1.6.0/lib/index.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/deps/busboy-1.6.0/lib/types/multipart.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/deps/busboy-1.6.0/lib/types/urlencoded.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/deps/busboy-1.6.0/lib/utils.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/deps/busboy-1.6.0/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/deps/streamsearch-1.1.0/LICENSE +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/deps/streamsearch-1.1.0/lib/sbmh.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/deps/streamsearch-1.1.0/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/dev/index.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/dev/lib/class.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/dev/lib/factory.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/dev/lib/tools.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/locales/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/locales/currency.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/locales/dist/language/en.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/locales/dist/language/fr.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/locales/dist/region/en.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/locales/dist/region/fr.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/locales/index.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/mime.types +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/model/entity.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/model/index.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/model/template/entityFactory.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/model/template/index.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/index.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/csrf/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/csrf/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/csrf/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/coep/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/coep/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/coop/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/coop/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/corp/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/corp/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/csp/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/csp/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/hsts/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/hsts/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/session/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/session/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/session/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/storage/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/storage/build.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/storage/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/storage/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/validator/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/validator/build.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/validator/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/validator/src/form-validator.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/validator/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/router.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/server.express.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/status.codes +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/_gitignore +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle/config/app.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle/config/connectors.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle/config/routing.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle/config/settings.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle/config/templates.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle/config/watchers.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle/index.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle/locales/en.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle_public/css/default.css +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle_public/css/home.css +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle_public/readme.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle_public/sw.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/command/gina.bat.tpl +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/command/gina.tpl +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/conf/env.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/conf/manifest.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/conf/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/conf/settings.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/conf/statics.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/conf/templates.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/error/client/json/401.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/error/client/json/403.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/error/client/json/404.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/error/server/html/50x.html +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/error/server/json/500.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/error/server/json/503.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/core/template/extensions/logger/config.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/helpers/console.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/helpers/context.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/helpers/data/LICENSE +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/helpers/data/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/helpers/data/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/helpers/data/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/helpers/dateFormat.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/helpers/index.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/helpers/json/LICENSE +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/helpers/json/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/helpers/json/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/helpers/json/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/helpers/path.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/helpers/plugins/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/helpers/plugins/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/helpers/plugins/src/api-error.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/helpers/plugins/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/helpers/prototypes.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/helpers/task.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/helpers/text.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/admin/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/admin/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/archiver/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/archiver/build.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/archiver/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/archiver/src/dep/jszip.min.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/async/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/async/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cache/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cache/build.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cache/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cache/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/aliases.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/add.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/arguments.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/build.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/copy.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/cp.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/help.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/help.txt +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/list.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/mcp-start.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/mcp.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/oas.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/openapi.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/remove.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/rename.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/restart.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/rm.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/stop.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/cache/stats.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/connector/add.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/connector/arguments.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/connector/help.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/connector/help.txt +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/connector/list.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/connector/migrate.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/connector/remove.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/connector/rm.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/env/add.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/env/get.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/env/help.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/env/help.txt +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/env/link-dev.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/env/list.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/env/remove.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/env/rm.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/env/set.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/env/unset.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/env/use.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/build.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/dot.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/get.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/help.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/link-node-modules.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/link.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/msg.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/open.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/restart.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/set.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/start.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/status.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/stop.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/gina-dev.1.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/gina.1.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/i18n/add.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/i18n/arguments.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/i18n/export.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/i18n/help.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/i18n/help.txt +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/i18n/import.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/i18n/scan.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/index.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/inspector/help.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/inspector/help.txt +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/inspector/open.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/minion/arguments.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/minion/help.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/minion/help.txt +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/minion/kill.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/minion/list.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/msg.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/port/help.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/port/help.txt +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/port/inc/scan.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/port/list.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/port/reset.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/port/set.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/project/add.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/project/build.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/project/help.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/project/import.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/project/list.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/project/remove.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/project/rename.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/project/restart.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/project/rm.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/project/start.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/project/stop.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/protocol/arguments.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/protocol/help.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/protocol/help.txt +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/protocol/list.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/protocol/remove.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/protocol/set.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/scope/add.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/scope/help.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/scope/help.txt +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/scope/link-local.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/scope/link-production.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/scope/list.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/scope/remove.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/scope/rm.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/scope/use.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/secrets/arguments.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/secrets/check.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/secrets/help.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/secrets/help.txt +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/secrets/scan.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/service/help.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/service/help.txt +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/service/list.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/service/start.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/view/add.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd-status-format/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cmd-status-format/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/collection/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/collection/build.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/collection/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/collection/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/config.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/connector-registry/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/connector-registry/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cron/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cron/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/cron/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/domain/LICENSE +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/domain/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/domain/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/domain/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/generator/index.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/i18n/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/i18n/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/inherits/LICENSE +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/inherits/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/inherits/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/inherits/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/inspector-redact/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/inspector-redact/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/instrument/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/instrument/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/job/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/job/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/logger/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/logger/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/logger/src/containers/default/index.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/logger/src/containers/file/index.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/logger/src/containers/mq/index.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/logger/src/containers/mq/speaker.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/logger/src/helper.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/logger/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/math/index.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/mcp-dispatch/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/mcp-dispatch/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/mcp-http/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/mcp-http/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/mcp-server/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/mcp-server/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/merge/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/merge/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/merge/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/metrics/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/metrics/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/model.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/nunjucks-filters/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/nunjucks-filters/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/nunjucks-filters/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/nunjucks-resolver/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/nunjucks-resolver/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/routing/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/routing/build.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/routing/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/routing/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/routing/src/radix.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/routing-introspect/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/routing-introspect/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/secrets/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/secrets/src/backends/env.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/secrets/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/session-store.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/shell.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/state.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/swig-filters/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/swig-filters/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/swig-filters/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/swig-resolver/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/swig-resolver/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/template-loaders/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/template-loaders/src/loaders/http.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/template-loaders/src/loaders/memory.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/template-loaders/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/url/README.md +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/url/index.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/url/routing.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/uuid/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/uuid/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/validator.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/watcher/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/watcher/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/ws-framing/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/ws-framing/src/main.js +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/ws-session/package.json +0 -0
- /package/framework/{v0.5.4 → v0.5.5}/lib/ws-session/src/main.js +0 -0
|
@@ -0,0 +1,477 @@
|
|
|
1
|
+
var fs = require('fs');
|
|
2
|
+
var nodePath = require('path');
|
|
3
|
+
var console = lib.logger;
|
|
4
|
+
|
|
5
|
+
// Reuse the install-time strict-semver comparator that post_install.js uses to
|
|
6
|
+
// gate its def_framework overwrite (the "never regress" guard). It lives in the
|
|
7
|
+
// repo-root script/ tree (NOT under framework/v*/lib) because post_install runs
|
|
8
|
+
// before any framework helper is loadable; it ships to npm (not in .npmignore's
|
|
9
|
+
// denylist) and the relative depth from here to the repo root is invariant
|
|
10
|
+
// across framework-dir renames, so this require resolves for an npm-installed
|
|
11
|
+
// gina as well as the dev checkout. Single source of truth for the semver rules.
|
|
12
|
+
var versionCompare = require('../../../../../script/version_compare');
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @module gina/lib/cmd/framework/update
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Reconcile the `~/.gina/` state files to the installed framework version.
|
|
19
|
+
*
|
|
20
|
+
* This is a STATE-MIGRATION command, not an npm self-update — it automates the
|
|
21
|
+
* manual "Post-merge state check" a maintainer otherwise runs by hand after a
|
|
22
|
+
* `git merge` bumps the framework version (npm's `post_install.js` does NOT run
|
|
23
|
+
* on a git merge, so the state files drift). It brings three scalars back in
|
|
24
|
+
* line with the active version:
|
|
25
|
+
*
|
|
26
|
+
* - `~/.gina/main.json` `def_framework`
|
|
27
|
+
* - `~/.gina/main.json` `frameworks[<shortVersion>]` (registers the version)
|
|
28
|
+
* - `~/.gina/<shortVersion>/settings.json` `version` + `def_framework`
|
|
29
|
+
*
|
|
30
|
+
* `gina.db` (the canonical SQLite store) is reconciled automatically: every
|
|
31
|
+
* write goes through `lib.generator.createFileFromDataSync`, which routes known
|
|
32
|
+
* `~/.gina/` state paths through `lib/state.js` `StateStore.write` (SQLite +
|
|
33
|
+
* JSON sidecar in lockstep). So a `--fix` repairs both stores even when a prior
|
|
34
|
+
* raw write left them drifted.
|
|
35
|
+
*
|
|
36
|
+
* Default mode is a DRY RUN — nothing is written. Pass `--fix` (or `--apply`) to
|
|
37
|
+
* reconcile. `--dry-run` forces read-only even alongside `--fix`. Output is a
|
|
38
|
+
* human-readable summary by default, JSON with `--format=json`.
|
|
39
|
+
*
|
|
40
|
+
* A strict-semver "never regress" guard (shared with `post_install.js`) protects
|
|
41
|
+
* the scalar pointers: when the target version is strictly OLDER than the value
|
|
42
|
+
* already recorded, the scalar write is skipped (the newer recorded state is
|
|
43
|
+
* preserved). The `frameworks[<short>]` LIST is still updated in that case, so a
|
|
44
|
+
* locally-installed older tarball stays visible — exactly post_install's
|
|
45
|
+
* behaviour.
|
|
46
|
+
*
|
|
47
|
+
* Per-shortVersion METADATA maps (`protocols` / `schemes` / `scopes` / `envs` /
|
|
48
|
+
* `cultures` / ...) are NOT seeded here — that is `framework:init`'s job, run on
|
|
49
|
+
* the first `bundle:start`. When the target short is missing those entries this
|
|
50
|
+
* command WARNS and points at the seeding step; it never writes them. npm
|
|
51
|
+
* self-update (the behaviour this command's name once advertised) is likewise
|
|
52
|
+
* out of scope — run `npm i -g gina@latest` for that.
|
|
53
|
+
*
|
|
54
|
+
* Flags:
|
|
55
|
+
* --to-version=<v> Reconcile to <v> instead of the installed GINA_VERSION.
|
|
56
|
+
* --fix | --apply Apply the reconcile. Without it, the scan is read-only.
|
|
57
|
+
* --dry-run Force read-only even when --fix is present.
|
|
58
|
+
* --format=json Emit machine-readable JSON instead of the text summary.
|
|
59
|
+
*
|
|
60
|
+
* Usage:
|
|
61
|
+
* gina framework:update
|
|
62
|
+
* gina framework:update --fix
|
|
63
|
+
* gina framework:update --to-version=0.5.5-alpha.2 --fix
|
|
64
|
+
* gina framework:update --format=json
|
|
65
|
+
*
|
|
66
|
+
* @class Update
|
|
67
|
+
* @constructor
|
|
68
|
+
* @param {object} opt - Parsed command-line options (carries opt.client for socket output)
|
|
69
|
+
*/
|
|
70
|
+
function Update(opt) {
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Per-short metadata maps in `main.json` keyed by `<shortVersion>`. This
|
|
74
|
+
* command only CHECKS their presence (to warn) — it never seeds them.
|
|
75
|
+
* Accessed as `main[m]` (string key), never via a literal map-name
|
|
76
|
+
* dot-access, so the "does not seed metadata" negative invariant stays a
|
|
77
|
+
* clean code-absence check. `framework:init` owns seeding these on the
|
|
78
|
+
* first bundle start.
|
|
79
|
+
*
|
|
80
|
+
* @inner
|
|
81
|
+
* @constant
|
|
82
|
+
* @type {string[]}
|
|
83
|
+
*/
|
|
84
|
+
var SEED_MAPS = ['protocols', 'schemes', 'scopes', 'envs', 'cultures', 'log_levels'];
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Resolve the home dir, target version, and flags; scan the state files;
|
|
88
|
+
* optionally apply the reconcile; emit the report in the chosen format.
|
|
89
|
+
*
|
|
90
|
+
* @inner
|
|
91
|
+
* @private
|
|
92
|
+
*/
|
|
93
|
+
var init = function () {
|
|
94
|
+
|
|
95
|
+
var homeDir = resolveHomeDir();
|
|
96
|
+
|
|
97
|
+
var format = readFlagValue('format');
|
|
98
|
+
if (format && format !== 'json') {
|
|
99
|
+
console.error('Unknown --format value `' + format + '`. Supported: json.');
|
|
100
|
+
process.exit(1);
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
var asJson = (format === 'json');
|
|
104
|
+
|
|
105
|
+
var target = readFlagValue('to-version') || (typeof(GINA_VERSION) != 'undefined' ? GINA_VERSION : null);
|
|
106
|
+
if (!target || !/^v?\d+\.\d+\.\d+/.test(String(target))) {
|
|
107
|
+
console.error('Cannot determine a target version. Pass --to-version=<version> (got `' + target + '`).');
|
|
108
|
+
process.exit(1);
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
target = String(target).replace(/^v/, '');
|
|
112
|
+
var targetShort = target.split(/\./g).splice(0, 2).join('.');
|
|
113
|
+
|
|
114
|
+
var fix = hasFlag('fix') || hasFlag('apply');
|
|
115
|
+
var dryRun = hasFlag('dry-run');
|
|
116
|
+
var write = fix && !dryRun;
|
|
117
|
+
|
|
118
|
+
// --- read main.json (hard error if missing/unparseable) -------------
|
|
119
|
+
var mainPath = _(homeDir + '/main.json', true);
|
|
120
|
+
if (!fs.existsSync(mainPath)) {
|
|
121
|
+
console.error('`' + mainPath + '` not found. Run `gina framework:init` (or reinstall gina) first.');
|
|
122
|
+
process.exit(1);
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
var main;
|
|
126
|
+
try {
|
|
127
|
+
main = requireJSON(mainPath);
|
|
128
|
+
} catch (e) {
|
|
129
|
+
console.error('Cannot parse `' + mainPath + '`: ' + (e.message || e));
|
|
130
|
+
process.exit(1);
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// --- read <short>/settings.json (soft — may not exist on a new short)
|
|
135
|
+
var settingsPath = _(homeDir + '/' + targetShort + '/settings.json', true);
|
|
136
|
+
var settingsExists = fs.existsSync(settingsPath);
|
|
137
|
+
var settings = null;
|
|
138
|
+
var settingsParseError = null;
|
|
139
|
+
if (settingsExists) {
|
|
140
|
+
try {
|
|
141
|
+
settings = requireJSON(settingsPath);
|
|
142
|
+
} catch (e) {
|
|
143
|
+
settingsParseError = e.message || String(e);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// The "never regress" guard compares the target against the recorded
|
|
148
|
+
// def_framework (the same axis post_install guards). When the target is
|
|
149
|
+
// strictly older we preserve the recorded scalar but still register the
|
|
150
|
+
// version in the frameworks list.
|
|
151
|
+
var regress = versionCompare.isStrictlyOlder(target, main.def_framework);
|
|
152
|
+
|
|
153
|
+
var report = buildReport(main, settings, settingsPath, settingsExists, settingsParseError, target, targetShort, regress, homeDir, write);
|
|
154
|
+
|
|
155
|
+
if (write && report.fixableCount > 0) {
|
|
156
|
+
applyFixes(report, main, settings, mainPath, settingsPath, target, targetShort, regress);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
if (asJson) {
|
|
160
|
+
emitJson(report);
|
|
161
|
+
} else {
|
|
162
|
+
emitText(report);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
process.exit(0);
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Resolve `~/.gina` the same way `lib/state.js` does, so the paths this
|
|
170
|
+
* handler builds satisfy `StateStore.isStatePath` (which routes the write to
|
|
171
|
+
* SQLite + sidecar) and a `GINA_HOMEDIR` override (tests / containers) is
|
|
172
|
+
* honoured on both the read and write side.
|
|
173
|
+
*
|
|
174
|
+
* @inner
|
|
175
|
+
* @private
|
|
176
|
+
* @returns {string}
|
|
177
|
+
*/
|
|
178
|
+
var resolveHomeDir = function () {
|
|
179
|
+
if (typeof(getEnvVar) === 'function') {
|
|
180
|
+
var override = getEnvVar('GINA_HOMEDIR');
|
|
181
|
+
if (override) return override;
|
|
182
|
+
}
|
|
183
|
+
if (typeof(GINA_HOMEDIR) !== 'undefined' && GINA_HOMEDIR) return GINA_HOMEDIR;
|
|
184
|
+
return require('os').homedir() + nodePath.sep + '.gina';
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* True when a bare boolean flag (`--fix`, `--apply`, `--dry-run`) is present
|
|
189
|
+
* on argv. filterArgs never strips a no-`=` token, so argv is authoritative.
|
|
190
|
+
*
|
|
191
|
+
* @inner
|
|
192
|
+
* @private
|
|
193
|
+
* @param {string} name - Flag name without the leading `--`
|
|
194
|
+
* @returns {boolean}
|
|
195
|
+
*/
|
|
196
|
+
var hasFlag = function (name) {
|
|
197
|
+
var re = new RegExp('^--' + name + '$');
|
|
198
|
+
for (var i = 3; i < process.argv.length; i++) {
|
|
199
|
+
if (typeof(process.argv[i]) == 'string' && re.test(process.argv[i])) return true;
|
|
200
|
+
}
|
|
201
|
+
return false;
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* Read a `--name=value` flag. Reads argv first (where it survives for this
|
|
206
|
+
* command — `framework:update` trips filterArgs' `setget` gate so argv is not
|
|
207
|
+
* rewritten); falls back to `process.gina.GINA_<NAME>` for the case where
|
|
208
|
+
* filterArgs hoisted the `=value` token. Mirrors the project:backup flag idiom.
|
|
209
|
+
*
|
|
210
|
+
* @inner
|
|
211
|
+
* @private
|
|
212
|
+
* @param {string} name - Flag name without the leading `--`
|
|
213
|
+
* @returns {string|null}
|
|
214
|
+
*/
|
|
215
|
+
var readFlagValue = function (name) {
|
|
216
|
+
var prefix = '--' + name + '=';
|
|
217
|
+
for (var i = 3; i < process.argv.length; i++) {
|
|
218
|
+
if (typeof(process.argv[i]) == 'string' && process.argv[i].indexOf(prefix) === 0) {
|
|
219
|
+
return process.argv[i].slice(prefix.length);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
var envKey = 'GINA_' + name.replace(/-/g, '_').toUpperCase();
|
|
223
|
+
if (typeof(process.gina) != 'undefined' && typeof(process.gina[envKey]) != 'undefined') {
|
|
224
|
+
return process.gina[envKey];
|
|
225
|
+
}
|
|
226
|
+
return null;
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* Build the reconcile report: one entry per checked field, plus warnings for
|
|
231
|
+
* deferred metadata seeding and a missing/unparseable settings.json. Does NOT
|
|
232
|
+
* mutate any state — pure analysis. `applyFixes` performs the writes.
|
|
233
|
+
*
|
|
234
|
+
* @inner
|
|
235
|
+
* @private
|
|
236
|
+
* @returns {Report}
|
|
237
|
+
*/
|
|
238
|
+
var buildReport = function (main, settings, settingsPath, settingsExists, settingsParseError, target, targetShort, regress, homeDir, write) {
|
|
239
|
+
var checks = [];
|
|
240
|
+
var warnings = [];
|
|
241
|
+
|
|
242
|
+
// main.json def_framework (regress-guarded scalar)
|
|
243
|
+
checks.push(scalarCheck('main.json', 'def_framework', main.def_framework, target, regress));
|
|
244
|
+
|
|
245
|
+
// main.json frameworks[<short>] membership (always reconcilable — register the version)
|
|
246
|
+
var list = (main.frameworks && Array.isArray(main.frameworks[targetShort])) ? main.frameworks[targetShort] : null;
|
|
247
|
+
var listed = !!(list && list.indexOf(target) > -1);
|
|
248
|
+
checks.push({
|
|
249
|
+
file : 'main.json',
|
|
250
|
+
field : 'frameworks[' + targetShort + ']',
|
|
251
|
+
current : listed ? ('contains ' + target) : (list ? 'missing ' + target : 'no ' + targetShort + ' entry'),
|
|
252
|
+
target : 'contains ' + target,
|
|
253
|
+
status : listed ? 'in-sync' : 'drift',
|
|
254
|
+
fixable : !listed
|
|
255
|
+
});
|
|
256
|
+
|
|
257
|
+
// <short>/settings.json version + def_framework
|
|
258
|
+
if (!settingsExists) {
|
|
259
|
+
warnings.push('`' + settingsPath + '` not found — settings for short `' + targetShort + '` are not seeded yet. Run `gina bundle:start` or `gina framework:init` to create it. (framework:update does not scaffold settings.json.)');
|
|
260
|
+
} else if (settingsParseError) {
|
|
261
|
+
warnings.push('`' + settingsPath + '` could not be parsed (' + settingsParseError + ') — skipped.');
|
|
262
|
+
} else {
|
|
263
|
+
checks.push(scalarCheck(targetShort + '/settings.json', 'version', settings.version, target, regress));
|
|
264
|
+
checks.push(scalarCheck(targetShort + '/settings.json', 'def_framework', settings.def_framework, target, regress));
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
// deferred metadata-seeding warning (we never write these maps)
|
|
268
|
+
var missingMaps = [];
|
|
269
|
+
for (var i = 0; i < SEED_MAPS.length; i++) {
|
|
270
|
+
var m = SEED_MAPS[i];
|
|
271
|
+
if (!main[m] || typeof(main[m][targetShort]) == 'undefined') missingMaps.push(m);
|
|
272
|
+
}
|
|
273
|
+
if (missingMaps.length > 0) {
|
|
274
|
+
warnings.push('main.json has no `' + targetShort + '` entry for: ' + missingMaps.join(', ') + '. These per-version metadata maps are seeded by `gina framework:init` on the first `gina bundle:start` — framework:update does not seed them.');
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
var fixableCount = 0;
|
|
278
|
+
var driftCount = 0;
|
|
279
|
+
var skipCount = 0;
|
|
280
|
+
for (var c = 0; c < checks.length; c++) {
|
|
281
|
+
if (checks[c].fixable) fixableCount++;
|
|
282
|
+
if (checks[c].status === 'drift') driftCount++;
|
|
283
|
+
if (checks[c].status === 'regression-skip') skipCount++;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
return {
|
|
287
|
+
mode : write ? 'fix' : 'dry-run',
|
|
288
|
+
homeDir : homeDir,
|
|
289
|
+
target : target,
|
|
290
|
+
targetShort : targetShort,
|
|
291
|
+
regress : regress,
|
|
292
|
+
checks : checks,
|
|
293
|
+
warnings : warnings,
|
|
294
|
+
fixableCount : fixableCount,
|
|
295
|
+
driftCount : driftCount,
|
|
296
|
+
skipCount : skipCount,
|
|
297
|
+
inSync : (driftCount === 0 && skipCount === 0)
|
|
298
|
+
};
|
|
299
|
+
};
|
|
300
|
+
|
|
301
|
+
/**
|
|
302
|
+
* Classify one scalar field against the target under the regression guard.
|
|
303
|
+
* Equal → in-sync; different & target newer-or-equal → drift (fixable);
|
|
304
|
+
* different & target older → regression-skip (preserve recorded value).
|
|
305
|
+
*
|
|
306
|
+
* @inner
|
|
307
|
+
* @private
|
|
308
|
+
* @param {string} file
|
|
309
|
+
* @param {string} field
|
|
310
|
+
* @param {*} current
|
|
311
|
+
* @param {string} target
|
|
312
|
+
* @param {boolean} regress
|
|
313
|
+
* @returns {Check}
|
|
314
|
+
*/
|
|
315
|
+
var scalarCheck = function (file, field, current, target, regress) {
|
|
316
|
+
if (current === target) {
|
|
317
|
+
return { file: file, field: field, current: current, target: target, status: 'in-sync', fixable: false };
|
|
318
|
+
}
|
|
319
|
+
if (regress) {
|
|
320
|
+
return { file: file, field: field, current: current, target: target, status: 'regression-skip', fixable: false };
|
|
321
|
+
}
|
|
322
|
+
return { file: file, field: field, current: (typeof(current) == 'undefined' ? '(unset)' : current), target: target, status: 'drift', fixable: true };
|
|
323
|
+
};
|
|
324
|
+
|
|
325
|
+
/**
|
|
326
|
+
* Apply the fixable checks in place and persist via createFileFromDataSync
|
|
327
|
+
* (which routes the state paths through StateStore → SQLite + JSON sidecar).
|
|
328
|
+
* The regression guard has already been folded into each check's `fixable`
|
|
329
|
+
* flag, so the scalar writes only fire when the target is not a regression;
|
|
330
|
+
* the frameworks-list registration always fires. Marks each applied check
|
|
331
|
+
* `fixed: true`.
|
|
332
|
+
*
|
|
333
|
+
* @inner
|
|
334
|
+
* @private
|
|
335
|
+
*/
|
|
336
|
+
var applyFixes = function (report, main, settings, mainPath, settingsPath, target, targetShort, regress) {
|
|
337
|
+
var mainDirty = false;
|
|
338
|
+
var settingsDirty = false;
|
|
339
|
+
|
|
340
|
+
for (var i = 0; i < report.checks.length; i++) {
|
|
341
|
+
var chk = report.checks[i];
|
|
342
|
+
if (!chk.fixable) continue;
|
|
343
|
+
|
|
344
|
+
if (chk.file === 'main.json' && chk.field === 'def_framework') {
|
|
345
|
+
main.def_framework = target;
|
|
346
|
+
mainDirty = true;
|
|
347
|
+
chk.fixed = true;
|
|
348
|
+
} else if (chk.file === 'main.json' && /^frameworks\[/.test(chk.field)) {
|
|
349
|
+
if (!main.frameworks) main.frameworks = {};
|
|
350
|
+
if (!Array.isArray(main.frameworks[targetShort])) main.frameworks[targetShort] = [];
|
|
351
|
+
if (main.frameworks[targetShort].indexOf(target) < 0) main.frameworks[targetShort].push(target);
|
|
352
|
+
mainDirty = true;
|
|
353
|
+
chk.fixed = true;
|
|
354
|
+
} else if (/settings\.json$/.test(chk.file) && chk.field === 'version') {
|
|
355
|
+
settings.version = target;
|
|
356
|
+
settingsDirty = true;
|
|
357
|
+
chk.fixed = true;
|
|
358
|
+
} else if (/settings\.json$/.test(chk.file) && chk.field === 'def_framework') {
|
|
359
|
+
settings.def_framework = target;
|
|
360
|
+
settingsDirty = true;
|
|
361
|
+
chk.fixed = true;
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
if (mainDirty) lib.generator.createFileFromDataSync(main, mainPath);
|
|
366
|
+
if (settingsDirty) lib.generator.createFileFromDataSync(settings, settingsPath);
|
|
367
|
+
};
|
|
368
|
+
|
|
369
|
+
/**
|
|
370
|
+
* Print the human-readable summary to the socket client / terminal.
|
|
371
|
+
*
|
|
372
|
+
* @inner
|
|
373
|
+
* @private
|
|
374
|
+
* @param {Report} report
|
|
375
|
+
*/
|
|
376
|
+
var emitText = function (report) {
|
|
377
|
+
var prefix = (report.mode === 'fix') ? '[fix]' : '[dry-run]';
|
|
378
|
+
console.log(prefix + ' framework:update — target ' + report.target + ' (short ' + report.targetShort + ')');
|
|
379
|
+
|
|
380
|
+
var lastFile = null;
|
|
381
|
+
for (var i = 0; i < report.checks.length; i++) {
|
|
382
|
+
var c = report.checks[i];
|
|
383
|
+
if (c.file !== lastFile) {
|
|
384
|
+
console.log(' ' + c.file);
|
|
385
|
+
lastFile = c.file;
|
|
386
|
+
}
|
|
387
|
+
var line;
|
|
388
|
+
if (c.status === 'in-sync') {
|
|
389
|
+
line = c.field + ': ' + c.current + ' — in sync';
|
|
390
|
+
} else if (c.status === 'regression-skip') {
|
|
391
|
+
line = c.field + ': ' + c.current + ' (recorded) vs ' + c.target + ' (target) — SKIPPED (regression guard: target is older; preserving recorded)';
|
|
392
|
+
} else { // drift
|
|
393
|
+
var verb = c.fixed ? 'FIXED' : 'DRIFT';
|
|
394
|
+
line = c.field + ': ' + c.current + ' → ' + c.target + ' — ' + verb + (c.fixed ? '' : ' (fixable)');
|
|
395
|
+
}
|
|
396
|
+
console.log(' ' + line);
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
for (var w = 0; w < report.warnings.length; w++) {
|
|
400
|
+
console.log(' WARN ' + report.warnings[w]);
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
console.log('');
|
|
404
|
+
if (report.mode === 'fix') {
|
|
405
|
+
var fixedCount = 0;
|
|
406
|
+
for (var f = 0; f < report.checks.length; f++) { if (report.checks[f].fixed) fixedCount++; }
|
|
407
|
+
if (fixedCount > 0) {
|
|
408
|
+
console.log('Reconciled ' + fixedCount + ' item(s) to ' + report.target + '.' + (report.skipCount > 0 ? ' ' + report.skipCount + ' skipped by the regression guard.' : ''));
|
|
409
|
+
} else if (report.skipCount > 0) {
|
|
410
|
+
console.log('Nothing written — ' + report.skipCount + ' item(s) skipped by the regression guard (target older than recorded).');
|
|
411
|
+
} else {
|
|
412
|
+
console.log('Already in sync — nothing to reconcile.');
|
|
413
|
+
}
|
|
414
|
+
} else {
|
|
415
|
+
if (report.fixableCount > 0) {
|
|
416
|
+
console.log('Re-run with --fix to reconcile ' + report.fixableCount + ' item(s).' + (report.skipCount > 0 ? ' ' + report.skipCount + ' item(s) would be skipped by the regression guard.' : ''));
|
|
417
|
+
} else if (report.skipCount > 0) {
|
|
418
|
+
console.log(report.skipCount + ' item(s) skipped by the regression guard (target older than recorded) — nothing to fix.');
|
|
419
|
+
} else {
|
|
420
|
+
console.log('Already in sync — nothing to reconcile.');
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
};
|
|
424
|
+
|
|
425
|
+
/**
|
|
426
|
+
* Emit the machine-readable JSON report to the socket client / terminal.
|
|
427
|
+
*
|
|
428
|
+
* @inner
|
|
429
|
+
* @private
|
|
430
|
+
* @param {Report} report
|
|
431
|
+
*/
|
|
432
|
+
var emitJson = function (report) {
|
|
433
|
+
console.log(JSON.stringify({
|
|
434
|
+
command : 'framework:update',
|
|
435
|
+
mode : report.mode,
|
|
436
|
+
homeDir : report.homeDir,
|
|
437
|
+
target : report.target,
|
|
438
|
+
targetShort : report.targetShort,
|
|
439
|
+
regressionGuard : report.regress,
|
|
440
|
+
inSync : report.inSync,
|
|
441
|
+
fixableCount : report.fixableCount,
|
|
442
|
+
skippedCount : report.skipCount,
|
|
443
|
+
checks : report.checks,
|
|
444
|
+
warnings : report.warnings
|
|
445
|
+
}, null, 2));
|
|
446
|
+
};
|
|
447
|
+
|
|
448
|
+
init();
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
/**
|
|
452
|
+
* @typedef {object} Check
|
|
453
|
+
* @property {string} file - `main.json` or `<short>/settings.json`
|
|
454
|
+
* @property {string} field - The reconciled field (e.g. `def_framework`)
|
|
455
|
+
* @property {*} current - Current recorded value (or membership description)
|
|
456
|
+
* @property {string} target - Desired value
|
|
457
|
+
* @property {string} status - `in-sync` | `drift` | `regression-skip`
|
|
458
|
+
* @property {boolean} fixable - True when `--fix` would write this field
|
|
459
|
+
* @property {boolean} [fixed] - True once `applyFixes` wrote it
|
|
460
|
+
*/
|
|
461
|
+
|
|
462
|
+
/**
|
|
463
|
+
* @typedef {object} Report
|
|
464
|
+
* @property {string} mode - `dry-run` | `fix`
|
|
465
|
+
* @property {string} homeDir - Resolved `~/.gina` directory
|
|
466
|
+
* @property {string} target - Reconcile target version
|
|
467
|
+
* @property {string} targetShort - Target `major.minor`
|
|
468
|
+
* @property {boolean} regress - True when the target is strictly older than the recorded def_framework
|
|
469
|
+
* @property {Check[]} checks - Per-field findings
|
|
470
|
+
* @property {string[]} warnings - Deferred-seeding / missing-file notices
|
|
471
|
+
* @property {number} fixableCount - Count of fixable checks
|
|
472
|
+
* @property {number} driftCount - Count of drift checks
|
|
473
|
+
* @property {number} skipCount - Count of regression-skip checks
|
|
474
|
+
* @property {boolean} inSync - True when no drift and no regression-skip
|
|
475
|
+
*/
|
|
476
|
+
|
|
477
|
+
module.exports = Update;
|
|
@@ -60,6 +60,17 @@ function Version(opt){
|
|
|
60
60
|
engine = '';
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
+
// Read the framework MIDDLEWARE file defensively — it is normally created
|
|
64
|
+
// by post_install / framework:init (checkIfMiddlewareFile), but if it is
|
|
65
|
+
// still absent (e.g. a read-only framework dir) degrade to 'none' instead
|
|
66
|
+
// of crashing, matching the "when available" guard on the engine read above.
|
|
67
|
+
var middleware = 'none';
|
|
68
|
+
try {
|
|
69
|
+
middleware = fs.readFileSync(_( opt.frameworkPath + '/MIDDLEWARE')).toString() || 'none';
|
|
70
|
+
} catch (middlewareErr) {
|
|
71
|
+
middleware = 'none';
|
|
72
|
+
}
|
|
73
|
+
|
|
63
74
|
var vers = "",
|
|
64
75
|
short = ( typeof(process.argv[3]) != 'undefined') ? process.argv[3]: false,
|
|
65
76
|
msg = require('./msg.json'),
|
|
@@ -67,7 +78,7 @@ function Version(opt){
|
|
|
67
78
|
"number" : GINA_VERSION,
|
|
68
79
|
"platform" : process.platform,
|
|
69
80
|
"arch" : arch,
|
|
70
|
-
"middleware" :
|
|
81
|
+
"middleware" : middleware,
|
|
71
82
|
"engine" : engine,
|
|
72
83
|
"copyright" : require(opt.pack).copyright
|
|
73
84
|
};
|
|
@@ -33,7 +33,16 @@ gina-framework(1) -- Framework CLI
|
|
|
33
33
|
Restarts the framework.
|
|
34
34
|
|
|
35
35
|
**-u**, **update**
|
|
36
|
-
|
|
36
|
+
Reconcile the ~/.gina state files (main.json, settings.json) to the installed framework version. Dry-run by default; pass --fix to apply.
|
|
37
|
+
|
|
38
|
+
**add**
|
|
39
|
+
Install a published gina version side-by-side so a bundle can pin it via --gina-version. Downloads from npm, installs its deps, archives + symlinks it, and registers it in main.json. Additive — never changes the default version. Pass --dry-run to preview, --force to overwrite an existing archived copy.
|
|
40
|
+
|
|
41
|
+
**list**
|
|
42
|
+
List the framework versions known to this install: the active version, side-by-side symlinked versions, and archived copies. Pass --all to include versions registered in main.json but not on disk, --format=json for machine output.
|
|
43
|
+
|
|
44
|
+
**remove**
|
|
45
|
+
Remove a side-by-side installed version: unlinks it from the active install, deletes its archived copy, and deregisters it from main.json. Refuses to remove the active default or the real shipped version. Pass --force to remove a version a bundle still pins, --dry-run to preview.
|
|
37
46
|
|
|
38
47
|
**-e**, **set**
|
|
39
48
|
Set environment variables
|
|
@@ -501,8 +501,10 @@ function CmdHelper(cmd, client, debug) {
|
|
|
501
501
|
|
|
502
502
|
// Additional project checking & actions
|
|
503
503
|
if (cmd.projectName != null) {
|
|
504
|
-
// valid name but not in projects and task != :add, :remove or :
|
|
505
|
-
|
|
504
|
+
// valid name but not in projects and task != :add, :remove, :import or :restore
|
|
505
|
+
// (project:restore registers a brand-new on-disk tree from an archive,
|
|
506
|
+
// so its @<name> is legitimately not-yet-registered — like :add/:import)
|
|
507
|
+
if ( typeof(cmd.projects[cmd.projectName]) == 'undefined' && !/\:(add|import|remove|restore)$/.test(cmd.task) ) {
|
|
506
508
|
errMsg = 'Project ['+ cmd.projectName +'] not found in your projects list';
|
|
507
509
|
console.error(errMsg);
|
|
508
510
|
exit(errMsg);
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
var fs = require('fs');
|
|
2
|
+
var nodePath = require('path');
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @module gina/lib/cmd/man-render
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Shared engine for the `gina <group>:man` commands (framework / project /
|
|
9
|
+
* bundle / service). It runtime-renders a group's ronn-style manual page
|
|
10
|
+
* (`lib/cmd/gina-<group>.1.md`) to the terminal — substituting the `{version}`
|
|
11
|
+
* and `{year}` placeholders (the same template idiom `framework:version` uses
|
|
12
|
+
* with `msg.json`) and stripping ronn markup so the output reads cleanly without
|
|
13
|
+
* a build step or a markdown/man dependency. When a group has no `.1.md` source
|
|
14
|
+
* yet (project / bundle / service today), the handler falls back to that group's
|
|
15
|
+
* `help.txt`, so every advertised `:man` command works.
|
|
16
|
+
*
|
|
17
|
+
* Structure: the pure render helpers (`substitute` / `stripRonn` / `renderMan`)
|
|
18
|
+
* take their inputs as arguments and touch no injected globals, so they are
|
|
19
|
+
* unit-testable by a plain `require` of this file. The `Man` handler reads the
|
|
20
|
+
* CLI globals (`getPath` / `GINA_VERSION` / `lib.logger`) LAZILY inside its body
|
|
21
|
+
* — never at module load — so requiring this module in a test never trips on an
|
|
22
|
+
* undefined global. Each `lib/cmd/<group>/man.js` is a one-line re-export of
|
|
23
|
+
* this `Man` (the `bundle/cp.js` → `copy.js` alias idiom).
|
|
24
|
+
*
|
|
25
|
+
* @class Man
|
|
26
|
+
* @constructor
|
|
27
|
+
* @param {object} opt - Parsed command-line options. `opt.task.topic` is the
|
|
28
|
+
* group (`framework` / `project` / `bundle` / `service`), set by the CLI
|
|
29
|
+
* dispatcher (`framework/init.js` run()).
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Replace the `{version}` and `{year}` placeholders carried by the `.1.md`
|
|
34
|
+
* man-page templates. Pure — no globals.
|
|
35
|
+
*
|
|
36
|
+
* @inner
|
|
37
|
+
* @param {string} content - Raw man-page text
|
|
38
|
+
* @param {string} version - Framework version for `{version}`
|
|
39
|
+
* @param {string|number} year - Calendar year for `{year}` (e.g. the copyright year)
|
|
40
|
+
* @returns {string}
|
|
41
|
+
* @example
|
|
42
|
+
* substitute('release {version} (c) 2009-{year}', '0.5.5', 2026);
|
|
43
|
+
* // → 'release 0.5.5 (c) 2009-2026'
|
|
44
|
+
*/
|
|
45
|
+
function substitute(content, version, year) {
|
|
46
|
+
return String(content)
|
|
47
|
+
.replace(/\{version\}/g, version)
|
|
48
|
+
.replace(/\{year\}/g, String(year));
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Strip the ronn markup that does not read well as plain terminal text:
|
|
53
|
+
* the `~~~`/`~~~tty` code-fence lines, the `===`/`---` title underline rules,
|
|
54
|
+
* leading ATX heading markers (`## SECTION` → `SECTION`), and `**bold**`
|
|
55
|
+
* emphasis markers (keeping the inner text). Conservative on purpose — link
|
|
56
|
+
* angle brackets, lists, and prose are left intact. Pure — no globals.
|
|
57
|
+
*
|
|
58
|
+
* @inner
|
|
59
|
+
* @param {string} content
|
|
60
|
+
* @returns {string}
|
|
61
|
+
* @example
|
|
62
|
+
* stripRonn('## SYNOPSIS\n=====\n**gina** start\n~~~tty\n$ gina\n~~~');
|
|
63
|
+
* // → 'SYNOPSIS\n\ngina start\n\n$ gina\n'
|
|
64
|
+
*/
|
|
65
|
+
function stripRonn(content) {
|
|
66
|
+
return String(content)
|
|
67
|
+
.replace(/^~~~.*$/gm, '') // ronn code-fence delimiters (~~~ / ~~~tty)
|
|
68
|
+
.replace(/^[=]{3,}\s*$/gm, '') // ronn title underline (====)
|
|
69
|
+
.replace(/^[-]{3,}\s*$/gm, '') // horizontal rules (----)
|
|
70
|
+
.replace(/^#{1,6}\s+/gm, '') // ATX heading markers (## SECTION → SECTION)
|
|
71
|
+
.replace(/\*\*(.+?)\*\*/g, '$1');// bold emphasis (**x** → x)
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Render a man-page body for the terminal: substitute the placeholders, then
|
|
76
|
+
* strip the ronn markup. Pure — no globals.
|
|
77
|
+
*
|
|
78
|
+
* @inner
|
|
79
|
+
* @param {string} content
|
|
80
|
+
* @param {string} version
|
|
81
|
+
* @param {string|number} year
|
|
82
|
+
* @returns {string}
|
|
83
|
+
*/
|
|
84
|
+
function renderMan(content, version, year) {
|
|
85
|
+
return stripRonn(substitute(content, version, year));
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* The CLI handler. Resolves the group's `.1.md` under the framework lib `cmd/`
|
|
90
|
+
* dir; renders it when present, otherwise falls back to the group's `help.txt`
|
|
91
|
+
* with a one-line notice. Reads the injected globals lazily so this module
|
|
92
|
+
* stays require-testable.
|
|
93
|
+
*
|
|
94
|
+
* @param {object} opt
|
|
95
|
+
* @returns {void}
|
|
96
|
+
* @example
|
|
97
|
+
* // dispatched as `gina framework:man` → renders lib/cmd/gina-framework.1.md
|
|
98
|
+
* // dispatched as `gina project:man` → falls back to lib/cmd/project/help.txt
|
|
99
|
+
*/
|
|
100
|
+
function Man(opt) {
|
|
101
|
+
var console = lib.logger;
|
|
102
|
+
|
|
103
|
+
var group = (opt && opt.task && opt.task.topic) ? opt.task.topic : 'framework';
|
|
104
|
+
var libDir = getPath('gina').lib;
|
|
105
|
+
var version = (typeof(GINA_VERSION) != 'undefined') ? GINA_VERSION : '';
|
|
106
|
+
var year = new Date().getFullYear();
|
|
107
|
+
|
|
108
|
+
var manPath = _(libDir + '/cmd/gina-' + group + '.1.md', true);
|
|
109
|
+
if (fs.existsSync(manPath)) {
|
|
110
|
+
try {
|
|
111
|
+
console.log(renderMan(fs.readFileSync(manPath, 'utf8'), version, year));
|
|
112
|
+
process.exit(0);
|
|
113
|
+
return;
|
|
114
|
+
} catch (e) {
|
|
115
|
+
console.error('Could not read the manual page for `' + group + '`: ' + (e.message || e));
|
|
116
|
+
process.exit(1);
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
// No .1.md source for this group yet — fall back to its help.txt.
|
|
122
|
+
var helpPath = _(libDir + '/cmd/' + group + '/help.txt', true);
|
|
123
|
+
if (fs.existsSync(helpPath)) {
|
|
124
|
+
console.log('No manual page for `' + group + '` yet — showing `gina ' + group + ':help`:\n');
|
|
125
|
+
try {
|
|
126
|
+
console.log(fs.readFileSync(helpPath, 'utf8'));
|
|
127
|
+
process.exit(0);
|
|
128
|
+
return;
|
|
129
|
+
} catch (e) {
|
|
130
|
+
console.error('Could not read help for `' + group + '`: ' + (e.message || e));
|
|
131
|
+
process.exit(1);
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
console.error('No manual or help available for `' + group + '`.');
|
|
137
|
+
process.exit(1);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
module.exports = Man;
|
|
141
|
+
// Pure helpers exposed for unit tests (require-by-path; no globals touched here).
|
|
142
|
+
module.exports.substitute = substitute;
|
|
143
|
+
module.exports.stripRonn = stripRonn;
|
|
144
|
+
module.exports.renderMan = renderMan;
|