gina 0.1.6-alpha.9 → 0.1.6-alpha.90
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/LICENSE +1 -1
- package/README-4Contributors.md +14 -8
- package/README.md +4 -4
- package/bin/cli +14 -0
- package/bin/gina +29 -1
- package/framework/{v0.1.6-alpha.9/lib/inherits → v0.1.6-alpha.90}/LICENSE +1 -1
- package/framework/v0.1.6-alpha.90/VERSION +1 -0
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/asset/plugin/README.md +1 -0
- package/framework/v0.1.6-alpha.90/core/asset/plugin/dist/vendor/gina/css/gina.min.css.map +1 -0
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/asset/plugin/dist/vendor/gina/html/toolbar.html +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/asset/plugin/dist/vendor/gina/js/gina.js +582 -217
- package/framework/v0.1.6-alpha.90/core/asset/plugin/dist/vendor/gina/js/gina.min.js +777 -0
- package/framework/v0.1.6-alpha.90/core/asset/plugin/dist/vendor/gina/js/gina.min.js.map +8 -0
- package/framework/v0.1.6-alpha.90/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +8 -0
- package/framework/v0.1.6-alpha.90/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.map +8 -0
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/config.js +157 -76
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/connectors/couchbase/index.js +92 -22
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/connectors/couchbase/lib/connector.v4.js +28 -22
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/controller/controller.js +419 -109
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/controller/index.js +2 -2
- package/framework/v0.1.6-alpha.90/core/deps/busboy-1.6.0/.github/workflows/ci.yml +24 -0
- package/framework/v0.1.6-alpha.90/core/deps/busboy-1.6.0/.github/workflows/lint.yml +23 -0
- package/framework/v0.1.6-alpha.90/core/deps/busboy-1.6.0/README.md +191 -0
- package/framework/v0.1.6-alpha.90/core/deps/busboy-1.6.0/bench/bench-multipart-fields-100mb-big.js +149 -0
- package/framework/v0.1.6-alpha.90/core/deps/busboy-1.6.0/bench/bench-multipart-fields-100mb-small.js +143 -0
- package/framework/v0.1.6-alpha.90/core/deps/busboy-1.6.0/bench/bench-multipart-files-100mb-big.js +154 -0
- package/framework/v0.1.6-alpha.90/core/deps/busboy-1.6.0/bench/bench-multipart-files-100mb-small.js +148 -0
- package/framework/v0.1.6-alpha.90/core/deps/busboy-1.6.0/bench/bench-urlencoded-fields-100pairs-small.js +101 -0
- package/framework/v0.1.6-alpha.90/core/deps/busboy-1.6.0/bench/bench-urlencoded-fields-900pairs-small-alt.js +84 -0
- package/framework/v0.1.6-alpha.90/core/deps/busboy-1.6.0/lib/index.js +57 -0
- package/framework/v0.1.6-alpha.90/core/deps/busboy-1.6.0/lib/types/multipart.js +680 -0
- package/framework/v0.1.6-alpha.90/core/deps/busboy-1.6.0/lib/types/urlencoded.js +350 -0
- package/framework/v0.1.6-alpha.90/core/deps/busboy-1.6.0/lib/utils.js +596 -0
- package/framework/v0.1.6-alpha.90/core/deps/busboy-1.6.0/package.json +22 -0
- package/framework/v0.1.6-alpha.90/core/deps/optimist-0.6.1/.travis.yml +4 -0
- package/framework/v0.1.6-alpha.90/core/deps/optimist-0.6.1/LICENSE +21 -0
- package/framework/v0.1.6-alpha.90/core/deps/optimist-0.6.1/example/bool.js +10 -0
- package/framework/v0.1.6-alpha.90/core/deps/optimist-0.6.1/example/boolean_double.js +7 -0
- package/framework/v0.1.6-alpha.90/core/deps/optimist-0.6.1/example/boolean_single.js +7 -0
- package/framework/v0.1.6-alpha.90/core/deps/optimist-0.6.1/example/default_hash.js +8 -0
- package/framework/v0.1.6-alpha.90/core/deps/optimist-0.6.1/example/default_singles.js +7 -0
- package/framework/v0.1.6-alpha.90/core/deps/optimist-0.6.1/example/divide.js +8 -0
- package/framework/v0.1.6-alpha.90/core/deps/optimist-0.6.1/example/line_count.js +20 -0
- package/framework/v0.1.6-alpha.90/core/deps/optimist-0.6.1/example/line_count_options.js +29 -0
- package/framework/v0.1.6-alpha.90/core/deps/optimist-0.6.1/example/line_count_wrap.js +29 -0
- package/framework/v0.1.6-alpha.90/core/deps/optimist-0.6.1/example/nonopt.js +4 -0
- package/framework/v0.1.6-alpha.90/core/deps/optimist-0.6.1/example/reflect.js +2 -0
- package/framework/v0.1.6-alpha.90/core/deps/optimist-0.6.1/example/short.js +3 -0
- package/framework/v0.1.6-alpha.90/core/deps/optimist-0.6.1/example/string.js +11 -0
- package/framework/v0.1.6-alpha.90/core/deps/optimist-0.6.1/example/usage-options.js +19 -0
- package/framework/v0.1.6-alpha.90/core/deps/optimist-0.6.1/example/xup.js +10 -0
- package/framework/v0.1.6-alpha.90/core/deps/optimist-0.6.1/index.js +343 -0
- package/framework/v0.1.6-alpha.90/core/deps/optimist-0.6.1/package.json +31 -0
- package/framework/v0.1.6-alpha.90/core/deps/optimist-0.6.1/package.json.dist +39 -0
- package/framework/v0.1.6-alpha.90/core/deps/optimist-0.6.1/readme.markdown +513 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/HISTORY.md +498 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/LICENSE +7 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/README.md +88 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/bin/swig.js +161 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/bin/swig.js.dist +161 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/dist/swig.min.js +7 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/dist/swig.min.js.map +8 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/index.js +1 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/lib/dateformatter.js +198 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/lib/filters.js +630 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/lib/lexer.js +306 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/lib/loaders/filesystem.js +59 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/lib/loaders/index.js +53 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/lib/loaders/memory.js +63 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/lib/parser.js +744 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/lib/swig.js +740 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/lib/tags/autoescape.js +37 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/lib/tags/block.js +25 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/lib/tags/else.js +25 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/lib/tags/elseif.js +28 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/lib/tags/extends.js +19 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/lib/tags/filter.js +68 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/lib/tags/for.js +130 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/lib/tags/if.js +86 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/lib/tags/import.js +91 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/lib/tags/include.js +100 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/lib/tags/index.js +16 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/lib/tags/macro.js +79 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/lib/tags/parent.js +51 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/lib/tags/raw.js +23 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/lib/tags/set.js +109 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/lib/tags/spaceless.js +42 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/lib/utils.js +184 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/package.json +57 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-1.4.2/package.json.dist +61 -0
- package/framework/v0.1.6-alpha.90/core/deps/swig-client/swig.js +5031 -0
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/dev/index.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/dev/lib/factory.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/gna.js +101 -22
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/locales/index.js +3 -3
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/locales/src/make.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/mime.types +1 -0
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/model/entity.js +5 -5
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/model/index.js +30 -26
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/model/template/entityFactory.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/model/template/index.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/plugins/index.js +3 -3
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/plugins/lib/file/package.json +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/plugins/lib/intl/package.json +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/plugins/lib/storage/package.json +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/plugins/lib/validator/package.json +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/plugins/lib/validator/src/form-validator.js +39 -27
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/plugins/lib/validator/src/main.js +360 -85
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/router.js +92 -47
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/server.isaac.js +86 -10
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/server.js +172 -86
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/status.codes +1 -11
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/boilerplate/bundle/controllers/setup.js +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/command/gina.tpl +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/conf/env.json +2 -0
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/conf/templates.json +4 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/helpers/console.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/helpers/context.js +29 -12
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/helpers/data/package.json +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/helpers/data/src/main.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/helpers/dateFormat.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/helpers/index.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/helpers/json/package.json +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/helpers/json/src/main.js +6 -4
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/helpers/path.js +31 -15
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/helpers/plugins/package.json +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/helpers/plugins/src/api-error.js +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/helpers/plugins/src/main.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/helpers/text.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/archiver/package.json +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/archiver/src/main.js +11 -11
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/bundle/add.js +2 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/bundle/start.js +21 -8
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/env/get.js +1 -1
- package/framework/v0.1.6-alpha.90/lib/cmd/env/help.js +30 -0
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/framework/build.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/framework/init.js +18 -0
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/framework/link-node-modules.js +2 -3
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/framework/link.js +1 -0
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/framework/tail.js +28 -11
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/framework/version.js +15 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/helper.js +6 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/index.js +1 -1
- package/framework/v0.1.6-alpha.90/lib/cmd/minion/help.txt +18 -0
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/project/add.js +3 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/project/build.js +4 -4
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/project/list.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/protocol/list.js +71 -50
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/collection/package.json +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/collection/src/main.js +20 -14
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/config.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cron/package.json +2 -2
- package/framework/v0.1.6-alpha.90/lib/domain/dist/2025-03-14_13-41-20_UTC.dat +15754 -0
- package/framework/v0.1.6-alpha.90/lib/domain/dist/public_suffix_list.dat +15754 -0
- package/framework/v0.1.6-alpha.90/lib/domain/exemples/backend.js +12 -0
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/domain/package.json +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/domain/src/main.js +20 -6
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/generator/index.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/index.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90/lib/inherits}/LICENSE +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/inherits/package.json +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/inherits/src/main.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/logger/package.json +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/logger/src/containers/mq/listener.js +10 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/logger/src/helper.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/logger/src/main.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/math/index.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/merge/package.json +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/model.js +3 -3
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/proc.js +9 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/routing/package.json +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/routing/src/main.js +72 -25
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/session-store.js +3 -3
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/swig-filters/package.json +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/swig-filters/src/main.js +70 -15
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/validator.js +2 -2
- package/framework/v0.1.6-alpha.90/package.json +11 -0
- package/package.json +3 -3
- package/resources/package.json.template +1 -1
- package/script/post_install.js +1 -1
- package/script/pre_install.js +1 -1
- package/utils/helper.js +24 -0
- package/framework/v0.1.6-alpha.9/VERSION +0 -1
- package/framework/v0.1.6-alpha.9/core/asset/plugin/dist/vendor/gina/css/gina.min.css.map +0 -1
- package/framework/v0.1.6-alpha.9/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -766
- package/framework/v0.1.6-alpha.9/core/asset/plugin/dist/vendor/gina/js/gina.min.js.map +0 -8
- package/framework/v0.1.6-alpha.9/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -7
- package/framework/v0.1.6-alpha.9/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.map +0 -8
- package/framework/v0.1.6-alpha.9/core/deps/busboy/.travis.yml +0 -17
- package/framework/v0.1.6-alpha.9/core/deps/busboy/README.md +0 -225
- package/framework/v0.1.6-alpha.9/core/deps/busboy/deps/encoding/encoding-indexes.js +0 -73
- package/framework/v0.1.6-alpha.9/core/deps/busboy/deps/encoding/encoding.js +0 -2391
- package/framework/v0.1.6-alpha.9/core/deps/busboy/lib/main.js +0 -89
- package/framework/v0.1.6-alpha.9/core/deps/busboy/lib/types/multipart.js +0 -328
- package/framework/v0.1.6-alpha.9/core/deps/busboy/lib/types/urlencoded.js +0 -214
- package/framework/v0.1.6-alpha.9/core/deps/busboy/lib/utils.js +0 -191
- package/framework/v0.1.6-alpha.9/core/deps/busboy/package.json +0 -69
- package/framework/v0.1.6-alpha.9/lib/domain/dist/public_suffix_list.dat +0 -14186
- package/framework/v0.1.6-alpha.9/lib/domain/exemples/backend.js +0 -0
- package/framework/v0.1.6-alpha.9/package.json +0 -14
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/AUTHORS +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/asset/html/nolayout.html +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/asset/html/static.html +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/asset/img/android-chrome-192x192.png +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/asset/img/android-chrome-512x512.png +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/asset/img/apple-touch-icon.png +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/asset/img/favicon-16x16.png +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/asset/img/favicon-32x32.png +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/asset/img/favicon.ico +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/asset/plugin/uuid.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/connectors/couchbase/lib/connector.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/connectors/couchbase/lib/connector.v2.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/connectors/couchbase/lib/connector.v3.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/connectors/couchbase/lib/n1ql.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/connectors/couchbase/lib/session-store.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/connectors/couchbase/lib/session-store.v2.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/controller/controller.framework.js +0 -0
- /package/framework/{v0.1.6-alpha.9/core/deps/busboy → v0.1.6-alpha.90/core/deps/busboy-1.6.0}/LICENSE +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/deps/swig-client/swig-2.0.0.min.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/dev/lib/class.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/dev/lib/tools.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/locales/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/locales/currency.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/locales/dist/language/en.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/locales/dist/language/fr.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/locales/dist/region/en.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/locales/dist/region/fr.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/locales/src/resources/currency.csv +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/locales/src/resources/region.csv +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/locales/src/resources/region.mapping.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/plugins/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/plugins/lib/file/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/plugins/lib/file/build.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/plugins/lib/intl/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/plugins/lib/intl/build.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/plugins/lib/intl/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/plugins/lib/storage/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/plugins/lib/storage/build.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/plugins/lib/storage/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/plugins/lib/validator/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/plugins/lib/validator/build.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/server.express.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/_gitignore +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/boilerplate/bundle/config/app.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/boilerplate/bundle/config/routing.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/boilerplate/bundle/config/settings.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/boilerplate/bundle/config/templates.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/boilerplate/bundle/index.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/boilerplate/bundle_public/css/default.css +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/boilerplate/bundle_public/readme.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/command/gina.bat.tpl +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/conf/manifest.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/conf/package.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/conf/settings.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/conf/statics.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/error/client/json/401.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/error/client/json/403.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/error/client/json/404.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/error/server/html/50x.html +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/error/server/json/500.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/error/server/json/503.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/core/template/extensions/logger/config.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/helpers/data/LICENSE +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/helpers/data/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/helpers/json/LICENSE +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/helpers/json/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/helpers/plugins/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/helpers/prototypes.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/helpers/task.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/archiver/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/archiver/build.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/archiver/src/dep/jszip.min.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/aliases.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/bundle/arguments.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/bundle/copy.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/bundle/cp.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/bundle/help.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/bundle/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/bundle/list.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/bundle/remove.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/bundle/rename.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/bundle/restart.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/bundle/rm.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/bundle/status.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/bundle/stop.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/env/add.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/env/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/env/link-dev.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/env/list.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/env/remove.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/env/rm.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/env/set.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/env/unset.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/env/use.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/framework/dot.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/framework/get.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/framework/help.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/framework/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/framework/msg.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/framework/open.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/framework/restart.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/framework/set.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/framework/start.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/framework/status.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/framework/stop.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/framework/update.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/gina-dev.1.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/gina-framework.1.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/gina.1.md +0 -0
- /package/framework/{v0.1.6-alpha.9/lib/cmd/env → v0.1.6-alpha.90/lib/cmd/minion}/help.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/msg.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/port/help.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/port/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/port/inc/scan.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/port/list.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/port/reset.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/port/set.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/project/arguments.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/project/help.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/project/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/project/import.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/project/move.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/project/remove.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/project/rename.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/project/restart.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/project/rm.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/project/start.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/project/status.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/project/stop.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/protocol/help.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/protocol/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/protocol/set.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/scope/add.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/scope/help.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/scope/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/scope/link-local.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/scope/link-production.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/scope/list.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/scope/remove.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/scope/rm.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/scope/use.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cmd/view/add.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/collection/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/collection/build.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cron/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/cron/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/domain/LICENSE +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/domain/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/domain/exemples/frontend.html +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/inherits/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/inherits/example/inheriting_eventemitter.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/inherits/example/protected_inheritance.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/inherits/example/simple_inheritance.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/inherits/example/super_attribute_overridden_by_child_on_init.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/logger/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/logger/src/containers/default/index.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/logger/src/containers/file/index.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/logger/src/containers/mq/index.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/logger/src/containers/mq/speaker.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/merge/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/merge/example/merge.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/merge/example/merge_2_literal objects.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/merge/example/merge_and_preserve_first.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/merge/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/routing/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/routing/build.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/shell.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/swig-filters/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/url/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/url/index.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/url/mocks.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/url/routing.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.90}/lib/url/test.js +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/*
|
|
3
3
|
* This file is part of the gina package.
|
|
4
|
-
* Copyright (c) 2009-
|
|
4
|
+
* Copyright (c) 2009-2025 Rhinostone <contact@gina.io>
|
|
5
5
|
*
|
|
6
6
|
* For the full copyright and license information, please view the LICENSE
|
|
7
7
|
* file that was distributed with this source code.
|
|
@@ -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,9 +25,9 @@ var inherits = lib.inherits;
|
|
|
25
25
|
var console = lib.logger;
|
|
26
26
|
var Collection = lib.Collection;
|
|
27
27
|
var routingLib = lib.routing;
|
|
28
|
-
var
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
var Domain = lib.Domain;
|
|
29
|
+
var domainLib = new Domain();
|
|
30
|
+
var swig = require('./../deps/swig-1.4.2');
|
|
31
31
|
var SwigFilters = lib.SwigFilters;
|
|
32
32
|
var statusCodes = requireJSON( _( getPath('gina').core + '/status.codes') );
|
|
33
33
|
|
|
@@ -68,24 +68,19 @@ function SuperController(options) {
|
|
|
68
68
|
var init = function() {
|
|
69
69
|
|
|
70
70
|
if ( typeof(SuperController.initialized) != 'undefined' ) {
|
|
71
|
-
return getInstance()
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
SuperController.instance = self;
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
if (local.options) {
|
|
78
|
-
SuperController.instance._options = local.options;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
SuperController.initialized = true;
|
|
71
|
+
return getInstance();
|
|
72
|
+
}
|
|
82
73
|
|
|
74
|
+
SuperController.instance = self;
|
|
75
|
+
if (local.options) {
|
|
76
|
+
SuperController.instance._options = local.options;
|
|
83
77
|
}
|
|
78
|
+
SuperController.initialized = true;
|
|
84
79
|
}
|
|
85
80
|
|
|
86
81
|
var getInstance = function() {
|
|
87
82
|
local.options = SuperController.instance._options = options;
|
|
88
|
-
// 2022-03-07
|
|
83
|
+
// Fixed on 2022-03-07 for none-developpement environnements (without cache)
|
|
89
84
|
self._options = local.options;
|
|
90
85
|
|
|
91
86
|
return SuperController.instance;
|
|
@@ -240,12 +235,12 @@ function SuperController(options) {
|
|
|
240
235
|
|
|
241
236
|
if ( /^:/.test(value) ) {
|
|
242
237
|
str = 'page.view.params.'+ key + '.';
|
|
243
|
-
set(str.
|
|
238
|
+
set(str.substring(0, str.length-1), req.params[value.substring(1)]);
|
|
244
239
|
} else if (/^(file|title)$/.test(key)) {
|
|
245
240
|
str = 'page.view.'+ key + '.';
|
|
246
|
-
set(str.
|
|
241
|
+
set(str.substring(0, str.length-1), value);
|
|
247
242
|
} else {
|
|
248
|
-
set(str.
|
|
243
|
+
set(str.substring(0, str.length-1), value)
|
|
249
244
|
}
|
|
250
245
|
|
|
251
246
|
str = 'page.'
|
|
@@ -322,10 +317,24 @@ function SuperController(options) {
|
|
|
322
317
|
|
|
323
318
|
var ctx = getContext('gina');
|
|
324
319
|
// new declaration && overrides
|
|
320
|
+
var arch = process.arch;
|
|
321
|
+
switch (process.arch) {
|
|
322
|
+
case 'x64':
|
|
323
|
+
arch = 'amd64'
|
|
324
|
+
break;
|
|
325
|
+
case 'armv7l':
|
|
326
|
+
arch = 'armhf'
|
|
327
|
+
break;
|
|
328
|
+
case 'x86':
|
|
329
|
+
arch = 'i386'
|
|
330
|
+
break;
|
|
331
|
+
default:
|
|
332
|
+
break;
|
|
333
|
+
}
|
|
325
334
|
var version = {
|
|
326
335
|
"number" : ctx.version,
|
|
327
336
|
"platform" : process.platform,
|
|
328
|
-
"arch" :
|
|
337
|
+
"arch" : arch,
|
|
329
338
|
"nodejs" : process.versions.node,
|
|
330
339
|
"middleware" : ctx.middleware
|
|
331
340
|
};
|
|
@@ -337,14 +346,122 @@ function SuperController(options) {
|
|
|
337
346
|
set('page.environment.nodejs', version.nodejs +' '+ version.platform +' '+ version.arch);
|
|
338
347
|
set('page.environment.engine', options.conf.server.engine);//version.middleware
|
|
339
348
|
set('page.environment.env', process.env.NODE_ENV);
|
|
340
|
-
set('page.environment.envIsDev',
|
|
349
|
+
set('page.environment.envIsDev', /^true$/i.test(process.env.NODE_ENV_IS_DEV) );
|
|
341
350
|
set('page.environment.scope', process.env.NODE_SCOPE);
|
|
342
351
|
set('page.environment.scopeIsLocal', /^true$/i.test(process.env.NODE_SCOPE_IS_LOCAL) );
|
|
343
352
|
set('page.environment.scopeIsProduction', /^true$/i.test(process.env.NODE_SCOPE_IS_PRODUCTION) );
|
|
344
353
|
set('page.environment.date.now', new Date().format("isoDateTime"));
|
|
354
|
+
set('page.environment.isCacheless', self.isCacheless());
|
|
355
|
+
|
|
356
|
+
// var requestPort = req.headers.port || req.headers[':port'];
|
|
357
|
+
// var isProxyHost = (
|
|
358
|
+
// typeof(req.headers.host) != 'undefined'
|
|
359
|
+
// && typeof(requestPort) != 'undefined'
|
|
360
|
+
// && /^(80|443)$/.test(requestPort)
|
|
361
|
+
// && local.options.conf.server.scheme +'://'+ req.headers.host +':'+ requestPort != local.options.conf.hostname.replace(/\:\d+$/, '') +':'+ local.options.conf.server.port
|
|
362
|
+
// ||
|
|
363
|
+
// typeof(req.headers[':authority']) != 'undefined'
|
|
364
|
+
// && local.options.conf.server.scheme +'://'+ req.headers[':authority'] != local.options.conf.hostname
|
|
365
|
+
// ||
|
|
366
|
+
// typeof(req.headers.host) != 'undefined'
|
|
367
|
+
// && typeof(requestPort) != 'undefined'
|
|
368
|
+
// && /^(80|443)$/.test(requestPort)
|
|
369
|
+
// && req.headers.host == local.options.conf.host
|
|
370
|
+
// ||
|
|
371
|
+
// typeof(req.headers['x-nginx-proxy']) != 'undefined'
|
|
372
|
+
// && /^true$/i.test(req.headers['x-nginx-proxy'])
|
|
373
|
+
// ) ? true : false;
|
|
374
|
+
// setContext('isProxyHost', isProxyHost);
|
|
375
|
+
var isProxyHost = getContext('isProxyHost') || false;
|
|
376
|
+
set('page.environment.isProxyHost', isProxyHost);
|
|
377
|
+
if ( /^true$/.test(isProxyHost) ) {
|
|
378
|
+
set('page.environment.proxyHost', process.gina.PROXY_HOST);
|
|
379
|
+
set('page.environment.proxyHostname', process.gina.PROXY_HOSTNAME);
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
var _config = ctx.config.envConf[options.conf.bundle][process.env.NODE_ENV];
|
|
383
|
+
// by default
|
|
384
|
+
var hostname = _config.hostname + _config.server.webroot;
|
|
385
|
+
var scheme = hostname.match(/^(https|http)/)[0];
|
|
386
|
+
var requestPort = (local.req.headers.port||local.req.headers[':port']);
|
|
387
|
+
|
|
388
|
+
var hostPort = hostname.match(/(\:d+\/|\:\d+)$/);
|
|
389
|
+
hostPort = (hostPort) ? ~~(hostPort[0].replace(/\:/g, '')) : _config.port[_config.server.protocol][_config.server.scheme];
|
|
390
|
+
// Linking bundle B from bundle A wihtout proxy
|
|
391
|
+
var isSpecialCase = (
|
|
392
|
+
getContext('bundle') != _config.bundle
|
|
393
|
+
&& requestPort != hostPort
|
|
394
|
+
&& local.req.headers[':host'] != process.gina.PROXY_HOST
|
|
395
|
+
) ? true : false;
|
|
396
|
+
|
|
397
|
+
if (isSpecialCase) {
|
|
398
|
+
hostname = _config.hostname;
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
// if (
|
|
402
|
+
// isProxyHost
|
|
403
|
+
// && !isSpecialCase
|
|
404
|
+
// ) {
|
|
405
|
+
// // Rewrite hostname vs req.headers.host
|
|
406
|
+
// hostname = scheme + '://'+ (local.req.headers.host||local.req.headers[':host']);
|
|
407
|
+
|
|
408
|
+
// if (
|
|
409
|
+
// !/^(80|443)$/.test(requestPort)
|
|
410
|
+
// && !new RegExp(requestPort+'$').test(hostname)
|
|
411
|
+
// ) {
|
|
412
|
+
// hostname += ':'+ requestPort;
|
|
413
|
+
// }
|
|
414
|
+
// }
|
|
415
|
+
|
|
416
|
+
set('page.environment.hostname', hostname);
|
|
417
|
+
// Updating _config.rootDomain - 2024/04/15
|
|
418
|
+
// _config.rootDomain = domainLib.getRootDomain(hostname).value;
|
|
419
|
+
|
|
420
|
+
|
|
421
|
+
set('page.environment.rootDomain', _config.rootDomain);
|
|
422
|
+
set('page.environment.webroot', options.conf.server.webroot);
|
|
423
|
+
|
|
424
|
+
if ( typeof(ctx.config.envConf._isRoutingUpdateNeeded) == 'undefined') {
|
|
425
|
+
ctx.config.envConf._isRoutingUpdateNeeded = false;
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
if (
|
|
429
|
+
typeof(ctx.config.envConf._proxyHostname) == 'undefined'
|
|
430
|
+
||
|
|
431
|
+
hostname != ctx.config.envConf._proxyHostname
|
|
432
|
+
) {
|
|
433
|
+
ctx.config.envConf._proxyHostname = (isProxyHost) ? hostname : null;
|
|
434
|
+
ctx.config.envConf._isRoutingUpdateNeeded = true;
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
if ( typeof(ctx.config.envConf._routingCloned) == 'undefined' ) {
|
|
438
|
+
ctx.config.envConf._routingCloned = JSON.clone(ctx.config.envConf.routing);
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
var routing = local.options.conf.routing = ctx.config.envConf._routingCloned; // all routes
|
|
442
|
+
if ( /^true$/i.test(ctx.config.envConf._isRoutingUpdateNeeded) ) {
|
|
345
443
|
|
|
444
|
+
for (let r in ctx.config.envConf.routing) {
|
|
445
|
+
if ( isProxyHost ) {
|
|
446
|
+
local.options.conf.routing[r].host = hostname.replace(/^(https|http)\:\/\//, '');
|
|
447
|
+
local.options.conf.routing[r].hostname = hostname;
|
|
448
|
+
let scheme = hostname.match(/^(https|http)/)[0];
|
|
449
|
+
local.options.conf.routing[r].hostname = scheme + '://'+ (local.req.headers.host||local.req.headers[':host']);
|
|
450
|
+
let requestPort = (local.req.headers.port||local.req.headers[':port']);
|
|
451
|
+
if (
|
|
452
|
+
!/^(80|443)$/.test(requestPort)
|
|
453
|
+
&& !new RegExp(requestPort+'$').test(local.options.conf.routing[r].hostname)
|
|
454
|
+
) {
|
|
455
|
+
local.options.conf.routing[r].hostname += ':'+ requestPort
|
|
456
|
+
}
|
|
457
|
+
continue;
|
|
458
|
+
}
|
|
459
|
+
local.options.conf.routing[r].host = ctx.config.envConf.routing[r].host;
|
|
460
|
+
local.options.conf.routing[r].hostname = ctx.config.envConf.routing[r].hostname;
|
|
461
|
+
}
|
|
462
|
+
ctx.config.envConf._isRoutingUpdateNeeded = false;
|
|
346
463
|
|
|
347
|
-
|
|
464
|
+
}
|
|
348
465
|
set('page.environment.routing', encodeRFC5987ValueChars(JSON.stringify(routing))); // export for GFF
|
|
349
466
|
//reverseRouting
|
|
350
467
|
var reverseRouting = local.options.conf.reverseRouting = ctx.config.envConf.reverseRouting; // all routes
|
|
@@ -354,9 +471,8 @@ function SuperController(options) {
|
|
|
354
471
|
set('page.environment.forms', encodeRFC5987ValueChars(JSON.stringify(forms))); // export for GFF
|
|
355
472
|
set('page.forms', options.conf.content.forms);
|
|
356
473
|
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
set('page.environment.webroot', options.conf.server.webroot);
|
|
474
|
+
|
|
475
|
+
|
|
360
476
|
set('page.environment.bundle', options.conf.bundle);
|
|
361
477
|
set('page.environment.project', options.conf.projectName);
|
|
362
478
|
set('page.environment.protocol', options.conf.server.protocol);
|
|
@@ -426,7 +542,7 @@ function SuperController(options) {
|
|
|
426
542
|
// user locale
|
|
427
543
|
options.conf.locale = new Collection(userLocales).findOne({ short: userCountryCode }) || {};
|
|
428
544
|
|
|
429
|
-
//
|
|
545
|
+
// current date
|
|
430
546
|
if ( typeof(options.conf.locale) == 'undefined' || !options.conf.locale ) {
|
|
431
547
|
options.conf.locale = {}
|
|
432
548
|
}
|
|
@@ -437,11 +553,6 @@ function SuperController(options) {
|
|
|
437
553
|
set('page.view.lang', userCulture);
|
|
438
554
|
}
|
|
439
555
|
|
|
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
556
|
|
|
446
557
|
//TODO - detect when to use swig
|
|
447
558
|
var dir = null;
|
|
@@ -451,7 +562,7 @@ function SuperController(options) {
|
|
|
451
562
|
var swigOptions = {
|
|
452
563
|
autoescape : ( typeof(local.options.autoescape) != 'undefined') ? local.options.autoescape : false,
|
|
453
564
|
// `memory` is no working yet ... advanced rendering setup required
|
|
454
|
-
// cache : (local.options.
|
|
565
|
+
// cache : (local.options.isCacheless) ? false : 'memory'
|
|
455
566
|
cache : false
|
|
456
567
|
};
|
|
457
568
|
if (dir) {
|
|
@@ -839,12 +950,28 @@ function SuperController(options) {
|
|
|
839
950
|
return;
|
|
840
951
|
}
|
|
841
952
|
|
|
953
|
+
var localRequestPort = local.req.headers.port || local.req.headers[':port'];
|
|
842
954
|
var isProxyHost = (
|
|
843
955
|
typeof(local.req.headers.host) != 'undefined'
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
956
|
+
&& typeof(localRequestPort) != 'undefined'
|
|
957
|
+
&& /^(80|443)$/.test(localRequestPort)
|
|
958
|
+
&& localOptions.conf.server.scheme +'://'+ local.req.headers.host+':'+ localRequestPort != localOptions.conf.hostname.replace(/\:\d+$/, '') +':'+ localOptions.conf.server.port
|
|
959
|
+
||
|
|
960
|
+
typeof(local.req.headers[':authority']) != 'undefined'
|
|
961
|
+
&& localOptions.conf.server.scheme +'://'+ local.req.headers[':authority'] != localOptions.conf.hostname
|
|
962
|
+
||
|
|
963
|
+
typeof(local.req.headers.host) != 'undefined'
|
|
964
|
+
&& typeof(localRequestPort) != 'undefined'
|
|
965
|
+
&& /^(80|443)$/.test(localRequestPort)
|
|
966
|
+
&& local.req.headers.host == localOptions.conf.host
|
|
967
|
+
||
|
|
968
|
+
typeof(local.req.headers['x-nginx-proxy']) != 'undefined'
|
|
969
|
+
&& /^true$/i.test(local.req.headers['x-nginx-proxy'])
|
|
970
|
+
||
|
|
971
|
+
typeof(process.gina.PROXY_HOSTNAME) != 'undefined'
|
|
847
972
|
) ? true : false;
|
|
973
|
+
|
|
974
|
+
|
|
848
975
|
// setup swig default filters
|
|
849
976
|
var filters = SwigFilters({
|
|
850
977
|
options : JSON.clone(localOptions),
|
|
@@ -883,6 +1010,7 @@ function SuperController(options) {
|
|
|
883
1010
|
, XHRData = null
|
|
884
1011
|
, XHRView = null
|
|
885
1012
|
, isDeferModeEnabled = null
|
|
1013
|
+
, hasExternalsPlugins = null
|
|
886
1014
|
, viewInfos = null
|
|
887
1015
|
, filename = null
|
|
888
1016
|
, isWithSwigLayout = null
|
|
@@ -898,7 +1026,9 @@ function SuperController(options) {
|
|
|
898
1026
|
if (isWithoutLayout) {
|
|
899
1027
|
data.page.view.layout = layoutPath;
|
|
900
1028
|
}
|
|
901
|
-
}
|
|
1029
|
+
}
|
|
1030
|
+
// without layout case
|
|
1031
|
+
else {
|
|
902
1032
|
|
|
903
1033
|
// by default
|
|
904
1034
|
layoutPath = localOptions.template.layout;
|
|
@@ -926,10 +1056,8 @@ function SuperController(options) {
|
|
|
926
1056
|
self.throwError(err);
|
|
927
1057
|
return;
|
|
928
1058
|
}
|
|
929
|
-
|
|
930
1059
|
}
|
|
931
1060
|
|
|
932
|
-
|
|
933
1061
|
var isLoadingPartial = false;
|
|
934
1062
|
try {
|
|
935
1063
|
assets = {assets:"${assets}"};
|
|
@@ -1023,6 +1151,7 @@ function SuperController(options) {
|
|
|
1023
1151
|
// }
|
|
1024
1152
|
|
|
1025
1153
|
isDeferModeEnabled = localOptions.template.javascriptsDeferEnabled || localOptions.conf.content.templates._common.javascriptsDeferEnabled || false;
|
|
1154
|
+
hasExternalsPlugins = (localOptions.template.externalPlugins.length > 0) ? true : false;
|
|
1026
1155
|
|
|
1027
1156
|
// iframe case - without HTML TAG
|
|
1028
1157
|
if (!self.isXMLRequest() && !/\<html/.test(layout) ) {
|
|
@@ -1092,8 +1221,8 @@ function SuperController(options) {
|
|
|
1092
1221
|
+ '{%- set userDataInspector.view.scripts = "ignored-by-toolbar" -%}'
|
|
1093
1222
|
+ '{%- set userDataInspector.view.stylesheets = "ignored-by-toolbar" -%}'
|
|
1094
1223
|
+ '{%- set userDataInspector.view.assets = '+ JSON.stringify(assets) +' -%}'
|
|
1095
|
-
+ '{%- include "'+ getPath('gina').core +'/asset/plugin/dist/vendor/gina/html/toolbar.html" with { gina: ginaDataInspector, user: userDataInspector } -%}'// jshint ignore:line
|
|
1096
1224
|
+ '{# END Gina Toolbar #}'
|
|
1225
|
+
+ '{%- include "'+ getPath('gina').core +'/asset/plugin/dist/vendor/gina/html/toolbar.html" with { gina: ginaDataInspector, user: userDataInspector } -%}'// jshint ignore:line
|
|
1097
1226
|
;
|
|
1098
1227
|
|
|
1099
1228
|
|
|
@@ -1124,10 +1253,18 @@ function SuperController(options) {
|
|
|
1124
1253
|
if (isLoadingPartial) {
|
|
1125
1254
|
layout += '\t{{ page.view.scripts }}';
|
|
1126
1255
|
} else {
|
|
1256
|
+
// placed in the HEAD
|
|
1127
1257
|
if ( isDeferModeEnabled ) {
|
|
1128
1258
|
layout = layout.replace(/\<\/head\>/i, '\t{{ page.view.scripts }}\n\t</head>');
|
|
1129
|
-
}
|
|
1259
|
+
}
|
|
1260
|
+
// placed in the BODY
|
|
1261
|
+
else {
|
|
1130
1262
|
layout = layout.replace(/\<\/body\>/i, '\t{{ page.view.scripts }}\n</body>');
|
|
1263
|
+
if (hasExternalsPlugins) {
|
|
1264
|
+
for (let i =0, len = localOptions.template.externalPlugins.length; i<len; i++) {
|
|
1265
|
+
layout = layout.replace(/\<\/head\>/i, '\t'+ localOptions.template.externalPlugins +'\n</head>');
|
|
1266
|
+
}
|
|
1267
|
+
}
|
|
1131
1268
|
}
|
|
1132
1269
|
}
|
|
1133
1270
|
|
|
@@ -1173,6 +1310,11 @@ function SuperController(options) {
|
|
|
1173
1310
|
// layout = layout.replace(/\<\/head\>/i, '\t{{ page.view.scripts }}\n\t</head>');
|
|
1174
1311
|
// } else { // placed in the BODY
|
|
1175
1312
|
// layout = layout.replace(/\<\/body\>/i, '\t{{ page.view.scripts }}\n</body>');
|
|
1313
|
+
// if (hasExternalsPlugins) {
|
|
1314
|
+
// for (let i =0, len = localOptions.template.externalPlugins.length; i<len; i++) {
|
|
1315
|
+
// layout = layout.replace(/\<\/head\>/i, '\t'+ localOptions.template.externalPlugins +'\n</head>');
|
|
1316
|
+
// }
|
|
1317
|
+
// }
|
|
1176
1318
|
// }
|
|
1177
1319
|
// }
|
|
1178
1320
|
|
|
@@ -1189,11 +1331,18 @@ function SuperController(options) {
|
|
|
1189
1331
|
layout += '\t'+ localOptions.template.ginaLoader +'\n';
|
|
1190
1332
|
}
|
|
1191
1333
|
} else {
|
|
1334
|
+
// placed in the HEAD
|
|
1192
1335
|
if ( isDeferModeEnabled && /\<\/head\>/i.test(layout) ) { // placed in the HEAD
|
|
1193
1336
|
layout = layout.replace(/\<\/head\>/i, '\t{{ page.view.scripts }}\n\t</head>');
|
|
1194
|
-
|
|
1195
|
-
|
|
1337
|
+
}
|
|
1338
|
+
// placed in the BODY
|
|
1339
|
+
else {
|
|
1196
1340
|
layout = layout.replace(/\<\/body\>/i, '\t{{ page.view.scripts }}\n</body>');
|
|
1341
|
+
if (hasExternalsPlugins) {
|
|
1342
|
+
for (let i =0, len = localOptions.template.externalPlugins.length; i<len; i++) {
|
|
1343
|
+
layout = layout.replace(/\<\/head\>/i, '\t'+ localOptions.template.externalPlugins +'\n</head>');
|
|
1344
|
+
}
|
|
1345
|
+
}
|
|
1197
1346
|
}
|
|
1198
1347
|
// ginaLoader cannot be deferred
|
|
1199
1348
|
if ( !localOptions.template.javascriptsExcluded || localOptions.template.javascriptsExcluded != '**' ) {
|
|
@@ -1295,6 +1444,32 @@ function SuperController(options) {
|
|
|
1295
1444
|
) {
|
|
1296
1445
|
layout = layout.replace('{"assets":"${assets}"}', assets );
|
|
1297
1446
|
}
|
|
1447
|
+
|
|
1448
|
+
if ( !self.isCacheless() ) {
|
|
1449
|
+
var links = local.options.template.h2Links;
|
|
1450
|
+
for (let l in localOptions.template.assets) {
|
|
1451
|
+
let link = localOptions.template.assets[l]
|
|
1452
|
+
if (
|
|
1453
|
+
/^_/.test(l)
|
|
1454
|
+
|| typeof(link.as) == 'undefined'
|
|
1455
|
+
|| typeof(link.as) != 'undefined'
|
|
1456
|
+
&& link.as != 'null'
|
|
1457
|
+
&& !link.isAvailable
|
|
1458
|
+
|| !link.as
|
|
1459
|
+
) {
|
|
1460
|
+
// ignoring
|
|
1461
|
+
continue;
|
|
1462
|
+
}
|
|
1463
|
+
|
|
1464
|
+
links += '<'+ l +'>; as='+ link.as +'; rel=preload,'
|
|
1465
|
+
}
|
|
1466
|
+
if ( /\,$/.test(links) ) {
|
|
1467
|
+
links = links.substring(0, links.length-1);
|
|
1468
|
+
}
|
|
1469
|
+
local.res.setHeader('link', links);
|
|
1470
|
+
links = null;
|
|
1471
|
+
}
|
|
1472
|
+
|
|
1298
1473
|
assets = null;
|
|
1299
1474
|
|
|
1300
1475
|
} catch (err) {
|
|
@@ -1577,7 +1752,7 @@ function SuperController(options) {
|
|
|
1577
1752
|
|
|
1578
1753
|
++_count;
|
|
1579
1754
|
if (k == len-1) {
|
|
1580
|
-
str = str.
|
|
1755
|
+
str = str.substring(0, str.length-1);
|
|
1581
1756
|
str += "\"_content_\"";
|
|
1582
1757
|
for (let c = 0; c<_count; ++c) {
|
|
1583
1758
|
str += "}"
|
|
@@ -1619,22 +1794,35 @@ function SuperController(options) {
|
|
|
1619
1794
|
var authority = ( typeof(local.req.headers['x-forwarded-proto']) != 'undefined' ) ? local.req.headers['x-forwarded-proto'] : local.options.conf.server.scheme;
|
|
1620
1795
|
authority += '://'+ local.req.headers.host;
|
|
1621
1796
|
var useWebroot = false;
|
|
1622
|
-
if (
|
|
1797
|
+
if (
|
|
1798
|
+
!/^\/$/.test(local.options.conf.server.webroot)
|
|
1799
|
+
&& local.options.conf.server.webroot.length > 0
|
|
1800
|
+
// && local.options.conf.hostname.replace(/\:\d+$/, '') == authority
|
|
1801
|
+
) {
|
|
1623
1802
|
useWebroot = true
|
|
1624
1803
|
}
|
|
1625
1804
|
authority = null;
|
|
1626
1805
|
|
|
1627
1806
|
var reURL = new RegExp('^'+ local.options.conf.server.webroot);
|
|
1628
1807
|
|
|
1629
|
-
var cssStr
|
|
1630
|
-
|
|
1808
|
+
var cssStr = ''
|
|
1809
|
+
, jsStr = ''
|
|
1810
|
+
;
|
|
1631
1811
|
//Get css
|
|
1632
1812
|
if( viewConf.stylesheets ) {
|
|
1633
|
-
cssStr = getNodeRes('css', viewConf.stylesheets, useWebroot, reURL)
|
|
1813
|
+
// cssStr = getNodeRes('css', viewConf.stylesheets, useWebroot, reURL);
|
|
1814
|
+
// Fixed on 2025-03-08: ordered by route, making sure that _common could all be loaded first
|
|
1815
|
+
var cssColl = new Collection(viewConf.stylesheets).orderBy({route: 'asc'})
|
|
1816
|
+
cssStr = getNodeRes('css', cssColl, useWebroot, reURL);
|
|
1817
|
+
cssColl = null;
|
|
1634
1818
|
}
|
|
1635
1819
|
//Get js
|
|
1636
1820
|
if( viewConf.javascripts ) {
|
|
1637
|
-
jsStr = getNodeRes('js', viewConf.javascripts, useWebroot, reURL)
|
|
1821
|
+
// jsStr = getNodeRes('js', viewConf.javascripts, useWebroot, reURL);
|
|
1822
|
+
// Fixed on 2025-03-08: ordered by route, making sure that _common could all be loaded first
|
|
1823
|
+
var jsColl = new Collection(viewConf.javascripts).orderBy({route: 'asc'})
|
|
1824
|
+
jsStr = getNodeRes('js', jsColl, useWebroot, reURL);
|
|
1825
|
+
jsColl = null;
|
|
1638
1826
|
}
|
|
1639
1827
|
|
|
1640
1828
|
set('page.view.stylesheets', cssStr);
|
|
@@ -1651,7 +1839,8 @@ function SuperController(options) {
|
|
|
1651
1839
|
* @param {string} type
|
|
1652
1840
|
* @param {string} resStr
|
|
1653
1841
|
* @param {array} resArr
|
|
1654
|
-
* @param {
|
|
1842
|
+
* @param {boolean} useWebroot
|
|
1843
|
+
* @param {object} reURL - RegExp for webroot
|
|
1655
1844
|
*
|
|
1656
1845
|
* @returns {object} content
|
|
1657
1846
|
*
|
|
@@ -1663,29 +1852,69 @@ function SuperController(options) {
|
|
|
1663
1852
|
, rLen = resArr.length
|
|
1664
1853
|
, obj = null
|
|
1665
1854
|
, str = ''
|
|
1855
|
+
, isProxyHost = getContext('isProxyHost')
|
|
1666
1856
|
, requestHost = ( /http\/2/.test(local.options.conf.server.protocol) )
|
|
1667
1857
|
? local.req.headers[':host']
|
|
1668
1858
|
: local.req.headers.host
|
|
1669
1859
|
, hostname = ( typeof(requestHost) != 'undefined' && local.options.conf.host != requestHost)
|
|
1670
|
-
? local.options.conf.server.scheme +'://'+ requestHost
|
|
1860
|
+
? local.options.conf.server.scheme +'://'+ requestHost
|
|
1671
1861
|
: local.options.conf.hostname
|
|
1862
|
+
, scheme = hostname.match(/^(https|http)/)[0]
|
|
1672
1863
|
;
|
|
1864
|
+
var requestPort = (local.req.headers.port||local.req.headers[':port']);
|
|
1865
|
+
var hostPort = local.options.conf.hostname.match(/(\:d+\/|\:\d+)$/);
|
|
1866
|
+
hostPort = (hostPort) ? ~~(hostPort[0].replace(/\:/g, '')) : local.options.conf.port[local.options.conf.server.protocol][local.options.conf.server.scheme];
|
|
1867
|
+
// Linking bundle B from bundle A wihtout proxy
|
|
1868
|
+
var isSpecialCase = (
|
|
1869
|
+
getContext('bundle') != local.options.conf.bundle
|
|
1870
|
+
&& requestPort != hostPort
|
|
1871
|
+
&& local.req.headers[':host'] != process.gina.PROXY_HOST
|
|
1872
|
+
) ? true : false;
|
|
1873
|
+
|
|
1874
|
+
if (isSpecialCase) {
|
|
1875
|
+
hostname = local.options.conf.hostname
|
|
1876
|
+
}
|
|
1877
|
+
|
|
1878
|
+
|
|
1879
|
+
if (
|
|
1880
|
+
isProxyHost
|
|
1881
|
+
&& !isSpecialCase
|
|
1882
|
+
) {
|
|
1883
|
+
|
|
1884
|
+
hostname = scheme + '://'+ (local.req.headers.host||local.req.headers[':host']||process.gina.PROXY_HOST);
|
|
1885
|
+
|
|
1886
|
+
if (
|
|
1887
|
+
!/^(80|443)$/.test(requestPort)
|
|
1888
|
+
&& !new RegExp(requestPort+'$').test(hostname)
|
|
1889
|
+
) {
|
|
1890
|
+
hostname += ':'+ requestPort;
|
|
1891
|
+
}
|
|
1892
|
+
}
|
|
1893
|
+
|
|
1673
1894
|
switch(type){
|
|
1674
1895
|
case 'css':
|
|
1675
1896
|
for (; r < rLen; ++r) {
|
|
1676
1897
|
obj = resArr[r];
|
|
1677
1898
|
if (useWebroot && !reURL.test(obj.url) ) {
|
|
1678
|
-
obj.url = local.options.conf.server.webroot + obj.url.
|
|
1899
|
+
obj.url = local.options.conf.server.webroot + obj.url.substring(1);
|
|
1900
|
+
}
|
|
1901
|
+
// HTTP2 Push via Link
|
|
1902
|
+
if (
|
|
1903
|
+
/http\/2/.test(local.options.conf.server.protocol)
|
|
1904
|
+
&& !self.isCacheless()
|
|
1905
|
+
) {
|
|
1906
|
+
local.options.template.h2Links += '<'+ obj.url +'>; as=style; rel=preload,'
|
|
1679
1907
|
}
|
|
1680
1908
|
// TODO - add support for cdn
|
|
1681
1909
|
if (!/\:\/\//.test(obj.url) ) {
|
|
1682
1910
|
obj.url = hostname + obj.url;
|
|
1683
1911
|
}
|
|
1684
1912
|
|
|
1685
|
-
if (obj.media)
|
|
1913
|
+
if (obj.media) {
|
|
1686
1914
|
str += '\n\t\t<link href="'+ obj.url +'" media="'+ obj.media +'" rel="'+ obj.rel +'" type="'+ obj.type +'">';
|
|
1687
|
-
else
|
|
1915
|
+
} else {
|
|
1688
1916
|
str += '\n\t\t<link href="'+ obj.url +'" rel="'+ obj.rel +'" type="'+ obj.type +'">';
|
|
1917
|
+
}
|
|
1689
1918
|
}
|
|
1690
1919
|
break;
|
|
1691
1920
|
|
|
@@ -1695,13 +1924,34 @@ function SuperController(options) {
|
|
|
1695
1924
|
for (; r < rLen; ++r) {
|
|
1696
1925
|
obj = resArr[r];
|
|
1697
1926
|
if (useWebroot && !reURL.test(obj.url) ) {
|
|
1698
|
-
obj.url = local.options.conf.server.webroot + obj.url.
|
|
1927
|
+
obj.url = local.options.conf.server.webroot + obj.url.substring(1);
|
|
1928
|
+
}
|
|
1929
|
+
// HTTP2 Push via Link
|
|
1930
|
+
if (
|
|
1931
|
+
/http\/2/.test(local.options.conf.server.protocol)
|
|
1932
|
+
&& !self.isCacheless()
|
|
1933
|
+
) {
|
|
1934
|
+
local.options.template.h2Links += '<'+ obj.url +'>; as=script; rel=preload,'
|
|
1699
1935
|
}
|
|
1700
1936
|
// TODO - add support for cdn
|
|
1701
1937
|
if (!/\:\/\//.test(obj.url) ) {
|
|
1702
1938
|
obj.url = hostname + obj.url;
|
|
1703
1939
|
}
|
|
1704
|
-
|
|
1940
|
+
|
|
1941
|
+
|
|
1942
|
+
if ( /\/jquery\.(.*)\.(min\.js|js)$/i.test(obj.url) ) {
|
|
1943
|
+
console.warn('jQuery Plugin found in templates.json !\nIf you want to load it before [gina.min.js], you should declare it at the top of your handler using requireJS or add property "isExternalPlugin: true" in your templates.json, under: '+ (obj.route || local.req.routing.rule) +' .');
|
|
1944
|
+
}
|
|
1945
|
+
// Allow jQuery & other external plugins to be loaded in the HEAD section before gina
|
|
1946
|
+
if (
|
|
1947
|
+
obj.isExternalPlugin
|
|
1948
|
+
) {
|
|
1949
|
+
local.options.template.externalPlugins.splice(1, 0, '\n\t\t<script'+ deferMode +' type="'+ obj.type +'" src="'+ obj.url +'"></script>');
|
|
1950
|
+
}
|
|
1951
|
+
else {
|
|
1952
|
+
// normal case
|
|
1953
|
+
str += '\n\t\t<script'+ deferMode +' type="'+ obj.type +'" src="'+ obj.url +'"></script>';
|
|
1954
|
+
}
|
|
1705
1955
|
}
|
|
1706
1956
|
break;
|
|
1707
1957
|
}
|
|
@@ -1797,7 +2047,7 @@ function SuperController(options) {
|
|
|
1797
2047
|
|
|
1798
2048
|
if (
|
|
1799
2049
|
staticProps.isStaticFilename && staticsArr.indexOf(url) > -1
|
|
1800
|
-
|| staticProps.isStaticFilename && staticsArr.indexOf( url.replace(url.
|
|
2050
|
+
|| staticProps.isStaticFilename && staticsArr.indexOf( url.replace(url.substring(url.lastIndexOf('/')+1), '') ) > -1
|
|
1801
2051
|
|| staticProps.isStaticFilename && staticsArr.indexOf(staticProps.firstLevel) > -1
|
|
1802
2052
|
) {
|
|
1803
2053
|
staticProps = null;
|
|
@@ -1895,9 +2145,9 @@ function SuperController(options) {
|
|
|
1895
2145
|
// ignoreWebRoot = false
|
|
1896
2146
|
// } else
|
|
1897
2147
|
if (typeof(res) === 'string' || typeof(res) === 'number' || typeof(res) === 'boolean') {
|
|
1898
|
-
if (
|
|
2148
|
+
if ( /^(true|1)$/i.test(res) ) {
|
|
1899
2149
|
ignoreWebRoot = true
|
|
1900
|
-
} else if (
|
|
2150
|
+
} else if ( /^(false|0)$/i.test(res) ) {
|
|
1901
2151
|
ignoreWebRoot = false
|
|
1902
2152
|
} else {
|
|
1903
2153
|
res = local.res;
|
|
@@ -1918,13 +2168,13 @@ function SuperController(options) {
|
|
|
1918
2168
|
|
|
1919
2169
|
}
|
|
1920
2170
|
|
|
1921
|
-
if ( req.
|
|
1922
|
-
// if (wroot.
|
|
1923
|
-
// wroot = wroot.
|
|
2171
|
+
if ( req.substring(0,1) === '/') { // is relative (not checking if the URI is defined in the routing.json)
|
|
2172
|
+
// if (wroot.substring(wroot.length-1,1) == '/') {
|
|
2173
|
+
// wroot = wroot.substring(wroot.length-1,1).replace('/', '')
|
|
1924
2174
|
// }
|
|
1925
2175
|
|
|
1926
2176
|
if ( /^\//.test(req) && !ignoreWebRoot )
|
|
1927
|
-
req = req.
|
|
2177
|
+
req = req.substring(1);
|
|
1928
2178
|
|
|
1929
2179
|
rte = ( ignoreWebRoot != null && ignoreWebRoot ) ? req : wroot + req;
|
|
1930
2180
|
// cleaning url in case of ?param=value
|
|
@@ -2015,11 +2265,32 @@ function SuperController(options) {
|
|
|
2015
2265
|
|
|
2016
2266
|
if ( !self.forward404Unless(condition, req, res) ) { // forward to 404 if bad route
|
|
2017
2267
|
|
|
2018
|
-
var
|
|
2019
|
-
var
|
|
2268
|
+
var localRequestPort = local.req.headers.port || local.req.headers[':port'];
|
|
2269
|
+
var isProxyHost = (
|
|
2270
|
+
typeof(local.req.headers.host) != 'undefined'
|
|
2271
|
+
&& typeof(localRequestPort) != 'undefined'
|
|
2272
|
+
&& /^(80|443)$/.test(localRequestPort)
|
|
2273
|
+
&& local.options.conf.server.scheme +'://'+ local.req.headers.host +':'+ localRequestPort != local.options.conf.hostname.replace(/\:\d+$/, '') +':'+ local.options.conf.server.port
|
|
2274
|
+
||
|
|
2275
|
+
typeof(local.req.headers[':authority']) != 'undefined'
|
|
2276
|
+
&& local.options.conf.server.scheme +'://'+ local.req.headers[':authority'] != local.options.conf.hostname
|
|
2277
|
+
||
|
|
2278
|
+
typeof(local.req.headers.host) != 'undefined'
|
|
2279
|
+
&& typeof(localRequestPort) != 'undefined'
|
|
2280
|
+
&& /^(80|443)$/.test(localRequestPort)
|
|
2281
|
+
&& req.headers.host == local.options.conf.host
|
|
2282
|
+
||
|
|
2283
|
+
typeof(local.req.headers['x-nginx-proxy']) != 'undefined'
|
|
2284
|
+
&& /^true$/i.test(local.req.headers['x-nginx-proxy'])
|
|
2285
|
+
||
|
|
2286
|
+
typeof(process.gina.PROXY_HOSTNAME) != 'undefined'
|
|
2287
|
+
) ? true : false;
|
|
2288
|
+
|
|
2289
|
+
// var isProxyHost = getContext('isProxyHost');
|
|
2290
|
+
var hostname = (isProxyHost)
|
|
2291
|
+
? process.gina.PROXY_HOSTNAME
|
|
2292
|
+
: ctx.config.envConf[bundle][env].hostname;
|
|
2020
2293
|
|
|
2021
|
-
// if ( !/\:\d+$/.test(req.headers.host) )
|
|
2022
|
-
// hostname = hostname.replace(/\:\d+$/, '');
|
|
2023
2294
|
|
|
2024
2295
|
if (route) { // will go with route first
|
|
2025
2296
|
|
|
@@ -2078,7 +2349,7 @@ function SuperController(options) {
|
|
|
2078
2349
|
originalMethod && !/GET/i.test(originalMethod)
|
|
2079
2350
|
) { // trying to redirect using the wrong method ?
|
|
2080
2351
|
|
|
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.\
|
|
2352
|
+
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
2353
|
method = local.req.method = self.setRequestMethod('GET', conf);
|
|
2083
2354
|
code = 303;
|
|
2084
2355
|
}
|
|
@@ -2326,7 +2597,7 @@ function SuperController(options) {
|
|
|
2326
2597
|
|
|
2327
2598
|
if ( /\:\/\//.test(url) ) {
|
|
2328
2599
|
scheme = url.match(/^\w+\:/)[0];
|
|
2329
|
-
scheme = scheme.
|
|
2600
|
+
scheme = scheme.substring(0, scheme.length-1);
|
|
2330
2601
|
|
|
2331
2602
|
if ( !/^http/.test(scheme) ) {
|
|
2332
2603
|
self.throwError(local.res, 500, new Error('[ '+ scheme +' ] Scheme not supported. Ref.: `http` or `https` only'));
|
|
@@ -2344,7 +2615,7 @@ function SuperController(options) {
|
|
|
2344
2615
|
//defining port
|
|
2345
2616
|
var port = url.match(/\:\d+\//) || null;
|
|
2346
2617
|
if ( port != null ) {
|
|
2347
|
-
port = port[0].
|
|
2618
|
+
port = port[0].substring(1, port[0].length-2);
|
|
2348
2619
|
requestOptions.port = ~~port;
|
|
2349
2620
|
}
|
|
2350
2621
|
|
|
@@ -2376,7 +2647,7 @@ function SuperController(options) {
|
|
|
2376
2647
|
opt.contentDisposition += '; filename=' + filename;
|
|
2377
2648
|
}
|
|
2378
2649
|
|
|
2379
|
-
var ext = filename.match(/\.\w+$/)[0].
|
|
2650
|
+
var ext = filename.match(/\.\w+$/)[0].substring(1)
|
|
2380
2651
|
, contentType = null
|
|
2381
2652
|
, tmp = _(GINA_TMPDIR +'/'+ filename, true)
|
|
2382
2653
|
;
|
|
@@ -2659,7 +2930,8 @@ function SuperController(options) {
|
|
|
2659
2930
|
) {
|
|
2660
2931
|
return false
|
|
2661
2932
|
}
|
|
2662
|
-
|
|
2933
|
+
// by default
|
|
2934
|
+
self.isProcessingError = false;
|
|
2663
2935
|
|
|
2664
2936
|
var queryData = {}
|
|
2665
2937
|
, defaultOptions = local.query.options
|
|
@@ -2669,9 +2941,8 @@ function SuperController(options) {
|
|
|
2669
2941
|
|
|
2670
2942
|
// options must be used as a copy in case of multiple calls of self.query(options, ...)
|
|
2671
2943
|
options = merge(JSON.clone(options), defaultOptions);
|
|
2672
|
-
// options = merge(options, defaultOptions);
|
|
2673
2944
|
|
|
2674
|
-
for (
|
|
2945
|
+
for (let o in options) {//cleaning
|
|
2675
2946
|
if ( typeof(options[o]) == 'undefined' || options[o] == undefined) {
|
|
2676
2947
|
delete options[o]
|
|
2677
2948
|
}
|
|
@@ -2745,14 +3016,17 @@ function SuperController(options) {
|
|
|
2745
3016
|
if ( local.req != null && typeof(local.req.ginaHeaders) != 'undefined' ) {
|
|
2746
3017
|
// gina form headers
|
|
2747
3018
|
for (let h in local.req.ginaHeaders.form) {
|
|
2748
|
-
let k = h.
|
|
3019
|
+
let k = h.substring(0,1).toUpperCase() + h.substring(1);
|
|
2749
3020
|
options.headers['X-Gina-Form-' + k ] = local.req.ginaHeaders.form[h];
|
|
2750
3021
|
}
|
|
2751
3022
|
}
|
|
2752
3023
|
|
|
2753
|
-
var ctx
|
|
2754
|
-
, protocol
|
|
2755
|
-
, scheme
|
|
3024
|
+
var ctx = getContext()
|
|
3025
|
+
, protocol = null
|
|
3026
|
+
, scheme = null
|
|
3027
|
+
, isProxyHost = getContext('isProxyHost')
|
|
3028
|
+
, bundle = null
|
|
3029
|
+
, webroot = options.webroot || ctx.gina.config.envConf[ctx.bundle][ctx.env].server.webroot;// bundle servers's webroot by default
|
|
2756
3030
|
;
|
|
2757
3031
|
// cleanup options.path
|
|
2758
3032
|
if (/\:\/\//.test(options.path)) {
|
|
@@ -2774,6 +3048,7 @@ function SuperController(options) {
|
|
|
2774
3048
|
protocol = protocol.match(/[.a-z 0-9]+/ig)[0];
|
|
2775
3049
|
scheme = options.scheme || ctx.gina.config.envConf[ctx.bundle][ctx.env].server.scheme;// bundle servers's scheme by default
|
|
2776
3050
|
scheme = scheme.match(/[a-z 0-9]+/ig)[0];
|
|
3051
|
+
|
|
2777
3052
|
// retrieve credentials
|
|
2778
3053
|
if ( typeof(options.ca) == 'undefined' || ! options.ca ) {
|
|
2779
3054
|
options.ca = ctx.gina.config.envConf[ctx.bundle][ctx.env].server.credentials.ca;
|
|
@@ -2782,13 +3057,11 @@ function SuperController(options) {
|
|
|
2782
3057
|
//retrieving dynamic host, hostname & port
|
|
2783
3058
|
if ( /\@/.test(options.hostname) ) {
|
|
2784
3059
|
|
|
2785
|
-
|
|
2786
|
-
|
|
3060
|
+
bundle = ( options.hostname.replace(/(.*)\:\/\//, '') ).split(/\@/)[0];
|
|
2787
3061
|
// No shorcut possible because conf.hostname might differ from user inputs
|
|
2788
3062
|
options.host = ctx.gina.config.envConf[bundle][ctx.env].host.replace(/(.*)\:\/\//, '').replace(/\:\d+/, '');
|
|
2789
3063
|
options.hostname = ctx.gina.config.envConf[bundle][ctx.env].hostname;
|
|
2790
3064
|
options.port = ctx.gina.config.envConf[bundle][ctx.env].server.port;
|
|
2791
|
-
|
|
2792
3065
|
options.protocol = ctx.gina.config.envConf[bundle][ctx.env].server.protocol;
|
|
2793
3066
|
options.scheme = ctx.gina.config.envConf[bundle][ctx.env].server.scheme;
|
|
2794
3067
|
|
|
@@ -2796,10 +3069,6 @@ function SuperController(options) {
|
|
|
2796
3069
|
if ( typeof(options.ca) == 'undefined' || ! options.ca ) {
|
|
2797
3070
|
options.ca = ctx.gina.config.envConf[bundle][ctx.env].server.credentials.ca;
|
|
2798
3071
|
}
|
|
2799
|
-
|
|
2800
|
-
// might be != from the bundle requesting
|
|
2801
|
-
//options.protocol = ctx.gina.config.envConf[bundle][ctx.env].content.settings.server.protocol || ctx.gina.config.envConf[bundle][ctx.env].server.protocol;
|
|
2802
|
-
//options.scheme = ctx.gina.config.envConf[bundle][ctx.env].content.settings.server.scheme || ctx.gina.config.envConf[bundle][ctx.env].server.scheme;
|
|
2803
3072
|
}
|
|
2804
3073
|
|
|
2805
3074
|
if ( typeof(options.protocol) == 'undefined' ) {
|
|
@@ -2813,8 +3082,16 @@ function SuperController(options) {
|
|
|
2813
3082
|
|
|
2814
3083
|
|
|
2815
3084
|
// reformating scheme
|
|
2816
|
-
if( !/\:$/.test(options.scheme) )
|
|
3085
|
+
if( !/\:$/.test(options.scheme) ) {
|
|
2817
3086
|
options.scheme += ':';
|
|
3087
|
+
}
|
|
3088
|
+
|
|
3089
|
+
if (isProxyHost) {
|
|
3090
|
+
// X-Forwarded-Host
|
|
3091
|
+
options.headers['x-forwarded-host'] = process.gina.PROXY_HOST;
|
|
3092
|
+
// X-Forwarded-Proto
|
|
3093
|
+
options.headers['x-forwarded-proto'] = process.gina.PROXY_SCHEME;
|
|
3094
|
+
}
|
|
2818
3095
|
|
|
2819
3096
|
try {
|
|
2820
3097
|
options.queryData = queryData;
|
|
@@ -2826,6 +3103,8 @@ function SuperController(options) {
|
|
|
2826
3103
|
|
|
2827
3104
|
browser = require(''+ httpLib);
|
|
2828
3105
|
|
|
3106
|
+
bundle = null;
|
|
3107
|
+
|
|
2829
3108
|
if ( /http2/.test(httpLib) ) {
|
|
2830
3109
|
return handleHTTP2ClientRequest(browser, options, callback);
|
|
2831
3110
|
} else {
|
|
@@ -2839,9 +3118,36 @@ function SuperController(options) {
|
|
|
2839
3118
|
}
|
|
2840
3119
|
self.emit('query#complete', err)
|
|
2841
3120
|
}
|
|
2842
|
-
|
|
2843
3121
|
}
|
|
2844
3122
|
|
|
3123
|
+
var handleHTTP1ClientRequestv2 = function (browser, options, callback) {
|
|
3124
|
+
var agent = new browser.Agent({ keepAlive: true });
|
|
3125
|
+
var options = {
|
|
3126
|
+
host: options.host,
|
|
3127
|
+
port: options.port,
|
|
3128
|
+
path: options.path,
|
|
3129
|
+
method: 'GET',
|
|
3130
|
+
agent: agent
|
|
3131
|
+
};
|
|
3132
|
+
|
|
3133
|
+
var req = browser.request(options, function(res) {
|
|
3134
|
+
var str = "";
|
|
3135
|
+
var err = false;
|
|
3136
|
+
res.on('data', function (chunk) {
|
|
3137
|
+
str += chunk;
|
|
3138
|
+
});
|
|
3139
|
+
res.on('end', function () {
|
|
3140
|
+
// done
|
|
3141
|
+
return callback( err, data );
|
|
3142
|
+
});
|
|
3143
|
+
});
|
|
3144
|
+
req.write('');
|
|
3145
|
+
req.end();
|
|
3146
|
+
req.on('error', function(error) {
|
|
3147
|
+
err = error
|
|
3148
|
+
});
|
|
3149
|
+
};
|
|
3150
|
+
|
|
2845
3151
|
var handleHTTP1ClientRequest = function(browser, options, callback) {
|
|
2846
3152
|
|
|
2847
3153
|
var altOpt = JSON.clone(options);
|
|
@@ -2930,7 +3236,7 @@ function SuperController(options) {
|
|
|
2930
3236
|
return;
|
|
2931
3237
|
}
|
|
2932
3238
|
} catch (e) {
|
|
2933
|
-
var infos = local.options, controllerName = infos.controller.
|
|
3239
|
+
var infos = local.options, controllerName = infos.controller.substring(infos.controller.lastIndexOf('/'));
|
|
2934
3240
|
var msg = 'Controller Query Exception while catching back.\nBundle: '+ infos.bundle +'\nController File: /controllers'+ controllerName +'\nControl: this.'+ infos.control +'(...)\n\r' + e.stack;
|
|
2935
3241
|
var exception = new Error(msg);
|
|
2936
3242
|
exception.status = 500;
|
|
@@ -3024,7 +3330,7 @@ function SuperController(options) {
|
|
|
3024
3330
|
cb(err, data)
|
|
3025
3331
|
}
|
|
3026
3332
|
} catch (e) {
|
|
3027
|
-
var infos = local.options, controllerName = infos.controller.
|
|
3333
|
+
var infos = local.options, controllerName = infos.controller.substring(infos.controller.lastIndexOf('/'));
|
|
3028
3334
|
var msg = 'Controller Query Exception while catching back.\nBundle: '+ infos.bundle +'\nController File: /controllers'+ controllerName +'\nControl: this.'+ infos.control +'(...)\n\r' + e.stack;
|
|
3029
3335
|
var exception = new Error(msg);
|
|
3030
3336
|
exception.status = 500;
|
|
@@ -3289,7 +3595,7 @@ function SuperController(options) {
|
|
|
3289
3595
|
}
|
|
3290
3596
|
|
|
3291
3597
|
} catch (e) {
|
|
3292
|
-
var infos = local.options, controllerName = infos.controller.
|
|
3598
|
+
var infos = local.options, controllerName = infos.controller.substring(infos.controller.lastIndexOf('/'));
|
|
3293
3599
|
var msg = 'Controller Query Exception while catching back.\nBundle: '+ infos.bundle +'\nController File: /controllers'+ controllerName +'\nControl: this.'+ infos.control +'(...)\n\r' + e.stack;
|
|
3294
3600
|
var exception = new Error(msg);
|
|
3295
3601
|
exception.status = 500;
|
|
@@ -3367,7 +3673,7 @@ function SuperController(options) {
|
|
|
3367
3673
|
cb(err, data)
|
|
3368
3674
|
}
|
|
3369
3675
|
} catch (e) {
|
|
3370
|
-
var infos = local.options, controllerName = infos.controller.
|
|
3676
|
+
var infos = local.options, controllerName = infos.controller.substring(infos.controller.lastIndexOf('/'));
|
|
3371
3677
|
var msg = 'Controller Query Exception while catching back.\nBundle: '+ infos.bundle +'\nController File: /controllers'+ controllerName +'\nControl: this.'+ infos.control +'(...)\n\r' + e.stack;
|
|
3372
3678
|
var exception = new Error(msg);
|
|
3373
3679
|
exception.status = 500;
|
|
@@ -3502,11 +3808,11 @@ function SuperController(options) {
|
|
|
3502
3808
|
project = route.param.project;
|
|
3503
3809
|
} // TODO - add support for project pointer : getContext('gina').projects[project]
|
|
3504
3810
|
if (/\@(.*)$/.test(route.param.url)) {
|
|
3505
|
-
var targetedBundle = route.param.url.
|
|
3811
|
+
var targetedBundle = route.param.url.substring(route.param.url.lastIndexOf('@')+1);
|
|
3506
3812
|
hostname = targetedBundle +'@'+ project;
|
|
3507
3813
|
port = hostname;
|
|
3508
3814
|
var webroot = getContext('gina').config.envConf[targetedBundle][local.options.conf.env].server.webroot;
|
|
3509
|
-
path = (/\/$/.test(webroot)) ? webroot.
|
|
3815
|
+
path = (/\/$/.test(webroot)) ? webroot.substring(0, webroot.length-1) : webroot;
|
|
3510
3816
|
} else {
|
|
3511
3817
|
hostname = route.param.hostname;
|
|
3512
3818
|
port = route.param.port;
|
|
@@ -3560,24 +3866,28 @@ function SuperController(options) {
|
|
|
3560
3866
|
*
|
|
3561
3867
|
* */
|
|
3562
3868
|
this.getConfig = function(name) {
|
|
3869
|
+
var tmp = null;
|
|
3563
3870
|
if ( typeof(name) != 'undefined' ) {
|
|
3564
3871
|
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]);
|
|
3872
|
+
// Needs to be read only
|
|
3873
|
+
tmp = JSON.clone(local.options.conf.content[name]);
|
|
3573
3874
|
} catch (err) {
|
|
3574
3875
|
return undefined;
|
|
3575
3876
|
}
|
|
3576
3877
|
} else {
|
|
3577
|
-
|
|
3578
|
-
|
|
3579
|
-
|
|
3878
|
+
tmp = JSON.clone(local.options.conf);
|
|
3879
|
+
}
|
|
3880
|
+
|
|
3881
|
+
if (
|
|
3882
|
+
getContext('isProxyHost')
|
|
3883
|
+
&& typeof(tmp.hostname) != 'undefined'
|
|
3884
|
+
) {
|
|
3885
|
+
tmp.hostname = process.gina.PROXY_HOSTNAME;
|
|
3886
|
+
tmp.host = process.gina.PROXY_HOST;
|
|
3887
|
+
// tmp.hostname = getContext('gina').config.envConf._proxyHostname
|
|
3888
|
+
// tmp.host = tmp.hostname.replace(/^(https|http)\:\/\//, '');
|
|
3580
3889
|
}
|
|
3890
|
+
return tmp;
|
|
3581
3891
|
}
|
|
3582
3892
|
|
|
3583
3893
|
/**
|
|
@@ -4002,7 +4312,7 @@ function SuperController(options) {
|
|
|
4002
4312
|
//instance: self.serverInstance,
|
|
4003
4313
|
//template: (routeHasViews) ? bundleConf.content.templates[templateName] : undefined,
|
|
4004
4314
|
//isUsingTemplate: local.isUsingTemplate,
|
|
4005
|
-
//
|
|
4315
|
+
//isCacheless: isCacheless,
|
|
4006
4316
|
path: null //, // user custom path : namespace should be ignored | left blank
|
|
4007
4317
|
//assets: {}
|
|
4008
4318
|
};
|
|
@@ -4228,11 +4538,11 @@ function SuperController(options) {
|
|
|
4228
4538
|
, ext = null
|
|
4229
4539
|
, isHtmlContent = false
|
|
4230
4540
|
, hasCustomErrorFile = false
|
|
4231
|
-
, eCode = code.toString().
|
|
4541
|
+
, eCode = code.toString().substring(0,1) + 'xx'
|
|
4232
4542
|
;
|
|
4233
|
-
var extArr = url.
|
|
4543
|
+
var extArr = url.substring(url.lastIndexOf('.')).match(/(\.[A-Za-z0-9]+)/);
|
|
4234
4544
|
if (extArr) {
|
|
4235
|
-
ext = extArr[0].
|
|
4545
|
+
ext = extArr[0].substring(1);
|
|
4236
4546
|
}
|
|
4237
4547
|
if ( !ext || /^(html|htm)$/i.test(ext) ) {
|
|
4238
4548
|
isHtmlContent = true;
|
|
@@ -4390,7 +4700,7 @@ function SuperController(options) {
|
|
|
4390
4700
|
return next();
|
|
4391
4701
|
}
|
|
4392
4702
|
|
|
4393
|
-
if ( /http\/2/.test(protocol) ) {
|
|
4703
|
+
if ( stream && /http\/2/.test(protocol) ) {
|
|
4394
4704
|
return stream.end();
|
|
4395
4705
|
}
|
|
4396
4706
|
|