gina 0.1.6-alpha.9 → 0.1.6-alpha.91
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.91}/LICENSE +1 -1
- package/framework/v0.1.6-alpha.91/VERSION +1 -0
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/asset/plugin/README.md +1 -0
- package/framework/v0.1.6-alpha.91/core/asset/plugin/dist/vendor/gina/css/gina.min.css.map +1 -0
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/asset/plugin/dist/vendor/gina/html/toolbar.html +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/asset/plugin/dist/vendor/gina/js/gina.js +582 -217
- package/framework/v0.1.6-alpha.91/core/asset/plugin/dist/vendor/gina/js/gina.min.js +777 -0
- package/framework/v0.1.6-alpha.91/core/asset/plugin/dist/vendor/gina/js/gina.min.js.map +8 -0
- package/framework/v0.1.6-alpha.91/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +8 -0
- package/framework/v0.1.6-alpha.91/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.91}/core/config.js +157 -76
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/connectors/couchbase/index.js +92 -22
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/connectors/couchbase/lib/connector.v4.js +28 -22
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/controller/controller.js +431 -111
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/controller/index.js +2 -2
- package/framework/v0.1.6-alpha.91/core/deps/busboy-1.6.0/.github/workflows/ci.yml +24 -0
- package/framework/v0.1.6-alpha.91/core/deps/busboy-1.6.0/.github/workflows/lint.yml +23 -0
- package/framework/v0.1.6-alpha.91/core/deps/busboy-1.6.0/README.md +191 -0
- package/framework/v0.1.6-alpha.91/core/deps/busboy-1.6.0/bench/bench-multipart-fields-100mb-big.js +149 -0
- package/framework/v0.1.6-alpha.91/core/deps/busboy-1.6.0/bench/bench-multipart-fields-100mb-small.js +143 -0
- package/framework/v0.1.6-alpha.91/core/deps/busboy-1.6.0/bench/bench-multipart-files-100mb-big.js +154 -0
- package/framework/v0.1.6-alpha.91/core/deps/busboy-1.6.0/bench/bench-multipart-files-100mb-small.js +148 -0
- package/framework/v0.1.6-alpha.91/core/deps/busboy-1.6.0/bench/bench-urlencoded-fields-100pairs-small.js +101 -0
- package/framework/v0.1.6-alpha.91/core/deps/busboy-1.6.0/bench/bench-urlencoded-fields-900pairs-small-alt.js +84 -0
- package/framework/v0.1.6-alpha.91/core/deps/busboy-1.6.0/lib/index.js +57 -0
- package/framework/v0.1.6-alpha.91/core/deps/busboy-1.6.0/lib/types/multipart.js +680 -0
- package/framework/v0.1.6-alpha.91/core/deps/busboy-1.6.0/lib/types/urlencoded.js +350 -0
- package/framework/v0.1.6-alpha.91/core/deps/busboy-1.6.0/lib/utils.js +596 -0
- package/framework/v0.1.6-alpha.91/core/deps/busboy-1.6.0/package.json +22 -0
- package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/.travis.yml +4 -0
- package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/LICENSE +21 -0
- package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/example/bool.js +10 -0
- package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/example/boolean_double.js +7 -0
- package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/example/boolean_single.js +7 -0
- package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/example/default_hash.js +8 -0
- package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/example/default_singles.js +7 -0
- package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/example/divide.js +8 -0
- package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/example/line_count.js +20 -0
- package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/example/line_count_options.js +29 -0
- package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/example/line_count_wrap.js +29 -0
- package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/example/nonopt.js +4 -0
- package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/example/reflect.js +2 -0
- package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/example/short.js +3 -0
- package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/example/string.js +11 -0
- package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/example/usage-options.js +19 -0
- package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/example/xup.js +10 -0
- package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/index.js +343 -0
- package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/package.json +31 -0
- package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/package.json.dist +39 -0
- package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/readme.markdown +513 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/HISTORY.md +498 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/LICENSE +7 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/README.md +88 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/bin/swig.js +161 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/bin/swig.js.dist +161 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/dist/swig.min.js +7 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/dist/swig.min.js.map +8 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/index.js +1 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/dateformatter.js +198 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/filters.js +630 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/lexer.js +306 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/loaders/filesystem.js +59 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/loaders/index.js +53 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/loaders/memory.js +63 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/parser.js +744 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/swig.js +740 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/autoescape.js +37 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/block.js +25 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/else.js +25 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/elseif.js +28 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/extends.js +19 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/filter.js +68 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/for.js +130 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/if.js +86 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/import.js +91 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/include.js +100 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/index.js +16 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/macro.js +79 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/parent.js +51 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/raw.js +23 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/set.js +109 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/spaceless.js +42 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/utils.js +184 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/package.json +57 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/package.json.dist +61 -0
- package/framework/v0.1.6-alpha.91/core/deps/swig-client/swig.js +5031 -0
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/dev/index.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/dev/lib/factory.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/gna.js +101 -22
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/locales/index.js +3 -3
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/locales/src/make.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/mime.types +1 -0
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/model/entity.js +5 -5
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/model/index.js +30 -26
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/model/template/entityFactory.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/model/template/index.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/index.js +3 -3
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/file/package.json +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/intl/package.json +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/storage/package.json +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/validator/package.json +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/validator/src/form-validator.js +39 -27
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/validator/src/main.js +360 -85
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/router.js +92 -47
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/server.isaac.js +96 -10
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/server.js +283 -129
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/status.codes +1 -11
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle/controllers/setup.js +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/command/gina.tpl +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/conf/env.json +2 -0
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/conf/templates.json +4 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/console.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/context.js +29 -12
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/data/package.json +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/data/src/main.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/dateFormat.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/index.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/json/package.json +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/json/src/main.js +6 -4
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/path.js +31 -15
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/plugins/package.json +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/plugins/src/api-error.js +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/plugins/src/main.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/text.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/archiver/package.json +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/archiver/src/main.js +11 -11
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/bundle/add.js +2 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/bundle/start.js +21 -8
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/env/get.js +1 -1
- package/framework/v0.1.6-alpha.91/lib/cmd/env/help.js +30 -0
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/build.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/init.js +18 -0
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/link-node-modules.js +2 -3
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/link.js +1 -0
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/tail.js +28 -11
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/version.js +15 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/helper.js +6 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/index.js +1 -1
- package/framework/v0.1.6-alpha.91/lib/cmd/minion/help.txt +18 -0
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/project/add.js +3 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/project/build.js +4 -4
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/project/list.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/protocol/list.js +71 -50
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/collection/package.json +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/collection/src/main.js +20 -14
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/config.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cron/package.json +2 -2
- package/framework/v0.1.6-alpha.91/lib/domain/dist/2025-03-14_13-41-20_UTC.dat +15754 -0
- package/framework/v0.1.6-alpha.91/lib/domain/dist/public_suffix_list.dat +15754 -0
- package/framework/v0.1.6-alpha.91/lib/domain/exemples/backend.js +12 -0
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/domain/package.json +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/domain/src/main.js +20 -6
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/generator/index.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/index.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91/lib/inherits}/LICENSE +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/inherits/package.json +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/inherits/src/main.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/logger/package.json +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/logger/src/containers/mq/listener.js +10 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/logger/src/helper.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/logger/src/main.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/math/index.js +1 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/merge/package.json +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/model.js +3 -3
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/proc.js +9 -1
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/routing/package.json +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/routing/src/main.js +72 -25
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/session-store.js +3 -3
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/swig-filters/package.json +2 -2
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/swig-filters/src/main.js +70 -15
- package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/validator.js +2 -2
- package/framework/v0.1.6-alpha.91/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.91}/AUTHORS +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/asset/html/nolayout.html +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/asset/html/static.html +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/asset/img/android-chrome-192x192.png +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/asset/img/android-chrome-512x512.png +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/asset/img/apple-touch-icon.png +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/asset/img/favicon-16x16.png +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/asset/img/favicon-32x32.png +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/asset/img/favicon.ico +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/asset/plugin/uuid.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/connectors/couchbase/lib/connector.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/connectors/couchbase/lib/connector.v2.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/connectors/couchbase/lib/connector.v3.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/connectors/couchbase/lib/n1ql.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/connectors/couchbase/lib/session-store.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/connectors/couchbase/lib/session-store.v2.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/controller/controller.framework.js +0 -0
- /package/framework/{v0.1.6-alpha.9/core/deps/busboy → v0.1.6-alpha.91/core/deps/busboy-1.6.0}/LICENSE +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/deps/swig-client/swig-2.0.0.min.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/dev/lib/class.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/dev/lib/tools.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/locales/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/locales/currency.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/locales/dist/language/en.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/locales/dist/language/fr.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/locales/dist/region/en.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/locales/dist/region/fr.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/locales/src/resources/currency.csv +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/locales/src/resources/region.csv +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/locales/src/resources/region.mapping.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/file/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/file/build.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/intl/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/intl/build.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/intl/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/storage/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/storage/build.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/storage/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/validator/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/validator/build.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/server.express.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/_gitignore +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle/config/app.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle/config/routing.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle/config/settings.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle/config/templates.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle/index.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle_public/css/default.css +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle_public/readme.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/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.91}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/command/gina.bat.tpl +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/conf/manifest.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/conf/package.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/conf/settings.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/conf/statics.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/error/client/json/401.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/error/client/json/403.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/error/client/json/404.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/error/server/html/50x.html +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/error/server/json/500.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/error/server/json/503.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/extensions/logger/config.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/data/LICENSE +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/data/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/json/LICENSE +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/json/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/plugins/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/prototypes.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/task.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/archiver/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/archiver/build.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/archiver/src/dep/jszip.min.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/aliases.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/bundle/arguments.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/bundle/copy.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/bundle/cp.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/bundle/help.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/bundle/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/bundle/list.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/bundle/remove.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/bundle/rename.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/bundle/restart.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/bundle/rm.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/bundle/status.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/bundle/stop.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/env/add.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/env/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/env/link-dev.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/env/list.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/env/remove.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/env/rm.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/env/set.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/env/unset.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/env/use.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/dot.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/get.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/help.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/msg.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/open.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/restart.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/set.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/start.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/status.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/stop.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/update.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/gina-dev.1.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/gina-framework.1.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/gina.1.md +0 -0
- /package/framework/{v0.1.6-alpha.9/lib/cmd/env → v0.1.6-alpha.91/lib/cmd/minion}/help.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/msg.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/port/help.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/port/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/port/inc/scan.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/port/list.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/port/reset.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/port/set.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/project/arguments.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/project/help.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/project/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/project/import.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/project/move.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/project/remove.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/project/rename.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/project/restart.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/project/rm.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/project/start.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/project/status.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/project/stop.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/protocol/help.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/protocol/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/protocol/set.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/scope/add.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/scope/help.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/scope/help.txt +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/scope/link-local.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/scope/link-production.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/scope/list.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/scope/remove.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/scope/rm.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/scope/use.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/view/add.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/collection/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/collection/build.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cron/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cron/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/domain/LICENSE +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/domain/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/domain/exemples/frontend.html +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/inherits/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/inherits/example/inheriting_eventemitter.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/inherits/example/protected_inheritance.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/inherits/example/simple_inheritance.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/inherits/example/super_attribute_overridden_by_child_on_init.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/logger/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/logger/src/containers/default/index.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/logger/src/containers/file/index.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/logger/src/containers/mq/index.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/logger/src/containers/mq/speaker.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/merge/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/merge/example/merge.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/merge/example/merge_2_literal objects.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/merge/example/merge_and_preserve_first.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/merge/src/main.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/routing/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/routing/build.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/shell.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/swig-filters/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/url/README.md +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/url/index.js +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/url/mocks.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/url/routing.json +0 -0
- /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/url/test.js +0 -0
|
@@ -4,14 +4,15 @@ const fs = require('fs');
|
|
|
4
4
|
const os = require('os');
|
|
5
5
|
const path = require('path');
|
|
6
6
|
const EventEmitter = require('events').EventEmitter;
|
|
7
|
-
const
|
|
7
|
+
const swig = require('./deps/swig-1.4.2');
|
|
8
|
+
const Busboy = require('./deps/busboy-1.6.0');
|
|
8
9
|
const Stream = require('stream');
|
|
9
10
|
const zlib = require('zlib'); // gzip / deflate
|
|
10
11
|
const util = require('util');
|
|
11
12
|
var https = require('https');
|
|
12
13
|
const sslChecker = require('ssl-checker');
|
|
13
14
|
|
|
14
|
-
|
|
15
|
+
|
|
15
16
|
var Config = require('./config');
|
|
16
17
|
var Router = require('./router');
|
|
17
18
|
var lib = require('./../lib');
|
|
@@ -21,6 +22,8 @@ var merge = lib.merge;
|
|
|
21
22
|
var Proc = lib.Proc;
|
|
22
23
|
var console = lib.logger;
|
|
23
24
|
var SwigFilters = lib.SwigFilters;
|
|
25
|
+
var Domain = lib.Domain;
|
|
26
|
+
var domainLib = new Domain();
|
|
24
27
|
|
|
25
28
|
function Server(options) {
|
|
26
29
|
|
|
@@ -48,7 +51,7 @@ function Server(options) {
|
|
|
48
51
|
var swigOptions = {
|
|
49
52
|
autoescape: ( typeof(conf.autoescape) != 'undefined') ? conf.autoescape: false,
|
|
50
53
|
loader: swig.loaders.fs(dir),
|
|
51
|
-
cache: (conf.
|
|
54
|
+
cache: (conf.isCacheless) ? false : 'memory'
|
|
52
55
|
};
|
|
53
56
|
|
|
54
57
|
swig.setDefaults(swigOptions);
|
|
@@ -293,6 +296,24 @@ function Server(options) {
|
|
|
293
296
|
|
|
294
297
|
if (failed) {
|
|
295
298
|
if (sslDetails.daysRemaining > -1) {
|
|
299
|
+
var isProxyHost = getContext('isProxyHost');
|
|
300
|
+
if ( /^true$/i.test(isProxyHost) ) {
|
|
301
|
+
console.warn("Host is behind a reverse proxy, skipping server.verifyCertificate(...) ");
|
|
302
|
+
return;
|
|
303
|
+
}
|
|
304
|
+
var rootDomain = domainLib.getRootDomain(endpoint).value;
|
|
305
|
+
hasMatchedEntry = false;
|
|
306
|
+
for (let i in sslDetails.validFor) {
|
|
307
|
+
if ( new RegExp(sslDetails.validFor[i].replace(/^\*\./, '') + '$').test(rootDomain) ) {
|
|
308
|
+
hasMatchedEntry = true;
|
|
309
|
+
break;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
if (!hasMatchedEntry) {
|
|
313
|
+
console.warn(`[Certificate] "${endpoint}" : Root domain not matching your certificate. If you plan to run your service behind a revese proxy, please do not forget to add "proxy.json" at the root of your project while going to production.${'\n'} ${humanView}`);
|
|
314
|
+
return;
|
|
315
|
+
}
|
|
316
|
+
// sslDetails.validFor
|
|
296
317
|
console.emerg(`[Certificate] ${endpoint} : It is like there is a problem with your CA certificate${'\n'} ${humanView}`);
|
|
297
318
|
return;
|
|
298
319
|
}
|
|
@@ -331,7 +352,7 @@ function Server(options) {
|
|
|
331
352
|
, serverCoreConf = self.conf.core
|
|
332
353
|
, routing = {}
|
|
333
354
|
, reverseRouting = {}
|
|
334
|
-
,
|
|
355
|
+
, isCacheless = config.isCacheless()
|
|
335
356
|
, env = self.env
|
|
336
357
|
, scope = self.scope
|
|
337
358
|
, apps = conf.allBundles // conf.bundles
|
|
@@ -371,7 +392,7 @@ function Server(options) {
|
|
|
371
392
|
filename = main
|
|
372
393
|
}
|
|
373
394
|
|
|
374
|
-
if (
|
|
395
|
+
if (isCacheless) {
|
|
375
396
|
delete require.cache[require.resolve(_(filename, true))]
|
|
376
397
|
}
|
|
377
398
|
|
|
@@ -424,15 +445,15 @@ function Server(options) {
|
|
|
424
445
|
}
|
|
425
446
|
|
|
426
447
|
if (typeof(tmp[rule].url) != 'object') {
|
|
427
|
-
if (tmp[rule].url.length > 1 && tmp[rule].url.
|
|
448
|
+
if (tmp[rule].url.length > 1 && tmp[rule].url.substring(0,1) != '/') {
|
|
428
449
|
tmp[rule].url = '/'+tmp[rule].url
|
|
429
450
|
}
|
|
430
|
-
/** else if (tmp[rule].url.length > 1 && conf.envConf[apps[i]][env].server.webroot.
|
|
431
|
-
tmp[rule].url = tmp[rule].url.
|
|
451
|
+
/** else if (tmp[rule].url.length > 1 && conf.envConf[apps[i]][env].server.webroot.substring(conf.envConf[apps[i]][env].server.webroot.length-1,1) == '/') {
|
|
452
|
+
tmp[rule].url = tmp[rule].url.substring(1)
|
|
432
453
|
}*/
|
|
433
454
|
else {
|
|
434
|
-
if (wroot.
|
|
435
|
-
wroot = wroot.
|
|
455
|
+
if (wroot.substring(wroot.length-1,1) == '/') {
|
|
456
|
+
wroot = wroot.substring(wroot.length-1,1).replace('/', '')
|
|
436
457
|
}
|
|
437
458
|
}
|
|
438
459
|
|
|
@@ -448,8 +469,8 @@ function Server(options) {
|
|
|
448
469
|
localWroot = '/'+ routing[rule].bundle;
|
|
449
470
|
conf.envConf[tmp[rule].bundle][env].server.webroot = localWroot
|
|
450
471
|
}
|
|
451
|
-
if (localWroot.
|
|
452
|
-
localWroot = localWroot.
|
|
472
|
+
if (localWroot.substring(localWroot.length-1,1) == '/') {
|
|
473
|
+
localWroot = localWroot.substring(localWroot.length-1,1).replace('/', '')
|
|
453
474
|
}
|
|
454
475
|
if ( typeof(tmp[rule].param.ignoreWebRoot) == 'undefined' || !tmp[rule].param.ignoreWebRoot )
|
|
455
476
|
tmp[rule].url = localWroot + tmp[rule].url
|
|
@@ -463,11 +484,11 @@ function Server(options) {
|
|
|
463
484
|
} else {
|
|
464
485
|
|
|
465
486
|
for (var u=0; u<tmp[rule].url.length; ++u) {
|
|
466
|
-
if (tmp[rule].url[u].length > 1 && tmp[rule].url[u].
|
|
487
|
+
if (tmp[rule].url[u].length > 1 && tmp[rule].url[u].substring(0,1) != '/') {
|
|
467
488
|
tmp[rule].url[u] = '/'+tmp[rule].url[u]
|
|
468
489
|
} else {
|
|
469
|
-
if (wroot.
|
|
470
|
-
wroot = wroot.
|
|
490
|
+
if (wroot.substring(wroot.length-1,1) == '/') {
|
|
491
|
+
wroot = wroot.substring(wroot.length-1,1).replace('/', '')
|
|
471
492
|
}
|
|
472
493
|
}
|
|
473
494
|
if ( typeof(tmp[rule].param.ignoreWebRoot) == 'undefined' || !tmp[rule].param.ignoreWebRoot )
|
|
@@ -584,7 +605,7 @@ function Server(options) {
|
|
|
584
605
|
) {
|
|
585
606
|
|
|
586
607
|
// by default
|
|
587
|
-
path = url.replace(url.
|
|
608
|
+
path = url.replace(url.substring(url.lastIndexOf('/')+1), '');
|
|
588
609
|
if ( typeof(altConf) != 'undefined' && altConf ) {
|
|
589
610
|
bundleConf = self.conf[altConf.split(/\@/)[1]][bundleConf.env];
|
|
590
611
|
backedupPath = path;
|
|
@@ -592,7 +613,7 @@ function Server(options) {
|
|
|
592
613
|
}
|
|
593
614
|
|
|
594
615
|
|
|
595
|
-
// catch `statics.json` defined paths || bundleConf.staticResources.indexOf(url.replace(url.
|
|
616
|
+
// catch `statics.json` defined paths || bundleConf.staticResources.indexOf(url.replace(url.substring(url.lastIndexOf('/')+1), '')) > -1
|
|
596
617
|
if ( bundleConf.staticResources.indexOf(path) > -1 || bundleConf.staticResources.indexOf(staticProps.firstLevel) > -1 ) {
|
|
597
618
|
if ( typeof(altConf) != 'undefined' && altConf && backedupPath ) {
|
|
598
619
|
filename = (bundleConf.staticResources.indexOf(path) > -1) ? bundleConf.content.statics[path] + url.replace(backedupPath, '/') : bundleConf.content.statics[staticProps.firstLevel] + url.replace(staticProps.firstLevel, '/');
|
|
@@ -631,8 +652,8 @@ function Server(options) {
|
|
|
631
652
|
*/
|
|
632
653
|
var getAssets = function (bundleConf, layoutStr, swig, data) {
|
|
633
654
|
|
|
634
|
-
// layout search for <link|script|img>
|
|
635
|
-
var layoutAssets = layoutStr.match(/<link .*?<\/link>|<link .*?(rel\=\"(stylesheet|icon|manifest|(.*)\-icon))(.*)|<script.*?<\/script>|<img .*?(.*)/g) || [];
|
|
655
|
+
// layout search for <link|source|script|img>
|
|
656
|
+
var layoutAssets = layoutStr.match(/<link .*?<\/link>|<link .*?(rel\=\"(stylesheet|icon|manifest|(.*)\-icon))(.*)|<source .*?(type\=\"(image))(.*)|<script.*?<\/script>|<img .*?(.*)/g) || [];
|
|
636
657
|
|
|
637
658
|
var assets = {}
|
|
638
659
|
, cssFiles = []
|
|
@@ -652,63 +673,150 @@ function Server(options) {
|
|
|
652
673
|
// layout assets
|
|
653
674
|
i = 0;
|
|
654
675
|
len = layoutAssets.length;
|
|
655
|
-
var type
|
|
656
|
-
, isAvailable
|
|
657
|
-
, tag
|
|
658
|
-
, properties
|
|
659
|
-
, p
|
|
660
|
-
, pArr
|
|
676
|
+
var type = null
|
|
677
|
+
, isAvailable = null
|
|
678
|
+
, tag = null
|
|
679
|
+
, properties = null
|
|
680
|
+
, p = 0
|
|
681
|
+
, pArr = []
|
|
682
|
+
, sourceTagSrcSetStr = ''
|
|
661
683
|
;
|
|
662
684
|
for (; i < len; ++i) {
|
|
663
685
|
|
|
664
686
|
if (
|
|
665
|
-
!/(\<img|\<link|\<script)/g.test(layoutAssets[i])
|
|
666
|
-
|
|
687
|
+
!/(\<img|\<link|\<source|\<script)/g.test(layoutAssets[i])
|
|
688
|
+
// ||
|
|
689
|
+
// not able to handle srcset case for now
|
|
690
|
+
/**
|
|
691
|
+
/\<img/.test(layoutAssets[i])
|
|
692
|
+
&& /srcset/.test(layoutAssets[i])*/
|
|
667
693
|
) {
|
|
668
694
|
continue;
|
|
669
695
|
}
|
|
670
696
|
|
|
697
|
+
// https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/rel/preload
|
|
698
|
+
let asType = null;
|
|
699
|
+
|
|
671
700
|
if ( /\<img/.test(layoutAssets[i]) ) {
|
|
672
701
|
type = 'image';
|
|
673
702
|
tag = 'img';
|
|
703
|
+
asType = type;
|
|
674
704
|
}
|
|
675
705
|
|
|
676
|
-
|
|
677
|
-
type = 'javascript';
|
|
678
|
-
tag = 'script';
|
|
679
|
-
}
|
|
706
|
+
|
|
680
707
|
|
|
681
708
|
if ( /\<link/.test(layoutAssets[i]) ) {
|
|
682
|
-
if ( /rel\=\"stylesheet/.test(layoutAssets[i]) ) {
|
|
683
|
-
|
|
684
|
-
} else if ( /rel\=\"(icon|(.*)\-icon)/.test(layoutAssets[i]) ) {
|
|
685
|
-
|
|
686
|
-
} else {
|
|
687
|
-
|
|
709
|
+
// if ( /rel\=\"stylesheet/.test(layoutAssets[i]) ) {
|
|
710
|
+
// type = 'stylesheet';
|
|
711
|
+
// } else if ( /rel\=\"(icon|(.*)\-icon)/.test(layoutAssets[i]) ) {
|
|
712
|
+
// type = 'image';
|
|
713
|
+
// } else {
|
|
714
|
+
// type = 'file';
|
|
715
|
+
// }
|
|
716
|
+
type = layoutAssets[i].match(/rel=\"[-a-z 0-9]+\"/)[0] || null;
|
|
717
|
+
if (type) {
|
|
718
|
+
type = type.replace(/^rel\=\"|"$/g, '');
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
|
|
722
|
+
switch (type) {
|
|
723
|
+
case /stylesheet/.test(type):
|
|
724
|
+
asType = 'style';
|
|
725
|
+
break;
|
|
726
|
+
|
|
727
|
+
case /javascript/.test(type):
|
|
728
|
+
asType = 'script';
|
|
729
|
+
break;
|
|
730
|
+
|
|
731
|
+
default:
|
|
732
|
+
asType = null;
|
|
733
|
+
if ( /icon/.test(type) ) {
|
|
734
|
+
asType = 'image';
|
|
735
|
+
// ignoring all (fav)icons type: rel="*icon*" case
|
|
736
|
+
continue;
|
|
737
|
+
}
|
|
738
|
+
if ( /font/.test(type) ) {
|
|
739
|
+
asType = 'font';
|
|
740
|
+
}
|
|
741
|
+
// if ( /manifest/.test(type) ) {
|
|
742
|
+
// asType = 'webmanifest';
|
|
743
|
+
// }
|
|
744
|
+
break;
|
|
688
745
|
}
|
|
689
746
|
|
|
690
747
|
tag = 'link';
|
|
691
748
|
}
|
|
692
749
|
|
|
750
|
+
if ( /\<source/.test(layoutAssets[i]) ) {
|
|
751
|
+
if ( /type\=\"image/.test(layoutAssets[i]) ) {
|
|
752
|
+
type = 'image';
|
|
753
|
+
}
|
|
754
|
+
|
|
755
|
+
tag = 'source';
|
|
756
|
+
}
|
|
757
|
+
|
|
758
|
+
if ( /\<script/.test(layoutAssets[i]) ) {
|
|
759
|
+
type = 'javascript';
|
|
760
|
+
tag = 'script';
|
|
761
|
+
}
|
|
762
|
+
|
|
693
763
|
domain = null;
|
|
764
|
+
let isEncodedContent = false;
|
|
765
|
+
// repsonsive images
|
|
766
|
+
// https://html.spec.whatwg.org/multipage/semantics.html#attr-link-imagesrcset
|
|
767
|
+
let srcset = null;
|
|
768
|
+
// https://html.spec.whatwg.org/multipage/semantics.html#attr-link-imagesizes
|
|
769
|
+
let sizes = null;
|
|
770
|
+
let urlArr = null;
|
|
694
771
|
try {
|
|
695
|
-
|
|
772
|
+
urlArr = layoutAssets[i].match(/(src|href|srcset)\=(\".*?\"|\'.*?\')/g);
|
|
773
|
+
for (let u=0, uLen=urlArr.length; u<uLen; u++) {
|
|
774
|
+
if ( /data\:/.test(urlArr[u]) ) {
|
|
775
|
+
isEncodedContent = true;
|
|
776
|
+
break;
|
|
777
|
+
}
|
|
778
|
+
if ( /^srcset\=/.test(urlArr[u]) ) {
|
|
779
|
+
srcset = urlArr[u]
|
|
780
|
+
.replace(/((src|href|srcset)\=\"|(src|href|srcset)\=\')/g, '')
|
|
781
|
+
.replace(/\"/g, '');
|
|
782
|
+
if ( /source/i.test(tag) ) {
|
|
783
|
+
sourceTagSrcSetStr += srcset + ','
|
|
784
|
+
}
|
|
785
|
+
}
|
|
786
|
+
if ( /^(src|href)\=/.test(urlArr[u]) ) {
|
|
787
|
+
url = urlArr[u]
|
|
788
|
+
.replace(/((src|href|srcset)\=\"|(src|href|srcset)\=\')/g, '')
|
|
789
|
+
.replace(/\"/g, '');
|
|
790
|
+
}
|
|
791
|
+
}
|
|
792
|
+
if ( isEncodedContent ) { // ignoring "data:..."
|
|
793
|
+
continue
|
|
794
|
+
}
|
|
795
|
+
// url = urlArr[0];
|
|
696
796
|
} catch (err) {
|
|
697
|
-
console.warn('Problem with this asset ('+ i +'/'+ len +'): '+ layoutAssets[i].
|
|
797
|
+
console.warn('Problem with this asset ('+ i +'/'+ len +'): '+ layoutAssets[i].substring(0, 80) +'...');
|
|
698
798
|
continue;
|
|
699
799
|
}
|
|
700
800
|
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
continue
|
|
801
|
+
if ( /source/i.test(tag) ) {
|
|
802
|
+
continue;
|
|
704
803
|
}
|
|
804
|
+
|
|
805
|
+
|
|
806
|
+
// if ( /data\:/.test(url) ) { // ignoring "data:..."
|
|
807
|
+
// continue
|
|
808
|
+
// }
|
|
705
809
|
//url = url.replace(/((src|href)\=\"|(src|href)\=\'|\"|\')/g, '');
|
|
706
|
-
url = url
|
|
810
|
+
// url = url
|
|
811
|
+
// .replace(/((src|href|srcset)\=\"|(src|href|srcset)\=\')/g, '')
|
|
812
|
+
// .replace(/\"/g, '')
|
|
813
|
+
// ;
|
|
707
814
|
if ( !/^\{\{/.test(url) ) {
|
|
708
815
|
url = url.replace(/(\"|\')/g, '');
|
|
709
816
|
}
|
|
710
|
-
if (swig && /^\{\{/.test(url) )
|
|
817
|
+
if (swig && /^\{\{/.test(url) ) {
|
|
711
818
|
url = swig.compile(url, swig.getOptions())(data);
|
|
819
|
+
}
|
|
712
820
|
|
|
713
821
|
if (!/(\:\/\/|^\/\/)/.test(url) ) {
|
|
714
822
|
filename = getAssetFilenameFromUrl(bundleConf, url);
|
|
@@ -728,7 +836,7 @@ function Server(options) {
|
|
|
728
836
|
isAvailable = ( /404/.test(filename) ) ? false : true;
|
|
729
837
|
if ( isAvailable ) {
|
|
730
838
|
try {
|
|
731
|
-
ext = url.
|
|
839
|
+
ext = url.substring(url.lastIndexOf('.')).match(/(\.[A-Za-z0-9]+)/)[0];
|
|
732
840
|
} catch(err) {
|
|
733
841
|
|
|
734
842
|
console.warn('No extension found for `'+ filename +'`\n'+ err.stack );
|
|
@@ -739,15 +847,41 @@ function Server(options) {
|
|
|
739
847
|
|
|
740
848
|
assets[key] = {
|
|
741
849
|
type : type,
|
|
850
|
+
as : asType,
|
|
742
851
|
url : url,
|
|
743
852
|
ext : ext,
|
|
744
|
-
mime : (!ext) ? 'NA' : (bundleConf.server.coreConfiguration.mime[ext.
|
|
853
|
+
mime : (!ext) ? 'NA' : (bundleConf.server.coreConfiguration.mime[ext.substring(1)] || 'NA'),
|
|
745
854
|
filename : ( /404/.test(filename) ) ? 'not found' : filename,
|
|
746
855
|
isAvailable : isAvailable
|
|
747
856
|
};
|
|
748
857
|
|
|
749
|
-
|
|
858
|
+
//sourceTagSrcSetStr
|
|
859
|
+
if (sourceTagSrcSetStr.length > 0) {
|
|
860
|
+
assets[key]['imagesrcset'] = sourceTagSrcSetStr.substring(0, sourceTagSrcSetStr.length-1);
|
|
861
|
+
// reset
|
|
862
|
+
sourceTagSrcSetStr = '';
|
|
863
|
+
}
|
|
864
|
+
|
|
865
|
+
if (srcset) {
|
|
866
|
+
if ( typeof(assets[key]['imagesrcset']) != 'undefined' ) {
|
|
867
|
+
assets[key]['imagesrcset'] += ', '+ srcset;
|
|
868
|
+
} else {
|
|
869
|
+
assets[key]['imagesrcset'] = srcset;
|
|
870
|
+
}
|
|
871
|
+
|
|
872
|
+
}
|
|
873
|
+
|
|
874
|
+
if (sizes) {
|
|
875
|
+
if ( typeof(assets[key]['imagesizes']) != 'undefined' ) {
|
|
876
|
+
assets[key]['imagesizes'] += ', '+ sizes;
|
|
877
|
+
} else {
|
|
878
|
+
assets[key]['imagesizes'] = sizes;
|
|
879
|
+
}
|
|
880
|
+
}
|
|
881
|
+
|
|
882
|
+
if (domain) {
|
|
750
883
|
assets[key].domain = domain;
|
|
884
|
+
}
|
|
751
885
|
|
|
752
886
|
if ( type == 'stylesheet' && !/not found/.test(assets[key].filename) ) {
|
|
753
887
|
cssFiles.push(assets[key].filename)
|
|
@@ -873,14 +1007,14 @@ function Server(options) {
|
|
|
873
1007
|
//key = (( /404/.test(filename) ) ? '[404]' : '[200]') +' '+ url;
|
|
874
1008
|
key = url;
|
|
875
1009
|
isAvailable = ( /404/.test(filename) ) ? false : true;
|
|
876
|
-
ext = url.
|
|
1010
|
+
ext = url.substring(url.lastIndexOf('.')).match(/(\.[A-Za-z0-9]+)/)[0];
|
|
877
1011
|
assets[key] = {
|
|
878
1012
|
referrer : cssFiles[i],
|
|
879
1013
|
definition : definition,
|
|
880
1014
|
type : type,
|
|
881
1015
|
url : url,
|
|
882
1016
|
ext : ext,
|
|
883
|
-
mime : bundleConf.server.coreConfiguration.mime[ext.
|
|
1017
|
+
mime : bundleConf.server.coreConfiguration.mime[ext.substring(1)] || 'NA',
|
|
884
1018
|
filename : ( /404/.test(filename) ) ? 'not found' : filename
|
|
885
1019
|
};
|
|
886
1020
|
|
|
@@ -1035,8 +1169,8 @@ function Server(options) {
|
|
|
1035
1169
|
return name
|
|
1036
1170
|
}
|
|
1037
1171
|
|
|
1038
|
-
var env = self.conf.env
|
|
1039
|
-
, scope = self.conf.scope
|
|
1172
|
+
var env = self.conf.env || self.env
|
|
1173
|
+
, scope = self.conf.scope || self.scope
|
|
1040
1174
|
;
|
|
1041
1175
|
|
|
1042
1176
|
for (let i=0, len=matched.length; i<len; ++i) {
|
|
@@ -1054,6 +1188,9 @@ function Server(options) {
|
|
|
1054
1188
|
project = arr[0];
|
|
1055
1189
|
env = (arr[1]) ? arr[1] : env;
|
|
1056
1190
|
}
|
|
1191
|
+
if ( typeof(self.conf[bundle]) == 'undefined' ) {
|
|
1192
|
+
continue;
|
|
1193
|
+
}
|
|
1057
1194
|
scheme = self.conf[bundle][env].server.scheme;
|
|
1058
1195
|
hostname = ( !self.conf[bundle][env].hostname ) ? self.conf[bundle][env].server.scheme + '://' + self.conf[bundle][env].host + ':' + self.conf[bundle][env].server.port : self.conf[bundle][env].hostname;
|
|
1059
1196
|
name = name.replace(oldHost, hostname);
|
|
@@ -1122,13 +1259,13 @@ function Server(options) {
|
|
|
1122
1259
|
}
|
|
1123
1260
|
|
|
1124
1261
|
this.onHttp2Stream = function(stream, headers, response) {
|
|
1125
|
-
var header
|
|
1126
|
-
, isWebroot
|
|
1127
|
-
, pathname
|
|
1128
|
-
, asset
|
|
1129
|
-
, assets
|
|
1130
|
-
, conf
|
|
1131
|
-
,
|
|
1262
|
+
var header = null
|
|
1263
|
+
, isWebroot = false
|
|
1264
|
+
, pathname = null
|
|
1265
|
+
, asset = null
|
|
1266
|
+
, assets = this._options.template.assets
|
|
1267
|
+
, conf = this._options.conf
|
|
1268
|
+
, isCacheless = conf.isCacheless
|
|
1132
1269
|
;
|
|
1133
1270
|
|
|
1134
1271
|
|
|
@@ -1227,7 +1364,7 @@ function Server(options) {
|
|
|
1227
1364
|
':status': 301
|
|
1228
1365
|
};
|
|
1229
1366
|
|
|
1230
|
-
if (
|
|
1367
|
+
if (isCacheless) {
|
|
1231
1368
|
header['cache-control'] = 'no-cache, no-store, must-revalidate';
|
|
1232
1369
|
header['pragma'] = 'no-cache';
|
|
1233
1370
|
header['expires'] = '0';
|
|
@@ -1300,7 +1437,7 @@ function Server(options) {
|
|
|
1300
1437
|
header['content-length'] = fs.statSync(assets[ url ].filename).size;
|
|
1301
1438
|
}
|
|
1302
1439
|
|
|
1303
|
-
if (
|
|
1440
|
+
if (isCacheless) {
|
|
1304
1441
|
// source maps integration for javascript & css
|
|
1305
1442
|
if ( /(.js|.css)$/.test(asset.filename) && fs.existsSync(asset.filename +'.map') ) {
|
|
1306
1443
|
//pathname = asset.filename +'.map';
|
|
@@ -1389,7 +1526,7 @@ function Server(options) {
|
|
|
1389
1526
|
self._options.conf = bundleConf
|
|
1390
1527
|
}
|
|
1391
1528
|
|
|
1392
|
-
var
|
|
1529
|
+
var isCacheless = bundleConf.isCacheless;
|
|
1393
1530
|
// by default
|
|
1394
1531
|
var filename = bundleConf.publicPath + pathname;
|
|
1395
1532
|
var isFilenameDir = null
|
|
@@ -1417,7 +1554,6 @@ function Server(options) {
|
|
|
1417
1554
|
var key = pathname.replace(pathname.split('/').splice(-1), '');
|
|
1418
1555
|
for ( ; s < sLen; ++s ) {
|
|
1419
1556
|
if ( bundleConf.staticResources[s] == key ) {
|
|
1420
|
-
// if ( eval('/^' + bundleConf.staticResources[s].replace(/\//g,'\\/') +'/').test(pathname) ) {
|
|
1421
1557
|
filename = bundleConf.content.statics[ bundleConf.staticResources[s] ] +'/'+ pathname.replace(bundleConf.staticResources[s], '');
|
|
1422
1558
|
break;
|
|
1423
1559
|
}
|
|
@@ -1431,9 +1567,11 @@ function Server(options) {
|
|
|
1431
1567
|
|
|
1432
1568
|
|
|
1433
1569
|
filename = decodeURIComponent(filename);
|
|
1434
|
-
|
|
1570
|
+
let filenameObj = new _(filename, true);
|
|
1571
|
+
filenameObj.exists(function onStaticExists(exists) {
|
|
1572
|
+
// fs.exists(filename, function onStaticExists(exists) {
|
|
1435
1573
|
|
|
1436
|
-
if (!
|
|
1574
|
+
if (!exists) {
|
|
1437
1575
|
return throwError(response, 404, 'Page not found: \n' + pathname, next);
|
|
1438
1576
|
}
|
|
1439
1577
|
|
|
@@ -1446,48 +1584,49 @@ function Server(options) {
|
|
|
1446
1584
|
if ( !fs.existsSync(filename) ) {
|
|
1447
1585
|
throwError(response, 403, 'Forbidden: \n' + pathname, next);
|
|
1448
1586
|
return;
|
|
1449
|
-
}
|
|
1450
|
-
var ext = 'html';
|
|
1451
|
-
if ( /http\/2/.test(protocol) ) {
|
|
1452
|
-
header = {
|
|
1453
|
-
':status': 301,
|
|
1454
|
-
'location': request.url,
|
|
1455
|
-
'content-type': bundleConf.server.coreConfiguration.mime[ext]+'; charset='+ bundleConf.encoding
|
|
1456
|
-
};
|
|
1587
|
+
}
|
|
1457
1588
|
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1589
|
+
var ext = 'html';
|
|
1590
|
+
if ( /http\/2/.test(protocol) ) {
|
|
1591
|
+
header = {
|
|
1592
|
+
':status': 301,
|
|
1593
|
+
'location': request.url,
|
|
1594
|
+
'content-type': bundleConf.server.coreConfiguration.mime[ext]+'; charset='+ bundleConf.encoding
|
|
1595
|
+
};
|
|
1465
1596
|
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1597
|
+
if (isCacheless) {
|
|
1598
|
+
header['cache-control'] = 'no-cache, no-store, must-revalidate';
|
|
1599
|
+
header['pragma'] = 'no-cache';
|
|
1600
|
+
header['expires'] = '0';
|
|
1601
|
+
}
|
|
1602
|
+
request = checkPreflightRequest(request, response);
|
|
1603
|
+
header = completeHeaders(header, request, response);
|
|
1470
1604
|
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
completeHeaders(null, request, response);
|
|
1475
|
-
if (cacheless) {
|
|
1476
|
-
response.writeHead(301, {
|
|
1477
|
-
'cache-control': 'no-cache, no-store, must-revalidate', // preventing browsers from using cache
|
|
1478
|
-
'pragma': 'no-cache',
|
|
1479
|
-
'expires': '0',
|
|
1480
|
-
'content-type': bundleConf.server.coreConfiguration.mime[ext]
|
|
1481
|
-
});
|
|
1482
|
-
}
|
|
1483
|
-
response.end()
|
|
1605
|
+
if (!stream.destroyed) {
|
|
1606
|
+
stream.respond(header);
|
|
1607
|
+
stream.end();
|
|
1484
1608
|
}
|
|
1609
|
+
|
|
1610
|
+
} else {
|
|
1611
|
+
response.setHeader('location', request.url);
|
|
1612
|
+
request = checkPreflightRequest(request, response);
|
|
1613
|
+
completeHeaders(null, request, response);
|
|
1614
|
+
if (isCacheless) {
|
|
1615
|
+
response.writeHead(301, {
|
|
1616
|
+
'cache-control': 'no-cache, no-store, must-revalidate', // preventing browsers from using cache
|
|
1617
|
+
'pragma': 'no-cache',
|
|
1618
|
+
'expires': '0',
|
|
1619
|
+
'content-type': bundleConf.server.coreConfiguration.mime[ext]
|
|
1620
|
+
});
|
|
1621
|
+
}
|
|
1622
|
+
response.end()
|
|
1485
1623
|
}
|
|
1624
|
+
|
|
1486
1625
|
return;
|
|
1487
1626
|
}
|
|
1488
1627
|
|
|
1489
1628
|
|
|
1490
|
-
if (
|
|
1629
|
+
if (isCacheless) {
|
|
1491
1630
|
delete require.cache[require.resolve(filename)];
|
|
1492
1631
|
}
|
|
1493
1632
|
|
|
@@ -1537,8 +1676,12 @@ function Server(options) {
|
|
|
1537
1676
|
request.url = ( ext != null && typeof(ext[0]) != 'undefined' ) ? request.url : request.url + 'index.html';
|
|
1538
1677
|
|
|
1539
1678
|
self._responseHeaders = response.getHeaders();
|
|
1540
|
-
if (
|
|
1679
|
+
if (
|
|
1680
|
+
!isBinary
|
|
1681
|
+
&& typeof(self._options.template.assets[request.url]) == 'undefined'
|
|
1682
|
+
) {
|
|
1541
1683
|
self._options.template.assets = getAssets(bundleConf, file);
|
|
1684
|
+
}
|
|
1542
1685
|
|
|
1543
1686
|
if (
|
|
1544
1687
|
typeof(self._options.template.assets[request.url]) == 'undefined'
|
|
@@ -1603,7 +1746,7 @@ function Server(options) {
|
|
|
1603
1746
|
'location': request.url
|
|
1604
1747
|
};
|
|
1605
1748
|
|
|
1606
|
-
if (
|
|
1749
|
+
if (isCacheless) {
|
|
1607
1750
|
header['cache-control'] = 'no-cache, no-store, must-revalidate';
|
|
1608
1751
|
header['pragma'] = 'no-cache';
|
|
1609
1752
|
header['expires'] = '0';
|
|
@@ -1674,11 +1817,11 @@ function Server(options) {
|
|
|
1674
1817
|
'content-type': contentType + '; charset='+ bundleConf.encoding
|
|
1675
1818
|
};
|
|
1676
1819
|
|
|
1677
|
-
if (
|
|
1820
|
+
if (isCacheless) {
|
|
1678
1821
|
// source maps integration for javascript & css
|
|
1679
1822
|
if ( /(.js|.css)$/.test(filename) && fs.existsSync(filename +'.map') && !/sourceMappingURL/.test(file) ) {
|
|
1680
1823
|
//pathname = pathname +'.map';
|
|
1681
|
-
pathname = webroot + pathname.
|
|
1824
|
+
pathname = webroot + pathname.substring(1) +'.map';
|
|
1682
1825
|
// serve without cache
|
|
1683
1826
|
header['X-SourceMap'] = pathname;
|
|
1684
1827
|
header['cache-control'] = 'no-cache, no-store, must-revalidate';
|
|
@@ -1708,11 +1851,11 @@ function Server(options) {
|
|
|
1708
1851
|
response.setHeader('content-length', fs.statSync(filename).size);
|
|
1709
1852
|
}
|
|
1710
1853
|
|
|
1711
|
-
if (
|
|
1854
|
+
if (isCacheless) {
|
|
1712
1855
|
// source maps integration for javascript & css
|
|
1713
1856
|
if ( /(.js|.css)$/.test(filename) && fs.existsSync(filename +'.map') && !/sourceMappingURL/.test(file) ) {
|
|
1714
1857
|
//pathname = pathname +'.map'
|
|
1715
|
-
pathname = webroot + pathname.
|
|
1858
|
+
pathname = webroot + pathname.substring(1) +'.map';
|
|
1716
1859
|
response.setHeader("X-SourceMap", pathname)
|
|
1717
1860
|
}
|
|
1718
1861
|
|
|
@@ -1753,7 +1896,8 @@ function Server(options) {
|
|
|
1753
1896
|
});
|
|
1754
1897
|
|
|
1755
1898
|
|
|
1756
|
-
})
|
|
1899
|
+
});
|
|
1900
|
+
filenameObj = null;
|
|
1757
1901
|
}
|
|
1758
1902
|
|
|
1759
1903
|
|
|
@@ -1864,7 +2008,7 @@ function Server(options) {
|
|
|
1864
2008
|
if ( typeof(ext) != 'undefined' && ext != null) {
|
|
1865
2009
|
ext = ext[0];
|
|
1866
2010
|
// if image with `@` found
|
|
1867
|
-
if ( /^image/i.test(self.conf[self.appName][self.env].server.coreConfiguration.mime[ext.
|
|
2011
|
+
if ( /^image/i.test(self.conf[self.appName][self.env].server.coreConfiguration.mime[ext.substring(1)]) ) {
|
|
1868
2012
|
isImage = true
|
|
1869
2013
|
}
|
|
1870
2014
|
}
|
|
@@ -1873,7 +2017,7 @@ function Server(options) {
|
|
|
1873
2017
|
// and must not be an email
|
|
1874
2018
|
&& !/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(request.url)
|
|
1875
2019
|
// and must be handled by mime.types
|
|
1876
|
-
&& typeof(self.conf[self.appName][self.env].server.coreConfiguration.mime[ext.
|
|
2020
|
+
&& typeof(self.conf[self.appName][self.env].server.coreConfiguration.mime[ext.substring(1)]) != 'undefined'
|
|
1877
2021
|
||
|
|
1878
2022
|
ext != null
|
|
1879
2023
|
&& isImage
|
|
@@ -1899,7 +2043,7 @@ function Server(options) {
|
|
|
1899
2043
|
|
|
1900
2044
|
if (
|
|
1901
2045
|
staticProps.isStaticFilename && staticsArr.indexOf(request.url) > -1
|
|
1902
|
-
|| staticProps.isStaticFilename && staticsArr.indexOf( request.url.replace(request.url.
|
|
2046
|
+
|| staticProps.isStaticFilename && staticsArr.indexOf( request.url.replace(request.url.substring(request.url.lastIndexOf('/')+1), '') ) > -1
|
|
1903
2047
|
|| staticProps.isStaticFilename && new RegExp('^'+ staticProps.firstLevel).test(request.url)
|
|
1904
2048
|
|| /\/$/.test(request.url) && !isWebrootHandledByRouting && !/\/engine\.io\//.test(request.url)
|
|
1905
2049
|
) {
|
|
@@ -2067,11 +2211,14 @@ function Server(options) {
|
|
|
2067
2211
|
'method': 'POST',
|
|
2068
2212
|
'bundle' : self.appName
|
|
2069
2213
|
};
|
|
2070
|
-
var busboy =
|
|
2214
|
+
var busboy = Busboy({ headers: request.headers });
|
|
2071
2215
|
|
|
2072
2216
|
// busboy.on('field', function(fieldname, val, fieldnameTruncated, valTruncated) {
|
|
2073
2217
|
// console.log('Field [' + fieldname + ']: value: ' + inspect(val));
|
|
2074
2218
|
// });
|
|
2219
|
+
|
|
2220
|
+
// Attention: on busboy upgrade, we needs to adapt `busboy/lib/types/multipart.js`
|
|
2221
|
+
// For this, check the emit method
|
|
2075
2222
|
busboy.on('file', function(fieldname, file, filename, encoding, mimetype, group) {
|
|
2076
2223
|
|
|
2077
2224
|
file._dataLen = 0;
|
|
@@ -2087,7 +2234,7 @@ function Server(options) {
|
|
|
2087
2234
|
&& opt.groups[group].allowedExtensions != '*'
|
|
2088
2235
|
) {
|
|
2089
2236
|
var ext = opt.groups[group].allowedExtensions;
|
|
2090
|
-
var fileExt = filename.
|
|
2237
|
+
var fileExt = filename.substring(filename.lastIndexOf('.')+1)
|
|
2091
2238
|
if ( !Array.isArray(ext) ) {
|
|
2092
2239
|
ext = [ext]
|
|
2093
2240
|
}
|
|
@@ -2247,8 +2394,8 @@ function Server(options) {
|
|
|
2247
2394
|
request.body = request.body.replace(/\+/g, ' ');
|
|
2248
2395
|
}
|
|
2249
2396
|
|
|
2250
|
-
if ( request.body.
|
|
2251
|
-
request.body = request.body.
|
|
2397
|
+
if ( request.body.substring(0,1) == '?')
|
|
2398
|
+
request.body = request.body.substring(1);
|
|
2252
2399
|
|
|
2253
2400
|
try {
|
|
2254
2401
|
bodyStr = decodeURIComponent(request.body); // it is already a string for sure
|
|
@@ -2399,8 +2546,8 @@ function Server(options) {
|
|
|
2399
2546
|
request.body = request.body.replace(/\+/g, ' ');
|
|
2400
2547
|
}
|
|
2401
2548
|
|
|
2402
|
-
if ( request.body.
|
|
2403
|
-
request.body = request.body.
|
|
2549
|
+
if ( request.body.substring(0,1) == '?')
|
|
2550
|
+
request.body = request.body.substring(1);
|
|
2404
2551
|
|
|
2405
2552
|
// false & true case
|
|
2406
2553
|
try {
|
|
@@ -2521,8 +2668,10 @@ function Server(options) {
|
|
|
2521
2668
|
|
|
2522
2669
|
var config = new Config();
|
|
2523
2670
|
config.setBundles(self.bundles);
|
|
2524
|
-
|
|
2525
|
-
|
|
2671
|
+
// for all loaded bundles
|
|
2672
|
+
var conf = config.getInstance();
|
|
2673
|
+
//for cacheless mode
|
|
2674
|
+
if ( typeof(conf) != 'undefined') {
|
|
2526
2675
|
self.conf = conf;
|
|
2527
2676
|
}
|
|
2528
2677
|
|
|
@@ -2537,7 +2686,7 @@ function Server(options) {
|
|
|
2537
2686
|
if (self.bundles.indexOf(b) < 0) continue;
|
|
2538
2687
|
if ( typeof(conf[b][self.env].content) != 'undefined' && typeof(conf[b][self.env].content.statics) != 'undefined' && conf[b][self.env].content.statics.count() > 0 ) {
|
|
2539
2688
|
for (let s in conf[b][self.env].content.statics) {
|
|
2540
|
-
s = (s.
|
|
2689
|
+
s = (s.substring(0,1) == '/') ? s.substring(1) : s;
|
|
2541
2690
|
if ( (new RegExp('^/'+s)).test(pathname) ) {
|
|
2542
2691
|
bundle = b;
|
|
2543
2692
|
break end
|
|
@@ -2572,18 +2721,18 @@ function Server(options) {
|
|
|
2572
2721
|
}
|
|
2573
2722
|
|
|
2574
2723
|
var onBundleConfigLoaded = function(bundle, options) {
|
|
2575
|
-
var err
|
|
2576
|
-
,
|
|
2577
|
-
, pathname
|
|
2578
|
-
, req
|
|
2579
|
-
, res
|
|
2580
|
-
, config
|
|
2581
|
-
, next
|
|
2582
|
-
, callback
|
|
2724
|
+
var err = options.err
|
|
2725
|
+
, isCacheless = options.config.isCacheless()
|
|
2726
|
+
, pathname = options.pathname
|
|
2727
|
+
, req = options.req
|
|
2728
|
+
, res = options.res
|
|
2729
|
+
, config = options.conf
|
|
2730
|
+
, next = options.next
|
|
2731
|
+
, callback = options.callback
|
|
2583
2732
|
;
|
|
2584
2733
|
|
|
2585
2734
|
//Reloading assets & files.
|
|
2586
|
-
// if (!
|
|
2735
|
+
// if (!isCacheless) { // all but dev & debug
|
|
2587
2736
|
callback(err, bundle, pathname, options.config, req, res, next)
|
|
2588
2737
|
// } else {
|
|
2589
2738
|
// config.refresh(bundle, function(err, routing) {
|
|
@@ -2706,7 +2855,7 @@ function Server(options) {
|
|
|
2706
2855
|
, isRoute = {}
|
|
2707
2856
|
, withViews = hasViews(bundle)
|
|
2708
2857
|
, router = local.router
|
|
2709
|
-
,
|
|
2858
|
+
, isCacheless = config.isCacheless()
|
|
2710
2859
|
, wroot = null
|
|
2711
2860
|
;
|
|
2712
2861
|
|
|
@@ -2736,6 +2885,11 @@ function Server(options) {
|
|
|
2736
2885
|
var isMethodAllowed = null, hostname = null;
|
|
2737
2886
|
out:
|
|
2738
2887
|
for (let name in routing) {
|
|
2888
|
+
// ignoring routes out of scope
|
|
2889
|
+
if ( routing[name].scopes.indexOf(process.env.NODE_SCOPE) < 0 ) {
|
|
2890
|
+
continue;
|
|
2891
|
+
}
|
|
2892
|
+
|
|
2739
2893
|
if ( typeof(routing[name]['param']) == 'undefined' ) {
|
|
2740
2894
|
break;
|
|
2741
2895
|
}
|
|
@@ -2961,11 +3115,11 @@ function Server(options) {
|
|
|
2961
3115
|
, ext = null
|
|
2962
3116
|
, isHtmlContent = false
|
|
2963
3117
|
, hasCustomErrorFile = false
|
|
2964
|
-
, eCode = code.toString().
|
|
3118
|
+
, eCode = code.toString().substring(0,1) + 'xx'
|
|
2965
3119
|
;
|
|
2966
|
-
var extArr = url.
|
|
3120
|
+
var extArr = url.substring(url.lastIndexOf('.')).match(/(\.[A-Za-z0-9]+)/);
|
|
2967
3121
|
if (extArr) {
|
|
2968
|
-
ext = extArr[0].
|
|
3122
|
+
ext = extArr[0].substring(1);
|
|
2969
3123
|
}
|
|
2970
3124
|
if ( !ext || /^(html|htm)$/i.test(ext) ) {
|
|
2971
3125
|
isHtmlContent = true;
|