gina 0.1.6-alpha.6 → 0.1.6-alpha.61
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/README-4Contributors.md +5 -5
- package/README.md +3 -3
- package/bin/cli +13 -0
- package/bin/gina +5 -0
- package/framework/v0.1.6-alpha.61/VERSION +1 -0
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/asset/plugin/README.md +1 -0
- package/framework/v0.1.6-alpha.61/core/asset/plugin/dist/vendor/gina/css/gina.min.css.map +1 -0
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/asset/plugin/dist/vendor/gina/js/gina.js +159 -27
- package/framework/v0.1.6-alpha.61/core/asset/plugin/dist/vendor/gina/js/gina.min.js +771 -0
- package/framework/v0.1.6-alpha.61/core/asset/plugin/dist/vendor/gina/js/gina.min.js.map +8 -0
- package/framework/v0.1.6-alpha.61/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +8 -0
- package/framework/v0.1.6-alpha.61/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.map +8 -0
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/config.js +98 -24
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/connectors/couchbase/lib/connector.v4.js +28 -22
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/controller/controller.js +275 -36
- package/framework/v0.1.6-alpha.61/core/deps/busboy-1.6.0/.github/workflows/ci.yml +24 -0
- package/framework/v0.1.6-alpha.61/core/deps/busboy-1.6.0/.github/workflows/lint.yml +23 -0
- package/framework/v0.1.6-alpha.61/core/deps/busboy-1.6.0/LICENSE +19 -0
- package/framework/v0.1.6-alpha.61/core/deps/busboy-1.6.0/README.md +191 -0
- package/framework/v0.1.6-alpha.61/core/deps/busboy-1.6.0/bench/bench-multipart-fields-100mb-big.js +149 -0
- package/framework/v0.1.6-alpha.61/core/deps/busboy-1.6.0/bench/bench-multipart-fields-100mb-small.js +143 -0
- package/framework/v0.1.6-alpha.61/core/deps/busboy-1.6.0/bench/bench-multipart-files-100mb-big.js +154 -0
- package/framework/v0.1.6-alpha.61/core/deps/busboy-1.6.0/bench/bench-multipart-files-100mb-small.js +148 -0
- package/framework/v0.1.6-alpha.61/core/deps/busboy-1.6.0/bench/bench-urlencoded-fields-100pairs-small.js +101 -0
- package/framework/v0.1.6-alpha.61/core/deps/busboy-1.6.0/bench/bench-urlencoded-fields-900pairs-small-alt.js +84 -0
- package/framework/v0.1.6-alpha.61/core/deps/busboy-1.6.0/lib/index.js +57 -0
- package/framework/v0.1.6-alpha.61/core/deps/busboy-1.6.0/lib/types/multipart.js +680 -0
- package/framework/v0.1.6-alpha.61/core/deps/busboy-1.6.0/lib/types/urlencoded.js +350 -0
- package/framework/v0.1.6-alpha.61/core/deps/busboy-1.6.0/lib/utils.js +596 -0
- package/framework/v0.1.6-alpha.61/core/deps/busboy-1.6.0/package.json +22 -0
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/gna.js +97 -18
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/model/index.js +28 -24
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/validator/src/main.js +43 -9
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/router.js +74 -40
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/server.isaac.js +28 -6
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/server.js +31 -5
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle/controllers/setup.js +2 -2
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/context.js +16 -11
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/path.js +25 -9
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/bundle/add.js +2 -1
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/bundle/start.js +20 -8
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/build.js +1 -1
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/init.js +18 -0
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/link-node-modules.js +2 -3
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/link.js +1 -0
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/tail.js +5 -5
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/version.js +15 -1
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/helper.js +12 -5
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/project/add.js +3 -2
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/project/build.js +4 -4
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/protocol/list.js +71 -50
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/domain/src/main.js +59 -1
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/merge/package.json +1 -1
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/model.js +1 -1
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/routing/src/main.js +49 -10
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/session-store.js +2 -2
- package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/swig-filters/src/main.js +63 -8
- package/framework/v0.1.6-alpha.61/package.json +12 -0
- package/package.json +2 -2
- package/framework/v0.1.6-alpha.6/VERSION +0 -1
- package/framework/v0.1.6-alpha.6/core/asset/plugin/dist/vendor/gina/css/gina.min.css.map +0 -1
- package/framework/v0.1.6-alpha.6/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -765
- package/framework/v0.1.6-alpha.6/core/asset/plugin/dist/vendor/gina/js/gina.min.js.map +0 -8
- package/framework/v0.1.6-alpha.6/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -7
- package/framework/v0.1.6-alpha.6/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.map +0 -8
- package/framework/v0.1.6-alpha.6/package.json +0 -14
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/AUTHORS +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/LICENSE +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/asset/html/nolayout.html +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/asset/html/static.html +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/asset/img/android-chrome-192x192.png +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/asset/img/android-chrome-512x512.png +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/asset/img/apple-touch-icon.png +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/asset/img/favicon-16x16.png +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/asset/img/favicon-32x32.png +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/asset/img/favicon.ico +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/asset/plugin/dist/vendor/gina/html/toolbar.html +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/asset/plugin/uuid.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/connectors/couchbase/index.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/connectors/couchbase/lib/connector.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/connectors/couchbase/lib/connector.v2.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/connectors/couchbase/lib/connector.v3.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/connectors/couchbase/lib/n1ql.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/connectors/couchbase/lib/session-store.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/connectors/couchbase/lib/session-store.v2.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/controller/controller.framework.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/controller/index.js +0 -0
- /package/framework/{v0.1.6-alpha.6/core/deps/busboy → v0.1.6-alpha.61/core/deps/busboy-0.2.14}/.travis.yml +0 -0
- /package/framework/{v0.1.6-alpha.6/core/deps/busboy → v0.1.6-alpha.61/core/deps/busboy-0.2.14}/LICENSE +0 -0
- /package/framework/{v0.1.6-alpha.6/core/deps/busboy → v0.1.6-alpha.61/core/deps/busboy-0.2.14}/README.md +0 -0
- /package/framework/{v0.1.6-alpha.6/core/deps/busboy → v0.1.6-alpha.61/core/deps/busboy-0.2.14}/deps/encoding/encoding-indexes.js +0 -0
- /package/framework/{v0.1.6-alpha.6/core/deps/busboy → v0.1.6-alpha.61/core/deps/busboy-0.2.14}/deps/encoding/encoding.js +0 -0
- /package/framework/{v0.1.6-alpha.6/core/deps/busboy → v0.1.6-alpha.61/core/deps/busboy-0.2.14}/lib/main.js +0 -0
- /package/framework/{v0.1.6-alpha.6/core/deps/busboy → v0.1.6-alpha.61/core/deps/busboy-0.2.14}/lib/types/multipart.js +0 -0
- /package/framework/{v0.1.6-alpha.6/core/deps/busboy → v0.1.6-alpha.61/core/deps/busboy-0.2.14}/lib/types/urlencoded.js +0 -0
- /package/framework/{v0.1.6-alpha.6/core/deps/busboy → v0.1.6-alpha.61/core/deps/busboy-0.2.14}/lib/utils.js +0 -0
- /package/framework/{v0.1.6-alpha.6/core/deps/busboy → v0.1.6-alpha.61/core/deps/busboy-0.2.14}/package.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/deps/swig-client/swig-2.0.0.min.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/dev/index.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/dev/lib/class.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/dev/lib/factory.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/dev/lib/tools.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/locales/README.md +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/locales/currency.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/locales/dist/language/en.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/locales/dist/language/fr.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/locales/dist/region/en.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/locales/dist/region/fr.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/locales/index.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/locales/src/make.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/locales/src/resources/currency.csv +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/locales/src/resources/region.csv +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/locales/src/resources/region.mapping.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/mime.types +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/model/entity.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/model/template/entityFactory.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/model/template/index.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/README.md +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/index.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/file/README.md +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/file/build.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/file/package.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/intl/README.md +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/intl/build.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/intl/package.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/intl/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/storage/README.md +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/storage/build.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/storage/package.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/storage/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/validator/README.md +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/validator/build.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/validator/package.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/validator/src/form-validator.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/server.express.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/status.codes +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/_gitignore +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle/config/app.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle/config/routing.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle/config/settings.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle/config/templates.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle/index.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle_public/css/default.css +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle_public/readme.md +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/command/gina.bat.tpl +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/command/gina.tpl +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/conf/env.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/conf/manifest.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/conf/package.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/conf/settings.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/conf/statics.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/conf/templates.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/error/client/json/401.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/error/client/json/403.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/error/client/json/404.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/error/server/html/50x.html +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/error/server/json/500.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/error/server/json/503.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/extensions/logger/config.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/console.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/data/LICENSE +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/data/README.md +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/data/package.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/data/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/dateFormat.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/index.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/json/LICENSE +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/json/README.md +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/json/package.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/json/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/plugins/README.md +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/plugins/package.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/plugins/src/api-error.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/plugins/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/prototypes.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/task.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/text.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/archiver/README.md +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/archiver/build.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/archiver/package.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/archiver/src/dep/jszip.min.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/archiver/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/aliases.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/bundle/arguments.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/bundle/copy.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/bundle/cp.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/bundle/help.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/bundle/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/bundle/list.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/bundle/remove.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/bundle/rename.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/bundle/restart.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/bundle/rm.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/bundle/status.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/bundle/stop.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/env/add.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/env/get.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/env/help.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/env/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/env/link-dev.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/env/list.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/env/remove.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/env/rm.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/env/set.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/env/unset.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/env/use.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/dot.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/get.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/help.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/msg.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/open.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/restart.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/set.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/start.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/status.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/stop.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/update.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/gina-dev.1.md +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/gina-framework.1.md +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/gina.1.md +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/index.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/msg.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/port/help.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/port/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/port/inc/scan.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/port/list.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/port/reset.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/port/set.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/project/arguments.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/project/help.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/project/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/project/import.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/project/list.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/project/move.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/project/remove.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/project/rename.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/project/restart.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/project/rm.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/project/start.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/project/status.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/project/stop.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/protocol/help.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/protocol/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/protocol/set.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/scope/add.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/scope/help.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/scope/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/scope/link-local.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/scope/link-production.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/scope/list.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/scope/remove.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/scope/rm.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/scope/use.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/view/add.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/collection/README.md +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/collection/build.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/collection/package.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/collection/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/config.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cron/README.md +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cron/package.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cron/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/domain/LICENSE +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/domain/README.md +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/domain/dist/public_suffix_list.dat +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/domain/exemples/backend.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/domain/exemples/frontend.html +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/domain/package.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/generator/index.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/index.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/inherits/LICENSE +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/inherits/README.md +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/inherits/example/inheriting_eventemitter.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/inherits/example/protected_inheritance.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/inherits/example/simple_inheritance.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/inherits/example/super_attribute_overridden_by_child_on_init.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/inherits/package.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/inherits/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/logger/README.md +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/logger/package.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/logger/src/containers/default/index.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/logger/src/containers/file/index.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/logger/src/containers/mq/index.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/logger/src/containers/mq/listener.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/logger/src/containers/mq/speaker.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/logger/src/helper.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/logger/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/math/index.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/merge/README.md +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/merge/example/merge.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/merge/example/merge_2_literal objects.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/merge/example/merge_and_preserve_first.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/merge/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/proc.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/routing/README.md +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/routing/build.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/routing/package.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/shell.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/swig-filters/README.md +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/swig-filters/package.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/url/README.md +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/url/index.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/url/mocks.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/url/routing.json +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/url/test.js +0 -0
- /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/validator.js +0 -0
|
@@ -13,7 +13,7 @@ const {promises: {readFile}} = require("fs");
|
|
|
13
13
|
var util = require('util');
|
|
14
14
|
var promisify = util.promisify;
|
|
15
15
|
var EventEmitter = require('events').EventEmitter;
|
|
16
|
-
var zlib = require('zlib');
|
|
16
|
+
var zlib = require('zlib'); // Included with NodeJS
|
|
17
17
|
|
|
18
18
|
//var dns = require('dns');
|
|
19
19
|
// var tls = require('tls');
|
|
@@ -25,6 +25,8 @@ var inherits = lib.inherits;
|
|
|
25
25
|
var console = lib.logger;
|
|
26
26
|
var Collection = lib.Collection;
|
|
27
27
|
var routingLib = lib.routing;
|
|
28
|
+
var Domain = lib.Domain;
|
|
29
|
+
var domainLib = new Domain();
|
|
28
30
|
var swig = require('swig');
|
|
29
31
|
// Swig 2
|
|
30
32
|
// var swig = require('./../deps/swig-client/swig-2.0.0.min.js');
|
|
@@ -322,10 +324,24 @@ function SuperController(options) {
|
|
|
322
324
|
|
|
323
325
|
var ctx = getContext('gina');
|
|
324
326
|
// new declaration && overrides
|
|
327
|
+
var arch = process.arch;
|
|
328
|
+
switch (process.arch) {
|
|
329
|
+
case 'x64':
|
|
330
|
+
arch = 'amd64'
|
|
331
|
+
break;
|
|
332
|
+
case 'armv7l':
|
|
333
|
+
arch = 'armhf'
|
|
334
|
+
break;
|
|
335
|
+
case 'x86':
|
|
336
|
+
arch = 'i386'
|
|
337
|
+
break;
|
|
338
|
+
default:
|
|
339
|
+
break;
|
|
340
|
+
}
|
|
325
341
|
var version = {
|
|
326
342
|
"number" : ctx.version,
|
|
327
343
|
"platform" : process.platform,
|
|
328
|
-
"arch" :
|
|
344
|
+
"arch" : arch,
|
|
329
345
|
"nodejs" : process.versions.node,
|
|
330
346
|
"middleware" : ctx.middleware
|
|
331
347
|
};
|
|
@@ -343,8 +359,115 @@ function SuperController(options) {
|
|
|
343
359
|
set('page.environment.scopeIsProduction', /^true$/i.test(process.env.NODE_SCOPE_IS_PRODUCTION) );
|
|
344
360
|
set('page.environment.date.now', new Date().format("isoDateTime"));
|
|
345
361
|
|
|
362
|
+
// var requestPort = req.headers.port || req.headers[':port'];
|
|
363
|
+
// var isProxyHost = (
|
|
364
|
+
// typeof(req.headers.host) != 'undefined'
|
|
365
|
+
// && typeof(requestPort) != 'undefined'
|
|
366
|
+
// && /^(80|443)$/.test(requestPort)
|
|
367
|
+
// && local.options.conf.server.scheme +'://'+ req.headers.host +':'+ requestPort != local.options.conf.hostname.replace(/\:\d+$/, '') +':'+ local.options.conf.server.port
|
|
368
|
+
// ||
|
|
369
|
+
// typeof(req.headers[':authority']) != 'undefined'
|
|
370
|
+
// && local.options.conf.server.scheme +'://'+ req.headers[':authority'] != local.options.conf.hostname
|
|
371
|
+
// ||
|
|
372
|
+
// typeof(req.headers.host) != 'undefined'
|
|
373
|
+
// && typeof(requestPort) != 'undefined'
|
|
374
|
+
// && /^(80|443)$/.test(requestPort)
|
|
375
|
+
// && req.headers.host == local.options.conf.host
|
|
376
|
+
// ||
|
|
377
|
+
// typeof(req.headers['x-nginx-proxy']) != 'undefined'
|
|
378
|
+
// && /^true$/i.test(req.headers['x-nginx-proxy'])
|
|
379
|
+
// ) ? true : false;
|
|
380
|
+
// setContext('isProxyHost', isProxyHost);
|
|
381
|
+
var isProxyHost = getContext('isProxyHost') || false;
|
|
382
|
+
set('page.environment.isProxyHost', isProxyHost);
|
|
383
|
+
if ( /^true$/.test(isProxyHost) ) {
|
|
384
|
+
set('page.environment.proxyHost', process.gina.PROXY_HOST);
|
|
385
|
+
set('page.environment.proxyHostname', process.gina.PROXY_HOSTNAME);
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
var _config = ctx.config.envConf[options.conf.bundle][process.env.NODE_ENV];
|
|
389
|
+
// by default
|
|
390
|
+
var hostname = _config.hostname + _config.server.webroot;
|
|
391
|
+
var scheme = hostname.match(/^(https|http)/)[0];
|
|
392
|
+
var requestPort = (local.req.headers.port||local.req.headers[':port']);
|
|
393
|
+
|
|
394
|
+
var hostPort = hostname.match(/(\:d+\/|\:\d+)$/);
|
|
395
|
+
hostPort = (hostPort) ? ~~(hostPort[0].replace(/\:/g, '')) : _config.port[_config.server.protocol][_config.server.scheme];
|
|
396
|
+
// Linking bundle B from bundle A wihtout proxy
|
|
397
|
+
var isSpecialCase = (
|
|
398
|
+
getContext('bundle') != _config.bundle
|
|
399
|
+
&& requestPort != hostPort
|
|
400
|
+
&& local.req.headers[':host'] != process.gina.PROXY_HOST
|
|
401
|
+
) ? true : false;
|
|
402
|
+
|
|
403
|
+
if (isSpecialCase) {
|
|
404
|
+
hostname = _config.hostname;
|
|
405
|
+
}
|
|
346
406
|
|
|
347
|
-
|
|
407
|
+
// if (
|
|
408
|
+
// isProxyHost
|
|
409
|
+
// && !isSpecialCase
|
|
410
|
+
// ) {
|
|
411
|
+
// // Rewrite hostname vs req.headers.host
|
|
412
|
+
// hostname = scheme + '://'+ (local.req.headers.host||local.req.headers[':host']);
|
|
413
|
+
|
|
414
|
+
// if (
|
|
415
|
+
// !/^(80|443)$/.test(requestPort)
|
|
416
|
+
// && !new RegExp(requestPort+'$').test(hostname)
|
|
417
|
+
// ) {
|
|
418
|
+
// hostname += ':'+ requestPort;
|
|
419
|
+
// }
|
|
420
|
+
// }
|
|
421
|
+
|
|
422
|
+
set('page.environment.hostname', hostname);
|
|
423
|
+
// Updating _config.rootDomain - 2024/04/15
|
|
424
|
+
// _config.rootDomain = domainLib.getRootDomain(hostname).value;
|
|
425
|
+
|
|
426
|
+
|
|
427
|
+
set('page.environment.rootDomain', _config.rootDomain);
|
|
428
|
+
set('page.environment.webroot', options.conf.server.webroot);
|
|
429
|
+
|
|
430
|
+
if ( typeof(ctx.config.envConf._isRoutingUpdateNeeded) == 'undefined') {
|
|
431
|
+
ctx.config.envConf._isRoutingUpdateNeeded = false;
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
if (
|
|
435
|
+
typeof(ctx.config.envConf._proxyHostname) == 'undefined'
|
|
436
|
+
||
|
|
437
|
+
hostname != ctx.config.envConf._proxyHostname
|
|
438
|
+
) {
|
|
439
|
+
ctx.config.envConf._proxyHostname = (isProxyHost) ? hostname : null;
|
|
440
|
+
ctx.config.envConf._isRoutingUpdateNeeded = true;
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
if ( typeof(ctx.config.envConf._routingCloned) == 'undefined' ) {
|
|
444
|
+
ctx.config.envConf._routingCloned = JSON.clone(ctx.config.envConf.routing);
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
var routing = local.options.conf.routing = ctx.config.envConf._routingCloned; // all routes
|
|
448
|
+
if ( /^true$/i.test(ctx.config.envConf._isRoutingUpdateNeeded) ) {
|
|
449
|
+
|
|
450
|
+
for (let r in ctx.config.envConf.routing) {
|
|
451
|
+
if ( isProxyHost ) {
|
|
452
|
+
local.options.conf.routing[r].host = hostname.replace(/^(https|http)\:\/\//, '');
|
|
453
|
+
local.options.conf.routing[r].hostname = hostname;
|
|
454
|
+
let scheme = hostname.match(/^(https|http)/)[0];
|
|
455
|
+
local.options.conf.routing[r].hostname = scheme + '://'+ (local.req.headers.host||local.req.headers[':host']);
|
|
456
|
+
let requestPort = (local.req.headers.port||local.req.headers[':port']);
|
|
457
|
+
if (
|
|
458
|
+
!/^(80|443)$/.test(requestPort)
|
|
459
|
+
&& !new RegExp(requestPort+'$').test(local.options.conf.routing[r].hostname)
|
|
460
|
+
) {
|
|
461
|
+
local.options.conf.routing[r].hostname += ':'+ requestPort
|
|
462
|
+
}
|
|
463
|
+
continue;
|
|
464
|
+
}
|
|
465
|
+
local.options.conf.routing[r].host = ctx.config.envConf.routing[r].host;
|
|
466
|
+
local.options.conf.routing[r].hostname = ctx.config.envConf.routing[r].hostname;
|
|
467
|
+
}
|
|
468
|
+
ctx.config.envConf._isRoutingUpdateNeeded = false;
|
|
469
|
+
|
|
470
|
+
}
|
|
348
471
|
set('page.environment.routing', encodeRFC5987ValueChars(JSON.stringify(routing))); // export for GFF
|
|
349
472
|
//reverseRouting
|
|
350
473
|
var reverseRouting = local.options.conf.reverseRouting = ctx.config.envConf.reverseRouting; // all routes
|
|
@@ -354,9 +477,8 @@ function SuperController(options) {
|
|
|
354
477
|
set('page.environment.forms', encodeRFC5987ValueChars(JSON.stringify(forms))); // export for GFF
|
|
355
478
|
set('page.forms', options.conf.content.forms);
|
|
356
479
|
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
set('page.environment.webroot', options.conf.server.webroot);
|
|
480
|
+
|
|
481
|
+
|
|
360
482
|
set('page.environment.bundle', options.conf.bundle);
|
|
361
483
|
set('page.environment.project', options.conf.projectName);
|
|
362
484
|
set('page.environment.protocol', options.conf.server.protocol);
|
|
@@ -437,11 +559,6 @@ function SuperController(options) {
|
|
|
437
559
|
set('page.view.lang', userCulture);
|
|
438
560
|
}
|
|
439
561
|
|
|
440
|
-
if ( !getContext('isProxyHost') ) {
|
|
441
|
-
var isProxyHost = ( typeof(req.headers.host) != 'undefined' && local.options.conf.server.scheme +'://'+ req.headers.host != local.options.conf.hostname || typeof(req.headers[':authority']) != 'undefined' && local.options.conf.server.scheme +'://'+ req.headers[':authority'] != local.options.conf.hostname ) ? true : false;
|
|
442
|
-
setContext('isProxyHost', isProxyHost);
|
|
443
|
-
isProxyHost = null;
|
|
444
|
-
}
|
|
445
562
|
|
|
446
563
|
//TODO - detect when to use swig
|
|
447
564
|
var dir = null;
|
|
@@ -839,12 +956,28 @@ function SuperController(options) {
|
|
|
839
956
|
return;
|
|
840
957
|
}
|
|
841
958
|
|
|
959
|
+
var localRequestPort = local.req.headers.port || local.req.headers[':port'];
|
|
842
960
|
var isProxyHost = (
|
|
843
961
|
typeof(local.req.headers.host) != 'undefined'
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
962
|
+
&& typeof(localRequestPort) != 'undefined'
|
|
963
|
+
&& /^(80|443)$/.test(localRequestPort)
|
|
964
|
+
&& localOptions.conf.server.scheme +'://'+ local.req.headers.host+':'+ localRequestPort != localOptions.conf.hostname.replace(/\:\d+$/, '') +':'+ localOptions.conf.server.port
|
|
965
|
+
||
|
|
966
|
+
typeof(local.req.headers[':authority']) != 'undefined'
|
|
967
|
+
&& localOptions.conf.server.scheme +'://'+ local.req.headers[':authority'] != localOptions.conf.hostname
|
|
968
|
+
||
|
|
969
|
+
typeof(local.req.headers.host) != 'undefined'
|
|
970
|
+
&& typeof(localRequestPort) != 'undefined'
|
|
971
|
+
&& /^(80|443)$/.test(localRequestPort)
|
|
972
|
+
&& local.req.headers.host == localOptions.conf.host
|
|
973
|
+
||
|
|
974
|
+
typeof(local.req.headers['x-nginx-proxy']) != 'undefined'
|
|
975
|
+
&& /^true$/i.test(local.req.headers['x-nginx-proxy'])
|
|
976
|
+
||
|
|
977
|
+
typeof(process.gina.PROXY_HOSTNAME) != 'undefined'
|
|
847
978
|
) ? true : false;
|
|
979
|
+
|
|
980
|
+
|
|
848
981
|
// setup swig default filters
|
|
849
982
|
var filters = SwigFilters({
|
|
850
983
|
options : JSON.clone(localOptions),
|
|
@@ -1619,7 +1752,11 @@ function SuperController(options) {
|
|
|
1619
1752
|
var authority = ( typeof(local.req.headers['x-forwarded-proto']) != 'undefined' ) ? local.req.headers['x-forwarded-proto'] : local.options.conf.server.scheme;
|
|
1620
1753
|
authority += '://'+ local.req.headers.host;
|
|
1621
1754
|
var useWebroot = false;
|
|
1622
|
-
if (
|
|
1755
|
+
if (
|
|
1756
|
+
!/^\/$/.test(local.options.conf.server.webroot)
|
|
1757
|
+
&& local.options.conf.server.webroot.length > 0
|
|
1758
|
+
// && local.options.conf.hostname.replace(/\:\d+$/, '') == authority
|
|
1759
|
+
) {
|
|
1623
1760
|
useWebroot = true
|
|
1624
1761
|
}
|
|
1625
1762
|
authority = null;
|
|
@@ -1663,13 +1800,45 @@ function SuperController(options) {
|
|
|
1663
1800
|
, rLen = resArr.length
|
|
1664
1801
|
, obj = null
|
|
1665
1802
|
, str = ''
|
|
1803
|
+
, isProxyHost = getContext('isProxyHost')
|
|
1666
1804
|
, requestHost = ( /http\/2/.test(local.options.conf.server.protocol) )
|
|
1667
1805
|
? local.req.headers[':host']
|
|
1668
1806
|
: local.req.headers.host
|
|
1669
1807
|
, hostname = ( typeof(requestHost) != 'undefined' && local.options.conf.host != requestHost)
|
|
1670
|
-
? local.options.conf.server.scheme +'://'+ requestHost
|
|
1808
|
+
? local.options.conf.server.scheme +'://'+ requestHost
|
|
1671
1809
|
: local.options.conf.hostname
|
|
1810
|
+
, scheme = hostname.match(/^(https|http)/)[0]
|
|
1672
1811
|
;
|
|
1812
|
+
var requestPort = (local.req.headers.port||local.req.headers[':port']);
|
|
1813
|
+
var hostPort = local.options.conf.hostname.match(/(\:d+\/|\:\d+)$/);
|
|
1814
|
+
hostPort = (hostPort) ? ~~(hostPort[0].replace(/\:/g, '')) : local.options.conf.port[local.options.conf.server.protocol][local.options.conf.server.scheme];
|
|
1815
|
+
// Linking bundle B from bundle A wihtout proxy
|
|
1816
|
+
var isSpecialCase = (
|
|
1817
|
+
getContext('bundle') != local.options.conf.bundle
|
|
1818
|
+
&& requestPort != hostPort
|
|
1819
|
+
&& local.req.headers[':host'] != process.gina.PROXY_HOST
|
|
1820
|
+
) ? true : false;
|
|
1821
|
+
|
|
1822
|
+
if (isSpecialCase) {
|
|
1823
|
+
hostname = local.options.conf.hostname
|
|
1824
|
+
}
|
|
1825
|
+
|
|
1826
|
+
|
|
1827
|
+
if (
|
|
1828
|
+
isProxyHost
|
|
1829
|
+
&& !isSpecialCase
|
|
1830
|
+
) {
|
|
1831
|
+
|
|
1832
|
+
hostname = scheme + '://'+ (local.req.headers.host||local.req.headers[':host']||process.gina.PROXY_HOST);
|
|
1833
|
+
|
|
1834
|
+
if (
|
|
1835
|
+
!/^(80|443)$/.test(requestPort)
|
|
1836
|
+
&& !new RegExp(requestPort+'$').test(hostname)
|
|
1837
|
+
) {
|
|
1838
|
+
hostname += ':'+ requestPort;
|
|
1839
|
+
}
|
|
1840
|
+
}
|
|
1841
|
+
|
|
1673
1842
|
switch(type){
|
|
1674
1843
|
case 'css':
|
|
1675
1844
|
for (; r < rLen; ++r) {
|
|
@@ -1895,9 +2064,9 @@ function SuperController(options) {
|
|
|
1895
2064
|
// ignoreWebRoot = false
|
|
1896
2065
|
// } else
|
|
1897
2066
|
if (typeof(res) === 'string' || typeof(res) === 'number' || typeof(res) === 'boolean') {
|
|
1898
|
-
if (
|
|
2067
|
+
if ( /^(true|1)$/i.test(res) ) {
|
|
1899
2068
|
ignoreWebRoot = true
|
|
1900
|
-
} else if (
|
|
2069
|
+
} else if ( /^(false|0)$/i.test(res) ) {
|
|
1901
2070
|
ignoreWebRoot = false
|
|
1902
2071
|
} else {
|
|
1903
2072
|
res = local.res;
|
|
@@ -2015,8 +2184,37 @@ function SuperController(options) {
|
|
|
2015
2184
|
|
|
2016
2185
|
if ( !self.forward404Unless(condition, req, res) ) { // forward to 404 if bad route
|
|
2017
2186
|
|
|
2018
|
-
var
|
|
2019
|
-
var
|
|
2187
|
+
var localRequestPort = local.req.headers.port || local.req.headers[':port'];
|
|
2188
|
+
var isProxyHost = (
|
|
2189
|
+
typeof(local.req.headers.host) != 'undefined'
|
|
2190
|
+
&& typeof(localRequestPort) != 'undefined'
|
|
2191
|
+
&& /^(80|443)$/.test(localRequestPort)
|
|
2192
|
+
&& local.options.conf.server.scheme +'://'+ local.req.headers.host +':'+ localRequestPort != local.options.conf.hostname.replace(/\:\d+$/, '') +':'+ local.options.conf.server.port
|
|
2193
|
+
||
|
|
2194
|
+
typeof(local.req.headers[':authority']) != 'undefined'
|
|
2195
|
+
&& local.options.conf.server.scheme +'://'+ local.req.headers[':authority'] != local.options.conf.hostname
|
|
2196
|
+
||
|
|
2197
|
+
typeof(local.req.headers.host) != 'undefined'
|
|
2198
|
+
&& typeof(localRequestPort) != 'undefined'
|
|
2199
|
+
&& /^(80|443)$/.test(localRequestPort)
|
|
2200
|
+
&& req.headers.host == local.options.conf.host
|
|
2201
|
+
||
|
|
2202
|
+
typeof(local.req.headers['x-nginx-proxy']) != 'undefined'
|
|
2203
|
+
&& /^true$/i.test(local.req.headers['x-nginx-proxy'])
|
|
2204
|
+
||
|
|
2205
|
+
typeof(process.gina.PROXY_HOSTNAME) != 'undefined'
|
|
2206
|
+
) ? true : false;
|
|
2207
|
+
|
|
2208
|
+
|
|
2209
|
+
|
|
2210
|
+
var hostname = (isProxyHost)
|
|
2211
|
+
? process.gina.PROXY_HOSTNAME
|
|
2212
|
+
: ctx.config.envConf[bundle][env].hostname;
|
|
2213
|
+
|
|
2214
|
+
// var hostname = (isProxyHost)
|
|
2215
|
+
// ? ctx.config.envConf._proxyHostname
|
|
2216
|
+
// : ctx.config.envConf[bundle][env].hostname;
|
|
2217
|
+
|
|
2020
2218
|
|
|
2021
2219
|
// if ( !/\:\d+$/.test(req.headers.host) )
|
|
2022
2220
|
// hostname = hostname.replace(/\:\d+$/, '');
|
|
@@ -2078,7 +2276,7 @@ function SuperController(options) {
|
|
|
2078
2276
|
originalMethod && !/GET/i.test(originalMethod)
|
|
2079
2277
|
) { // trying to redirect using the wrong method ?
|
|
2080
2278
|
|
|
2081
|
-
console.warn(new Error('Your are trying to redirect using the wrong method: `'+ req.method+'`.\nThis can often occur while redirecting from a controller to another controller or from a bundle to another.\nA redirection is not permitted in this scenario.\
|
|
2279
|
+
console.warn(new Error('Your are trying to redirect using the wrong method: `'+ req.method+'`.\nThis can often occur while redirecting from a controller to another controller or from a bundle to another.\nA redirection is not permitted in this scenario.\nDon\'t panic :)\nSwitching request method to `GET` method instead.\n').message);
|
|
2082
2280
|
method = local.req.method = self.setRequestMethod('GET', conf);
|
|
2083
2281
|
code = 303;
|
|
2084
2282
|
}
|
|
@@ -2750,9 +2948,10 @@ function SuperController(options) {
|
|
|
2750
2948
|
}
|
|
2751
2949
|
}
|
|
2752
2950
|
|
|
2753
|
-
var ctx
|
|
2754
|
-
, protocol
|
|
2755
|
-
, scheme
|
|
2951
|
+
var ctx = getContext()
|
|
2952
|
+
, protocol = null
|
|
2953
|
+
, scheme = null
|
|
2954
|
+
, isProxyHost = getContext('isProxyHost')
|
|
2756
2955
|
;
|
|
2757
2956
|
// cleanup options.path
|
|
2758
2957
|
if (/\:\/\//.test(options.path)) {
|
|
@@ -2785,6 +2984,7 @@ function SuperController(options) {
|
|
|
2785
2984
|
var bundle = ( options.hostname.replace(/(.*)\:\/\//, '') ).split(/\@/)[0];
|
|
2786
2985
|
|
|
2787
2986
|
// No shorcut possible because conf.hostname might differ from user inputs
|
|
2987
|
+
|
|
2788
2988
|
options.host = ctx.gina.config.envConf[bundle][ctx.env].host.replace(/(.*)\:\/\//, '').replace(/\:\d+/, '');
|
|
2789
2989
|
options.hostname = ctx.gina.config.envConf[bundle][ctx.env].hostname;
|
|
2790
2990
|
options.port = ctx.gina.config.envConf[bundle][ctx.env].server.port;
|
|
@@ -2797,6 +2997,14 @@ function SuperController(options) {
|
|
|
2797
2997
|
options.ca = ctx.gina.config.envConf[bundle][ctx.env].server.credentials.ca;
|
|
2798
2998
|
}
|
|
2799
2999
|
|
|
3000
|
+
// if (
|
|
3001
|
+
// /^true$/i.test(isProxyHost)
|
|
3002
|
+
// && typeof(options.hostname) != 'undefined'
|
|
3003
|
+
// ) {
|
|
3004
|
+
// options.hostname = process.gina.PROXY_HOSTNAME;
|
|
3005
|
+
// options.host = process.gina.PROXY_HOST;
|
|
3006
|
+
// options.port = process.gina.PROXY_PORT;
|
|
3007
|
+
// }
|
|
2800
3008
|
// might be != from the bundle requesting
|
|
2801
3009
|
//options.protocol = ctx.gina.config.envConf[bundle][ctx.env].content.settings.server.protocol || ctx.gina.config.envConf[bundle][ctx.env].server.protocol;
|
|
2802
3010
|
//options.scheme = ctx.gina.config.envConf[bundle][ctx.env].content.settings.server.scheme || ctx.gina.config.envConf[bundle][ctx.env].server.scheme;
|
|
@@ -2842,6 +3050,33 @@ function SuperController(options) {
|
|
|
2842
3050
|
|
|
2843
3051
|
}
|
|
2844
3052
|
|
|
3053
|
+
var handleHTTP1ClientRequestv2 = function (browser, options, callback) {
|
|
3054
|
+
var agent = new browser.Agent({ keepAlive: true });
|
|
3055
|
+
var options = {
|
|
3056
|
+
host: options.host,
|
|
3057
|
+
port: options.port,
|
|
3058
|
+
path: options.path,
|
|
3059
|
+
method: 'GET',
|
|
3060
|
+
agent: agent
|
|
3061
|
+
};
|
|
3062
|
+
var req = browser.request(options, function(res) {
|
|
3063
|
+
var str = "";
|
|
3064
|
+
var err = false;
|
|
3065
|
+
res.on('data', function (chunk) {
|
|
3066
|
+
str += chunk;
|
|
3067
|
+
});
|
|
3068
|
+
res.on('end', function () {
|
|
3069
|
+
// done
|
|
3070
|
+
return callback( err, data );
|
|
3071
|
+
});
|
|
3072
|
+
});
|
|
3073
|
+
req.write('');
|
|
3074
|
+
req.end();
|
|
3075
|
+
req.on('error', function(error) {
|
|
3076
|
+
err = error
|
|
3077
|
+
});
|
|
3078
|
+
};
|
|
3079
|
+
|
|
2845
3080
|
var handleHTTP1ClientRequest = function(browser, options, callback) {
|
|
2846
3081
|
|
|
2847
3082
|
var altOpt = JSON.clone(options);
|
|
@@ -3560,24 +3795,28 @@ function SuperController(options) {
|
|
|
3560
3795
|
*
|
|
3561
3796
|
* */
|
|
3562
3797
|
this.getConfig = function(name) {
|
|
3798
|
+
var tmp = null;
|
|
3563
3799
|
if ( typeof(name) != 'undefined' ) {
|
|
3564
3800
|
try {
|
|
3565
|
-
//
|
|
3566
|
-
|
|
3567
|
-
//config = Object.freeze(local.options.conf.content[name]);
|
|
3568
|
-
//Object.seal(local.options.conf.content[name]);
|
|
3569
|
-
//Object.freeze(local.options.conf.content[name]);
|
|
3570
|
-
// if ( self.isCacheless() ) {
|
|
3571
|
-
// }
|
|
3572
|
-
return JSON.clone(local.options.conf.content[name]);
|
|
3801
|
+
// Needs to be read only
|
|
3802
|
+
tmp = JSON.clone(local.options.conf.content[name]);
|
|
3573
3803
|
} catch (err) {
|
|
3574
3804
|
return undefined;
|
|
3575
3805
|
}
|
|
3576
3806
|
} else {
|
|
3577
|
-
|
|
3578
|
-
|
|
3579
|
-
|
|
3807
|
+
tmp = JSON.clone(local.options.conf);
|
|
3808
|
+
}
|
|
3809
|
+
|
|
3810
|
+
if (
|
|
3811
|
+
getContext('isProxyHost')
|
|
3812
|
+
&& typeof(tmp.hostname) != 'undefined'
|
|
3813
|
+
) {
|
|
3814
|
+
tmp.hostname = process.gina.PROXY_HOSTNAME;
|
|
3815
|
+
tmp.host = process.gina.PROXY_HOST;
|
|
3816
|
+
// tmp.hostname = getContext('gina').config.envConf._proxyHostname
|
|
3817
|
+
// tmp.host = tmp.hostname.replace(/^(https|http)\:\/\//, '');
|
|
3580
3818
|
}
|
|
3819
|
+
return tmp;
|
|
3581
3820
|
}
|
|
3582
3821
|
|
|
3583
3822
|
/**
|
|
@@ -4390,7 +4629,7 @@ function SuperController(options) {
|
|
|
4390
4629
|
return next();
|
|
4391
4630
|
}
|
|
4392
4631
|
|
|
4393
|
-
if ( /http\/2/.test(protocol) ) {
|
|
4632
|
+
if ( stream && /http\/2/.test(protocol) ) {
|
|
4394
4633
|
return stream.end();
|
|
4395
4634
|
}
|
|
4396
4635
|
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
push:
|
|
6
|
+
branches: [ master ]
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
tests-linux:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
strategy:
|
|
12
|
+
fail-fast: false
|
|
13
|
+
matrix:
|
|
14
|
+
node-version: [10.16.0, 10.x, 12.x, 14.x, 16.x]
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v2
|
|
17
|
+
- name: Use Node.js ${{ matrix.node-version }}
|
|
18
|
+
uses: actions/setup-node@v1
|
|
19
|
+
with:
|
|
20
|
+
node-version: ${{ matrix.node-version }}
|
|
21
|
+
- name: Install module
|
|
22
|
+
run: npm install
|
|
23
|
+
- name: Run tests
|
|
24
|
+
run: npm test
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
name: lint
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
push:
|
|
6
|
+
branches: [ master ]
|
|
7
|
+
|
|
8
|
+
env:
|
|
9
|
+
NODE_VERSION: 16.x
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
lint-js:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v2
|
|
16
|
+
- name: Use Node.js ${{ env.NODE_VERSION }}
|
|
17
|
+
uses: actions/setup-node@v1
|
|
18
|
+
with:
|
|
19
|
+
node-version: ${{ env.NODE_VERSION }}
|
|
20
|
+
- name: Install ESLint + ESLint configs/plugins
|
|
21
|
+
run: npm install --only=dev
|
|
22
|
+
- name: Lint files
|
|
23
|
+
run: npm run lint
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
Copyright Brian White. All rights reserved.
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
|
+
of this software and associated documentation files (the "Software"), to
|
|
5
|
+
deal in the Software without restriction, including without limitation the
|
|
6
|
+
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
|
7
|
+
sell copies of the Software, and to permit persons to whom the Software is
|
|
8
|
+
furnished to do so, subject to the following conditions:
|
|
9
|
+
|
|
10
|
+
The above copyright notice and this permission notice shall be included in
|
|
11
|
+
all copies or substantial portions of the Software.
|
|
12
|
+
|
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
18
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
|
19
|
+
IN THE SOFTWARE.
|