gina 0.5.5-alpha.1 → 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.5-alpha.1 → 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.5-alpha.1 → v0.5.5}/core/config.js +18 -4
- package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/controller/controller.js +48 -6
- package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/gna.js +70 -4
- package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/server.isaac.js +115 -6
- package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/server.js +74 -0
- package/framework/{v0.5.5-alpha.1 → 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.5-alpha.1 → v0.5.5}/lib/cmd/bundle/start.js +17 -3
- package/framework/{v0.5.5-alpha.1 → 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.5-alpha.1 → 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.5-alpha.1 → 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.5-alpha.1 → v0.5.5}/lib/cmd/framework/version.js +12 -1
- package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/gina-framework.1.md +10 -1
- package/framework/{v0.5.5-alpha.1 → 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.5-alpha.1 → 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.5-alpha.1 → 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.5-alpha.1 → 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.5-alpha.1 → v0.5.5}/lib/index.js +8 -0
- package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/logger/src/containers/mq/listener.js +6 -1
- package/framework/{v0.5.5-alpha.1 → 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.5-alpha.1 → 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.5-alpha.1/VERSION +0 -1
- package/framework/v0.5.5-alpha.1/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -572
- package/framework/v0.5.5-alpha.1/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- package/framework/v0.5.5-alpha.1/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- package/framework/v0.5.5-alpha.1/lib/cmd/framework/arguments.json +0 -7
- package/framework/v0.5.5-alpha.1/lib/cmd/framework/help.txt +0 -36
- package/framework/v0.5.5-alpha.1/lib/cmd/framework/update.js +0 -0
- package/framework/v0.5.5-alpha.1/lib/cmd/project/move.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/AUTHORS +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/LICENSE +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/asset/html/nolayout.html +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/asset/html/static.html +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/asset/img/android-chrome-192x192.png +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/asset/img/android-chrome-512x512.png +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/asset/img/apple-touch-icon.png +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/asset/img/favicon-16x16.png +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/asset/img/favicon-32x32.png +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/asset/img/favicon.ico +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/asset/plugin/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/connectors/ai/index.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/connectors/ai/lib/connector.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/connectors/couchbase/index.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/connectors/couchbase/lib/connector.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/connectors/couchbase/lib/connector.v3.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/connectors/couchbase/lib/connector.v4.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/connectors/couchbase/lib/n1ql.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/connectors/couchbase/lib/session-store.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/connectors/mongodb/index.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/connectors/mongodb/lib/connector.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/connectors/mongodb/lib/session-store.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/connectors/mysql/index.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/connectors/mysql/lib/connector.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/connectors/postgresql/index.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/connectors/postgresql/lib/connector.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/connectors/redis/index.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/connectors/redis/lib/session-store.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/connectors/scylladb/index.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/connectors/scylladb/lib/connector.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/connectors/scylladb/lib/session-store.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/connectors/sql-parser.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/connectors/sqlite/index.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/connectors/sqlite/lib/connector.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/connectors/sqlite/lib/session-store.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/content.encoding +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/controller/controller.framework.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/controller/controller.render-json.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/controller/controller.render-nunjucks-async.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/controller/controller.render-nunjucks.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/controller/controller.render-stream.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/controller/controller.render-swig-async.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/controller/controller.render-swig.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/controller/controller.render-v1.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/controller/index.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/controller/inspector-window-emit.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/deps/busboy-1.6.0/LICENSE +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/deps/busboy-1.6.0/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/deps/busboy-1.6.0/lib/index.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/deps/busboy-1.6.0/lib/types/multipart.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/deps/busboy-1.6.0/lib/types/urlencoded.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/deps/busboy-1.6.0/lib/utils.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/deps/busboy-1.6.0/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/deps/streamsearch-1.1.0/LICENSE +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/deps/streamsearch-1.1.0/lib/sbmh.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/deps/streamsearch-1.1.0/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/dev/index.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/dev/lib/class.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/dev/lib/factory.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/dev/lib/tools.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/locales/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/locales/currency.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/locales/dist/language/en.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/locales/dist/language/fr.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/locales/dist/region/en.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/locales/dist/region/fr.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/locales/index.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/mime.types +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/model/entity.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/model/index.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/model/template/entityFactory.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/model/template/index.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/index.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/csrf/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/csrf/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/csrf/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/coep/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/coep/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/coop/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/coop/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/corp/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/corp/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/csp/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/csp/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/hsts/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/hsts/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/session/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/session/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/session/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/storage/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/storage/build.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/storage/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/storage/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/validator/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/validator/build.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/validator/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/validator/src/form-validator.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/plugins/lib/validator/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/router.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/server.express.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/status.codes +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/_gitignore +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/boilerplate/bundle/config/app.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/boilerplate/bundle/config/connectors.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/boilerplate/bundle/config/routing.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/boilerplate/bundle/config/settings.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/boilerplate/bundle/config/templates.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/boilerplate/bundle/config/watchers.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/boilerplate/bundle/index.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/boilerplate/bundle/locales/en.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/boilerplate/bundle_public/css/default.css +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/boilerplate/bundle_public/css/home.css +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/boilerplate/bundle_public/readme.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/boilerplate/bundle_public/sw.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/command/gina.bat.tpl +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/command/gina.tpl +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/conf/env.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/conf/manifest.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/conf/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/conf/settings.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/conf/statics.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/conf/templates.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/error/client/json/401.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/error/client/json/403.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/error/client/json/404.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/error/server/html/50x.html +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/error/server/json/500.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/error/server/json/503.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/core/template/extensions/logger/config.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/helpers/console.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/helpers/context.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/helpers/data/LICENSE +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/helpers/data/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/helpers/data/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/helpers/data/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/helpers/dateFormat.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/helpers/index.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/helpers/json/LICENSE +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/helpers/json/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/helpers/json/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/helpers/json/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/helpers/path.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/helpers/plugins/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/helpers/plugins/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/helpers/plugins/src/api-error.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/helpers/plugins/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/helpers/prototypes.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/helpers/task.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/helpers/text.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/admin/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/admin/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/archiver/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/archiver/build.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/archiver/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/archiver/src/dep/jszip.min.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/async/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/async/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cache/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cache/build.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cache/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cache/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/aliases.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/bundle/add.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/bundle/arguments.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/bundle/build.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/bundle/copy.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/bundle/cp.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/bundle/help.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/bundle/help.txt +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/bundle/list.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/bundle/mcp-start.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/bundle/mcp.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/bundle/oas.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/bundle/openapi.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/bundle/remove.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/bundle/rename.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/bundle/restart.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/bundle/rm.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/bundle/stop.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/cache/stats.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/connector/add.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/connector/arguments.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/connector/help.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/connector/help.txt +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/connector/list.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/connector/migrate.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/connector/remove.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/connector/rm.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/env/add.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/env/get.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/env/help.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/env/help.txt +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/env/link-dev.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/env/list.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/env/remove.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/env/rm.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/env/set.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/env/unset.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/env/use.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/framework/build.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/framework/dot.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/framework/get.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/framework/help.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/framework/link-node-modules.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/framework/link.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/framework/msg.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/framework/open.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/framework/restart.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/framework/set.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/framework/start.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/framework/status.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/framework/stop.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/gina-dev.1.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/gina.1.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/i18n/add.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/i18n/arguments.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/i18n/export.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/i18n/help.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/i18n/help.txt +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/i18n/import.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/i18n/scan.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/index.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/inspector/help.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/inspector/help.txt +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/inspector/open.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/minion/arguments.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/minion/help.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/minion/help.txt +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/minion/kill.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/minion/list.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/msg.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/port/help.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/port/help.txt +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/port/inc/scan.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/port/list.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/port/reset.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/port/set.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/project/add.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/project/build.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/project/help.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/project/import.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/project/list.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/project/remove.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/project/rename.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/project/restart.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/project/rm.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/project/start.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/project/stop.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/protocol/arguments.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/protocol/help.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/protocol/help.txt +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/protocol/list.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/protocol/remove.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/protocol/set.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/scope/add.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/scope/help.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/scope/help.txt +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/scope/link-local.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/scope/link-production.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/scope/list.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/scope/remove.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/scope/rm.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/scope/use.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/secrets/arguments.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/secrets/check.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/secrets/help.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/secrets/help.txt +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/secrets/scan.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/service/help.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/service/help.txt +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/service/list.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/service/start.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd/view/add.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd-status-format/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cmd-status-format/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/collection/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/collection/build.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/collection/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/collection/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/config.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/connector-registry/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/connector-registry/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cron/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cron/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/cron/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/domain/LICENSE +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/domain/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/domain/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/domain/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/generator/index.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/i18n/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/i18n/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/inherits/LICENSE +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/inherits/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/inherits/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/inherits/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/inspector-redact/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/inspector-redact/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/instrument/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/instrument/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/job/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/job/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/logger/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/logger/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/logger/src/containers/default/index.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/logger/src/containers/file/index.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/logger/src/containers/mq/index.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/logger/src/containers/mq/speaker.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/logger/src/helper.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/logger/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/math/index.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/mcp-dispatch/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/mcp-dispatch/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/mcp-http/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/mcp-http/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/mcp-server/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/mcp-server/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/merge/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/merge/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/merge/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/metrics/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/metrics/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/model.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/nunjucks-filters/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/nunjucks-filters/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/nunjucks-filters/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/nunjucks-resolver/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/nunjucks-resolver/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/routing/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/routing/build.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/routing/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/routing/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/routing/src/radix.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/routing-introspect/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/routing-introspect/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/secrets/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/secrets/src/backends/env.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/secrets/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/session-store.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/shell.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/state.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/swig-filters/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/swig-filters/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/swig-filters/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/swig-resolver/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/swig-resolver/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/template-loaders/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/template-loaders/src/loaders/http.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/template-loaders/src/loaders/memory.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/template-loaders/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/url/README.md +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/url/index.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/url/routing.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/uuid/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/uuid/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/validator.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/watcher/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/watcher/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/ws-framing/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/ws-framing/src/main.js +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/ws-session/package.json +0 -0
- /package/framework/{v0.5.5-alpha.1 → v0.5.5}/lib/ws-session/src/main.js +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,32 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
|
|
|
6
6
|
and is generated by [Changie](https://github.com/miniscruff/changie).
|
|
7
7
|
|
|
8
8
|
|
|
9
|
+
## 0.5.5 - 2026-06-22
|
|
10
|
+
### Added
|
|
11
|
+
* Added gina project:move to relocate a project source tree to a new filesystem path. The project name, its home directory, the port matrix, and its bundles are preserved (only the registry path is updated). It refuses while any bundle in the project is running, refuses a cross-filesystem target (pointing you to project:import), and reverses the move on failure.
|
|
12
|
+
* Added gina project:backup to archive a project source tree into a timestamped .zip. node_modules is excluded and symlinks are skipped (so the framework link is not followed); the archive is written to --out (default: the current directory). The command is read-only — it never changes the source tree or the registry. --with-password is recognised but refused for now, because archive encryption is not yet implemented.
|
|
13
|
+
* Added gina project:restore to rebuild a project from a project:backup .zip. It extracts the source tree to --to and re-registers the project (registry entry, ports, and the gina symlink) so it is immediately startable; node_modules is not in the backup, so run npm install afterwards. It refuses to overwrite an already-registered name or a non-empty target unless --force is given. This also implements lib/archiver decompress() (the inverse of compress(), via JSZip) with a guard against archive entries escaping the target.
|
|
14
|
+
* Added gina framework:update to reconcile the local ~/.gina state files (main.json def_framework and the frameworks list, plus the per-version settings.json) to the installed framework version. It runs as a dry run by default; pass --fix to apply, --to-version=<v> to target a specific version, or --format=json for machine-readable output. A strict-semver guard never regresses the recorded version, and the per-version metadata maps stay owned by framework:init. This automates the post-merge state check that previously had to be performed by hand.
|
|
15
|
+
* Added gina framework:man, project:man, bundle:man and service:man to show inline CLI manual pages in the terminal. Each renders the group ronn .1.md page (substituting the version and copyright year) when one exists (framework today), otherwise it falls back to that group help.txt. Runtime-rendered with no build step and no markdown or man dependency.
|
|
16
|
+
* gina now runs on the Bun runtime. Install with `bun add -g gina`; `engine.bun` declares the supported range (`>= 1.2`), and a CI Bun smoke validates a clean install, bundle boot, and HTTP 200 response under Bun on every push to develop and master.
|
|
17
|
+
* Added `gina framework:reset` (shorthand `gina reset`) — a runtime, package-manager-agnostic factory reset that clears `~/.gina` (settings, project registry, env config, port allocations) so it rebuilds to defaults on the next command. Complements `npm install -g gina@latest --reset` (which only runs inside the npm install lifecycle) and gives Bun users a factory reset, since Bun blocks install scripts. Refuses while the daemon or bundles are running, unless `--force`.
|
|
18
|
+
* Added `gina framework:add <version>` to install a published framework version side-by-side, so a bundle can pin it via `--gina-version` or manifest `gina_version`. Downloads the version from npm, installs its dependencies, archives it under `~/.gina/archives/framework`, symlinks it into the active install, and registers it — without ever changing the default version. Supports `--force`, `--dry-run`, and `--format=json`.
|
|
19
|
+
* Added `gina framework:list` to show the framework versions known to an install — the active version, side-by-side symlinked versions, and archived copies — with `--all` for the full registry and `--format=json` for machine-readable output.
|
|
20
|
+
* Added `gina framework:remove` to remove a side-by-side installed framework version: it unlinks the symlink from the active install, deletes the archived copy, and deregisters it from main.json. Refuses to remove the active default or the real shipped version; `--force` overrides only a bundle pin, `--dry-run` previews, `--format=json` for machine output.
|
|
21
|
+
* `project:status` and `bundle:status` `--format=json` now include a `framework` field (the framework version each project/bundle resolves to — the per-project `projects.json` pin, falling back to the global default) and a `gina_version` field (the per-bundle `manifest.json` override, `null` when unset).
|
|
22
|
+
* Declare WebSocket-over-HTTP/2 routes in routing.json: a route with method "ws" and param.wsHandler "<name>" auto-registers the connection handler at bundle/channels/<name>.js at bundle start, with no programmatic app.onWebSocket() call needed. Matches an exact path or a :param pattern (e.g. url "/live/:room" matches /live/foo and exposes the captured value to the handler as request.params.room; exact paths always take precedence). Optional per-route session options (maxPayload, protocol, closeTimeout) are declared via param.wsOptions and applied when the connection is accepted. The handler receives (session, request) and can use the framework lib registry and the ORM (getModel) directly. Requires the isaac engine with http2Options.enableConnectProtocol set to true.
|
|
23
|
+
* WebSocket channel handlers can now make cross-bundle HTTP calls: session.query(options[, data]) returns a Promise (with an optional trailing callback), mirroring a controller's self.query(). A handler resolves another bundle by hostname (e.g. "api@project/dev") and gets back the parsed response, reusing the running server's warm HTTP/2 session cache. Works for both routing.json-declared (method "ws") and programmatic (app.onWebSocket) channels. Same-bundle data access via getModel already worked; this adds the inter-bundle HTTP leg getModel cannot do. Requires the isaac engine with http2Options.enableConnectProtocol set to true.
|
|
24
|
+
### Fixed
|
|
25
|
+
* Inter-bundle requests made with `self.query()` no longer silently re-execute a non-idempotent request (POST/PUT/PATCH/DELETE) when a transient failure — a stream timeout, connection reset, GOAWAY/premature stream close, or an upstream 502 — occurs after the request was already sent. Auto-retries on both the HTTP/2 and HTTP/1 client paths are now gated on HTTP-method idempotency: only safe methods (GET, HEAD, OPTIONS, TRACE) are retried by default, so a request the upstream already processed is never re-run behind a lost response. A caller whose endpoint is genuinely safe to replay can opt a non-safe method back in per request with `retryUnsafe: true`.
|
|
26
|
+
* Fixed `gina bundle:start` failing to reinstall a project's node_modules under the Bun runtime: the arch/platform reinstall now runs `bun install` (instead of a hardcoded `npm install`) and performs the framework relink through the active runtime, so a bundle starts on a Bun-only image that ships no node or npm binary.
|
|
27
|
+
* Popin/dialog triggers no longer fire two identical GET requests on a single click. The hover/focus preload warmed for a `data-gina-popin-url` (legacy) or `data-gina-dialog-src` trigger is now reused by the click — even while the preload is still in flight — instead of racing a second identical request; `preOpen` popins keep their instant loading skeleton.
|
|
28
|
+
* `framework:init` now determines run-dir pidfile liveness with `process.kill` instead of shelling out to `ps`, so running bundles are no longer misreported as stopped — and their pidfiles wrongly pruned — on minimal images that do not ship the `ps` utility. The pid is also parsed and trimmed so a trailing newline cannot break the check.
|
|
29
|
+
* Fixed a stable release shipping the prior alpha version in `framework/v<version>/package.json` (the published tarball sub-manifest): the version-prepare step now rewrites that `version` field to the cut version when it renames the framework directory, matching the alpha-cut path.
|
|
30
|
+
* Completed the boot-path diagnostic flush so a bundle that aborts during boot — a config read/parse failure, a server core-configuration or port/protocol inconsistency, a bad routing requirement, or any uncaught exception — now writes its reason synchronously to stderr before exiting; the cause survives piped or containerised stdio instead of being truncated to an empty log under load. Also added a clear, actionable error when the listening port cannot be resolved from ports.reverse.json, replacing a cryptic TypeError at boot.
|
|
31
|
+
### Security
|
|
32
|
+
* Bumped the ws dependency floor to ^8.21.0 to resolve a WebSocket memory-exhaustion denial-of-service advisory (GHSA-96hv-2xvq-fx4p) affecting ws versions below 8.21.0.
|
|
33
|
+
* Hardened the framework log-tail auto-restart path (`gina tail --follow`): bundle/project identifiers parsed from log output are now rejected when they contain path separators or `..` traversal (confining the saved-argv lookup to the tmp directory), and the saved start command is re-executed with execFileSync (no shell) instead of execSync, as defense-in-depth against command injection via crafted log content.
|
|
34
|
+
|
|
9
35
|
## 0.5.4 - 2026-06-19
|
|
10
36
|
### Added
|
|
11
37
|
* Added a `--ignore-ports` flag to `gina bundle:add`: pass a comma-separated list of port numbers (e.g. `--ignore-ports=3000,3001`) to exclude them from the availability scan when creating or importing a bundle, on top of the already-assigned ports and the reserved 4100-4199 range that are skipped automatically. Composable with `--start-port-from`.
|
package/README.md
CHANGED
|
@@ -28,28 +28,28 @@ Node.js MVC framework with built-in HTTP/2, multi-bundle architecture, and scope
|
|
|
28
28
|
| Hot reload | WatcherService evicts `require.cache` only on file change — zero per-request overhead in dev |
|
|
29
29
|
| K8s ready | `gina-container`, `gina-init`, SIGTERM drain, JSON stdout logging |
|
|
30
30
|
| Dependency injection | Mockable connectors and config for unit testing |
|
|
31
|
+
| Runtime | Node.js 22–26, or **Bun** (`bun add -g gina`) — install + boot validated end-to-end by a CI Bun smoke |
|
|
31
32
|
|
|
32
33
|
## Quick start
|
|
33
34
|
|
|
34
35
|
```bash
|
|
35
|
-
npm install -g gina@latest --prefix=~/.npm-global
|
|
36
|
+
npm install -g gina@latest --prefix=~/.npm-global # or, on the Bun runtime: bun add -g gina
|
|
36
37
|
gina project:add @myproject --path=$(pwd)/myproject
|
|
37
38
|
gina bundle:add api @myproject
|
|
38
39
|
gina bundle:start api @myproject
|
|
39
40
|
open https://localhost:3100
|
|
40
41
|
```
|
|
41
42
|
|
|
42
|
-
## What's in 0.5.
|
|
43
|
-
|
|
44
|
-
- **
|
|
45
|
-
- **
|
|
46
|
-
- **
|
|
47
|
-
- **
|
|
48
|
-
- **
|
|
49
|
-
- **
|
|
50
|
-
- **
|
|
51
|
-
- **
|
|
52
|
-
- **`gina bundle:add --ignore-ports`.** Exclude specific ports from the availability scan when creating or importing a bundle (e.g. `--ignore-ports=3000,3001`); composable with `--start-port-from`.
|
|
43
|
+
## What's in 0.5.5
|
|
44
|
+
|
|
45
|
+
- **WebSocket routes in `routing.json`.** Declare a WebSocket-over-HTTP/2 endpoint with `"method": "ws"` and a `param.wsHandler` pointing at a `channels/<name>.js` handler — auto-registered at bundle start, no `app.onWebSocket()` call needed. Routes support `:param` path segments and per-route `param.wsOptions` (`maxPayload` / `protocol` / `closeTimeout`).
|
|
46
|
+
- **Cross-bundle calls from a channel handler.** A WebSocket handler can now call another bundle over HTTP with `session.query()` — the same warm-HTTP/2-session call a controller makes with `self.query()`.
|
|
47
|
+
- **Framework versions side-by-side.** `gina framework:add <version>` installs a published framework version alongside the active one so a bundle can pin it via `--gina-version`; `framework:list` / `framework:remove` / `framework:update` / `framework:reset` round out the set.
|
|
48
|
+
- **Project lifecycle CLI.** `gina project:move --to=<path>` relocates a project's source tree (and its registry entry); `project:backup` / `project:restore` archive a project to a `.zip` and rebuild it.
|
|
49
|
+
- **Inline CLI man pages.** `gina framework:man` (and `project:man` / `bundle:man` / `service:man`) renders a command group's manual page in the terminal.
|
|
50
|
+
- **Bun is now a supported runtime.** Install with `bun add -g gina`; the install + boot path is validated end-to-end by a CI Bun smoke.
|
|
51
|
+
- **Idempotent HTTP/2 client retries.** Inter-bundle `self.query()` now auto-retries only HTTP safe methods on a transient transport failure, so a `POST` / `PUT` / `PATCH` / `DELETE` the upstream already executed is no longer silently replayed; opt a non-safe call back in with `retryUnsafe: true`.
|
|
52
|
+
- **Security.** A WebSocket denial-of-service fix via an `ws` dependency override (reached through `engine.io`), plus log-tail restart hardening.
|
|
53
53
|
|
|
54
54
|
See the full [Changelog](./CHANGELOG.md) and [Roadmap](./ROADMAP.md).
|
|
55
55
|
|
package/ROADMAP.md
CHANGED
|
@@ -29,7 +29,8 @@ This roadmap covers planned features, architectural improvements, new connectors
|
|
|
29
29
|
| **Q2 2026** | `0.5.2` ✅ | Patch: released-response crash family completed across the remaining synchronous controller surface — `renderJSON()` / `redirect()` / `store()` / `push()` / `renderStream()` / request-method + form-rule helpers no longer kill the bundle when called on an already-released response · exhausted HTTP/2 502 retries surface a typed `BAD_GATEWAY` error instead of being consumed as success |
|
|
30
30
|
| **Q2 2026** | `0.5.3` ✅ | Patch: released-response crash family finished — late `throwError(status, error)` (2- and 3-argument forms) and the HTML render delegates (swig / nunjucks + async variants) no longer crash or emit unhandled rejections when invoked on an already-released response · atomic `~/.gina` state-file writes (concurrent multi-bundle / multi-container boot can't read a torn file) · framework command-socket hardened against malformed / fragmented payloads · framework socket port no longer corrupted by a bundle's `--port` · synchronous boot-failure diagnostics under piped stdout/stderr · storage `_id` collision hardening · `gina port:set --force` |
|
|
31
31
|
| **Q2 2026** | `0.5.4` ✅ | Node.js 26 support (engine `>= 22 <27`, CI matrix) · FormValidator fixes (`isFloat` accepts string floats · `isDate` non-ISO masks + rule chaining) · quieter live form validation (error message revealed on blur) · file-upload fixes (honour `tmpPath` / per-group `path` · enforce `maxFields` + `maxFieldsSize` unit suffix · **Security**: reject uploads to an unconfigured group, closing an `allowedExtensions` / `isMultipleAllowed` bypass) · two dev-mode heap fixes (hot-reload lib-eviction leak · HTTP/2 `self.query()` settled-stream retention) · tighter per-request config isolation (narrowed router clone · `getRouteByUrl` shared-config mutation) · dev Inspector reliability (per-tab channel under COOP · Swig render-race isolation · multi-bundle proxy log/index routing · SPA hardening) · Express-engine `/_gina/info` + `/_gina/cache/stats` parity · `bundle:add --ignore-ports` |
|
|
32
|
-
| **
|
|
32
|
+
| **Q2 2026** | `0.5.5` ✅ | WebSocket routes in `routing.json` (`method: "ws"` + `param.wsHandler` → `channels/<name>.js`, `:param` paths, per-route `param.wsOptions`) · cross-bundle `session.query()` from WebSocket channel handlers · framework version side-by-side CLI (`framework:add` / `framework:list` / `framework:remove` / `framework:update` / `framework:reset`) · `project:move` / `project:backup` / `project:restore` · inline CLI man pages (`framework:man` / `project:man` / `bundle:man` / `service:man`) · Bun promoted to a supported, CI-gated runtime · idempotent HTTP/2 client retries (safe-method gating + per-call `retryUnsafe` opt-in) · **Security**: WebSocket-DoS dependency hardening (`ws` override) · `tail` restart hardening |
|
|
33
|
+
| **Q1 2027** | `0.5.x` | HTTP/2 priorities (blocked on Node scheduler hooks) · Beemaster admin + visual translation editor |
|
|
33
34
|
| **Q3 2027** | `1.0.0` | First stable release — Windows alpha compatibility is a hard gate |
|
|
34
35
|
|
|
35
36
|
---
|
|
@@ -78,10 +79,14 @@ Stub commands confirmed in source — handler files exist but are empty or comme
|
|
|
78
79
|
|
|
79
80
|
| Status | Feature | Version | Target |
|
|
80
81
|
| --- | --- | --- | --- |
|
|
81
|
-
|
|
|
82
|
-
|
|
|
83
|
-
|
|
|
84
|
-
|
|
|
82
|
+
| ✅ | **`project:move`** — Relocate a project's source directory (atomic `renameSync`) and rewrite the `~/.gina/` registry `path`. Refuses while a bundle is running or across filesystems; `--to=/new/path`. | `0.5.5-alpha.2` | 2026-06-19 |
|
|
83
|
+
| ✅ | **`framework:update`** — Reconcile the `~/.gina/` state files (`main.json` `def_framework` + `frameworks` list, `<short>/settings.json`) to the installed framework version. Dry-run by default; `--fix` to apply, `--to-version` to target a specific version, `--format=json`. Automates the post-merge state check with a strict-semver never-regress guard. npm self-update is a planned follow-up — use `npm i -g gina@latest` meanwhile. | `0.5.5-alpha.2` | 2026-06-20 |
|
|
84
|
+
| ✅ | **`framework:add`** — Install a published framework version side-by-side so a bundle can pin it via `--gina-version` / manifest `gina_version`. Downloads from npm, installs the tree's own deps, archives it under `~/.gina/archives/framework`, symlinks it into the active install, and registers it in `main.json` `frameworks[<short>]` — never changing the default version. `--dry-run` / `--force` / `--format=json`. | `0.5.5-alpha.2` | 2026-06-21 |
|
|
85
|
+
| ✅ | **`framework:list`** — List the framework versions known to this install — the active version, side-by-side symlinked versions, and archived copies — by reconciling the install dirs, the `~/.gina/archives/framework` copies, and the `main.json` `frameworks` registry into one view. `--all` also includes versions registered but not on disk; `--format=json`. Read-only. | `0.5.5-alpha.2` | 2026-06-21 |
|
|
86
|
+
| ✅ | **`framework:remove`** — Remove a side-by-side version: deregister it from `main.json` `frameworks[<short>]`, unlink its symlink, and delete its archived copy — the inverse of `framework:add`. Refuses to remove the active default (`def_framework`) or the real shipped dir (neither `--force`-overridable); `--force` overrides only a bundle pin. `--dry-run` / `--format=json`. | `0.5.5-alpha.2` | 2026-06-21 |
|
|
87
|
+
| ✅ | **`framework:reset`** — Factory reset: clears `~/.gina` (settings, project registry, env config, port allocations) so the framework rebuilds to clean defaults on the next command — the runtime, package-manager-agnostic equivalent of a fresh install (works identically on Node and Bun, unlike the npm install-flag form). Project source files are never touched. Refuses while the daemon or any bundle is running (`framework:init`'s `process.kill`-based pidfile prune keeps the guard reliable even on `ps`-less images); `--force` overrides. Shorthand: `gina reset`. | `0.5.5-alpha.2` | 2026-06-21 |
|
|
88
|
+
| ✅ | **`project:backup` / `project:restore`** — Archive a project's source tree to a `.zip` (`backup`, symlinks skipped), and rebuild + re-register a project from a backup `.zip` so it is immediately startable (`restore`). | `0.5.5-alpha.2` | 2026-06-19 |
|
|
89
|
+
| ✅ | **`framework:man` / `project:man` / `bundle:man` / `service:man`** — Inline CLI manual pages. Runtime-renders the group's ronn `.1.md` (substituting `{version}`/`{year}`) when it exists (`framework` today), else falls back to that group's `help.txt`. No build step or markdown/man dependency. | `0.5.5-alpha.2` | 2026-06-20 |
|
|
85
90
|
|
|
86
91
|
---
|
|
87
92
|
|
|
@@ -292,7 +297,7 @@ A cold audit of the Couchbase connector identified two critical security vulnera
|
|
|
292
297
|
| ✅ | **Trailer support** — `stream.sendTrailers()` + `waitForTrailers: true` | `0.4.0` | 2026-05-22 | Opt-in HTTP/2 response trailers via `self.sendTrailers(fields)`. The render pipeline sets `waitForTrailers` and emits the trailing headers after the body (in the `wantTrailers` event), across all render delegates. Activated only when a controller calls `self.sendTrailers(fields)`; HTTP/1.1 and the no-trailers path are unchanged. For gRPC-style streaming (`grpc-status`) and content-integrity (`Digest`) use cases. |
|
|
293
298
|
| ✅ | **Alt-Svc header** — advertise HTTP/3 availability | `0.4.2` | 2026-06-02 | Set `Alt-Svc: h3=":443"; ma=86400` response header to advertise HTTP/3 (QUIC) availability via a QUIC-capable reverse proxy (nginx, Caddy, Cloudflare). Gina does not need to implement QUIC — just announce it. Opt-in via `settings.server.json`. Native HTTP/3 is out of scope: Node.js has no stable QUIC API, and the standard deployment topology (Gina → proxy → client) already delivers HTTP/3 at the edge. |
|
|
294
299
|
| 📋 | **RFC 9218 Extensible Priorities** — read `Priority: u=N, i` request header | `0.5.x` | Q1 2027 | Use the RFC 9218 priority header to order response writes for multiplexed API clients. Low value for typical HTML page loads; high value for parallel API requests with declared urgency. |
|
|
295
|
-
| ✅ | **WebSocket over HTTP/2** (RFC 8441 extended CONNECT) — opt-in via `http2Options.enableConnectProtocol` (default off; https and cleartext h2c HTTP/2 bundles). From `onInitialize`, `app.onWebSocket(path, handler)` registers per-path WebSocket handlers; accepted streams arrive as full sessions backed by a built-in dependency-free RFC 6455 codec (auto-pong, timed close handshake, UTF-8 + close-code validation, payload/fragment DoS caps, backpressure passthrough, graceful shutdown drain). Unknown paths are refused with 404, plain CONNECT keeps its 405, and default-off deployments are byte-identical. | `0.4.7` | 2026-06-11 |
|
|
300
|
+
| ✅ | **WebSocket over HTTP/2** (RFC 8441 extended CONNECT) — opt-in via `http2Options.enableConnectProtocol` (default off; https and cleartext h2c HTTP/2 bundles). From `onInitialize`, `app.onWebSocket(path, handler)` registers per-path WebSocket handlers; accepted streams arrive as full sessions backed by a built-in dependency-free RFC 6455 codec (auto-pong, timed close handshake, UTF-8 + close-code validation, payload/fragment DoS caps, backpressure passthrough, graceful shutdown drain). Unknown paths are refused with 404, plain CONNECT keeps its 405, and default-off deployments are byte-identical. **Extended in `0.5.5`:** endpoints are declarable in `routing.json` (`method: "ws"` + `param.wsHandler` → `channels/<name>.js`, `:param` paths, per-route `param.wsOptions`), and handlers can call other bundles over HTTP with `session.query()`. | `0.4.7` | 2026-06-11 |
|
|
296
301
|
|
|
297
302
|
---
|
|
298
303
|
|
package/bin/cli-debug
CHANGED
|
@@ -11,6 +11,7 @@ const {exec} = require('child_process');
|
|
|
11
11
|
const {execSync} = require('child_process');
|
|
12
12
|
const {spawn} = require('child_process');
|
|
13
13
|
const os = require('os');
|
|
14
|
+
var runtime = require(__dirname + '/../utils/runtime.js');
|
|
14
15
|
|
|
15
16
|
var isWin32 = function() {
|
|
16
17
|
return (os.platform() == 'win32') ? true : false;
|
|
@@ -61,7 +62,12 @@ debugPort = (debugPort != null) ? '--inspect-brk=0.0.0.0:'+debugPort : '--inspec
|
|
|
61
62
|
// console.debug('\r\nDebugger attached.');
|
|
62
63
|
console.log('\nYou should now start debug on port #'+ settings.debug_port +' before doing anything else ...');
|
|
63
64
|
|
|
64
|
-
|
|
65
|
+
// Under Bun, `which node` resolves nothing (a Bun image ships no node) — spawn
|
|
66
|
+
// the running Bun binary instead. Under Node this is the byte-identical
|
|
67
|
+
// `which node` result (runtimeBinary() returns its fallback verbatim).
|
|
68
|
+
var nodeBin = runtime.isBun()
|
|
69
|
+
? runtime.runtimeBinary()
|
|
70
|
+
: runtime.runtimeBinary(execSync('which node').toString().trim());
|
|
65
71
|
var cliBin = __dirname + '/cli';
|
|
66
72
|
|
|
67
73
|
argv.splice(0, 0, debugPort);
|
package/bin/gina
CHANGED
|
@@ -29,13 +29,20 @@
|
|
|
29
29
|
var fs = require('fs');
|
|
30
30
|
const {spawn} = require('child_process');
|
|
31
31
|
const {execSync} = require('child_process');
|
|
32
|
+
var runtime = require(__dirname + '/../utils/runtime.js');
|
|
32
33
|
|
|
33
34
|
var restartPid = null;
|
|
34
35
|
|
|
35
36
|
function runAsSubProcess() {
|
|
36
37
|
|
|
37
38
|
var argv = Array.from(process.argv);
|
|
38
|
-
|
|
39
|
+
// Under Bun, `which node` resolves nothing (a Bun image ships no node) — spawn
|
|
40
|
+
// the running Bun binary instead so the daemon child inherits the runtime.
|
|
41
|
+
// Under Node this is the byte-identical `which node` result: isBun() is false,
|
|
42
|
+
// so runtimeBinary() returns its fallback verbatim (zero Node delta).
|
|
43
|
+
var nodeBin = runtime.isBun()
|
|
44
|
+
? runtime.runtimeBinary()
|
|
45
|
+
: runtime.runtimeBinary(execSync('which node').toString().trim());
|
|
39
46
|
var cliBin = __dirname + '/cli';
|
|
40
47
|
var fakeDaemonPid = '--fake-daemon-pid='+ process.pid;
|
|
41
48
|
|
|
@@ -189,7 +196,13 @@ function runCMD() {
|
|
|
189
196
|
|
|
190
197
|
process.env.NODE_BUNDLE = process.argv[3];
|
|
191
198
|
process.env.NODE_PROJECT = process.argv[4];
|
|
192
|
-
|
|
199
|
+
// Bun-safety: under Node, assigning an absent argv to an env var coerces to
|
|
200
|
+
// the string 'undefined' (so .replace works); under Bun it stays real
|
|
201
|
+
// undefined and .replace throws. Guard the call so Node behaviour is
|
|
202
|
+
// unchanged (on Node the value is always a string here).
|
|
203
|
+
if ( typeof process.env.NODE_PROJECT === 'string' ) {
|
|
204
|
+
process.env.NODE_PROJECT = process.env.NODE_PROJECT.replace(/\@/, '');
|
|
205
|
+
}
|
|
193
206
|
|
|
194
207
|
if (
|
|
195
208
|
/(bundle\:start|bundle\:restart)/.test(process.argv[2])
|
|
@@ -200,7 +213,12 @@ function runCMD() {
|
|
|
200
213
|
var tmpPath = getTmpDir();
|
|
201
214
|
var argFilename = tmpPath +'/'+ process.env.NODE_BUNDLE +'@'+ process.env.NODE_PROJECT +'.argv';
|
|
202
215
|
|
|
203
|
-
|
|
216
|
+
// Bun-safety: Node coerces an array assigned to an env var to a comma-
|
|
217
|
+
// joined string; Bun leaves it a real array (object), so the writeFileSync
|
|
218
|
+
// below throws "data must be string/Buffer". String(array) reproduces
|
|
219
|
+
// Node's comma-join exactly (zero Node delta) and matches the comma->space
|
|
220
|
+
// read in getBundleStartingArgv() (utils/helper.js).
|
|
221
|
+
process.env.NODE_ARGV = String(process.argv.slice());
|
|
204
222
|
if (/bundle\:restart/.test(process.argv[2])) {
|
|
205
223
|
process.env.NODE_ARGV = process.env.NODE_ARGV.replace('bundle:restart', 'bundle:start');
|
|
206
224
|
}
|
|
@@ -208,7 +226,10 @@ function runCMD() {
|
|
|
208
226
|
try {
|
|
209
227
|
fs.writeFileSync(argFilename, process.env.NODE_ARGV );
|
|
210
228
|
} catch (err) {
|
|
211
|
-
console.
|
|
229
|
+
// bin/gina's `console` is the global console (no lib.logger here), which
|
|
230
|
+
// has no `.emerg` on either runtime; emerg would itself throw. (This
|
|
231
|
+
// catch is unreachable on Node, where the write above never throws.)
|
|
232
|
+
console.error(err);
|
|
212
233
|
}
|
|
213
234
|
help = null;
|
|
214
235
|
tmpPath = null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.5.5
|
|
@@ -17517,6 +17517,10 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
|
|
|
17517
17517
|
* @type {object}
|
|
17518
17518
|
*/
|
|
17519
17519
|
var preloadCache = {};
|
|
17520
|
+
// preloadWaiters[url] = [fn, ...] — callbacks parked by a click that adopted an
|
|
17521
|
+
// in-flight preload; preloadFetch fires them with the body (or null on failure) so a
|
|
17522
|
+
// click reuses the prefetch instead of issuing a second identical GET (#B54).
|
|
17523
|
+
var preloadWaiters = {};
|
|
17520
17524
|
|
|
17521
17525
|
/** @inner @type {object} warn-once registry, keyed by deprecated attribute name */
|
|
17522
17526
|
var _deprecationWarned = {};
|
|
@@ -18032,10 +18036,16 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
|
|
|
18032
18036
|
xhrPreload.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
|
|
18033
18037
|
xhrPreload.onreadystatechange = function () {
|
|
18034
18038
|
if ( xhrPreload.readyState == 4 ) {
|
|
18039
|
+
// #B54 — wake any click that adopted this in-flight preload instead of
|
|
18040
|
+
// firing its own duplicate GET (see consumePreload).
|
|
18041
|
+
var _waiters = preloadWaiters[url] || [];
|
|
18042
|
+
delete preloadWaiters[url];
|
|
18035
18043
|
if ( /^2/.test(xhrPreload.status) ) {
|
|
18036
18044
|
preloadCache[url] = xhrPreload.responseText;
|
|
18045
|
+
for ( var _w = 0; _w < _waiters.length; ++_w ) { _waiters[_w](xhrPreload.responseText); }
|
|
18037
18046
|
} else {
|
|
18038
18047
|
delete preloadCache[url];
|
|
18048
|
+
for ( var _wf = 0; _wf < _waiters.length; ++_wf ) { _waiters[_wf](null); }
|
|
18039
18049
|
}
|
|
18040
18050
|
}
|
|
18041
18051
|
};
|
|
@@ -18087,17 +18097,47 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
|
|
|
18087
18097
|
}
|
|
18088
18098
|
|
|
18089
18099
|
/**
|
|
18090
|
-
* consumePreload —
|
|
18091
|
-
*
|
|
18092
|
-
*
|
|
18100
|
+
* consumePreload — reuse a hover/focus preload for `url` instead of firing a second
|
|
18101
|
+
* identical GET on click (#B54):
|
|
18102
|
+
* - ready (cached body) -> apply it now; return true.
|
|
18103
|
+
* - in-flight (null slot) -> park a waiter that applies the body when the
|
|
18104
|
+
* preload resolves (or runs `onMiss` if it failed);
|
|
18105
|
+
* return true (handled — caller must NOT also load).
|
|
18106
|
+
* - never warmed (undefined) -> return false so the caller loads itself.
|
|
18093
18107
|
*
|
|
18094
18108
|
* @inner
|
|
18109
|
+
* @param {string} url - the resolved popin URL.
|
|
18110
|
+
* @param {object} $popin - the registered popin.
|
|
18111
|
+
* @param {function} [onMiss] - the caller's click-time load, run only if an adopted
|
|
18112
|
+
* in-flight preload ends up failing.
|
|
18113
|
+
* @returns {boolean} true if the preload was (or will be) consumed.
|
|
18095
18114
|
*/
|
|
18096
|
-
function consumePreload(url, $popin) {
|
|
18097
|
-
|
|
18115
|
+
function consumePreload(url, $popin, onMiss) {
|
|
18116
|
+
var slot = preloadCache[url];
|
|
18117
|
+
if ( typeof(slot) == 'undefined' ) {
|
|
18098
18118
|
return false;
|
|
18099
18119
|
}
|
|
18100
|
-
|
|
18120
|
+
if ( slot === null ) {
|
|
18121
|
+
// In-flight: adopt the running preload rather than fire a second GET.
|
|
18122
|
+
// A preOpen popin still gets its instant born-modal skeleton now; the
|
|
18123
|
+
// adopted preload swaps in the real content on arrival — matching the
|
|
18124
|
+
// popinLoad preOpen flow this consume path bypasses (#B54).
|
|
18125
|
+
if ( $popin && $popin.options && $popin.options.preOpen ) {
|
|
18126
|
+
showLoadingShell($popin, ensurePopinDialog($popin));
|
|
18127
|
+
}
|
|
18128
|
+
if ( typeof(preloadWaiters[url]) == 'undefined' ) {
|
|
18129
|
+
preloadWaiters[url] = [];
|
|
18130
|
+
}
|
|
18131
|
+
preloadWaiters[url].push(function (body) {
|
|
18132
|
+
if ( body == null ) {
|
|
18133
|
+
if ( typeof(onMiss) == 'function' ) { onMiss(); }
|
|
18134
|
+
} else {
|
|
18135
|
+
handleLoadedBody(body, $popin, ensurePopinDialog($popin));
|
|
18136
|
+
}
|
|
18137
|
+
});
|
|
18138
|
+
return true;
|
|
18139
|
+
}
|
|
18140
|
+
var body = slot;
|
|
18101
18141
|
delete preloadCache[url];
|
|
18102
18142
|
var $el = ensurePopinDialog($popin);
|
|
18103
18143
|
handleLoadedBody(body, $popin, $el);
|
|
@@ -18261,12 +18301,13 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
|
|
|
18261
18301
|
});
|
|
18262
18302
|
}
|
|
18263
18303
|
|
|
18264
|
-
// Consume a warmed
|
|
18265
|
-
|
|
18304
|
+
// Consume a warmed OR in-flight preload; else fall through to a click-time XHR.
|
|
18305
|
+
var loadOptions = merge({ isSynchrone: false, withCredentials: false }, existing.options);
|
|
18306
|
+
var onMiss = function () { popinLoad(name, descriptor.src, loadOptions); };
|
|
18307
|
+
if ( consumePreload(descriptor.src, existing, onMiss) ) {
|
|
18266
18308
|
return;
|
|
18267
18309
|
}
|
|
18268
|
-
|
|
18269
|
-
popinLoad(name, descriptor.src, loadOptions);
|
|
18310
|
+
onMiss();
|
|
18270
18311
|
} else {
|
|
18271
18312
|
openInPageDialog(descriptor, $trigger);
|
|
18272
18313
|
}
|
|
@@ -18374,23 +18415,6 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
|
|
|
18374
18415
|
// console.debug("[POPIN CLICK #3]", $popin.openTrigger, " VS ", e.currentTarget.id);
|
|
18375
18416
|
$popin.openTrigger = e.currentTarget.id || e.currentTarget.getAttribute('id');
|
|
18376
18417
|
|
|
18377
|
-
var fired = false;
|
|
18378
|
-
addListener(gina, $popin.target, 'loaded.'+$popin.id, function(e) {
|
|
18379
|
-
e.preventDefault();
|
|
18380
|
-
|
|
18381
|
-
// console.debug('Popin loaded: true, fired: '+ fired + ', $popin.isOpen: '+ $popin.isOpen);
|
|
18382
|
-
|
|
18383
|
-
if (!fired) {
|
|
18384
|
-
fired = true;
|
|
18385
|
-
console.debug('active popin should be ', $popin.id);
|
|
18386
|
-
gina.popin.activePopinId = $popin.id;
|
|
18387
|
-
popinBind(e, $popin);
|
|
18388
|
-
if (!$popin.isOpen) {
|
|
18389
|
-
popinOpen($popin.name);
|
|
18390
|
-
}
|
|
18391
|
-
}
|
|
18392
|
-
});
|
|
18393
|
-
|
|
18394
18418
|
// loading & binding popin
|
|
18395
18419
|
// Non-Preflighted requests
|
|
18396
18420
|
var options = {
|
|
@@ -18402,7 +18426,38 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
|
|
|
18402
18426
|
if (!url) {
|
|
18403
18427
|
throw new Error('Popin `url` not defined, please check value for `data-gina-popin-url`');
|
|
18404
18428
|
}
|
|
18405
|
-
|
|
18429
|
+
|
|
18430
|
+
// The click-time load: registers the loaded.<id> listener that
|
|
18431
|
+
// injects + opens, then issues the XHR. Wrapped so a consumed
|
|
18432
|
+
// preload can skip it (#B54), and an adopted-but-failed preload
|
|
18433
|
+
// can fall back to it.
|
|
18434
|
+
var doLoad = function() {
|
|
18435
|
+
var fired = false;
|
|
18436
|
+
addListener(gina, $popin.target, 'loaded.'+$popin.id, function(e) {
|
|
18437
|
+
e.preventDefault();
|
|
18438
|
+
|
|
18439
|
+
// console.debug('Popin loaded: true, fired: '+ fired + ', $popin.isOpen: '+ $popin.isOpen);
|
|
18440
|
+
|
|
18441
|
+
if (!fired) {
|
|
18442
|
+
fired = true;
|
|
18443
|
+
console.debug('active popin should be ', $popin.id);
|
|
18444
|
+
gina.popin.activePopinId = $popin.id;
|
|
18445
|
+
popinBind(e, $popin);
|
|
18446
|
+
if (!$popin.isOpen) {
|
|
18447
|
+
popinOpen($popin.name);
|
|
18448
|
+
}
|
|
18449
|
+
}
|
|
18450
|
+
});
|
|
18451
|
+
popinLoad($popin.name, url, options);
|
|
18452
|
+
};
|
|
18453
|
+
|
|
18454
|
+
// #B54 — reuse a hover/focus preload (warmed OR in-flight) for the
|
|
18455
|
+
// same URL instead of firing a second identical GET. Mirrors the
|
|
18456
|
+
// new data-gina-dialog path (openFromTrigger).
|
|
18457
|
+
if ( consumePreload(url, $popin, doLoad) ) {
|
|
18458
|
+
return;
|
|
18459
|
+
}
|
|
18460
|
+
doLoad();
|
|
18406
18461
|
});
|
|
18407
18462
|
|
|
18408
18463
|
|
|
@@ -19003,9 +19058,9 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
|
|
|
19003
19058
|
*
|
|
19004
19059
|
* @example
|
|
19005
19060
|
* // gina default skeleton:
|
|
19006
|
-
* new
|
|
19061
|
+
* new Popin({ name: 'form', preOpen: true });
|
|
19007
19062
|
* // consumer markup (delete your own pre-open observer, keep your look):
|
|
19008
|
-
* new
|
|
19063
|
+
* new Popin({ name: 'form', preOpen: true, loadingShell: '<div class="my-skel">…</div>' });
|
|
19009
19064
|
*/
|
|
19010
19065
|
function showLoadingShell($popin, $el) {
|
|
19011
19066
|
// Opt-in only — off unless the popin was registered with `preOpen: true`.
|