gina 0.1.1-alpha.11 → 0.1.1-alpha.110
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/AUTHORS +2 -1
- package/README.md +140 -18
- package/bin/cli +56 -38
- package/bin/cli-debug +4 -4
- package/{framework/v0.1.1-alpha.11/core/template/command/gina.bat.tpl → bin/gina.bat} +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/AUTHORS +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/LICENSE +0 -0
- package/framework/v0.1.1-alpha.110/VERSION +1 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/asset/html/nolayout.html +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/asset/html/static.html +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/asset/img/android-chrome-192x192.png +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/asset/img/android-chrome-512x512.png +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/asset/img/apple-touch-icon.png +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/asset/img/favicon-16x16.png +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/asset/img/favicon-32x32.png +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/asset/img/favicon.ico +0 -0
- package/framework/{v0.1.1-alpha.11/core/asset/js → v0.1.1-alpha.110/core/asset}/plugin/dist/gina.js +0 -0
- package/framework/{v0.1.1-alpha.11/core/asset/js → v0.1.1-alpha.110/core/asset}/plugin/dist/gina.js.map +0 -0
- package/framework/{v0.1.1-alpha.11/core/asset/js → v0.1.1-alpha.110/core/asset}/plugin/dist/gina.min.css +0 -0
- package/framework/{v0.1.1-alpha.11/core/asset/js → v0.1.1-alpha.110/core/asset}/plugin/dist/gina.min.css.map +0 -0
- package/framework/{v0.1.1-alpha.11/core/asset/js → v0.1.1-alpha.110/core/asset}/plugin/dist/gina.min.js +0 -0
- package/framework/{v0.1.1-alpha.11/core/asset/js → v0.1.1-alpha.110/core/asset}/plugin/dist/gina.min.js.map +0 -0
- package/framework/{v0.1.1-alpha.11/core/asset/js → v0.1.1-alpha.110/core/asset}/plugin/dist/gina.onload.min.js +0 -0
- package/framework/{v0.1.1-alpha.11/core/asset/js → v0.1.1-alpha.110/core/asset}/plugin/dist/gina.onload.min.js.map +0 -0
- package/framework/v0.1.1-alpha.110/core/asset/plugin/dist/toolbar/css/toolbar-min.css +1 -0
- package/framework/v0.1.1-alpha.110/core/asset/plugin/dist/toolbar/css/toolbar.css +3 -0
- package/framework/v0.1.1-alpha.110/core/asset/plugin/dist/toolbar/css/toolbar.css.map +1 -0
- package/framework/v0.1.1-alpha.110/core/asset/plugin/dist/toolbar/js/jquery-3.1.0.min.js +4 -0
- package/framework/v0.1.1-alpha.110/core/asset/plugin/dist/toolbar/main.js +1542 -0
- package/framework/v0.1.1-alpha.110/core/asset/plugin/dist/toolbar/toolbar.html +251 -0
- package/framework/{v0.1.1-alpha.11/core/asset/js → v0.1.1-alpha.110/core/asset}/plugin/readme.md +5 -5
- package/framework/{v0.1.1-alpha.11/core/asset/js → v0.1.1-alpha.110/core/asset}/plugin/uuid.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/config.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/connectors/couchbase/index.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/connectors/couchbase/lib/connector.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/connectors/couchbase/lib/connector.v2.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/connectors/couchbase/lib/connector.v3.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/connectors/couchbase/lib/n1ql.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/connectors/couchbase/lib/session-store.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/connectors/couchbase/lib/session-store.v2.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/controller/controller.framework.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/controller/controller.js +664 -664
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/controller/index.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/deps/busboy/.travis.yml +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/deps/busboy/LICENSE +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/deps/busboy/README.md +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/deps/busboy/deps/encoding/encoding-indexes.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/deps/busboy/deps/encoding/encoding.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/deps/busboy/lib/main.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/deps/busboy/lib/types/multipart.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/deps/busboy/lib/types/urlencoded.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/deps/busboy/lib/utils.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/deps/busboy/package.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/deps/swig-client/swig-2.0.0.min.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/dev/index.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/dev/lib/class.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/dev/lib/factory.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/dev/lib/tools.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/gna.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/locales/README.md +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/locales/currency.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/locales/dist/language/en.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/locales/dist/language/fr.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/locales/dist/region/en.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/locales/dist/region/fr.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/locales/index.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/locales/src/make.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/locales/src/resources/currency.csv +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/locales/src/resources/region.csv +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/locales/src/resources/region.mapping.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/mime.types +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/model/entity.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/model/index.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/model/template/entityFactory.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/model/template/index.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/plugins/README.md +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/plugins/index.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/plugins/lib/file/README.md +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/plugins/lib/file/build.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/plugins/lib/file/package.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/plugins/lib/intl/README.md +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/plugins/lib/intl/build.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/plugins/lib/intl/package.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/plugins/lib/intl/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/plugins/lib/storage/README.md +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/plugins/lib/storage/build.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/plugins/lib/storage/package.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/plugins/lib/storage/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/plugins/lib/validator/README.md +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/plugins/lib/validator/build.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/plugins/lib/validator/package.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/plugins/lib/validator/src/form-validator.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/plugins/lib/validator/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/router.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/server.express.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/server.isaac.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/server.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/status.codes +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/template/boilerplate/bundle/config/app.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/template/boilerplate/bundle/config/routing.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/template/boilerplate/bundle/config/settings.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/template/boilerplate/bundle/config/templates.json +4 -4
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/template/boilerplate/bundle/index.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/template/boilerplate/bundle_public/css/default.css +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/template/boilerplate/bundle_public/readme.md +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
- package/framework/v0.1.1-alpha.110/core/template/boilerplate/bundle_templates/html/content/homepage.html +8 -0
- package/framework/v0.1.1-alpha.110/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +11 -0
- package/framework/v0.1.1-alpha.110/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +8 -0
- package/framework/{v0.1.1-alpha.11/core/template/boilerplate/bundle_templates/html/layout → v0.1.1-alpha.110/core/template/boilerplate/bundle_templates/html/layouts}/main.html +10 -3
- package/framework/v0.1.1-alpha.110/core/template/command/gina.bat.tpl +8 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/template/command/gina.tpl +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/template/conf/env.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/template/conf/manifest.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/template/conf/package.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/template/conf/settings.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/template/conf/statics.json +3 -3
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/template/conf/templates.json +2 -2
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/template/error/client/json/401.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/template/error/client/json/403.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/template/error/client/json/404.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/template/error/server/html/50x.html +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/template/error/server/json/500.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/template/error/server/json/503.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/template/extensions/logger/config.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/helpers/console.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/helpers/context.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/helpers/dateFormat.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/helpers/index.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/helpers/json/README.md +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/helpers/json/package.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/helpers/json/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/helpers/path.js +86 -80
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/helpers/plugins/README.md +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/helpers/plugins/package.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/helpers/plugins/src/api-error.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/helpers/plugins/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/helpers/prototypes.js +35 -36
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/helpers/task.js +21 -14
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/helpers/text.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/archiver/README.md +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/archiver/build.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/archiver/package.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/archiver/src/dep/jszip.min.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/archiver/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/aliases.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/bundle/add.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/bundle/arguments.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/bundle/copy.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/bundle/cp.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/bundle/help.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/bundle/help.txt +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/bundle/list.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/bundle/remove.js +22 -22
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/bundle/rename.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/bundle/restart.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/bundle/rm.js +0 -0
- package/framework/v0.1.1-alpha.110/lib/cmd/bundle/start.js +408 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/bundle/status.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/bundle/stop.js +89 -74
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/env/add.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/env/get.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/env/help.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/env/help.txt +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/env/link-dev.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/env/list.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/env/remove.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/env/rm.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/env/set.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/env/unset.js +0 -0
- package/framework/{v0.1.1-alpha.11/lib/cmd/scope → v0.1.1-alpha.110/lib/cmd/env}/use.js +21 -1
- package/framework/v0.1.1-alpha.110/lib/cmd/framework/build.js +85 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/framework/dot.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/framework/get.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/framework/help.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/framework/help.txt +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/framework/init.js +42 -15
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/framework/msg.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/framework/open.js +15 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/framework/restart.js +52 -24
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/framework/set.js +96 -26
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/framework/start.js +35 -12
- package/framework/v0.1.1-alpha.110/lib/cmd/framework/status.js +121 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/framework/stop.js +43 -27
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/framework/tail.js +45 -44
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/framework/update.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/framework/version.js +12 -3
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/gina-dev.1.md +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/gina-framework.1.md +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/gina.1.md +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/helper.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/index.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/msg.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/port/help.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/port/help.txt +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/port/inc/scan.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/port/list.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/port/set.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/project/add.js +120 -107
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/project/arguments.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/project/build.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/project/help.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/project/help.txt +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/project/import.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/project/list.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/project/move.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/project/remove.js +17 -17
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/project/rename.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/project/restart.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/project/rm.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/project/start.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/project/status.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/project/stop.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/protocol/help.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/protocol/help.txt +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/protocol/list.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/protocol/set.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/scope/help.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/scope/help.txt +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/scope/link-local.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/scope/list.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/scope/remove.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/scope/rm.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/scope/set.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/scope/unset.js +0 -0
- package/framework/{v0.1.1-alpha.11/lib/cmd/env → v0.1.1-alpha.110/lib/cmd/scope}/use.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cmd/view/add.js +34 -9
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/collection/README.md +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/collection/build.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/collection/package.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/collection/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/config.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cron/README.md +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cron/package.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/cron/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/generator/index.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/index.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/inherits/LICENSE +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/inherits/README.md +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/inherits/example/inheriting_eventemitter.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/inherits/example/protected_inheritance.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/inherits/example/simple_inheritance.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/inherits/example/super_attribute_overridden_by_child_on_init.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/inherits/package.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/inherits/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/logger/README.md +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/logger/package.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/logger/src/containers/default/index.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/logger/src/containers/file/index.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/logger/src/containers/mq/index.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/logger/src/containers/mq/listener.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/logger/src/containers/mq/speaker.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/logger/src/helper.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/logger/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/math/index.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/merge/README.md +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/merge/example/merge.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/merge/example/merge_2_literal objects.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/merge/example/merge_and_preserve_first.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/merge/package.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/merge/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/model.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/proc.js +52 -40
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/routing/README.md +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/routing/build.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/routing/package.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/routing/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/session-store.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/shell.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/swig-filters/README.md +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/swig-filters/package.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/swig-filters/src/main.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/url/README.md +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/url/index.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/url/mocks.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/url/routing.json +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/url/test.js +0 -0
- package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/lib/validator.js +0 -0
- package/framework/v0.1.1-alpha.110/package.json +14 -0
- package/package.json +30 -21
- package/resources/home/main.json +19 -1
- package/resources/home/settings.json +2 -0
- package/resources/home/user/extensions/logger/default/config.json +1 -1
- package/resources/package.json.template +28 -17
- package/script/post_install.js +381 -116
- package/script/post_publish.js +185 -0
- package/script/pre_install.js +420 -76
- package/script/prepare_version.js +147 -20
- package/utils/helper.js +220 -38
- package/utils/prototypes.js +9 -9
- package/utils/prototypes.json_clone.js +31 -31
- package/doc/framework/cli/doc.json +0 -9
- package/doc/framework/index.md +0 -60
- package/framework/v0.1.1-alpha.11/VERSION +0 -1
- package/framework/v0.1.1-alpha.11/core/template/boilerplate/bundle_templates/html/homepage.html +0 -4
- package/framework/v0.1.1-alpha.11/lib/cmd/bundle/start.js +0 -394
- package/framework/v0.1.1-alpha.11/lib/cmd/framework/status.js +0 -72
- package/framework/v0.1.1-alpha.11/package.json +0 -14
package/AUTHORS
CHANGED
package/README.md
CHANGED
|
@@ -23,18 +23,77 @@ Note that Gina does not rely on Connect or ExpressJS, still, you can use all plu
|
|
|
23
23
|
### Installing Gina
|
|
24
24
|
Gina aims to be at the same time a framework, a deployment and monitoring environment for your projects. So, to fully enjoy Gina, we recommend that you install it with the `-g` option.
|
|
25
25
|
> For Microsoft Windows, you might have to run the command line with Administrator privileges.
|
|
26
|
+
> For Linux & Mac OS X, __the use of `sudo` is discouraged.__
|
|
27
|
+
|
|
28
|
+
#### 1st method (prefered)
|
|
26
29
|
|
|
27
30
|
``` tty
|
|
28
31
|
npm install -g gina@latest
|
|
29
32
|
```
|
|
30
33
|
|
|
31
|
-
|
|
34
|
+
__A few words about this method__
|
|
35
|
+
Gina will try to install itself using the default $NPM_PREFIX. If the target is not writable, the prefix used will be updated for the time of the install process to `~/.npm-global` and restored back to your default $NPM_PREFIX after installation.
|
|
36
|
+
This is why you should not get errors on installation.
|
|
37
|
+
|
|
38
|
+
Still, __if you are not enterely satisfyied with this method__, you can setup permissions for your user in order to be able to write to : `$NPM_PREFIX/lib/node_modules`.
|
|
39
|
+
|
|
40
|
+
If you don't already have done it, you should start with :
|
|
41
|
+
|
|
42
|
+
```tty
|
|
43
|
+
sudo chown -R $USER $(npm config get prefix)/lib/node_modules
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
> __NB. :__ If you choose to use `sudo npm install -g gina`, you will also o use the `sudo` for specific commands like `npm link gina`.
|
|
48
|
+
> Again, the use of `sudo` is discouraged.
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
You can now check if Gina is properly installed.
|
|
53
|
+
|
|
32
54
|
``` tty
|
|
33
55
|
gina version
|
|
34
56
|
```
|
|
35
57
|
__NB.:__ This is a shortcut for `gina framework:version`
|
|
36
58
|
|
|
37
59
|
|
|
60
|
+
#### 2nd method - Custom PREFIX
|
|
61
|
+
|
|
62
|
+
This will install Gina in the user's home directory avoiding at the same time the need to use `sudo`.
|
|
63
|
+
By adding at the end the `--reset` argument, you will ensure a factory reset for the `~/.gina` preferences folder: all preferences will be lost, but your existing projects will not be erased.
|
|
64
|
+
|
|
65
|
+
```tty
|
|
66
|
+
npm install -g gina@latest --prefix=~/.npm-global
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
You can now check if Gina is properly installed.
|
|
70
|
+
|
|
71
|
+
``` tty
|
|
72
|
+
gina version
|
|
73
|
+
```
|
|
74
|
+
__NB.:__ This is a shortcut for `gina framework:version`
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
#### 3rd method - local to your project
|
|
78
|
+
|
|
79
|
+
If you feel like you do not need to install globally Gina for some reasons like only using the framework for a single project, you can install Gina without the `-g` argument.
|
|
80
|
+
Go to your project's root and tap:
|
|
81
|
+
```tty
|
|
82
|
+
npm instal gina@latest
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
__Attention:__ to use gina CLI, you will need to run it from your project location since the CLI was not installed with the global argument `-g`.
|
|
86
|
+
|
|
87
|
+
You can now check if Gina is properly installed.
|
|
88
|
+
|
|
89
|
+
``` tty
|
|
90
|
+
./gina version
|
|
91
|
+
```
|
|
92
|
+
__NB.:__ This is a shortcut for `gina framework:version`
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
|
|
38
97
|
### Starting the framework
|
|
39
98
|
Gina is at the same time a framework and a server.
|
|
40
99
|
By starting the framework, you will also start the server.
|
|
@@ -50,6 +109,11 @@ A project is a collection of bundles (applicaitons or services). See it as a rep
|
|
|
50
109
|
|
|
51
110
|
Let's create our first project and install Gina.
|
|
52
111
|
|
|
112
|
+
```tty
|
|
113
|
+
cd ~/.Sites
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
|
|
53
117
|
``` tty
|
|
54
118
|
mkdir myproject && cd myproject
|
|
55
119
|
```
|
|
@@ -82,7 +146,7 @@ Ok ! Let's do it !
|
|
|
82
146
|
``` tty
|
|
83
147
|
gina bundle:add frontend @myproject
|
|
84
148
|
```
|
|
85
|
-
__NB.:__ If you are launching the command from the project directory, you don't need `@myproject`. The same goes for all bundles commands.
|
|
149
|
+
__NB.:__ If you are launching the command from the project directory, you don't need to add `@myproject`. The same goes for all bundles commands.
|
|
86
150
|
|
|
87
151
|
We have just created a frontend application that will host our homepage.
|
|
88
152
|
You will find all bundle sources under `myproject/src`.
|
|
@@ -121,7 +185,8 @@ Then restart your bundle
|
|
|
121
185
|
gina bundle:restart frontend @myproject
|
|
122
186
|
```
|
|
123
187
|
|
|
124
|
-
Now edit the `home` control in `src/frontend/controllers/controller.js` so that you can have `self.render(...)` instead of `self.renderJSON(...)`
|
|
188
|
+
Now edit the `home` control in `src/frontend/controllers/controller.content.js` so that you can have `self.render(...)` instead of `self.renderJSON(...)`
|
|
189
|
+
|
|
125
190
|
|
|
126
191
|
Once it's done, you just need to refresh your browser.
|
|
127
192
|
|
|
@@ -137,6 +202,9 @@ Please, note that you have 2 types of environments : one for the framework, and
|
|
|
137
202
|
> ```tty
|
|
138
203
|
> gina framework:set --env=dev
|
|
139
204
|
> ```
|
|
205
|
+
> ```tty
|
|
206
|
+
> gina framework:set --log-level=debug
|
|
207
|
+
> ```
|
|
140
208
|
|
|
141
209
|
You can check which are the environments set for your projects
|
|
142
210
|
```tty
|
|
@@ -168,6 +236,7 @@ gina env:use prod @myproject
|
|
|
168
236
|
__NB.:__ If you need to change it for a particular bundle, you still can do it at runtime using `--env=<your env>` to override the default settings. This will not set `<your env>`as the default environment for the whole project.
|
|
169
237
|
|
|
170
238
|
|
|
239
|
+
|
|
171
240
|
#### Other operations you can apply to your environment:
|
|
172
241
|
__Adding a new environment for your project__
|
|
173
242
|
```tty
|
|
@@ -183,8 +252,18 @@ __Defining an existing environment as `development` (you can only have one like
|
|
|
183
252
|
gina env:link-dev <your new dev env>
|
|
184
253
|
```
|
|
185
254
|
|
|
186
|
-
|
|
187
|
-
You will
|
|
255
|
+
__Benefits from using a `development` environment__
|
|
256
|
+
You will not have to restart your bundle anytime you modify files inside directories like :
|
|
257
|
+
- /controllers
|
|
258
|
+
- /piblic
|
|
259
|
+
- /templates
|
|
260
|
+
|
|
261
|
+
### Logs
|
|
262
|
+
|
|
263
|
+
#### Getting the logs
|
|
264
|
+
You will get logs for the framework and related to your running bundles.
|
|
265
|
+
|
|
266
|
+
__1st Method - The default one__
|
|
188
267
|
``` tty
|
|
189
268
|
gina tail
|
|
190
269
|
```
|
|
@@ -196,8 +275,9 @@ This means that if you need Gina to handle logs storage, you need a logger conta
|
|
|
196
275
|
|
|
197
276
|
Note that this is optional since logs are output like for other frameworks: you can catch those while writing your daemon starting script on you production server.
|
|
198
277
|
|
|
199
|
-
So to handle log storage for your application, you have 2 options.
|
|
200
|
-
|
|
278
|
+
So to handle log storage for your application, you have 2 options: see 2nd & 3rd Methods.
|
|
279
|
+
|
|
280
|
+
__2nd Method - Old school way__
|
|
201
281
|
```tty
|
|
202
282
|
gina bundle:start frontend @myproject > /usr/local/var/log/gina/frontend.myproject.domain.log 2>&1
|
|
203
283
|
```
|
|
@@ -206,7 +286,7 @@ You can now check
|
|
|
206
286
|
tail - f /usr/local/var/log/gina/frontend.myproject.domain.log
|
|
207
287
|
```
|
|
208
288
|
|
|
209
|
-
|
|
289
|
+
__3rd Method - Create your own container/transport by extending gina default container__
|
|
210
290
|
|
|
211
291
|
|
|
212
292
|
If you still want gina to handle logs storage, you are lucky, we have developped a file container/transport that you just need to enable.
|
|
@@ -223,6 +303,24 @@ gina restart
|
|
|
223
303
|
|
|
224
304
|
__NB.: __For development purposes, using the CLI `gina tail` is still a better option because you will have a better overview of what is really going on for all your application at once & for the framework.
|
|
225
305
|
|
|
306
|
+
#### Setting default log level
|
|
307
|
+
|
|
308
|
+
By default Gina is set to `info`. Here is the list of available log level hierarchies.
|
|
309
|
+
|
|
310
|
+
| levels | Included messages |
|
|
311
|
+
|--------|--------|
|
|
312
|
+
| trace | Emergency, Alert, Critical, Error, Warning, Notice, Informational, Debug |
|
|
313
|
+
| debug | Emergency, Alert, Critical, Error, Warning, Notice, Informational, Debug |
|
|
314
|
+
| info | Emergency, Alert, Critical, Error, Warning, Notice, Informational |
|
|
315
|
+
| warn | Emergency, Alert, Critical, Error, Warning, Notice |
|
|
316
|
+
| error | Emergency, Alert, Critical, Error, Notice |
|
|
317
|
+
| fatal | Emergency, Alert, Critical, Notice |
|
|
318
|
+
|
|
319
|
+
If you are at the developpemnt stage of your project, you might want to get all debug messages.
|
|
320
|
+
```tty
|
|
321
|
+
gina framework:set --log-level=debug
|
|
322
|
+
```
|
|
323
|
+
|
|
226
324
|
## HTTPS, HTTP/2 and certificates
|
|
227
325
|
|
|
228
326
|
### Installing a certificate
|
|
@@ -240,7 +338,7 @@ __E.g:__ The `myproject.domain` folder should be placed into:
|
|
|
240
338
|
### Enable HTTPS scheme
|
|
241
339
|
> __NB.:__ `certificate` is `required`.
|
|
242
340
|
> By enabling HTTPS, you will do so for your entire poroject by default, but you can later set one per application.
|
|
243
|
-
> And if you want to run
|
|
341
|
+
> And if you want to run our experimental HTTP2 implementation, you will need HTTPS scheme.
|
|
244
342
|
|
|
245
343
|
Check what is your actual scheme & protocol status
|
|
246
344
|
```tty
|
|
@@ -282,12 +380,12 @@ Error: unable to get issuer certificate
|
|
|
282
380
|
Do not panic, and follow the steps provided in the following section.
|
|
283
381
|
|
|
284
382
|
### Local scope & certificate consideration
|
|
285
|
-
|
|
383
|
+
> __Ignore__ the following instructions __if you can start your application__ without any certificate errors.
|
|
286
384
|
|
|
287
|
-
This is
|
|
385
|
+
This is __important__ and you will have to take additional steps to make your certificate fully valid __while developping on your `local/dev host`__.
|
|
288
386
|
Since in most cases you will not have the `Root Certificate` included in your certificate, you need to generate a correct certificate including the Root Certificate. __For production, it will not be a problem__ since the Root certificate is provided by the client browser.
|
|
289
387
|
|
|
290
|
-
Let say that you have
|
|
388
|
+
Let say that you have downloaded your certificates from __[Ssl For Free](https://sslforfree.com)__ which you have then placed under: `~/.gina/certificates/scopes/local/myproject.domain`.
|
|
291
389
|
|
|
292
390
|
__Step 1__
|
|
293
391
|
Go to the folder
|
|
@@ -305,11 +403,11 @@ Output should look like
|
|
|
305
403
|
ca_bundle.crt certificate.crt private.key
|
|
306
404
|
```
|
|
307
405
|
|
|
308
|
-
|
|
406
|
+
Now, copy the content of `certificate.crt`
|
|
309
407
|
```tty
|
|
310
408
|
cat certificate.crt
|
|
311
409
|
```
|
|
312
|
-
|
|
410
|
+
|
|
313
411
|
|
|
314
412
|
Visit [https://whatsmychaincert.com](https://whatsmychaincert.com)
|
|
315
413
|
Go to the `Generate the Correct Chain` tool.
|
|
@@ -335,7 +433,7 @@ We just need to override Gina default certificate paths
|
|
|
335
433
|
```tty
|
|
336
434
|
{
|
|
337
435
|
// "privateKey": "{GINA_HOMEDIR}/certificates/scopes/{scope}/{host}/private.key",
|
|
338
|
-
"certificate": "{GINA_HOMEDIR}/certificates/scopes/{scope}/{host}/certificate.
|
|
436
|
+
// "certificate": "{GINA_HOMEDIR}/certificates/scopes/{scope}/{host}/certificate.crt",
|
|
339
437
|
"ca": "{GINA_HOMEDIR}/certificates/scopes/{scope}/{host}/certificate.combined.pem"
|
|
340
438
|
}
|
|
341
439
|
```
|
|
@@ -346,9 +444,33 @@ gina bundle:restart @myproject
|
|
|
346
444
|
```
|
|
347
445
|
|
|
348
446
|
|
|
447
|
+
### Uninstalling Gina
|
|
448
|
+
|
|
449
|
+
> For Microsoft Windows, you might have to run the command line with Administrator privileges.
|
|
450
|
+
|
|
451
|
+
__Wihtout prefix__
|
|
452
|
+
``` tty
|
|
453
|
+
npm uninstall -g gina
|
|
454
|
+
```
|
|
455
|
+
|
|
456
|
+
Or if you have an Error like `EACCESS: permission denied, mkdir '/usr/local/lib/node_modules/gina'`
|
|
457
|
+
|
|
458
|
+
__With prefix - If Gina was installed with a prefix__
|
|
459
|
+
```tty
|
|
460
|
+
npm uninstall -g gina --prefix=~/.npm-global
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
|
|
464
|
+
|
|
349
465
|
|
|
350
466
|
## Troubleshooting
|
|
351
467
|
|
|
468
|
+
### My settings are broken, I need a fresh install with the default settings
|
|
469
|
+
```tty
|
|
470
|
+
npm install -g gina@latest --reset
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
|
|
352
474
|
### I can't start my bundle
|
|
353
475
|
|
|
354
476
|
__Are you starting for the first time ?__
|
|
@@ -356,14 +478,14 @@ __Are you starting for the first time ?__
|
|
|
356
478
|
- If you are a __Windows user__, make sure you are running your command line with sufficient permission; like __"launching your terminal as administrator"__.
|
|
357
479
|
|
|
358
480
|
|
|
359
|
-
- If you have just cloned Gina from GitHub, don't forget to run from the
|
|
481
|
+
- If you have just cloned Gina from GitHub, don't forget to run from the framework root :
|
|
360
482
|
|
|
361
483
|
```tty
|
|
362
|
-
node node_modules/gina/script/pre_install.js
|
|
484
|
+
node node_modules/gina/script/pre_install.js -g
|
|
363
485
|
```
|
|
364
486
|
|
|
365
487
|
```tty
|
|
366
|
-
node node_modules/gina/script/post_install.js
|
|
488
|
+
node node_modules/gina/script/post_install.js -g
|
|
367
489
|
```
|
|
368
490
|
|
|
369
491
|
|
package/bin/cli
CHANGED
|
@@ -4,10 +4,11 @@
|
|
|
4
4
|
var fs = require('fs');
|
|
5
5
|
var net = require('net');
|
|
6
6
|
var util = require('util');
|
|
7
|
+
var os = require("os");
|
|
7
8
|
var promisify = util.promisify;
|
|
8
9
|
|
|
9
10
|
async function onExec() {
|
|
10
|
-
|
|
11
|
+
|
|
11
12
|
// process.stdout.write('GINA CLI LOADED !! ' + JSON.stringify(process.argv, null, 2) + '\n');
|
|
12
13
|
|
|
13
14
|
var isWin32 = (process.platform === 'win32') ? true : false;
|
|
@@ -18,9 +19,9 @@ async function onExec() {
|
|
|
18
19
|
// loading pack
|
|
19
20
|
var pack = ginaPath + '/package.json';
|
|
20
21
|
pack = (isWin32) ? pack.replace(/\//g, '\\') : pack;
|
|
21
|
-
var home =
|
|
22
|
+
var home = null;
|
|
22
23
|
var frameworkPath = null;
|
|
23
|
-
|
|
24
|
+
|
|
24
25
|
var debugPort = null
|
|
25
26
|
, debugBrkEnabled = false
|
|
26
27
|
, isUpdateRequired = false
|
|
@@ -33,53 +34,69 @@ async function onExec() {
|
|
|
33
34
|
var generator = require(frameworkPath + '/lib/generator');
|
|
34
35
|
|
|
35
36
|
require(frameworkPath + '/lib');
|
|
36
|
-
var aliases = require(frameworkPath + '/lib/cmd/aliases.json');
|
|
37
|
-
|
|
37
|
+
// var aliases = require(frameworkPath + '/lib/cmd/aliases.json');
|
|
38
|
+
|
|
38
39
|
// catching debug|inspect arg
|
|
39
|
-
//process.stdout.write('params '+ params.join(', ') + '\n');
|
|
40
|
+
//process.stdout.write('params '+ params.join(', ') + '\n');
|
|
40
41
|
if ( params.length > 0 ) {
|
|
41
42
|
for (var p = 0, len = params.length; p < len; ++p) {
|
|
42
|
-
|
|
43
|
+
|
|
43
44
|
if ( /^\-\-port/.test(params[p]) ) {
|
|
44
45
|
let port = params[p].split(/\=/)[1];
|
|
45
46
|
setEnvVar('GINA_PORT', ~~port);// jshint ignore:line
|
|
46
|
-
isUpdateRequired = true;
|
|
47
|
+
isUpdateRequired = true;
|
|
47
48
|
continue;
|
|
48
49
|
}
|
|
49
|
-
|
|
50
|
+
|
|
50
51
|
if ( /^\-\-debug(\_|\-)port/.test(params[p]) ) {
|
|
51
52
|
let port = params[p].split(/\=/)[1];
|
|
52
53
|
setEnvVar('GINA_DEBUG_PORT', ~~port);// jshint ignore:line
|
|
53
|
-
isUpdateRequired = true;
|
|
54
|
+
isUpdateRequired = true;
|
|
54
55
|
continue;
|
|
55
56
|
}
|
|
56
|
-
|
|
57
|
+
|
|
57
58
|
if ( /^\-\-(inspect|debug)/.test(params[p]) ) {
|
|
58
59
|
debugBrkEnabled = ( /\-brk/.test(params[p]) ) ? true : false;
|
|
59
60
|
debugPort = params[p].split(/\=/)[1];
|
|
60
|
-
params.splice(p,1);
|
|
61
|
+
params.splice(p,1);
|
|
61
62
|
break;
|
|
62
63
|
}
|
|
63
64
|
}
|
|
64
65
|
}
|
|
65
|
-
|
|
66
|
+
|
|
66
67
|
|
|
67
68
|
var shortVersion = version.split('.');
|
|
68
69
|
shortVersion.splice(2);
|
|
69
70
|
shortVersion = shortVersion.join('.');
|
|
70
71
|
setEnvVar('GINA_SHORT_VERSION', shortVersion);// jshint ignore:line
|
|
71
|
-
|
|
72
|
-
|
|
72
|
+
|
|
73
|
+
home = getUserHome();// jshint ignore:line
|
|
73
74
|
if ( typeof(getEnvVar('GINA_HOMEDIR')) == 'undefined') {// jshint ignore:line
|
|
74
75
|
setEnvVar('GINA_HOMEDIR', home + '/.gina')// jshint ignore:line
|
|
75
76
|
}
|
|
76
77
|
home = getEnvVar('GINA_HOMEDIR');// jshint ignore:line
|
|
77
|
-
|
|
78
|
-
var
|
|
79
|
-
|
|
80
|
-
|
|
78
|
+
|
|
79
|
+
var settings = { 'log_level': 'info'}; // First time launch or reset
|
|
80
|
+
if ( new _( home +'/'+ shortVersion +'/settings.json', true ).existsSync() ) {
|
|
81
|
+
var settingsPath = _( home +'/'+ shortVersion +'/settings.json', true );// jshint ignore:line
|
|
82
|
+
settings = requireJSON(settingsPath);// jshint ignore:line
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
|
|
81
86
|
setEnvVar('GINA_LOG_LEVEL', settings['log_level']);// jshint ignore:line
|
|
82
87
|
setEnvVar('GINA_VERSION', version);// jshint ignore:line
|
|
88
|
+
setEnvVar('GINA_RUNDIR', settings['rundir']);// jshint ignore:line
|
|
89
|
+
setEnvVar('GINA_LOGDIR', settings['logdir']);// jshint ignore:line
|
|
90
|
+
setEnvVar('GINA_TMPDIR', settings['tmpdir']);// jshint ignore:line
|
|
91
|
+
|
|
92
|
+
if ( typeof(packObj.config) != 'undefined' ) {
|
|
93
|
+
if (typeof(packObj.config.prefix) != 'undefined' ) {
|
|
94
|
+
setEnvVar('GINA_PREFIX', packObj.config.prefix);// jshint ignore:line
|
|
95
|
+
}
|
|
96
|
+
if ( typeof(packObj.config.globalMode) != 'undefined' ) {
|
|
97
|
+
setEnvVar('GINA_GLOBAL_MODE', packObj.config.globalMode);// jshint ignore:line
|
|
98
|
+
}
|
|
99
|
+
}
|
|
83
100
|
|
|
84
101
|
// Loading logger.
|
|
85
102
|
console = lib.logger;// jshint ignore:line
|
|
@@ -88,16 +105,16 @@ async function onExec() {
|
|
|
88
105
|
console.pauseReporting();
|
|
89
106
|
}
|
|
90
107
|
console.setLevel(settings['log_level'], 'gina');
|
|
91
|
-
|
|
108
|
+
|
|
92
109
|
// Loading logger listner vs ~/.gina/user/extensions/logger/mq/config.json & ~/.gina/{shortVersion}/settings.json
|
|
93
110
|
if ( /(gina\/bin\/cli|gina\/\/bin\/gina)$/.test(process.argv[1]) ) {
|
|
94
|
-
|
|
111
|
+
|
|
95
112
|
var MQListener = require(frameworkPath + '/lib/logger/src/containers/mq/listener.js');
|
|
96
|
-
|
|
113
|
+
|
|
97
114
|
var mqPort = 8125;
|
|
98
115
|
var mqListener = await new MQListener({ port: 8125 });
|
|
99
116
|
// required for tail command
|
|
100
|
-
var mqPortFile = '
|
|
117
|
+
var mqPortFile = getTmpDir() + '/mq-listener-v'+ version +'.port';
|
|
101
118
|
console.debug('Writting: '+ mqPortFile);
|
|
102
119
|
fs.writeFileSync( mqPortFile, ''+mqPort );
|
|
103
120
|
process.on('exit', function() {
|
|
@@ -106,7 +123,7 @@ async function onExec() {
|
|
|
106
123
|
mqListener.unref();
|
|
107
124
|
})
|
|
108
125
|
}
|
|
109
|
-
|
|
126
|
+
|
|
110
127
|
if ( !fs.existsSync(frameworkPath) ) {
|
|
111
128
|
console.alert('Could not find version ' + version + '.\nFirst try:\n$ gina framework:install ' + version);
|
|
112
129
|
process.exit(1)
|
|
@@ -127,7 +144,8 @@ async function onExec() {
|
|
|
127
144
|
filterArgs();// jshint ignore:line
|
|
128
145
|
//check for $HOME path, alert if empty.
|
|
129
146
|
if (!home) {
|
|
130
|
-
console.error('No ' + ((isWin32) ? 'USERPROFILE' : 'HOME') + ' path found.')
|
|
147
|
+
console.error('No ' + ((isWin32) ? 'USERPROFILE' : 'HOME') + ' path found.');
|
|
148
|
+
process.exit(1);
|
|
131
149
|
} else {
|
|
132
150
|
setEnvVar('GINA_HOMEDIR', home);// jshint ignore:line
|
|
133
151
|
setEnvVar('GINA_DIR', ginaPath);// jshint ignore:line
|
|
@@ -136,7 +154,7 @@ async function onExec() {
|
|
|
136
154
|
}
|
|
137
155
|
setEnvVar('GINA_IS_WIN32', isWin32, true);// jshint ignore:line
|
|
138
156
|
|
|
139
|
-
if (isUpdateRequired) {
|
|
157
|
+
if (isUpdateRequired) {
|
|
140
158
|
settings['port'] = getEnvVar('GINA_PORT') || null;// jshint ignore:line
|
|
141
159
|
settings['debug_port'] = getEnvVar('GINA_DEBUG_PORT') || null;// jshint ignore:line
|
|
142
160
|
console.debug('Updating debug settings: #'+ getEnvVar('GINA_DEBUG_PORT'));// jshint ignore:line
|
|
@@ -198,7 +216,7 @@ async function onExec() {
|
|
|
198
216
|
debugBrkEnabled : debugBrkEnabled,
|
|
199
217
|
pack : pack
|
|
200
218
|
});
|
|
201
|
-
|
|
219
|
+
|
|
202
220
|
|
|
203
221
|
} else if (
|
|
204
222
|
typeof(process.argv[2]) != 'undefined'
|
|
@@ -207,7 +225,7 @@ async function onExec() {
|
|
|
207
225
|
|| process.argv[2].substr(0, 2) === '--'
|
|
208
226
|
|| process.argv[2].substr(0, 1) === '-'
|
|
209
227
|
) {
|
|
210
|
-
|
|
228
|
+
|
|
211
229
|
require(binPath + '/cmd')({
|
|
212
230
|
binPath : binPath,
|
|
213
231
|
ginaPath : ginaPath,
|
|
@@ -234,21 +252,21 @@ async function onExec() {
|
|
|
234
252
|
// retieving debug infos
|
|
235
253
|
var debugOption = null;
|
|
236
254
|
if ( debugPort ) {
|
|
237
|
-
debugOption = '--inspect=' + debugPort;
|
|
238
|
-
|
|
255
|
+
debugOption = '--inspect=' + debugPort;
|
|
256
|
+
|
|
239
257
|
if (debugBrkEnabled) {
|
|
240
258
|
debugOption = debugOption.replace(/\-\-inspect/, '--inspect-brk')
|
|
241
259
|
}
|
|
242
|
-
|
|
260
|
+
|
|
243
261
|
process.argv.push(debugOption)
|
|
244
262
|
}
|
|
245
|
-
|
|
263
|
+
|
|
246
264
|
client.write( JSON.stringify(process.argv) );
|
|
247
265
|
}
|
|
248
266
|
);
|
|
249
267
|
|
|
250
|
-
client.on('data', function(data) {
|
|
251
|
-
|
|
268
|
+
client.on('data', function(data) {
|
|
269
|
+
|
|
252
270
|
//Acknowledging ready state.
|
|
253
271
|
if ( /\[ quit \]/.test(data) ) {
|
|
254
272
|
client.end();
|
|
@@ -262,7 +280,7 @@ async function onExec() {
|
|
|
262
280
|
client.end();
|
|
263
281
|
return
|
|
264
282
|
}
|
|
265
|
-
|
|
283
|
+
|
|
266
284
|
});
|
|
267
285
|
|
|
268
286
|
//client end event.
|
|
@@ -276,11 +294,11 @@ async function onExec() {
|
|
|
276
294
|
} else {
|
|
277
295
|
console.log('[ gina ] not started, try to start framework with :\n$ sudo gina start')
|
|
278
296
|
}
|
|
279
|
-
|
|
297
|
+
|
|
280
298
|
console.debug(err.stack||err);
|
|
281
|
-
|
|
299
|
+
|
|
282
300
|
process.exit(1)
|
|
283
|
-
});
|
|
301
|
+
});
|
|
284
302
|
}
|
|
285
303
|
}
|
|
286
304
|
|
package/bin/cli-debug
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
/**
|
|
4
4
|
* Mainly used to debug framework CMD lib - default port should be #5858 by default
|
|
5
5
|
* To modify the debug port :
|
|
6
|
-
*
|
|
6
|
+
*
|
|
7
7
|
* $ gina framework:set --debug-port=<your new debug port>
|
|
8
8
|
*/
|
|
9
9
|
const fs = require('fs');
|
|
@@ -34,16 +34,16 @@ var params = argv.split(/\s+/g);
|
|
|
34
34
|
if ( params.length > 0 ) {
|
|
35
35
|
for (var p = 0, len = params.length; p < len; ++p) {
|
|
36
36
|
if ( /^\-\-port/.test(params[p]) ) {
|
|
37
|
-
setEnvVar('GINA_PORT', ~~params[p].split(/\=/)[1])
|
|
37
|
+
setEnvVar('GINA_PORT', ~~params[p].split(/\=/)[1]);// jshint ignore:line
|
|
38
38
|
continue;
|
|
39
39
|
}
|
|
40
40
|
if ( /^\-\-debug(\_|\-)port/.test(params[p]) ) {
|
|
41
|
-
setEnvVar('GINA_DEBUG_PORT', ~~params[p].split(/\=/)[1])
|
|
41
|
+
setEnvVar('GINA_DEBUG_PORT', ~~params[p].split(/\=/)[1]);// jshint ignore:line
|
|
42
42
|
continue;
|
|
43
43
|
}
|
|
44
44
|
if ( /^\-\-(inspect|debug)/.test(params[p]) ) {
|
|
45
45
|
debugPort = ~~params[p].split(/\=/)[1];
|
|
46
|
-
process.argv.splice(p,1);
|
|
46
|
+
process.argv.splice(p,1);
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.1.1-alpha.110
|
|
File without changes
|
|
File without changes
|
package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/asset/img/android-chrome-192x192.png
RENAMED
|
File without changes
|
package/framework/{v0.1.1-alpha.11 → v0.1.1-alpha.110}/core/asset/img/android-chrome-512x512.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/framework/{v0.1.1-alpha.11/core/asset/js → v0.1.1-alpha.110/core/asset}/plugin/dist/gina.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.gina-toolbar,.gina-toolbar div,.gina-toolbar p,.gina-toolbar ul,.gina-toolbar li,.gina-toolbar form,.gina-toolbar fieldset,.gina-toolbar legend,.gina-toolbar a,.gina-toolbar span,.gina-toolbar strong,.gina-toolbar small,.gina-toolbar label{clear:none;float:none;position:static;margin:0;padding:0;border:0;outline:0;vertical-align:baseline;background:none;box-sizing:inherit}.gina-toolbar{box-sizing:content-box;display:block;color:#fff;font:12px/18px "Lucida Grande", Lucida, Arial, Helvetica, sans-serif}.gina-toolbar div,.gina-toolbar p,.gina-toolbar ul,.gina-toolbar li,.gina-toolbar form,.gina-toolbar fieldset,.gina-toolbar legend{display:block}.gina-toolbar a,.gina-toolbar span,.gina-toolbar strong,.gina-toolbar small,.gina-toolbar label{display:inline}.gina-toolbar a:focus{outline:none}.gina-toolbar{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,0.8);z-index:2147483647}@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:normal}.gina-toolbar label{color:#fff;font-size:12px;font-weight:normal}.gina-toolbar input{-webkit-appearance:none;-moz-appearance:none;appearance:none;color:#fff;font-size:12px;font-weight:normal;text-align:center;background:transparent;border:none}.gina-toolbar input:focus,.gina-toolbar input:active{outline:none;border-color:#fff;background:#444}.gina-toolbar input[type="file"]{display:none}.gina-toolbar select{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:24px;width:auto;padding:0 10px;margin:0;color:#fff;font-size:11px;font-weight:normal;background:transparent;border:1px solid #666}.gina-toolbar select:focus,.gina-toolbar select:active{outline:none;border-color:#fff;background:#333}.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:hover,.gina-toolbar .gina-toolbar-input-file:hover{border-color:#f2af0d}.gina-toolbar .gina-toolbar-button:focus,.gina-toolbar .gina-toolbar-input-file:focus,.gina-toolbar .gina-toolbar-button:active,.gina-toolbar .gina-toolbar-input-file:active{outline:none;border-color:#fff}.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{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{fill:#f2af0d}.gina-toolbar .gina-toolbar-header .gina-toolbar-logo a:hover svg{-webkit-animation:gina-toolbar-shake 0.5s both;animation:gina-toolbar-shake 0.5s both}.gina-toolbar .gina-toolbar-header .gina-toolbar-tab-settings a:hover svg{-webkit-animation:gina-toolbar-rotate 2s both;animation:gina-toolbar-rotate 2s both}@-webkit-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-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)}}@-webkit-keyframes gina-toolbar-rotate{from{transform:rotate3d(0, 0, 1, 0deg)}to{transform:rotate3d(0, 0, 1, 180deg)}}@keyframes gina-toolbar-rotate{from{transform:rotate3d(0, 0, 1, 0deg)}to{transform:rotate3d(0, 0, 1, 180deg)}}.gina-toolbar-top-left .gina-toolbar-header .gina-toolbar-logo,.gina-toolbar-bottom-left .gina-toolbar-header .gina-toolbar-logo{float:left}.gina-toolbar-top-left .gina-toolbar-header .gina-toolbar-tabs,.gina-toolbar-bottom-left .gina-toolbar-header .gina-toolbar-tabs{float:right}.gina-toolbar-top-left .gina-toolbar-header .gina-toolbar-tab-settings,.gina-toolbar-bottom-left .gina-toolbar-header .gina-toolbar-tab-settings{float:right}.gina-toolbar-top-right .gina-toolbar-header .gina-toolbar-logo,.gina-toolbar-bottom-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-logo svg{fill:#f2af0d}.gina-toolbar-collapsed .gina-toolbar-tab,.gina-toolbar-collapsed .gina-toolbar-panels{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:normal;text-transform:uppercase}.gina-toolbar-content>.gina-toolbar-section:first-child>.gina-toolbar-section-title{margin:0;padding:0;border-top:none}.gina-toolbar-object>a:first-child,.gina-toolbar-collection>a:first-child{display:block;text-decoration:none}.gina-toolbar-object>a:first-child span,.gina-toolbar-collection>a:first-child span{color:#888}.gina-toolbar-object>a:first-child:before,.gina-toolbar-collection>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 0.5s}.gina-toolbar-object>a:first-child:hover::before,.gina-toolbar-collection>a:first-child:hover::before{border-left-color:#eeffff}.gina-toolbar-object>ul,.gina-toolbar-collection>ul{margin-left:20px;display:none}.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-number{color:#f78c6a}.gina-toolbar .gina-toolbar-value-type-is-null{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-tab-logs.gina-toolbar-debug>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,.gina-toolbar .gina-toolbar-tab-logs.gina-toolbar-error>a::after,.gina-toolbar .gina-toolbar-tab-logs.gina-toolbar-crit>a::after,.gina-toolbar .gina-toolbar-tab-logs.gina-toolbar-alert>a::after,.gina-toolbar .gina-toolbar-tab-logs.gina-toolbar-emerg>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%;-webkit-animation:gina-toolbar-heart-beats 3.5s infinite;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-error>a::after,.gina-toolbar .gina-toolbar-tab-logs.gina-toolbar-crit>a::after,.gina-toolbar .gina-toolbar-tab-logs.gina-toolbar-alert>a::after,.gina-toolbar .gina-toolbar-tab-logs.gina-toolbar-emerg>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>')}@-webkit-keyframes gina-toolbar-heart-beats{0%{transform:scale(1)}50%{transform:scale(0.5)}100%{transform:scale(1)}}@keyframes gina-toolbar-heart-beats{0%{transform:scale(1)}50%{transform:scale(0.5)}100%{transform:scale(1)}}
|