gina 0.1.9-alpha.4 → 0.2.0
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/.github/FUNDING.yml +1 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +35 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +21 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +19 -0
- package/.github/workflows/test.yml +5 -0
- package/AUTHORS +6 -5
- package/CHANGELOG.md +48 -0
- package/README.md +2 -2
- package/ROADMAP.md +52 -10
- package/bin/cli +1 -0
- package/framework/v0.2.0/VERSION +1 -0
- package/framework/v0.2.0/core/asset/plugin/dist/vendor/gina/css/gina.min.css +1 -0
- package/framework/v0.2.0/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
- package/framework/v0.2.0/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
- package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/asset/plugin/dist/vendor/gina/html/toolbar.html.gz +0 -0
- package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
- package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
- package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/config.js +27 -6
- package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/connectors/couchbase/index.js +29 -6
- package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/connectors/couchbase/lib/session-store.v2.js +2 -1
- package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/connectors/couchbase/lib/session-store.v3.js +2 -1
- package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/connectors/couchbase/lib/session-store.v4.js +3 -1
- package/framework/v0.2.0/core/connectors/sqlite/index.js +344 -0
- package/framework/v0.2.0/core/connectors/sqlite/lib/connector.js +96 -0
- package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/gna.js +29 -10
- package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/model/entity.js +69 -65
- package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/server.isaac.js +18 -8
- package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/server.js +9 -2
- package/framework/v0.2.0/core/template/boilerplate/bundle/config/watchers.json +3 -0
- package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/boilerplate/bundle_templates/html/content/homepage.html +1 -1
- package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/boilerplate/bundle_templates/html/layouts/main.html +2 -2
- package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/conf/env.json +1 -1
- package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/bundle/add.js +16 -1
- package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/bundle/start.js +11 -0
- package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/cache/stats.js +71 -54
- package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/framework/init.js +19 -5
- package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/domain/dist/public_suffix_list.dat.gz +0 -0
- package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/generator/index.js +15 -0
- package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/index.js +8 -0
- package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/model.js +2 -1
- package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/proc.js +2 -2
- package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/session-store.js +13 -7
- package/framework/v0.2.0/lib/state.js +258 -0
- package/framework/v0.2.0/lib/watcher/package.json +20 -0
- package/framework/v0.2.0/lib/watcher/src/main.js +248 -0
- package/llms.txt +240 -0
- package/package.json +47 -11
- package/framework/v0.1.9-alpha.2/VERSION +0 -1
- package/framework/v0.1.9-alpha.4/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -1
- package/framework/v0.1.9-alpha.4/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
- package/framework/v0.1.9-alpha.4/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
- package/framework/v0.1.9-alpha.4/core/connectors/sqlite/index.js +0 -32
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/AUTHORS +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/LICENSE +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/asset/html/nolayout.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/asset/html/static.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/asset/img/android-chrome-192x192.png +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/asset/img/android-chrome-512x512.png +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/asset/img/apple-touch-icon.png +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/asset/img/favicon-16x16.png +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/asset/img/favicon-32x32.png +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/asset/img/favicon.ico +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/asset/plugin/README.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/asset/plugin/dist/vendor/gina/html/toolbar.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/asset/plugin/dist/vendor/gina/html/toolbar.html.br +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/asset/plugin/dist/vendor/gina/js/gina.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/asset/plugin/uuid.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/connectors/couchbase/lib/connector.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/connectors/couchbase/lib/connector.v2.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/connectors/couchbase/lib/connector.v3.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/connectors/couchbase/lib/connector.v4.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/connectors/couchbase/lib/n1ql.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/connectors/couchbase/lib/session-store.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/connectors/redis/index.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/connectors/redis/lib/session-store.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/connectors/sqlite/lib/session-store.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/content.encoding +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/controller/controller.framework.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/controller/controller.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/controller/controller.render-json.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/controller/controller.render-swig.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/controller/controller.render-v1.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/controller/index.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/busboy-1.6.0/LICENSE +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/busboy-1.6.0/README.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/busboy-1.6.0/lib/index.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/busboy-1.6.0/lib/types/multipart.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/busboy-1.6.0/lib/types/urlencoded.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/busboy-1.6.0/lib/utils.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/busboy-1.6.0/package.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/optimist-0.6.1/LICENSE +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/optimist-0.6.1/index.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/optimist-0.6.1/package.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/optimist-0.6.1/readme.markdown +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/CONTRIBUTING.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/HISTORY.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/LICENSE +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/Makefile +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/README.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/bin/swig.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/browser/comments.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/browser/index.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/docs/docs/api.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/docs/docs/browser.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/docs/docs/cli.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/docs/docs/extending.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/docs/docs/filters.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/docs/docs/includes/TYPES.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/docs/docs/includes/macros.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/docs/docs/index.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/docs/docs/layout.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/docs/docs/loaders.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/docs/docs/previous.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/docs/docs/tags.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/docs/docs.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/docs/index.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/docs/index.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/docs/js/lib/rainbow.min.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/docs/js/master.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/docs/layouts/html5.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/docs/layouts/master.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/docs/less/button.less +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/docs/less/fork.less +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/docs/less/header.less +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/docs/less/layout.less +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/docs/less/mixins.less +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/docs/less/rainbow.less +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/docs/less/reset.less +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/docs/less/sidenav.less +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/docs/less/swig.less +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/docs/less/variables.less +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/index.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/lib/dateformatter.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/lib/filters.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/lib/lexer.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/lib/loaders/filesystem.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/lib/loaders/index.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/lib/loaders/memory.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/lib/parser.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/lib/swig.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/lib/tags/autoescape.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/lib/tags/block.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/lib/tags/else.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/lib/tags/elseif.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/lib/tags/extends.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/lib/tags/filter.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/lib/tags/for.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/lib/tags/if.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/lib/tags/import.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/lib/tags/include.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/lib/tags/index.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/lib/tags/macro.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/lib/tags/parent.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/lib/tags/raw.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/lib/tags/set.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/lib/tags/spaceless.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/lib/utils.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/package.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/scripts/config-lint.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/scripts/githooks/post-merge +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/scripts/githooks/pre-commit +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/basic.test.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/bin/bin.filters.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/bin/bin.locals.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/bin/bin.locals.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/bin/bin.tags.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/bin/bin.test.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/bin/custom_filter.bin.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/bin/custom_tag.bin.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/bin/custom_tagControls.bin.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/bin/custom_varControls.bin.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/bin/options.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/extends_1.expectation.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/extends_1.test.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/extends_2.expectation.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/extends_2.test.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/extends_base.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/extends_layouts/extends_4.base.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/extends_layouts/extends_4.middle.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/extends_layouts/extends_bare.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/extends_layouts/extends_base.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/extends_layouts/extends_include.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/extends_layouts/extends_real_base.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/extends_set.expectation.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/extends_set.test.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/extends_tests/extends_3.expectation.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/extends_tests/extends_3.test.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/extends_tests/extends_4.expectation.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/extends_tests/extends_4.test.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/import.expectation.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/import.test.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/include.expectation.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/include.test.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/include_bar.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/include_extends.expectation.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/include_extends.test.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/includes.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/macros.expectation.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/macros.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/macros.test.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/nested_blocks.expectation.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/nested_blocks.test.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/nested_blocks_parent.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/parent-parent.expectation.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/parent-parent.test.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/parent.expectation.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/parent.test.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/set.expectation.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases/set.test.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases-error/circular.test.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases-error/circular_parent.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases-error/extends-non-existent.test.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases-error/report-filename-partial.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/cases-error/report-filename.test.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/comments.test.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/filters.test.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/loaders.test.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/regressions.test.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/tags/autoescape.test.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/tags/else.test.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/tags/extend.test.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/tags/filter.test.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/tags/for.test.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/tags/if.test.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/tags/import.test.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/tags/include.test.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/tags/macro.test.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/tags/parent.test.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/tags/raw.test.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/tags/set.test.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/tags/spaceless.test.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/tags.test.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/templates.test.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/variables.test.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-1.4.2/tests/whitespace.test.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-client/swig-2.0.0.min.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/deps/swig-client/swig.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/dev/index.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/dev/lib/class.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/dev/lib/factory.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/dev/lib/tools.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/locales/README.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/locales/currency.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/locales/dist/language/en.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/locales/dist/language/fr.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/locales/dist/region/en.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/locales/dist/region/fr.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/locales/index.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/mime.types +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/model/index.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/model/template/entityFactory.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/model/template/index.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/plugins/README.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/plugins/index.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/plugins/lib/file/README.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/plugins/lib/file/build.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/plugins/lib/file/package.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/plugins/lib/intl/README.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/plugins/lib/intl/build.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/plugins/lib/intl/package.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/plugins/lib/intl/src/main.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/plugins/lib/storage/README.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/plugins/lib/storage/build.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/plugins/lib/storage/package.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/plugins/lib/storage/src/main.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/plugins/lib/validator/README.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/plugins/lib/validator/build.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/plugins/lib/validator/package.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/plugins/lib/validator/src/form-validator.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/plugins/lib/validator/src/main.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/router.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/server.express.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/status.codes +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/_gitignore +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/boilerplate/bundle/config/app.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/boilerplate/bundle/config/connectors.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/boilerplate/bundle/config/routing.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/boilerplate/bundle/config/settings.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/boilerplate/bundle/config/templates.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/boilerplate/bundle/index.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/boilerplate/bundle_public/css/default.css +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/boilerplate/bundle_public/css/home.css +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/boilerplate/bundle_public/readme.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/command/gina.bat.tpl +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/command/gina.tpl +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/conf/manifest.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/conf/package.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/conf/settings.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/conf/statics.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/conf/templates.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/error/client/json/401.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/error/client/json/403.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/error/client/json/404.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/error/server/html/50x.html +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/error/server/json/500.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/error/server/json/503.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/template/extensions/logger/config.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/helpers/console.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/helpers/context.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/helpers/data/LICENSE +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/helpers/data/README.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/helpers/data/package.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/helpers/data/src/main.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/helpers/dateFormat.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/helpers/index.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/helpers/json/LICENSE +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/helpers/json/README.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/helpers/json/package.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/helpers/json/src/main.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/helpers/path.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/helpers/plugins/README.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/helpers/plugins/package.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/helpers/plugins/src/api-error.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/helpers/plugins/src/main.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/helpers/prototypes.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/helpers/task.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/helpers/text.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/archiver/README.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/archiver/build.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/archiver/package.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/archiver/src/dep/jszip.min.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/archiver/src/main.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cache/README.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cache/build.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cache/package.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cache/src/main.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/aliases.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/bundle/arguments.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/bundle/build.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/bundle/copy.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/bundle/cp.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/bundle/help.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/bundle/help.txt +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/bundle/list.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/bundle/remove.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/bundle/rename.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/bundle/restart.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/bundle/rm.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/bundle/status.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/bundle/stop.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/env/add.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/env/get.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/env/help.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/env/help.txt +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/env/link-dev.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/env/list.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/env/remove.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/env/rm.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/env/set.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/env/unset.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/env/use.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/framework/arguments.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/framework/build.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/framework/dot.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/framework/get.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/framework/help.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/framework/help.txt +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/framework/link-node-modules.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/framework/link.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/framework/msg.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/framework/open.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/framework/restart.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/framework/set.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/framework/start.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/framework/status.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/framework/stop.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/framework/tail.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/framework/update.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/framework/version.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/gina-dev.1.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/gina-framework.1.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/gina.1.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/helper.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/index.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/minion/help.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/minion/help.txt +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/msg.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/port/help.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/port/help.txt +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/port/inc/scan.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/port/list.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/port/reset.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/port/set.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/project/add.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/project/arguments.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/project/build.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/project/help.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/project/help.txt +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/project/import.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/project/list.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/project/move.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/project/remove.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/project/rename.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/project/restart.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/project/rm.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/project/start.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/project/status.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/project/stop.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/protocol/help.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/protocol/help.txt +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/protocol/list.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/protocol/set.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/scope/add.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/scope/help.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/scope/help.txt +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/scope/link-local.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/scope/link-production.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/scope/list.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/scope/remove.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/scope/rm.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/scope/use.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cmd/view/add.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/collection/README.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/collection/build.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/collection/package.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/collection/src/main.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/config.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cron/README.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cron/package.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/cron/src/main.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/domain/LICENSE +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/domain/README.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/domain/dist/2025-03-14_13-41-20_UTC.dat +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/domain/dist/public_suffix_list.dat +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/domain/dist/public_suffix_list.dat.br +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/domain/package.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/domain/src/main.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/inherits/LICENSE +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/inherits/README.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/inherits/package.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/inherits/src/main.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/logger/README.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/logger/package.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/logger/src/containers/default/index.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/logger/src/containers/file/index.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/logger/src/containers/mq/index.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/logger/src/containers/mq/listener.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/logger/src/containers/mq/speaker.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/logger/src/helper.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/logger/src/main.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/math/index.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/merge/README.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/merge/package.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/merge/src/main.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/routing/README.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/routing/build.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/routing/package.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/routing/src/main.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/shell.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/swig-filters/README.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/swig-filters/package.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/swig-filters/src/main.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/url/README.md +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/url/index.js +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/url/routing.json +0 -0
- /package/framework/{v0.1.9-alpha.4 → v0.2.0}/lib/validator.js +0 -0
- /package/framework/{v0.1.9-alpha.2 → v0.2.0}/package.json +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
github: gina-automator
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug report
|
|
3
|
+
about: Report a bug or unexpected behaviour
|
|
4
|
+
labels: bug
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Environment
|
|
8
|
+
|
|
9
|
+
| Field | Value |
|
|
10
|
+
| --- | --- |
|
|
11
|
+
| Node.js version (`node --version`) | |
|
|
12
|
+
| Gina version (`gina --version`) | |
|
|
13
|
+
| OS | |
|
|
14
|
+
|
|
15
|
+
## Description
|
|
16
|
+
|
|
17
|
+
<!-- A clear description of the bug -->
|
|
18
|
+
|
|
19
|
+
## Steps to reproduce
|
|
20
|
+
|
|
21
|
+
1.
|
|
22
|
+
2.
|
|
23
|
+
3.
|
|
24
|
+
|
|
25
|
+
## Expected behaviour
|
|
26
|
+
|
|
27
|
+
<!-- What you expected to happen -->
|
|
28
|
+
|
|
29
|
+
## Actual behaviour
|
|
30
|
+
|
|
31
|
+
<!-- What actually happened — include error output, stack trace, or logs if available -->
|
|
32
|
+
|
|
33
|
+
## Additional context
|
|
34
|
+
|
|
35
|
+
<!-- Any other relevant information (bundle config, connectors.json snippet, etc.) -->
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature request
|
|
3
|
+
about: Propose a new feature or improvement
|
|
4
|
+
labels: enhancement
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Use case
|
|
8
|
+
|
|
9
|
+
<!-- What problem does this solve? Who benefits and in what context? -->
|
|
10
|
+
|
|
11
|
+
## Proposed solution
|
|
12
|
+
|
|
13
|
+
<!-- Describe the feature, API shape, or behaviour change you have in mind -->
|
|
14
|
+
|
|
15
|
+
## Alternatives considered
|
|
16
|
+
|
|
17
|
+
<!-- Other approaches you considered and why you preferred this one -->
|
|
18
|
+
|
|
19
|
+
## Additional context
|
|
20
|
+
|
|
21
|
+
<!-- Relevant prior art, links to related issues, or implementation notes -->
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
## Summary
|
|
2
|
+
|
|
3
|
+
<!-- What does this PR do? One or two sentences. -->
|
|
4
|
+
|
|
5
|
+
## Related issue
|
|
6
|
+
|
|
7
|
+
<!-- Closes #NNN or "No related issue" -->
|
|
8
|
+
|
|
9
|
+
## Checklist
|
|
10
|
+
|
|
11
|
+
- [ ] Tests pass — `node --test test/**/*.test.js`
|
|
12
|
+
- [ ] New behaviour is covered by a test (or justification provided below)
|
|
13
|
+
- [ ] `changie new` entry added for any user-facing change
|
|
14
|
+
- [ ] Commit messages follow the project style (imperative/gerund, no AI references)
|
|
15
|
+
- [ ] Docs updated if public API, CLI, or config schema changed
|
|
16
|
+
|
|
17
|
+
## Notes
|
|
18
|
+
|
|
19
|
+
<!-- Anything the reviewer should pay attention to — design trade-offs, known gaps, follow-up items -->
|
package/AUTHORS
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
#
|
|
2
|
-
# project in one way or another.
|
|
3
|
-
#
|
|
1
|
+
# Authors (sorted alphabetically)
|
|
4
2
|
|
|
5
|
-
Martin Luther ETOUMAN <martin-luther.etouman@gina.io>
|
|
6
3
|
Fabrice Delaneau <fabrice.delaneau@gina.io>
|
|
7
|
-
|
|
4
|
+
Martin Luther ETOUMAN <martin-luther.etouman@gina.io>
|
|
5
|
+
|
|
6
|
+
# Contributors (sorted alphabetically)
|
|
7
|
+
|
|
8
|
+
Stephane HEAV <stephane.heav@gmail.com>
|
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,54 @@ 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.2.0 - 2026-03-29
|
|
10
|
+
### Added
|
|
11
|
+
* NODE_COMPILE_CACHE (#P1): set at startup in gna.js to ~/.gina/cache/v8 — Node.js >= 22.8 caches V8 bytecode to disk, reducing cold-start time by 30–60% on subsequent runs. No-op on older Node versions.
|
|
12
|
+
* JSON Schemas for routing.json, app.json, connectors.json, settings.json, app.crons.json — machine-readable schemas at schema/ in the package root. Scaffold templates now include "$schema" references to https://gina.io/schema/ for free editor validation and autocomplete in VS Code and any JSON Schema-aware IDE (#AI1)
|
|
13
|
+
* GitHub Discussions enabled — community Q&A and Show and Tell categories now available on the repo (#A10)
|
|
14
|
+
* Added V8 pointer compression detection at startup: sets GINA_V8_POINTER_COMPRESSED=true and logs heap limit when Node.js is built with --experimental-enable-pointer-compression (#P4)
|
|
15
|
+
* Added unit tests for #M2 entity._arguments buffer management — covers Promise path deletion and DISPATCH:BUFFER_CALLBACK deletion (3 tests, test/core/entity-arguments.test.js)
|
|
16
|
+
* Redis session store connector (CN1): ioredis-backed store with standalone, Cluster, and TLS support; configured via connectors.json — no credentials in application code
|
|
17
|
+
* SQLite session store connector (CN2 v1): node:sqlite-backed store (built-in since Node 22.5.0, zero npm deps) with WAL mode, prepared-statement caching, and background expiry cleanup; supports file-based and ':memory:' databases
|
|
18
|
+
* Added GitHub Actions CI pipeline — runs the full test suite (494+ tests) on Node.js 18, 20, and 22 on every push and PR to `develop` and `master` (#A1)
|
|
19
|
+
* Stable release now auto-tags, merges to master, and publishes the next alpha to npm
|
|
20
|
+
* SQLite ORM connector v2: entity wiring + SQL method generation from .sql files, Option-B Promise/.onComplete() pattern, connector.js (WAL, FK, synchronous open), 56 unit tests
|
|
21
|
+
* Added llms.txt — LLM-optimised framework reference for Cursor, Copilot, Claude.ai
|
|
22
|
+
* Added peerDependencies (all optional) for connector client libraries: couchbase, ioredis, mysql2, pg, mongodb, @scylladb/scylla-driver
|
|
23
|
+
* Added GitHub issue templates (bug_report, feature_request) and PR template
|
|
24
|
+
* SQLite state storage for ~/.gina/ config files (CN2 v3): lib/state.js StateStore routes all state-file writes through node:sqlite (DatabaseSync) for atomic writes and concurrent access safety; JSON sidecars kept for backwards-compat read paths
|
|
25
|
+
* Added WatcherService (lib/watcher): fs.watch-based file-change registry. Reads watchers.json bundle config and starts native file watchers on server startup. Exposes gna.watcher for framework-internal registration (#M6). 9 new tests in test/core/watcher.test.js.
|
|
26
|
+
* bundle:add preserves existing bundle source when the src/ directory already exists and rewrite is false — cloned starter repos are no longer overwritten
|
|
27
|
+
### Changed
|
|
28
|
+
* README: added 3-bullet why-Gina summary, feature highlights table, and Quick start section at the top; added MIT license and Node.js >= 18 badges; updated npm keywords to be search-relevant (http2, multi-bundle, event-driven, rest, api, couchbase) (#A9, #V3)
|
|
29
|
+
### Fixed
|
|
30
|
+
* Removed dead singleton infrastructure from SuperController (SuperController.instance, SuperController.initialized, init()/getInstance() singleton path); removed 4 no-op freeMemory([], false) calls; fixed throwError() HTML error path missing local.req/res/next = null after res.end() (#M1)
|
|
31
|
+
* Added deprecation warning to Couchbase SDK v2 connector: logs on every connection when sdk.version is 2 (EOL since 2021, removal planned for 0.4.0). Adds a separate fatal error when GINA_V8_POINTER_COMPRESSED=true, as v2 NAN bindings are incompatible with pointer-compressed Node.js builds.
|
|
32
|
+
* Fixed DISPATCH:BUFFER_CALLBACK path (util.promisify path in entity method wrappers): entity._arguments[trigger] was consumed but not deleted after use, allowing a buffered result from one request to persist and resolve all subsequent callers with stale data. Now deletes the buffer after consuming, matching the Promise path behaviour (#M2).
|
|
33
|
+
* Retired freeMemory() helper in controller pipeline — replaced all call sites with explicit local.req/res/next nulling so intent is visible at each response exit point (#M3)
|
|
34
|
+
* Fixed `/_gina/info` HTTP/2 endpoint returning `[object Object]` — `stream.end(infoHeaders)` was passing the headers object instead of the JSON string `infoStatus` (#H1)
|
|
35
|
+
* Added stream-closed guard (`stream.destroyed || stream.closed`) to `throwError()` HTML error response path — prevents unhandled error on HTTP/2 when a stream closes between error trigger and response write (#H2)
|
|
36
|
+
* Fixed infinite recursion in connector ping() when keepAlive is false (CB-BUG-4): replaced unconditional self.ping() recursive call with return in v2/v3/v4
|
|
37
|
+
* Removed redundant modelUtil.setConnection() call in connector v2/v3/v4 onConnect() (CB-PERF-3): first unconditional call before the existsSync guard was a no-op duplicate
|
|
38
|
+
* Fixed gina.onError() handler accumulation on Couchbase reconnect (CB-BUG-1): guarded registration with _errorHandlerRegistered flag so only one handler is registered per connector instance across reconnections (v2/v3/v4)
|
|
39
|
+
* Fixed session-store.v3 get() always returning session-not-found (CB-BUG-2): converted to async/await so Promise resolves before checks run — every session lookup was failing silently, forcing re-authentication on every request
|
|
40
|
+
* Fixed session-store.v3 set() silently discarding writes (CB-BUG-3): converted to async/await so upsert is awaited before calling fn() — writes appeared to succeed but were never confirmed
|
|
41
|
+
* Fixed CB-PERF-1 (300ms startup delay), CB-PERF-2 (ping reconnect drops callback), CB-QUAL-2 (eval() for @options parsing), CB-QUAL-3 (bulkInsert returns plain object instead of Promise) in Couchbase connector
|
|
42
|
+
* Fixed CB-QUAL-4, CB-LOW-1–5, CB-LOW-7: sanitised bulkInsert key in N1QL, fixed uuid implicit global, re-enabled strict mode in index.js, removed dead os.version import, removed duplicate use-strict in session-store.v4, added exponential backoff for Couchbase reconnects, removed dead commented-out blocks in connector files
|
|
43
|
+
* Fixed bundle:start hang: JSON.parse(process.argv[3]) in gna.start() threw SyntaxError in CLI mode where argv[3] is the project name (plain string), causing every bundle to crash silently and wait the full 60-second timeout. Added JSON format guard. Also added immediate crash detection in the start.js child watcher for non-zero exits during startup (#B9).
|
|
44
|
+
* Made engine.io a lazy require in server.isaac.js — loaded only when options.ioServer is configured, so bundles without WebSocket support no longer crash at startup if engine.io is absent
|
|
45
|
+
* Made ssl-checker a lazy require in server.js — loaded only inside verifyCertificate(), so bundles not using HTTPS cert verification no longer crash at startup if ssl-checker is absent
|
|
46
|
+
* Fixed Couchbase entity methods called via util.promisify without .bind(): instead of crashing with a cryptic 'Cannot set properties of undefined (setting _isRegisteredFromProto)', the framework now transparently recovers the entity singleton so the call succeeds
|
|
47
|
+
* Fixed EventEmitter listener leak on entity singleton when using util.promisify without .bind() (intermittent 500 errors under repeated requests on the same entity method)
|
|
48
|
+
* Boilerplate templates installed by view:add now render correctly — doubled html/ prefix removed from extends and include paths
|
|
49
|
+
* cache:stats now falls back through all assigned port/scheme combinations instead of trying only the first — fixes ECONNREFUSED on bundles that run HTTP/2 only
|
|
50
|
+
* Fixed entity method concurrency: concurrent callers on the same method now each receive their own result (FIFO queue dispatch replaces single-slot _callbacks; DISPATCH:PREEMPTIVE_BUFFER and consume paths queue-aware)
|
|
51
|
+
* All user-customisable settings (port, debug_port, mq_port, host_v4, hostname, logdir, tmpdir, rundir, log_level) now survive a shortVersion bump (e.g. 0.1 → 0.2) — previously they were silently reset to defaults because post_install pre-creates ~/.gina/<shortVersion>/settings.json from the template before init.js runs, making the migration block unreachable; fixed by detecting the unresolved template and triggering migration in that case too
|
|
52
|
+
### Security
|
|
53
|
+
* Added four missing HTTP/2 server security settings in `isaac.js`: `maxHeaderListSize: 65536` (HPACK bomb defense), `enablePush: false` (deprecated in browsers), `maxSessionRejectedStreams: 100` (RST/rapid reset flood defense — CVE-2019-9514, CVE-2023-44487), `maxSessionInvalidFrames: 1000` (CONTINUATION flood defense — CVE-2024-27316, CVE-2024-27983) (#H3)
|
|
54
|
+
* Fixed Couchbase restQuery() credential exposure and shell injection (CB-SEC-1, CB-SEC-2): replaced exec(curl...) with http.request(), credentials now sent via Authorization header, no shell involved
|
|
55
|
+
* Removed err.stack from HTTP 500 JSON response body in Couchbase connector (CB-QUAL-1): stack traces with filesystem paths now logged server-side only, never sent to clients
|
|
56
|
+
|
|
9
57
|
## 0.1.8 - 2026-03-27
|
|
10
58
|
### Added
|
|
11
59
|
* Added .github/dependabot.yml — weekly npm dependency updates for root package.json; vendored framework deps excluded
|
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Gina <img src="https://gina.io/favicon-16x16.png" alt="Gina icon" style="position: absolute; top:10px; margin-right: 10px;" />
|
|
2
2
|
|
|
3
|
-
[](https://badge.fury.io/js/gina) [](https://badge.fury.io/js/gina) [](https://badge.fury.io/gh/gina-io%2Fgina) [](https://opensource.org/licenses/MIT) [](https://nodejs.org) [](https://github.com/gina-io/gina/actions/workflows/test.yml)
|
|
4
4
|
|
|
5
|
-
> **Documentation:** [https://gina.io/docs/](https://gina.io/docs/) · **Issues:** [GitHub](https://github.com/
|
|
5
|
+
> **Documentation:** [https://gina.io/docs/](https://gina.io/docs/) · **Issues:** [GitHub](https://github.com/gina-io/gina/issues)
|
|
6
6
|
|
|
7
7
|
Node.js MVC framework with built-in HTTP/2, multi-bundle architecture, and scope-based data isolation — no Express dependency.
|
|
8
8
|
|
package/ROADMAP.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
This roadmap covers planned features, architectural improvements, new connectors, and AI integration. Items marked ✅ are shipped. All planned items are open to community contribution — see [CONTRIBUTING.md](./CONTRIBUTING.md) for how to get involved.
|
|
4
4
|
|
|
5
|
-
> **Docs:** [gina.io/docs](https://gina.io/docs/) · **Issues:** [github.com/
|
|
5
|
+
> **Docs:** [gina.io/docs](https://gina.io/docs/) · **Issues:** [github.com/gina-io/gina/issues](https://github.com/gina-io/gina/issues)
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -12,9 +12,9 @@ This roadmap covers planned features, architectural improvements, new connectors
|
|
|
12
12
|
| --- | --- | --- |
|
|
13
13
|
| **Apr 2026** | `0.1.8` ✅ | Scaffold correctness · K8s support · Dependency injection · Automatic version migration |
|
|
14
14
|
| **Q2 2026** | `0.2.0` | Stability · WatcherService · Redis & SQLite connectors · K8s session storage · Startup cache · Pointer compression · Couchbase v2 deprecation · Couchbase security & critical bug fixes · HTTP/2 security hardening |
|
|
15
|
-
| **Q3 2026** | `0.3.0` | Async/await · Dev hot-reload · MySQL & PostgreSQL connectors · AI Phase 2 · Tutorials · Mobile backend guide · Route radix tree · Connector peerDependencies · 103 Early Hints · HTTP/2 observability · Security & CVE page · Couchbase connector hardening |
|
|
16
|
-
| **Q4 2026** | `0.4.0` | TypeScript declarations · AI agents (OpenAPI, MCP) · ScyllaDB connector · PWA scaffold · Advanced tutorial · Website redesign · Docs offline ZIP · Bun investigation · Couchbase v2 removal · HTTP/2 hardening · Trailer support |
|
|
17
|
-
| **Q1 2027** | `0.5.0` | ESM support · Template engine migration · Structured logging · Alt-Svc · HTTP/2 priorities · WebSocket over HTTP/2 |
|
|
15
|
+
| **Q3 2026** | `0.3.0` | Async/await · Dev hot-reload · MySQL & PostgreSQL connectors · AI Phase 2 · Tutorials · Mobile backend guide · Route radix tree · Connector peerDependencies · 103 Early Hints · HTTP/2 observability · Security & CVE page · Per-bundle framework version · Couchbase connector hardening · Beemaster Phase 1 |
|
|
16
|
+
| **Q4 2026** | `0.4.0` | TypeScript declarations · AI agents (OpenAPI, MCP) · ScyllaDB connector · PWA scaffold · Advanced tutorial · Website redesign · Docs offline ZIP · Bun investigation · Couchbase v2 removal · HTTP/2 hardening · Trailer support · Beemaster core |
|
|
17
|
+
| **Q1 2027** | `0.5.0` | ESM support · Template engine migration · Structured logging · Alt-Svc · HTTP/2 priorities · WebSocket over HTTP/2 · Beemaster admin |
|
|
18
18
|
| **Q3 2027** | `1.0.0` | First stable release — Windows alpha compatibility is a hard gate |
|
|
19
19
|
|
|
20
20
|
---
|
|
@@ -24,8 +24,9 @@ This roadmap covers planned features, architectural improvements, new connectors
|
|
|
24
24
|
| Status | Feature | Version | Target |
|
|
25
25
|
| --- | --- | --- | --- |
|
|
26
26
|
| ✅ | **Automatic version migration** — Upgrading or downgrading gina (e.g. `0.1.x → 0.2.0`, `0.5.x → 1.0.0`) automatically migrates `~/.gina/` config to the new version on first startup. Downgrade is free — old version data is never removed. | `0.1.8` | 2026-03-26 |
|
|
27
|
-
|
|
|
27
|
+
| ✅ | **`watchers.json`** — First-class bundle config for file watchers. Declare watchers on config files with event-based notification (no polling). Foundation for the dev-mode hot-reload system. | `0.2.0` | 2026-03-29 |
|
|
28
28
|
| 📋 | **PWA scaffold** — `gina bundle:add` drops `manifest.json`, a service worker stub (`sw.js`), and the required `<meta>` / `<link>` tags into the bundle boilerplate. Zero runtime dependency. Enables Gina apps to be installed on mobile as PWAs without additional tooling. | `0.4.0` | Q4 2026 |
|
|
29
|
+
| 📋 | **Per-bundle framework version** — Declare `"gina_version": "0.1.8"` on any bundle entry in `manifest.json` to pin that bundle to a specific installed framework version. The socket server continues running its own version; only the spawned bundle process uses the declared version. Validated against the tracked version list in `main.json` before start. `--gina-version=X.Y.Z` flag on `bundle:start` provides the same override without touching config files. | `0.3.0` | Q3 2026 |
|
|
29
30
|
|
|
30
31
|
---
|
|
31
32
|
|
|
@@ -35,8 +36,8 @@ This roadmap covers planned features, architectural improvements, new connectors
|
|
|
35
36
|
|
|
36
37
|
| Status | Feature | Version | Target |
|
|
37
38
|
| --- | --- | --- | --- |
|
|
38
|
-
|
|
|
39
|
-
|
|
|
39
|
+
| ✅ | **Per-request controller instances** — Each HTTP request gets its own isolated controller instance with its own request state. Removes dead singleton infrastructure and fixes edge-case memory retention in error paths. | `0.2.0` | Q2 2026 |
|
|
40
|
+
| ✅ | **Entity `_arguments` buffer scoped to call** — Move the event result buffer from the entity to the individual call, preventing concurrent callers from sharing state. | `0.2.0` | 2026-03-29 |
|
|
40
41
|
| ✅ | **Retire `freeMemory`** — Once per-request instances land (#M1), there is no shared `local` closure to null. Replace `freeMemory` call sites with explicit `local.req = null; local.res = null; local.next = null` at response exit points. | `0.2.0` | Q2 2026 |
|
|
41
42
|
|
|
42
43
|
### Phase 2 — Async
|
|
@@ -78,7 +79,7 @@ New database connectors follow the same interface as the existing Couchbase conn
|
|
|
78
79
|
| Status | Connector | Version | Target | Notes |
|
|
79
80
|
| --- | --- | --- | --- | --- |
|
|
80
81
|
| ✅ | **Redis** | `0.2.0` | Q2 2026 | Session store and general-purpose cache. Client: `ioredis`. Required for K8s horizontal scaling. |
|
|
81
|
-
|
|
|
82
|
+
| ✅ | **SQLite** | `0.2.0` | Q2 2026 | Three use cases: framework state storage (replaces JSON files under `~/.gina/`), session store for single-pod/dev deployments, and embedded ORM connector. Uses `node:sqlite` (Node.js built-in since v22.5.0 — zero npm deps). Session store done (v1 — 2026-03-27 · `96c5808a`); ORM connector done (v2 — 2026-03-28 · `08ead296`); state storage done (v3 — 2026-03-28 · `da5c55ba`). |
|
|
82
83
|
| 📋 | **MySQL / MariaDB** | `0.3.0` | Q3 2026 | ORM connector. Client: `mysql2`. |
|
|
83
84
|
| 📋 | **PostgreSQL** | `0.3.0` | Q3 2026 | ORM connector. Client: `pg` (node-postgres). |
|
|
84
85
|
| 📋 | **ScyllaDB** | `0.4.0` | Q4 2026 | Cassandra-compatible wide-column store. Client: `@scylladb/scylla-driver`. |
|
|
@@ -157,7 +158,7 @@ A cold audit of the Couchbase connector identified two critical security vulnera
|
|
|
157
158
|
|
|
158
159
|
| Status | Feature | Version | Target |
|
|
159
160
|
| --- | --- | --- | --- |
|
|
160
|
-
|
|
|
161
|
+
| ✅ | **JSON Schemas for config files** — Machine-readable schemas for `routing.json`, `connectors.json`, `app.json`, `settings.json`, `app.crons.json`. Adds `"$schema"` references to generated scaffold files. Gives editors free validation and autocomplete; gives AI assistants authoritative field names so generated config is correct on the first attempt. | `0.2.0` | Q2 2026 |
|
|
161
162
|
| 📋 | **TypeScript declaration files** — Cross-listed with Modernisation Phase 4. Essential for AI code generation accuracy. | `0.4.0` | Q4 2026 |
|
|
162
163
|
|
|
163
164
|
### Phase 2 — Gina apps can use AI
|
|
@@ -198,6 +199,47 @@ Windows compatibility is a hard requirement for `1.0.0`. The alpha scope covers
|
|
|
198
199
|
|
|
199
200
|
---
|
|
200
201
|
|
|
202
|
+
## Beemaster
|
|
203
|
+
|
|
204
|
+
Standalone gina dev and admin tool. A dedicated browser-tab app (`services/src/beemaster/`) served on port 4101 alongside the gina dev server. Replaces the in-page toolbar with a thin status bar and brings all tooling and management into an isolated, full-size UI.
|
|
205
|
+
|
|
206
|
+
**Why a standalone app:** The in-page toolbar pollutes the app DOM, causes CSS/JS conflicts, and cannot scale to admin-level operations. Beemaster runs outside the app page — no DOM conflicts, full UI real estate, and works for both local and remote/K8s gina instances. An optional browser extension companion can be built on top later (Phase 4).
|
|
207
|
+
|
|
208
|
+
### Phase 1 — Decouple in-page toolbar
|
|
209
|
+
|
|
210
|
+
| Status | Feature | Version | Target |
|
|
211
|
+
| --- | --- | --- | --- |
|
|
212
|
+
| 📋 | **Thin in-page status bar** — Remove the in-page toolbar bundle entirely. Replace with a lightweight `<div>` injected only in dev mode: bundle name, environment, a status dot (green/yellow/red), and an "Open Beemaster" link to port 4101. No RequireJS, no jQuery, no SASS. Zero DOM impact on the app. | `0.3.0` | Q3 2026 |
|
|
213
|
+
| 📋 | **`window.__ginaData`** — Replace the current `<pre>` tag data embedding with a single `<script>window.__ginaData={...}</script>` tag (dev mode only). Smaller page weight, no DOM nodes to scrape. Beemaster reads it on connect via `window.opener` or a `postMessage` handshake. | `0.3.0` | Q3 2026 |
|
|
214
|
+
|
|
215
|
+
### Phase 2 — Beemaster core
|
|
216
|
+
|
|
217
|
+
| Status | Feature | Version | Target |
|
|
218
|
+
| --- | --- | --- | --- |
|
|
219
|
+
| 📋 | **Bundle scaffold** — `services/src/beemaster/` gina bundle on port 4101. Single-page app with tab navigation. Auto-starts with the gina dev server when `NODE_ENV_IS_DEV=true`. Replaces the empty `services/src/toolbar/` skeleton. | `0.4.0` | Q4 2026 |
|
|
220
|
+
| 📋 | **Toolbar tab** — Full toolbar UI (Data, View, Forms, Configuration, Routing sub-tabs) migrated from in-page injection to Beemaster. Copy-to-clipboard and value inspector features carry over. | `0.4.0` | Q4 2026 |
|
|
221
|
+
| 📋 | **Real-time data via engine.io** — Wire the already-bundled `engine.io-client` to port 8125. Data, log events, and XHR activity stream in real time over a persistent socket. Replaces the current page-snapshot model. | `0.4.0` | Q4 2026 |
|
|
222
|
+
| 📋 | **Logs tab** — Real-time log tail with level filter (debug/info/warn/error), bundle filter, text search, and pause/resume. Replaces the current stub Logs tab (no implementation). | `0.4.0` | Q4 2026 |
|
|
223
|
+
|
|
224
|
+
### Phase 3 — Admin
|
|
225
|
+
|
|
226
|
+
| Status | Feature | Version | Target |
|
|
227
|
+
| --- | --- | --- | --- |
|
|
228
|
+
| 📋 | **Auth layer** — Token-based auth gate for all write operations. Read-only tabs (Toolbar, Logs, Routing) are unauthenticated in local dev. Write operations always require the token. Required before admin tabs are safe to use. | `0.5.0` | Q1 2027 |
|
|
229
|
+
| 📋 | **Bundles tab** — List running and stopped bundles. Actions: start, stop, restart, build — dispatches the equivalent `gina bundle:*` command. Real-time status updates via engine.io. | `0.5.0` | Q1 2027 |
|
|
230
|
+
| 📋 | **Projects tab** — List registered gina projects. Actions: add, remove, view config (`app.json`, `routing.json`, `connectors.json`) with syntax highlighting. | `0.5.0` | Q1 2027 |
|
|
231
|
+
| 📋 | **DB connectors tab** — View all connectors across registered bundles (Couchbase, SQLite, Redis, MySQL, PostgreSQL, ScyllaDB). Connection status, latency, test connection button. Credentials always masked. | `0.5.0` | Q1 2027 |
|
|
232
|
+
| 📋 | **Query inspector** — Live entity query log: connector type, query text, parameters, duration (ms), row count. Delivered via engine.io. Filters: connector, bundle, slow query threshold. | `0.5.0` | Q1 2027 |
|
|
233
|
+
|
|
234
|
+
### Phase 4 — Advanced
|
|
235
|
+
|
|
236
|
+
| Status | Feature | Version | Target |
|
|
237
|
+
| --- | --- | --- | --- |
|
|
238
|
+
| 📋 | **Multi-instance support** — Connect Beemaster to remote gina instances (staging, K8s) by entering a host:port. Each instance appears as a named environment tab. | post-1.0.0 | — |
|
|
239
|
+
| 📋 | **Browser extension companion** — Chrome/Firefox DevTools panel that embeds a Beemaster view in F12, connecting to the local instance via WebSocket. Optional enhancement on top of the standalone app — not a replacement. | post-1.0.0 | — |
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
201
243
|
## Tutorials
|
|
202
244
|
|
|
203
245
|
| Status | Tutorial | Duration | Version | Target |
|
|
@@ -220,4 +262,4 @@ Windows compatibility is a hard requirement for `1.0.0`. The alpha scope covers
|
|
|
220
262
|
|
|
221
263
|
---
|
|
222
264
|
|
|
223
|
-
*Last updated: 2026-03-
|
|
265
|
+
*Last updated: 2026-03-29 (Per-bundle framework version added) · To suggest a feature, [open an issue](https://github.com/gina-io/gina/issues).*
|
package/bin/cli
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.2.0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@font-face{font-family:"have_heart_oneregular";src:url(fonts/have_heart_one-webfont.woff2) format("woff2"),url(fonts/have_heart_one-webfont.woff) format("woff");font-weight:400;font-style:normal}.gina-popin-container{background:#fff}.gina-popins-overlay,div.gina-popin-container{visibility:hidden;opacity:0;z-index:1;transition:opacity .3s,visibility 0 .3s}.gina-popins-overlay.gina-popin-is-active,div.gina-popin-container.gina-popin-is-active{opacity:1;visibility:visible;transition-delay:0}dialog.gina-popin-container{padding:0;border:none;z-index:1}.gina-popins-overlay{position:fixed;left:0;top:0;display:grid;place-items:center;width:100%;height:100%;transition:opacity .3s,visibility .3s;overflow:auto;background:rgba(0,0,0,.75)}.gina-popins-overlay.gina-popin-is-active{backdrop-filter:blur(6px)}dialog::backdrop{background-color:rgba(0,0,0,.75);backdrop-filter:blur(6px)}.gina-toolbar a,.gina-toolbar div,.gina-toolbar form,.gina-toolbar label,.gina-toolbar li,.gina-toolbar small,.gina-toolbar span,.gina-toolbar strong,.gina-toolbar ul{clear:none;float:none;position:static;margin:0;padding:0;border:0;outline:0;vertical-align:baseline;background:0 0;box-sizing:inherit}.gina-toolbar legend,.gina-toolbar p{clear:none;position:static;padding:0;border:0;box-sizing:inherit}.gina-toolbar fieldset,.gina-toolbar legend,.gina-toolbar p{float:none;outline:0;vertical-align:baseline;background:0 0}.gina-toolbar,.gina-toolbar *,.gina-toolbar :after,.gina-toolbar :before{clear:none;float:none;margin:0;padding:0;border:0;outline:0;vertical-align:baseline;background:0 0}.gina-toolbar *,.gina-toolbar :after,.gina-toolbar :before,.gina-toolbar fieldset{position:static;box-sizing:inherit}.gina-toolbar{box-sizing:content-box;display:block;position:fixed!important;width:auto;height:auto;min-width:260px;color:#888;font:12px/18px "Lucida Grande",Lucida,Arial,Helvetica,sans-serif;overflow:hidden;background-color:rgba(0,0,0,.8);z-index:2147483647}.gina-toolbar div,.gina-toolbar fieldset,.gina-toolbar form,.gina-toolbar legend,.gina-toolbar li,.gina-toolbar p,.gina-toolbar ul{display:block}.gina-toolbar a,.gina-toolbar label,.gina-toolbar small,.gina-toolbar span,.gina-toolbar strong{display:inline}.gina-toolbar a:focus{outline:none}@supports (-webkit-backdrop-filter:none) or (backdrop-filter:none){.gina-toolbar{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}}.gina-toolbar p{margin:0 0 6px}.gina-toolbar svg{position:relative;display:block;width:16px;height:16px;fill:#fff}.gina-toolbar fieldset{clear:both;padding:0;margin:0;border:none}.gina-toolbar fieldset+fieldset{padding:12px 0 0;margin:12px 0 0;border-top:1px solid #444}.gina-toolbar legend{margin:6px 0;color:#888;font-size:12px;font-weight:400}.gina-toolbar input[type=text],.gina-toolbar label{color:#fff;font-size:12px;font-weight:400}.gina-toolbar input[type=text]{appearance:none;text-align:center;background:0 0;border:none}.gina-toolbar input[type=text]:active,.gina-toolbar input[type=text]:focus{outline:none;border-color:#fff;background:#444}.gina-toolbar input[type=file]{display:none}.gina-toolbar select{appearance:none;height:24px;width:auto;padding:0 10px;margin:0;color:#fff;font-size:11px;font-weight:400;background:0 0;border:1px solid #666}.gina-toolbar select:active,.gina-toolbar select:focus{outline:none;border-color:#fff;background:#333}.gina-toolbar .gina-toolbar-button:hover,.gina-toolbar .gina-toolbar-input-file:hover,.gina-toolbar select:hover{border-color:#f2af0d}.gina-toolbar .gina-toolbar-inline-list>li{display:inline-block}.gina-toolbar .gina-toolbar-list-item{margin:0 0 12px}.gina-toolbar .gina-toolbar-button,.gina-toolbar .gina-toolbar-input-file{display:inline-block;padding:3px 10px;color:#fff;text-decoration:none;border:1px solid #888;border-radius:24px}.gina-toolbar .gina-toolbar-button:active,.gina-toolbar .gina-toolbar-button:focus,.gina-toolbar .gina-toolbar-input-file:active,.gina-toolbar .gina-toolbar-input-file:focus{outline:none;border-color:#fff}:root{--color-white:#fff;--color-primary:#2a6df4;--color-contrast-higher:#1c1c21;--color-contrast-low:#d3d3d4;--switch-width:64px;--switch-height:32px;--switch-padding:3px;--switch-animation-duration:.2s}.gina-toolbar-switch{position:relative;display:inline-flex;flex-shrink:0;align-items:center;width:var(--switch-width);height:var(--switch-height);border-radius:50em;padding:var(--switch-padding) 0}.gina-toolbar-switch__input,.gina-toolbar-switch__label{position:absolute;left:0;top:0}.gina-toolbar-switch__input{margin:0;padding:0;opacity:0;height:0;width:0;pointer-events:none}.gina-toolbar-switch__input:checked+.gina-toolbar-switch__label{background-color:hsl(220deg,90%,56%)}.gina-toolbar-switch__input:checked+.gina-toolbar-switch__label+.gina-toolbar-switch__marker{left:calc(100% - var(--switch-height) + var(--switch-padding))}.gina-toolbar-switch__input:active+.gina-toolbar-switch__label,.gina-toolbar-switch__input:focus+.gina-toolbar-switch__label{box-shadow:0 0 0 2px #1c1c21}.gina-toolbar-switch__input:checked:active+.gina-toolbar-switch__label,.gina-toolbar-switch__input:checked:focus+.gina-toolbar-switch__label{box-shadow:0 0 0 2px #2a6df4}.gina-toolbar-switch__label{width:100%;height:100%;color:transparent;user-select:none;background-color:hsl(240deg,1%,83%);border-radius:inherit;z-index:1;transition:var(--switch-animation-duration);overflow:hidden}.gina-toolbar-switch__marker{position:relative;background-color:#fff;width:calc(var(--switch-height) - var(--switch-padding)*2);height:calc(var(--switch-height) - var(--switch-padding)*2);border-radius:50%;z-index:2;pointer-events:none;box-shadow:var(--shadow-xs);left:var(--switch-padding);transition:left var(--switch-animation-duration);will-change:left}.gina-toolbar-copy{position:absolute;top:-200%;left:-200%}.gina-toolbar-hidden{display:none!important;visibility:hidden}.gina-toolbar-top-left{top:0;left:0;border-bottom-right-radius:10px}.gina-toolbar-top-right{top:0;right:0;border-bottom-left-radius:10px}.gina-toolbar-bottom-left{bottom:0;left:0;border-top-right-radius:10px}.gina-toolbar-bottom-right{bottom:0;right:0;border-top-left-radius:10px}.gina-toolbar-auto{width:auto}.gina-toolbar-30{width:30%}.gina-toolbar-40{width:40%}.gina-toolbar-50{width:50%}.gina-toolbar-60{width:60%}.gina-toolbar-80{width:80%}.gina-toolbar-100{width:100%}.gina-toolbar-100:not(.gina-toolbar-collapsed){border-radius:0}.gina-toolbar .gina-toolbar-header{width:100%;height:32px;margin:0;background:#111}.gina-toolbar .gina-toolbar-header a{display:block;height:18px;padding:7px 10px 5px;margin:0 5px;color:#fff;text-decoration:none;border-bottom:2px solid transparent}.gina-toolbar .gina-toolbar-header a:hover{color:#111;background-color:#f2af0d}.gina-toolbar .gina-toolbar-header .gina-toolbar-tabs{float:left;margin:0;padding:0}.gina-toolbar .gina-toolbar-header .gina-toolbar-active{color:#f2af0d;border-color:#f2af0d}.gina-toolbar .gina-toolbar-header .gina-toolbar-active:hover{color:#f2af0d;background-color:transparent}.gina-toolbar .gina-toolbar-header .gina-toolbar-tab,.gina-toolbar-bottom-left .gina-toolbar-header .gina-toolbar-logo,.gina-toolbar-top-left .gina-toolbar-header .gina-toolbar-logo{float:left}.gina-toolbar .gina-toolbar-header .gina-toolbar-logo a,.gina-toolbar .gina-toolbar-header .gina-toolbar-tab-settings a{height:auto;margin:0;padding:8px 10px 6px}.gina-toolbar .gina-toolbar-header .gina-toolbar-logo a:hover svg,.gina-toolbar .gina-toolbar-header .gina-toolbar-tab-settings a:hover svg{fill:#111}.gina-toolbar .gina-toolbar-header .gina-toolbar-logo .gina-toolbar-active svg,.gina-toolbar .gina-toolbar-header .gina-toolbar-logo .gina-toolbar-active:hover svg,.gina-toolbar .gina-toolbar-header .gina-toolbar-tab-settings .gina-toolbar-active svg,.gina-toolbar .gina-toolbar-header .gina-toolbar-tab-settings .gina-toolbar-active:hover svg,.gina-toolbar-collapsed .gina-toolbar-logo svg{fill:#f2af0d}.gina-toolbar .gina-toolbar-header .gina-toolbar-logo a:hover svg{animation:gina-toolbar-shake .5s both}.gina-toolbar .gina-toolbar-header .gina-toolbar-tab-settings a:hover svg{animation:gina-toolbar-rotate 2s both}@keyframes gina-toolbar-shake{10%,90%{transform:rotate3d(0,0,1,-6deg)}20%,80%{transform:rotate3d(0,0,1,5deg)}30%,50%,70%{transform:rotate3d(0,0,1,-5deg)}40%,60%{transform:rotate3d(0,0,1,6deg)}}@keyframes gina-toolbar-rotate{0%{transform:rotate3d(0,0,1,0deg)}to{transform:rotate3d(0,0,1,180deg)}}.gina-toolbar-bottom-left .gina-toolbar-header .gina-toolbar-tab-settings,.gina-toolbar-bottom-left .gina-toolbar-header .gina-toolbar-tabs,.gina-toolbar-bottom-right .gina-toolbar-header .gina-toolbar-logo,.gina-toolbar-top-left .gina-toolbar-header .gina-toolbar-tab-settings,.gina-toolbar-top-left .gina-toolbar-header .gina-toolbar-tabs,.gina-toolbar-top-right .gina-toolbar-header .gina-toolbar-logo{float:right}.gina-toolbar .gina-toolbar-panel{clear:both;display:none;width:100%}.gina-toolbar .gina-toolbar-panel.gina-toolbar-active{display:block}.gina-toolbar .gina-toolbar-main{overflow:auto;max-height:500px}.gina-toolbar .gina-toolbar-options{padding:12px 15px 0;border-bottom:1px solid #444}.gina-toolbar .gina-toolbar-content{padding:12px 15px}.gina-toolbar .gina-toolbar-content.gina-toolbar-content-end::after{content:"";display:block;padding:3px 0;margin:12px 0 0;text-align:center;color:#fff;background:#444;background:repeating-linear-gradient(-45deg,#f4b125,#f4b125 10px,#111 10px,#111 20px);border-radius:10px}.gina-toolbar-collapsed{width:auto;min-width:0}.gina-toolbar-collapsed .gina-toolbar-panels,.gina-toolbar-collapsed .gina-toolbar-tab{display:none}.gina-toolbar-section-title{margin:12px 0 0;padding:12px 0 0;border-top:1px solid #444;font-size:9px;line-height:2;font-weight:400;text-transform:uppercase}.gina-toolbar-content>.gina-toolbar-section:first-child>.gina-toolbar-section-title{margin:0;padding:0;border-top:none}ul.gina-toolbar-section-content{max-height:0;overflow:hidden;transition:max-height .25s ease}.gina-toolbar-collection>a:first-child,.gina-toolbar-object>a:first-child{display:block;text-decoration:none}.gina-toolbar-collection>a:first-child span,.gina-toolbar-object>a:first-child span{color:#888}.gina-toolbar-collection>a:first-child:before,.gina-toolbar-object>a:first-child:before{content:"";position:relative;top:1px;display:inline-block;width:0;height:0;margin-right:5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:8px solid #888;transition:border-left-color .5s}.gina-toolbar-collection>a:first-child:hover::before,.gina-toolbar-object>a:first-child:hover::before{border-left-color:#eff}.gina-toolbar-collection>ul,.gina-toolbar-object>ul{margin-left:20px;max-height:0;overflow:hidden;transition:max-height .25s ease}.gina-toolbar-unfolded::before{transform:rotate(90deg)}.gina-toolbar .gina-toolbar-key{color:#fff}.gina-toolbar .gina-toolbar-key-added{color:#c3e88d}.gina-toolbar .gina-toolbar-value{display:inline-block;padding:0 5px;color:#5ba1cf;border-radius:3px}.gina-toolbar .gina-toolbar-value:hover{color:#111;background:#5ba1cf}.gina-toolbar .gina-toolbar-value-type-is-null,.gina-toolbar .gina-toolbar-value-type-is-number{color:#f78c6a}.gina-toolbar .gina-toolbar-value-type-is-boolean{color:#ffaa3e}.gina-toolbar .gina-toolbar-is-overridden>.gina-toolbar-key,.gina-toolbar .gina-toolbar-is-overridden>.gina-toolbar-value{color:#888;text-decoration:line-through}.gina-toolbar .gina-toolbar-is-overridden>.gina-toolbar-value:hover{color:#111;background:#888}.gina-toolbar .gina-toolbar-cols{margin:10px 0;display:flex;flex-wrap:nowrap;justify-content:flex-start}.gina-toolbar .gina-toolbar-cols>*{margin-left:10px}.gina-toolbar .gina-toolbar-cols>:first-child{margin-left:0}.gina-toolbar .gina-toolbar-tab-logs.gina-toolbar-alert>a::after,.gina-toolbar .gina-toolbar-tab-logs.gina-toolbar-crit>a::after,.gina-toolbar .gina-toolbar-tab-logs.gina-toolbar-debug>a::after,.gina-toolbar .gina-toolbar-tab-logs.gina-toolbar-emerg>a::after,.gina-toolbar .gina-toolbar-tab-logs.gina-toolbar-error>a::after,.gina-toolbar .gina-toolbar-tab-logs.gina-toolbar-info>a::after,.gina-toolbar .gina-toolbar-tab-logs.gina-toolbar-notice>a::after,.gina-toolbar .gina-toolbar-tab-logs.gina-toolbar-warning>a::after{content:"";position:relative;top:1px;display:inline-block;width:8px;height:8px;margin-left:5px;background-position:100% 50%;background-repeat:no-repeat;background-size:12px 12px;border-radius:100%;animation:gina-toolbar-heart-beats 3.5s infinite}.gina-toolbar .gina-toolbar-tab-logs.gina-toolbar-debug>a::after{background-color:#888}.gina-toolbar .gina-toolbar-tab-logs.gina-toolbar-info>a::after{background-color:#218af3}.gina-toolbar .gina-toolbar-tab-logs.gina-toolbar-notice>a::after{background-color:#f4b125}.gina-toolbar .gina-toolbar-tab-logs.gina-toolbar-warning>a::after{background-color:#f78c6a}.gina-toolbar .gina-toolbar-tab-logs.gina-toolbar-alert>a::after,.gina-toolbar .gina-toolbar-tab-logs.gina-toolbar-crit>a::after,.gina-toolbar .gina-toolbar-tab-logs.gina-toolbar-emerg>a::after,.gina-toolbar .gina-toolbar-tab-logs.gina-toolbar-error>a::after{background-color:#f63625}.gina-toolbar .gina-toolbar-logs-report>li{box-sizing:border-box;display:inline-block;padding-left:18px;margin:0 5% 0 0;width:30%;line-height:13px;background-position:0 0;background-repeat:no-repeat;background-size:12px 12px}.gina-toolbar .gina-toolbar-logs-report>li:last-child{margin:0}.gina-toolbar .gina-toolbar-logs-infos{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 11 11"><rect x="3" y="2" width="5" height="1" fill="#fff"/><rect x="3" y="4" width="5" height="1" fill="#fff"/><rect x="3" y="6" width="5" height="1" fill="#fff"/><path d="M9.052 0.001l0.051 0.002 0.051 0.003 0.051 0.005 0.05 0.006 0.05 0.007 0.05 0.009 0.049 0.009 0.049 0.011 0.048 0.012 0.048 0.013 0.047 0.014 0.047 0.015 0.046 0.017 0.046 0.017 0.045 0.019 0.045 0.019 0.044 0.021 0.043 0.021 0.043 0.023 0.042 0.024 0.042 0.024 0.041 0.026 0.04 0.026 0.039 0.028 0.039 0.028 0.038 0.03 0.038 0.03 0.036 0.031 0.036 0.032 0.035 0.032 0.035 0.034 0.033 0.034 0.033 0.035 0.032 0.036 0.031 0.037 0.03 0.037 0.029 0.038 0.028 0.039 0.027 0.04 0.027 0.04 0.025 0.041 0.025 0.041 0.023 0.042 0.023 0.043 0.021 0.043 0.021 0.044 0.019 0.045 0.019 0.045 0.017 0.045 0.016 0.046 0.015 0.047 0.014 0.047 0.013 0.048 0.012 0.048 0.011 0.048 0.009 0.049 0.008 0.049 0.007 0.05 0.006 0.05 0.004 0.051 0.003 0.05 0.002 0.052 0.001 0.051 0 5 -0.001 0.052 -0.002 0.051 -0.003 0.051 -0.004 0.05 -0.006 0.051 -0.007 0.049 -0.008 0.05 -0.01 0.049 -0.01 0.048 -0.012 0.049 -0.013 0.047 -0.014 0.047 -0.015 0.047 -0.016 0.046 -0.018 0.046 -0.018 0.045 -0.02 0.045 -0.02 0.044 -0.022 0.043 -0.023 0.043 -0.023 0.042 -0.025 0.042 -0.025 0.041 -0.027 0.04 -0.027 0.039 -0.029 0.039 -0.029 0.038 -0.03 0.038 -0.031 0.037 -0.032 0.035 -0.033 0.036 -0.033 0.034 -0.034 0.033 -0.036 0.033 -0.035 0.032 -0.037 0.031 -0.038 0.03 -0.038 0.029 -0.039 0.029 -0.039 0.027 -0.04 0.027 -0.041 0.025 -0.042 0.025 -0.042 0.023 -0.043 0.023 -0.043 0.022 -0.044 0.02 -0.045 0.02 -0.045 0.018 -0.046 0.018 -0.046 0.016 -0.047 0.015 -0.047 0.014 -0.047 0.013 -0.049 0.012 -0.048 0.01 -0.049 0.01 -0.05 0.008 -0.049 0.007 -0.051 0.006 -0.05 0.004 -0.051 0.003 -0.051 0.002 -0.052 0.001 -2.32 0 -2.639 2 -1.041 0 0-2 -1 0 -0.052-0.001 -0.051-0.002 -0.051-0.003 -0.05-0.004 -0.051-0.006 -0.049-0.007 -0.05-0.008 -0.049-0.01 -0.048-0.01 -0.049-0.012 -0.047-0.013 -0.047-0.014 -0.047-0.015 -0.046-0.016 -0.046-0.018 -0.045-0.018 -0.045-0.02 -0.044-0.02 -0.043-0.022 -0.043-0.023 -0.042-0.023 -0.042-0.025 -0.041-0.025 -0.04-0.027 -0.039-0.027 -0.039-0.029 -0.038-0.029 -0.038-0.03 -0.037-0.031 -0.035-0.032 -0.036-0.033 -0.034-0.033 -0.033-0.034 -0.033-0.036 -0.032-0.035 -0.031-0.037 -0.03-0.038 -0.029-0.038 -0.029-0.039 -0.027-0.039 -0.027-0.04 -0.025-0.041 -0.025-0.042 -0.023-0.042 -0.023-0.043 -0.022-0.043 -0.02-0.044 -0.02-0.045 -0.018-0.045 -0.018-0.046 -0.016-0.046 -0.015-0.047 -0.014-0.047 -0.013-0.047 -0.012-0.049 -0.01-0.048 -0.01-0.049 -0.008-0.05 -0.007-0.049 -0.006-0.051 -0.004-0.05 -0.003-0.051 -0.002-0.051 -0.001-0.052 0-5 0.001-0.051 0.002-0.052 0.003-0.05 0.004-0.051 0.006-0.05 0.007-0.05 0.008-0.049 0.009-0.049 0.011-0.048 0.012-0.048 0.013-0.048 0.014-0.047 0.015-0.047 0.016-0.046 0.017-0.045 0.019-0.045 0.019-0.045 0.021-0.044 0.021-0.043 0.023-0.043 0.023-0.042 0.025-0.041 0.025-0.041 0.027-0.04 0.027-0.04 0.028-0.039 0.029-0.038 0.03-0.037 0.031-0.037 0.032-0.036 0.033-0.035 0.033-0.034 0.035-0.034 0.035-0.032 0.036-0.032 0.036-0.031 0.038-0.03 0.038-0.03 0.039-0.028 0.039-0.028 0.04-0.026 0.041-0.026 0.042-0.024 0.042-0.024 0.043-0.023 0.043-0.021 0.044-0.021 0.045-0.019 0.045-0.019 0.046-0.017 0.046-0.017 0.047-0.015 0.047-0.014 0.048-0.013 0.048-0.012 0.049-0.011 0.049-0.009 0.05-0.009 0.05-0.007 0.05-0.006 0.051-0.005 0.051-0.003 0.051-0.002 0.052-0.001 7 0 0.052 0.001ZM2.008 1l-0.031 0.001 -0.026 0.001 -0.026 0.001 -0.026 0.003 -0.025 0.003 -0.026 0.003 -0.025 0.005 -0.024 0.004 -0.025 0.006 -0.024 0.006 -0.024 0.006 -0.023 0.007 -0.024 0.008 -0.023 0.008 -0.023 0.009 -0.022 0.009 -0.022 0.01 -0.022 0.01 -0.022 0.011 -0.022 0.011 -0.021 0.012 -0.021 0.013 -0.02 0.012 -0.02 0.014 -0.02 0.013 -0.02 0.015 -0.019 0.014 -0.019 0.016 -0.018 0.015 -0.018 0.016 -0.018 0.017 -0.017 0.017 -0.017 0.017 -0.016 0.018 -0.016 0.018 -0.016 0.018 -0.015 0.019 -0.015 0.019 -0.014 0.019 -0.014 0.02 -0.013 0.02 -0.012 0.021 -0.013 0.02 -0.011 0.021 -0.012 0.022 -0.01 0.021 -0.011 0.022 -0.009 0.022 -0.009 0.022 -0.009 0.023 -0.008 0.023 -0.007 0.023 -0.007 0.023 -0.007 0.024 -0.005 0.023 -0.006 0.024 -0.004 0.025 -0.004 0.024 -0.004 0.025 -0.003 0.025 -0.002 0.025 -0.002 0.026 -0.001 0.026 0 0.032 0 4.988 0 0.032 0.001 0.026 0.002 0.026 0.002 0.025 0.003 0.025 0.004 0.025 0.004 0.025 0.004 0.024 0.006 0.024 0.005 0.024 0.007 0.024 0.007 0.023 0.007 0.023 0.008 0.023 0.009 0.023 0.009 0.022 0.01 0.023 0.01 0.021 0.011 0.022 0.011 0.021 0.012 0.022 0.012 0.02 0.013 0.021 0.013 0.02 0.014 0.02 0.014 0.019 0.015 0.019 0.015 0.019 0.016 0.019 0.016 0.018 0.016 0.017 0.017 0.018 0.018 0.017 0.017 0.016 0.018 0.016 0.019 0.016 0.019 0.015 0.019 0.015 0.019 0.014 0.02 0.014 0.02 0.013 0.021 0.013 0.02 0.012 0.022 0.012 0.021 0.011 0.022 0.011 0.021 0.01 0.023 0.01 0.022 0.009 0.023 0.009 0.023 0.008 0.023 0.007 0.023 0.007 0.024 0.007 0.024 0.005 0.024 0.006 0.024 0.004 0.025 0.004 0.025 0.004 0.025 0.003 0.025 0.002 0.026 0.002 0.026 0.001 0.032 0 1.994 0 0 1.776 2.344-1.776 2.65 0 0.032 0 0.026-0.001 0.026-0.002 0.025-0.002 0.025-0.003 0.025-0.004 0.025-0.004 0.024-0.004 0.024-0.006 0.024-0.005 0.024-0.007 0.023-0.007 0.023-0.007 0.023-0.008 0.023-0.009 0.022-0.009 0.023-0.01 0.021-0.01 0.022-0.011 0.021-0.011 0.022-0.012 0.02-0.012 0.021-0.013 0.02-0.013 0.02-0.014 0.019-0.014 0.019-0.015 0.019-0.015 0.019-0.016 0.018-0.016 0.017-0.016 0.018-0.017 0.017-0.018 0.016-0.017 0.016-0.018 0.016-0.019 0.015-0.019 0.015-0.019 0.014-0.019 0.014-0.02 0.013-0.02 0.013-0.021 0.012-0.02 0.012-0.022 0.011-0.021 0.011-0.022 0.01-0.021 0.01-0.023 0.009-0.022 0.009-0.023 0.008-0.023 0.007-0.023 0.007-0.023 0.007-0.024 0.005-0.024 0.006-0.024 0.004-0.024 0.004-0.025 0.004-0.025 0.003-0.025 0.002-0.025 0.002-0.026 0.001-0.026 0-0.032 0-4.988 0-0.032 -0.001-0.026 -0.002-0.026 -0.002-0.025 -0.003-0.025 -0.004-0.025 -0.004-0.024 -0.004-0.025 -0.006-0.024 -0.005-0.023 -0.007-0.024 -0.007-0.023 -0.007-0.023 -0.008-0.023 -0.009-0.023 -0.009-0.022 -0.009-0.022 -0.011-0.022 -0.01-0.021 -0.012-0.022 -0.011-0.021 -0.013-0.02 -0.012-0.021 -0.013-0.02 -0.014-0.02 -0.014-0.019 -0.015-0.019 -0.015-0.019 -0.016-0.018 -0.016-0.019 -0.016-0.017 -0.017-0.017 -0.017-0.017 -0.018-0.017 -0.018-0.016 -0.018-0.015 -0.019-0.016 -0.019-0.014 -0.02-0.015 -0.02-0.013 -0.02-0.014 -0.02-0.012 -0.021-0.013 -0.021-0.012 -0.022-0.011 -0.022-0.011 -0.022-0.01 -0.022-0.01 -0.022-0.009 -0.023-0.009 -0.023-0.008 -0.024-0.008 -0.023-0.007 -0.024-0.006 -0.024-0.006 -0.025-0.006 -0.024-0.004 -0.025-0.005 -0.026-0.003 -0.025-0.003 -0.026-0.003 -0.026-0.001 -0.026-0.001 -0.031-0.001 -6.984 0Z" fill="#fff"/></svg>')}.gina-toolbar .gina-toolbar-logs-warnings{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 11 11" version="1.1" xml:space="preserve" style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1"><path d="M5.529 0.001l0.028 0.001 0.029 0.003 0.028 0.003 0.027 0.005 0.028 0.005 0.027 0.006 0.027 0.008 0.027 0.008 0.026 0.009 0.026 0.01 0.026 0.011 0.025 0.011 0.025 0.013 0.024 0.013 0.024 0.014 0.023 0.015 0.023 0.016 0.022 0.016 0.022 0.018 0.021 0.018 0.02 0.018 0.02 0.02 0.019 0.02 0.019 0.021 0.018 0.022 0.017 0.022 0.016 0.023 0.016 0.023 0.015 0.024 0.014 0.025 0.013 0.026 4.691 9.381 0.011 0.023 0.01 0.024 0.01 0.025 0.009 0.024 0.008 0.024 0.008 0.025 0.006 0.025 0.006 0.025 0.005 0.025 0.004 0.026 0.003 0.025 0.002 0.025 0.002 0.026 0.001 0.025 0 0.026 -0.001 0.025 -0.001 0.026 -0.003 0.025 -0.003 0.025 -0.004 0.025 -0.005 0.025 -0.005 0.025 -0.006 0.025 -0.007 0.025 -0.008 0.024 -0.009 0.024 -0.01 0.024 -0.01 0.024 -0.011 0.024 -0.012 0.023 -0.012 0.023 -0.014 0.022 -0.014 0.022 -0.015 0.022 -0.015 0.021 -0.016 0.02 -0.017 0.02 -0.017 0.019 -0.018 0.019 -0.018 0.018 -0.019 0.017 -0.019 0.017 -0.02 0.016 -0.021 0.015 -0.02 0.015 -0.022 0.014 -0.021 0.014 -0.022 0.013 -0.023 0.012 -0.022 0.011 -0.024 0.011 -0.023 0.009 -0.024 0.01 -0.024 0.008 -0.024 0.008 -0.025 0.007 -0.025 0.006 -0.025 0.005 -0.026 0.005 -0.025 0.003 -0.026 0.003 -0.026 0.002 -0.026 0.002 -0.026 0 -9.381 0 -0.027 0 -0.026-0.002 -0.026-0.002 -0.026-0.003 -0.025-0.003 -0.025-0.005 -0.026-0.005 -0.025-0.006 -0.024-0.007 -0.025-0.008 -0.024-0.008 -0.024-0.01 -0.023-0.009 -0.023-0.011 -0.023-0.011 -0.023-0.012 -0.022-0.013 -0.021-0.014 -0.021-0.014 -0.021-0.015 -0.02-0.015 -0.02-0.016 -0.02-0.017 -0.019-0.017 -0.018-0.018 -0.018-0.019 -0.017-0.019 -0.016-0.02 -0.016-0.02 -0.016-0.021 -0.015-0.022 -0.014-0.022 -0.013-0.022 -0.013-0.023 -0.012-0.023 -0.011-0.024 -0.01-0.024 -0.01-0.024 -0.008-0.024 -0.008-0.024 -0.007-0.025 -0.007-0.025 -0.005-0.025 -0.005-0.025 -0.004-0.025 -0.003-0.025 -0.002-0.025 -0.002-0.026 -0.001-0.025 0-0.026 0.001-0.025 0.002-0.026 0.002-0.025 0.004-0.025 0.004-0.026 0.005-0.025 0.005-0.025 0.007-0.025 0.007-0.025 0.008-0.024 0.009-0.024 0.01-0.025 0.01-0.024 0.012-0.023 4.69-9.381 0.014-0.026 0.014-0.025 0.015-0.024 0.015-0.023 0.017-0.023 0.017-0.022 0.018-0.022 0.018-0.021 0.019-0.02 0.02-0.02 0.021-0.018 0.021-0.018 0.021-0.018 0.023-0.016 0.022-0.016 0.024-0.015 0.023-0.014 0.025-0.013 0.024-0.013 0.026-0.011 0.025-0.011 0.026-0.01 0.026-0.009 0.027-0.008 0.027-0.008 0.027-0.006 0.028-0.005 0.028-0.005 0.028-0.003 0.028-0.003 0.028-0.001 0.029-0.001 0.029 0.001ZM1.118 10l8.764 0 -4.382-8.764 -4.382 8.764ZM6 8l0 1 -1 0 0-1 1 0ZM6 4l0 3 -1 0 0-3 1 0Z" fill="#fff"/></svg>')}.gina-toolbar .gina-toolbar-logs-errors{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 11 11"><path d="M11 3.04l0 4.95 -3.04 3.01 -4.92 0 -3.04-3.01 0-4.95 3.04-3.04 4.92 0 3.04 3.04ZM3.45 1l-2.45 2.45 0 4.12 2.45 2.43 4.1 0 2.45-2.43 0-4.12 -2.45-2.45 -4.09 0ZM6 7.99l0 1.01 -1 0 0-1.01 1 0ZM6 2l0 4.99 -1 0 0-4.99 1 0Z" fill="#fff"/></svg>')}@keyframes gina-toolbar-heart-beats{0%,to{transform:scale(1)}50%{transform:scale(.5)}}
|
package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/asset/plugin/dist/vendor/gina/html/toolbar.html.gz
RENAMED
|
Binary file
|
package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz
RENAMED
|
Binary file
|
|
Binary file
|
|
@@ -217,7 +217,6 @@ function Config(opt, contextResetNeeded) {
|
|
|
217
217
|
|
|
218
218
|
if (err) {
|
|
219
219
|
console.error(err.stack||err.message);
|
|
220
|
-
|
|
221
220
|
setTimeout(() => {
|
|
222
221
|
process.exit(1);
|
|
223
222
|
}, 0);
|
|
@@ -685,9 +684,11 @@ function Config(opt, contextResetNeeded) {
|
|
|
685
684
|
var version = null, middleware = null;
|
|
686
685
|
try {
|
|
687
686
|
self.version = version = require(_(getPath('gina').root +'/package.json' )).version;
|
|
688
|
-
|
|
689
|
-
|
|
687
|
+
// #B10 fix: moved before MIDDLEWARE read so ${version} substitution always works
|
|
688
|
+
// even in environments where the MIDDLEWARE file is absent (e.g. containers).
|
|
690
689
|
setContext('gina.version', version);
|
|
690
|
+
|
|
691
|
+
self.middleware = middleware = fs.readFileSync(_( getEnvVar('GINA_FRAMEWORK_DIR') + '/MIDDLEWARE')).toString() || 'none';
|
|
691
692
|
setContext('gina.middleware', middleware);
|
|
692
693
|
|
|
693
694
|
} catch (err) {
|
|
@@ -1911,6 +1912,9 @@ function Config(opt, contextResetNeeded) {
|
|
|
1911
1912
|
|
|
1912
1913
|
for (let rule in routing) {
|
|
1913
1914
|
|
|
1915
|
+
// skip non-object entries (e.g. $schema annotations in routing.json)
|
|
1916
|
+
if (typeof(routing[rule]) != 'object' || routing[rule] === null) continue;
|
|
1917
|
+
|
|
1914
1918
|
// checking requirements syntax
|
|
1915
1919
|
if ( typeof(routing[rule].requirements) != 'undefined' && routing[rule].requirements.count() > 0 ) {
|
|
1916
1920
|
for ( let r in routing[rule].requirements) {
|
|
@@ -2924,6 +2928,12 @@ function Config(opt, contextResetNeeded) {
|
|
|
2924
2928
|
if (!self.envConf[bundle][env].content)
|
|
2925
2929
|
self.envConf[bundle][env].content = {};
|
|
2926
2930
|
|
|
2931
|
+
// strip non-object entries (e.g. $schema annotations) before storing —
|
|
2932
|
+
// all routing consumers iterate this object and expect only route rule objects
|
|
2933
|
+
for (var _k in routing) {
|
|
2934
|
+
if (typeof(routing[_k]) != 'object' || routing[_k] === null) delete routing[_k];
|
|
2935
|
+
}
|
|
2936
|
+
|
|
2927
2937
|
self.envConf[bundle][env].content.routing = routing;
|
|
2928
2938
|
self.envConf.routing = merge(self.envConf.routing, routing);
|
|
2929
2939
|
}
|
|
@@ -3013,9 +3023,20 @@ function Config(opt, contextResetNeeded) {
|
|
|
3013
3023
|
* });
|
|
3014
3024
|
*/
|
|
3015
3025
|
this.onReady = function(callback) {
|
|
3016
|
-
|
|
3017
|
-
|
|
3018
|
-
|
|
3026
|
+
// #B10-fix: if config#complete was already emitted (e.g. because
|
|
3027
|
+
// lib.SessionStore(session) triggered Config loading at module-eval time
|
|
3028
|
+
// before gna.start() ran), call the callback immediately so the
|
|
3029
|
+
// startup sequence is not silently stuck waiting for an event that
|
|
3030
|
+
// will never fire again.
|
|
3031
|
+
if (Config.initialized && self.bundlesConfiguration) {
|
|
3032
|
+
setImmediate(function() {
|
|
3033
|
+
callback(null, self.bundlesConfiguration);
|
|
3034
|
+
});
|
|
3035
|
+
} else {
|
|
3036
|
+
self.once('config#complete', function(err, config) {
|
|
3037
|
+
callback(err, config)
|
|
3038
|
+
});
|
|
3039
|
+
}
|
|
3019
3040
|
return self
|
|
3020
3041
|
};
|
|
3021
3042
|
|
|
@@ -324,7 +324,14 @@ function Couchbase(conn, infos) {
|
|
|
324
324
|
|
|
325
325
|
|
|
326
326
|
entities[entityName].prototype[name] = function() {
|
|
327
|
-
|
|
327
|
+
// #B11 fix: recover the entity singleton when called via util.promisify
|
|
328
|
+
// without .bind(). In strict mode `this` is undefined when a prototype
|
|
329
|
+
// method is detached from its object. Fall back to the singleton stored
|
|
330
|
+
// at EntitySuperClass[CapitalizedName].instance (set by entity.js:427).
|
|
331
|
+
// This makes `util.promisify(entity.method)` work transparently without
|
|
332
|
+
// requiring callers to add .bind(entity) everywhere.
|
|
333
|
+
var _capitalizedName = entityName.substring(0,1).toUpperCase() + entityName.substring(1);
|
|
334
|
+
var self = this || (EntitySuperClass[_capitalizedName] && EntitySuperClass[_capitalizedName].instance) || null;
|
|
328
335
|
var key = null
|
|
329
336
|
, index = null
|
|
330
337
|
, i = null
|
|
@@ -332,6 +339,13 @@ function Couchbase(conn, infos) {
|
|
|
332
339
|
, args = Array.prototype.slice.call(arguments)
|
|
333
340
|
, _mainCallback = null;
|
|
334
341
|
|
|
342
|
+
if (!self) {
|
|
343
|
+
var _ctxErr = new TypeError('[entity] ' + entityName + '#' + name + '() called without context: `this` is undefined and no singleton found at EntitySuperClass[' + _capitalizedName + '].instance');
|
|
344
|
+
var _cbArg = (args.length > 0 && typeof args[args.length - 1] === 'function') ? args[args.length - 1] : null;
|
|
345
|
+
if (_cbArg) { return _cbArg(_ctxErr); }
|
|
346
|
+
throw _ctxErr;
|
|
347
|
+
}
|
|
348
|
+
|
|
335
349
|
if ( params && params.length != args.length && !/function/.test(typeof(args[args.length-1])) ) {
|
|
336
350
|
throw new Error('[N1QL][ ' + entityName+'#'+name+'() ] arguments must match parameters length. Please refer to [ '+ source +' ]\nFound in param list: ('+ params.join(', ') +') !')
|
|
337
351
|
} else if ( /function/.test( typeof(args[args.length-1]) ) ) {
|
|
@@ -765,7 +779,13 @@ function Couchbase(conn, infos) {
|
|
|
765
779
|
// ftsClause = null;
|
|
766
780
|
|
|
767
781
|
|
|
768
|
-
|
|
782
|
+
// #B11-listener-fix: use typeof(cb) === 'function' so that passing null
|
|
783
|
+
// as cb (direct-callback/promisify path) skips .once() registration.
|
|
784
|
+
// The direct-callback path calls _mainCallback from onQueryCallback
|
|
785
|
+
// closure without emitting the trigger, so the .once() listener would
|
|
786
|
+
// never fire and would leak on the singleton. Query runs via the
|
|
787
|
+
// !self._isRegisteredFromProto fallback block below instead.
|
|
788
|
+
if ( typeof(self.once) === 'function' && typeof(cb) === 'function' ) {
|
|
769
789
|
self._isRegisteredFromProto = true;
|
|
770
790
|
//console.debug('registered trigger: ', trigger, self._isRegisteredFromProto);
|
|
771
791
|
self.once(trigger, function onComplete(err, data, meta){
|
|
@@ -953,12 +973,15 @@ function Couchbase(conn, infos) {
|
|
|
953
973
|
return _promise;
|
|
954
974
|
|
|
955
975
|
} else {
|
|
956
|
-
// Direct callback path (util.promisify or explicit _mainCallback)
|
|
957
|
-
//
|
|
976
|
+
// Direct callback path (util.promisify or explicit _mainCallback).
|
|
977
|
+
// Pass null as cb so register() skips .once() registration —
|
|
978
|
+
// _mainCallback is already in onQueryCallback's closure and will
|
|
979
|
+
// be called there directly. register() runs the query via the
|
|
980
|
+
// !self._isRegisteredFromProto fallback block.
|
|
958
981
|
if ( sdkVersion > 2 ) {
|
|
959
|
-
register(trigger, queryOptions, onQueryCallback,
|
|
982
|
+
register(trigger, queryOptions, onQueryCallback, null)
|
|
960
983
|
} else {
|
|
961
|
-
register(trigger, queryParams, onQueryCallback,
|
|
984
|
+
register(trigger, queryParams, onQueryCallback, null)
|
|
962
985
|
}
|
|
963
986
|
}
|
|
964
987
|
}
|
package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/connectors/couchbase/lib/session-store.v2.js
RENAMED
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
* Module dependencies.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
// #B10 fix: require debug from project node_modules — same pattern as couchbase/index.js.
|
|
19
|
+
var debug = require(_(getPath('project') + '/node_modules/debug'))('connect:couchbase');
|
|
19
20
|
|
|
20
21
|
/**
|
|
21
22
|
* One day in seconds.
|
package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/connectors/couchbase/lib/session-store.v3.js
RENAMED
|
@@ -22,7 +22,8 @@ var console = lib.logger;
|
|
|
22
22
|
* Module dependencies.
|
|
23
23
|
*/
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
// #B10 fix: require debug from project node_modules — same pattern as couchbase/index.js.
|
|
26
|
+
var debug = require(_(getPath('project') + '/node_modules/debug'))('connect:couchbase');
|
|
26
27
|
|
|
27
28
|
/**
|
|
28
29
|
* One day in seconds.
|
package/framework/{v0.1.9-alpha.4 → v0.2.0}/core/connectors/couchbase/lib/session-store.v4.js
RENAMED
|
@@ -24,7 +24,9 @@ var dateFormat = helpers.dateFormat;
|
|
|
24
24
|
* Module dependencies.
|
|
25
25
|
*/
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
// #B10 fix: require debug from project node_modules — same pattern as couchbase/index.js for the couchbase module itself.
|
|
28
|
+
// Plain require('debug') fails when loaded from within gina's framework path.
|
|
29
|
+
var debug = require(_(getPath('project') + '/node_modules/debug'))('connect:couchbase');
|
|
28
30
|
|
|
29
31
|
/**
|
|
30
32
|
* One day in seconds.
|