gina 0.1.6-alpha.6 → 0.1.6-alpha.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. package/README-4Contributors.md +5 -5
  2. package/README.md +3 -3
  3. package/bin/cli +13 -0
  4. package/bin/gina +5 -0
  5. package/framework/v0.1.6-alpha.61/VERSION +1 -0
  6. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/asset/plugin/README.md +1 -0
  7. package/framework/v0.1.6-alpha.61/core/asset/plugin/dist/vendor/gina/css/gina.min.css.map +1 -0
  8. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/asset/plugin/dist/vendor/gina/js/gina.js +159 -27
  9. package/framework/v0.1.6-alpha.61/core/asset/plugin/dist/vendor/gina/js/gina.min.js +771 -0
  10. package/framework/v0.1.6-alpha.61/core/asset/plugin/dist/vendor/gina/js/gina.min.js.map +8 -0
  11. package/framework/v0.1.6-alpha.61/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +8 -0
  12. package/framework/v0.1.6-alpha.61/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.map +8 -0
  13. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/config.js +98 -24
  14. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/connectors/couchbase/lib/connector.v4.js +28 -22
  15. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/controller/controller.js +275 -36
  16. package/framework/v0.1.6-alpha.61/core/deps/busboy-1.6.0/.github/workflows/ci.yml +24 -0
  17. package/framework/v0.1.6-alpha.61/core/deps/busboy-1.6.0/.github/workflows/lint.yml +23 -0
  18. package/framework/v0.1.6-alpha.61/core/deps/busboy-1.6.0/LICENSE +19 -0
  19. package/framework/v0.1.6-alpha.61/core/deps/busboy-1.6.0/README.md +191 -0
  20. package/framework/v0.1.6-alpha.61/core/deps/busboy-1.6.0/bench/bench-multipart-fields-100mb-big.js +149 -0
  21. package/framework/v0.1.6-alpha.61/core/deps/busboy-1.6.0/bench/bench-multipart-fields-100mb-small.js +143 -0
  22. package/framework/v0.1.6-alpha.61/core/deps/busboy-1.6.0/bench/bench-multipart-files-100mb-big.js +154 -0
  23. package/framework/v0.1.6-alpha.61/core/deps/busboy-1.6.0/bench/bench-multipart-files-100mb-small.js +148 -0
  24. package/framework/v0.1.6-alpha.61/core/deps/busboy-1.6.0/bench/bench-urlencoded-fields-100pairs-small.js +101 -0
  25. package/framework/v0.1.6-alpha.61/core/deps/busboy-1.6.0/bench/bench-urlencoded-fields-900pairs-small-alt.js +84 -0
  26. package/framework/v0.1.6-alpha.61/core/deps/busboy-1.6.0/lib/index.js +57 -0
  27. package/framework/v0.1.6-alpha.61/core/deps/busboy-1.6.0/lib/types/multipart.js +680 -0
  28. package/framework/v0.1.6-alpha.61/core/deps/busboy-1.6.0/lib/types/urlencoded.js +350 -0
  29. package/framework/v0.1.6-alpha.61/core/deps/busboy-1.6.0/lib/utils.js +596 -0
  30. package/framework/v0.1.6-alpha.61/core/deps/busboy-1.6.0/package.json +22 -0
  31. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/gna.js +97 -18
  32. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/model/index.js +28 -24
  33. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/validator/src/main.js +43 -9
  34. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/router.js +74 -40
  35. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/server.isaac.js +28 -6
  36. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/server.js +31 -5
  37. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle/controllers/setup.js +2 -2
  38. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/context.js +16 -11
  39. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/path.js +25 -9
  40. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/bundle/add.js +2 -1
  41. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/bundle/start.js +20 -8
  42. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/build.js +1 -1
  43. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/init.js +18 -0
  44. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/link-node-modules.js +2 -3
  45. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/link.js +1 -0
  46. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/tail.js +5 -5
  47. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/version.js +15 -1
  48. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/helper.js +12 -5
  49. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/project/add.js +3 -2
  50. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/project/build.js +4 -4
  51. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/protocol/list.js +71 -50
  52. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/domain/src/main.js +59 -1
  53. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/merge/package.json +1 -1
  54. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/model.js +1 -1
  55. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/routing/src/main.js +49 -10
  56. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/session-store.js +2 -2
  57. package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/swig-filters/src/main.js +63 -8
  58. package/framework/v0.1.6-alpha.61/package.json +12 -0
  59. package/package.json +2 -2
  60. package/framework/v0.1.6-alpha.6/VERSION +0 -1
  61. package/framework/v0.1.6-alpha.6/core/asset/plugin/dist/vendor/gina/css/gina.min.css.map +0 -1
  62. package/framework/v0.1.6-alpha.6/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -765
  63. package/framework/v0.1.6-alpha.6/core/asset/plugin/dist/vendor/gina/js/gina.min.js.map +0 -8
  64. package/framework/v0.1.6-alpha.6/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -7
  65. package/framework/v0.1.6-alpha.6/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.map +0 -8
  66. package/framework/v0.1.6-alpha.6/package.json +0 -14
  67. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/AUTHORS +0 -0
  68. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/LICENSE +0 -0
  69. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/asset/html/nolayout.html +0 -0
  70. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/asset/html/static.html +0 -0
  71. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/asset/img/android-chrome-192x192.png +0 -0
  72. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/asset/img/android-chrome-512x512.png +0 -0
  73. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/asset/img/apple-touch-icon.png +0 -0
  74. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/asset/img/favicon-16x16.png +0 -0
  75. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/asset/img/favicon-32x32.png +0 -0
  76. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/asset/img/favicon.ico +0 -0
  77. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  78. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/asset/plugin/dist/vendor/gina/html/toolbar.html +0 -0
  79. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/asset/plugin/uuid.json +0 -0
  80. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/connectors/couchbase/index.js +0 -0
  81. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/connectors/couchbase/lib/connector.js +0 -0
  82. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/connectors/couchbase/lib/connector.v2.js +0 -0
  83. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  84. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/connectors/couchbase/lib/n1ql.js +0 -0
  85. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/connectors/couchbase/lib/session-store.js +0 -0
  86. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/connectors/couchbase/lib/session-store.v2.js +0 -0
  87. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  88. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  89. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/controller/controller.framework.js +0 -0
  90. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/controller/index.js +0 -0
  91. /package/framework/{v0.1.6-alpha.6/core/deps/busboy → v0.1.6-alpha.61/core/deps/busboy-0.2.14}/.travis.yml +0 -0
  92. /package/framework/{v0.1.6-alpha.6/core/deps/busboy → v0.1.6-alpha.61/core/deps/busboy-0.2.14}/LICENSE +0 -0
  93. /package/framework/{v0.1.6-alpha.6/core/deps/busboy → v0.1.6-alpha.61/core/deps/busboy-0.2.14}/README.md +0 -0
  94. /package/framework/{v0.1.6-alpha.6/core/deps/busboy → v0.1.6-alpha.61/core/deps/busboy-0.2.14}/deps/encoding/encoding-indexes.js +0 -0
  95. /package/framework/{v0.1.6-alpha.6/core/deps/busboy → v0.1.6-alpha.61/core/deps/busboy-0.2.14}/deps/encoding/encoding.js +0 -0
  96. /package/framework/{v0.1.6-alpha.6/core/deps/busboy → v0.1.6-alpha.61/core/deps/busboy-0.2.14}/lib/main.js +0 -0
  97. /package/framework/{v0.1.6-alpha.6/core/deps/busboy → v0.1.6-alpha.61/core/deps/busboy-0.2.14}/lib/types/multipart.js +0 -0
  98. /package/framework/{v0.1.6-alpha.6/core/deps/busboy → v0.1.6-alpha.61/core/deps/busboy-0.2.14}/lib/types/urlencoded.js +0 -0
  99. /package/framework/{v0.1.6-alpha.6/core/deps/busboy → v0.1.6-alpha.61/core/deps/busboy-0.2.14}/lib/utils.js +0 -0
  100. /package/framework/{v0.1.6-alpha.6/core/deps/busboy → v0.1.6-alpha.61/core/deps/busboy-0.2.14}/package.json +0 -0
  101. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/deps/swig-client/swig-2.0.0.min.js +0 -0
  102. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/dev/index.js +0 -0
  103. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/dev/lib/class.js +0 -0
  104. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/dev/lib/factory.js +0 -0
  105. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/dev/lib/tools.js +0 -0
  106. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/locales/README.md +0 -0
  107. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/locales/currency.json +0 -0
  108. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/locales/dist/language/en.json +0 -0
  109. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/locales/dist/language/fr.json +0 -0
  110. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/locales/dist/region/en.json +0 -0
  111. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/locales/dist/region/fr.json +0 -0
  112. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/locales/index.js +0 -0
  113. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/locales/src/make.js +0 -0
  114. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/locales/src/resources/currency.csv +0 -0
  115. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/locales/src/resources/region.csv +0 -0
  116. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/locales/src/resources/region.mapping.json +0 -0
  117. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/mime.types +0 -0
  118. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/model/entity.js +0 -0
  119. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/model/template/entityFactory.js +0 -0
  120. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/model/template/index.js +0 -0
  121. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/README.md +0 -0
  122. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/index.js +0 -0
  123. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/file/README.md +0 -0
  124. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/file/build.json +0 -0
  125. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/file/package.json +0 -0
  126. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/intl/README.md +0 -0
  127. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/intl/build.json +0 -0
  128. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/intl/package.json +0 -0
  129. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/intl/src/main.js +0 -0
  130. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/storage/README.md +0 -0
  131. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/storage/build.json +0 -0
  132. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/storage/package.json +0 -0
  133. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/storage/src/main.js +0 -0
  134. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/validator/README.md +0 -0
  135. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/validator/build.json +0 -0
  136. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/validator/package.json +0 -0
  137. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/plugins/lib/validator/src/form-validator.js +0 -0
  138. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/server.express.js +0 -0
  139. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/status.codes +0 -0
  140. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/_gitignore +0 -0
  141. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle/config/app.json +0 -0
  142. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle/config/routing.json +0 -0
  143. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle/config/settings.json +0 -0
  144. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  145. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle/config/templates.json +0 -0
  146. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  147. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  148. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle/index.js +0 -0
  149. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  150. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  151. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  152. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  153. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  154. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle_public/readme.md +0 -0
  155. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  156. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  157. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  158. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  159. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  160. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/command/gina.bat.tpl +0 -0
  161. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/command/gina.tpl +0 -0
  162. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/conf/env.json +0 -0
  163. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/conf/manifest.json +0 -0
  164. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/conf/package.json +0 -0
  165. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/conf/settings.json +0 -0
  166. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/conf/statics.json +0 -0
  167. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/conf/templates.json +0 -0
  168. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/error/client/json/401.json +0 -0
  169. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/error/client/json/403.json +0 -0
  170. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/error/client/json/404.json +0 -0
  171. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/error/server/html/50x.html +0 -0
  172. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/error/server/json/500.json +0 -0
  173. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/error/server/json/503.json +0 -0
  174. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/core/template/extensions/logger/config.json +0 -0
  175. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/console.js +0 -0
  176. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/data/LICENSE +0 -0
  177. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/data/README.md +0 -0
  178. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/data/package.json +0 -0
  179. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/data/src/main.js +0 -0
  180. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/dateFormat.js +0 -0
  181. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/index.js +0 -0
  182. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/json/LICENSE +0 -0
  183. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/json/README.md +0 -0
  184. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/json/package.json +0 -0
  185. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/json/src/main.js +0 -0
  186. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/plugins/README.md +0 -0
  187. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/plugins/package.json +0 -0
  188. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/plugins/src/api-error.js +0 -0
  189. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/plugins/src/main.js +0 -0
  190. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/prototypes.js +0 -0
  191. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/task.js +0 -0
  192. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/helpers/text.js +0 -0
  193. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/archiver/README.md +0 -0
  194. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/archiver/build.json +0 -0
  195. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/archiver/package.json +0 -0
  196. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/archiver/src/dep/jszip.min.js +0 -0
  197. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/archiver/src/main.js +0 -0
  198. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/aliases.json +0 -0
  199. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/bundle/arguments.json +0 -0
  200. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/bundle/copy.js +0 -0
  201. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/bundle/cp.js +0 -0
  202. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/bundle/help.js +0 -0
  203. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/bundle/help.txt +0 -0
  204. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/bundle/list.js +0 -0
  205. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/bundle/remove.js +0 -0
  206. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/bundle/rename.js +0 -0
  207. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/bundle/restart.js +0 -0
  208. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/bundle/rm.js +0 -0
  209. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/bundle/status.js +0 -0
  210. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/bundle/stop.js +0 -0
  211. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/env/add.js +0 -0
  212. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/env/get.js +0 -0
  213. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/env/help.js +0 -0
  214. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/env/help.txt +0 -0
  215. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/env/link-dev.js +0 -0
  216. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/env/list.js +0 -0
  217. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/env/remove.js +0 -0
  218. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/env/rm.js +0 -0
  219. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/env/set.js +0 -0
  220. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/env/unset.js +0 -0
  221. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/env/use.js +0 -0
  222. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/dot.js +0 -0
  223. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/get.js +0 -0
  224. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/help.js +0 -0
  225. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/help.txt +0 -0
  226. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/msg.json +0 -0
  227. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/open.js +0 -0
  228. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/restart.js +0 -0
  229. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/set.js +0 -0
  230. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/start.js +0 -0
  231. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/status.js +0 -0
  232. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/stop.js +0 -0
  233. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/framework/update.js +0 -0
  234. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/gina-dev.1.md +0 -0
  235. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/gina-framework.1.md +0 -0
  236. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/gina.1.md +0 -0
  237. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/index.js +0 -0
  238. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/msg.json +0 -0
  239. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/port/help.js +0 -0
  240. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/port/help.txt +0 -0
  241. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/port/inc/scan.js +0 -0
  242. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/port/list.js +0 -0
  243. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/port/reset.js +0 -0
  244. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/port/set.js +0 -0
  245. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/project/arguments.json +0 -0
  246. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/project/help.js +0 -0
  247. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/project/help.txt +0 -0
  248. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/project/import.js +0 -0
  249. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/project/list.js +0 -0
  250. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/project/move.js +0 -0
  251. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/project/remove.js +0 -0
  252. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/project/rename.js +0 -0
  253. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/project/restart.js +0 -0
  254. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/project/rm.js +0 -0
  255. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/project/start.js +0 -0
  256. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/project/status.js +0 -0
  257. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/project/stop.js +0 -0
  258. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/protocol/help.js +0 -0
  259. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/protocol/help.txt +0 -0
  260. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/protocol/set.js +0 -0
  261. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/scope/add.js +0 -0
  262. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/scope/help.js +0 -0
  263. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/scope/help.txt +0 -0
  264. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/scope/link-local.js +0 -0
  265. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/scope/link-production.js +0 -0
  266. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/scope/list.js +0 -0
  267. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/scope/remove.js +0 -0
  268. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/scope/rm.js +0 -0
  269. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/scope/use.js +0 -0
  270. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cmd/view/add.js +0 -0
  271. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/collection/README.md +0 -0
  272. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/collection/build.json +0 -0
  273. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/collection/package.json +0 -0
  274. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/collection/src/main.js +0 -0
  275. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/config.js +0 -0
  276. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cron/README.md +0 -0
  277. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cron/package.json +0 -0
  278. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/cron/src/main.js +0 -0
  279. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/domain/LICENSE +0 -0
  280. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/domain/README.md +0 -0
  281. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/domain/dist/public_suffix_list.dat +0 -0
  282. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/domain/exemples/backend.js +0 -0
  283. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/domain/exemples/frontend.html +0 -0
  284. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/domain/package.json +0 -0
  285. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/generator/index.js +0 -0
  286. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/index.js +0 -0
  287. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/inherits/LICENSE +0 -0
  288. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/inherits/README.md +0 -0
  289. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/inherits/example/inheriting_eventemitter.js +0 -0
  290. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/inherits/example/protected_inheritance.js +0 -0
  291. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/inherits/example/simple_inheritance.js +0 -0
  292. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/inherits/example/super_attribute_overridden_by_child_on_init.js +0 -0
  293. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/inherits/package.json +0 -0
  294. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/inherits/src/main.js +0 -0
  295. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/logger/README.md +0 -0
  296. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/logger/package.json +0 -0
  297. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/logger/src/containers/default/index.js +0 -0
  298. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/logger/src/containers/file/index.js +0 -0
  299. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  300. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  301. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/logger/src/containers/mq/index.js +0 -0
  302. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/logger/src/containers/mq/listener.js +0 -0
  303. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/logger/src/containers/mq/speaker.js +0 -0
  304. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/logger/src/helper.js +0 -0
  305. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/logger/src/main.js +0 -0
  306. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/math/index.js +0 -0
  307. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/merge/README.md +0 -0
  308. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/merge/example/merge.js +0 -0
  309. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/merge/example/merge_2_literal objects.js +0 -0
  310. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/merge/example/merge_and_preserve_first.js +0 -0
  311. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/merge/src/main.js +0 -0
  312. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/proc.js +0 -0
  313. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/routing/README.md +0 -0
  314. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/routing/build.json +0 -0
  315. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/routing/package.json +0 -0
  316. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/shell.js +0 -0
  317. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/swig-filters/README.md +0 -0
  318. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/swig-filters/package.json +0 -0
  319. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/url/README.md +0 -0
  320. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/url/index.js +0 -0
  321. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/url/mocks.json +0 -0
  322. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/url/routing.json +0 -0
  323. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/url/test.js +0 -0
  324. /package/framework/{v0.1.6-alpha.6 → v0.1.6-alpha.61}/lib/validator.js +0 -0
@@ -125,6 +125,8 @@ if (process.argv.length >= 3 /**&& /gina$/.test(process.argv[1])*/ ) {
125
125
  projectName = tmp[3];
126
126
  setContext('projectName', projectName);
127
127
  setContext('bundle', tmp[4]);
128
+ process.env.NODE_BUNDLE = tmp[4];
129
+ process.env.NODE_PROJECT = projectName;
128
130
 
129
131
  var obj = ctxObj.envVars;
130
132
  var evar = '';
@@ -185,8 +187,9 @@ if ( typeof(getEnvVar) == 'undefined') {
185
187
  }
186
188
 
187
189
  // console.debug('[ FRAMEWORK ] GINA_HOMEDIR [' + (GINA_HOMEDIR||null) +'] vs getEnvVar(GINA_HOMEDIR) [' + getEnvVar('GINA_HOMEDIR') +']' );
188
- var projects = require( _(GINA_HOMEDIR + '/projects.json') );
189
- var root = projects[projectName].path;
190
+ var reversePorts = require( _(GINA_HOMEDIR + '/ports.reverse.json') );
191
+ var projects = require( _(GINA_HOMEDIR + '/projects.json') );
192
+ var root = projects[projectName].path;
190
193
 
191
194
  gna.executionPath = root;
192
195
  setPath('project', root);
@@ -206,16 +209,86 @@ var env = (typeof(process.env.NODE_ENV) != 'undefined' && pr
206
209
  , scope = (typeof(process.env.NODE_SCOPE) != 'undefined' && process.env.NODE_SCOPE) ? process.env.NODE_SCOPE : projects[projectName]['def_scope']
207
210
  , isLocalScope = (scope === projects[projectName]['local_scope']) ? true : false
208
211
  , isProductionScope = (scope === projects[projectName]['production_scope']) ? true : false
212
+ , port = reversePorts[process.env.NODE_BUNDLE +'@'+ process.env.NODE_PROJECT][env][projects[projectName]['def_protocol']][projects[projectName]['def_scheme']]
213
+ , scheme = projects[projectName]['def_scheme']
209
214
  ;
210
215
 
211
216
  gna.env = process.env.NODE_ENV = env;
212
217
  gna.scope = process.env.NODE_SCOPE = scope;
213
218
  gna.os.isWin32 = process.env.isWin32 = isWin32;
214
219
  gna.isAborting = false;
215
- //Cahceless is also defined in the main config : Config::isCacheless().
220
+ //Cacheless is also defined in the main config : Config::isCacheless().
216
221
  process.env.NODE_ENV_IS_DEV = (/^true$/i.test(isDev)) ? true : false;
217
222
  process.env.NODE_SCOPE_IS_LOCAL = (/^true$/i.test(isLocalScope)) ? true : false;
218
223
  process.env.NODE_SCOPE_IS_PRODUCTION = (/^true$/i.test(isProductionScope)) ? true : false;
224
+ process.env.NODE_PORT = parseInt(port);
225
+ // Proxy check thru proxy.json [Optional]
226
+ var proxyPathObj = new _(projects[projectName].path + '/proxy.json', true);
227
+ var proxy = null;
228
+ var proxyPort = null;
229
+ if ( proxyPathObj.existsSync() ) {
230
+ try {
231
+ var proxyColl = requireJSON(proxyPathObj.toString());
232
+ proxy = new lib.Collection(proxyColl).findOne({ scope: process.env.NODE_SCOPE, env: process.env.NODE_ENV });
233
+ proxyColl = null;
234
+ } catch (proxyErr) {
235
+ console.error('[ FRAMEWORK ][ configurationError ] ', proxyErr.stack || proxyErr.message || proxyErr);
236
+ }
237
+ } else { // default proxy
238
+ proxy = {};
239
+ proxy.id = scope +"_"+ env;
240
+ proxy.scope = scope;
241
+ proxy.env = env;
242
+ // "https://my.domain.tld"
243
+ proxy.hostname = null ;
244
+ proxyPort = process.gina.PROXY_PORT = port;
245
+ }
246
+
247
+ if (proxy) {
248
+ var foundScheme = null;
249
+ if (proxy.hostname) {
250
+ gna.proxyHostname = process.gina.PROXY_HOSTNAME = proxy.hostname;
251
+ gna.proxyHost = process.gina.PROXY_HOST = proxy.hostname
252
+ .replace(/^(https|http)\:\/\//g, '')
253
+ .replace(/\:\d+\/$|\:\d+$/, '')
254
+ ;
255
+ proxyPort = gna.proxyHostname.match(/\:\d+\/$|\:\d+$/) || null;
256
+
257
+ if (proxyPort) {
258
+ proxyPort = parseInt(proxyPort[0].match(/\d+/));
259
+ } else {
260
+ foundScheme = gna.proxyHostname.match(/^(https|http)\:\/\//g)[0].replace(/\:\/\//g, '');
261
+ }
262
+ } else {
263
+ foundScheme = scheme;
264
+ }
265
+ switch (foundScheme) {
266
+ case 'https':
267
+ proxyPort = 443;
268
+ break;
269
+ case 'ftp':
270
+ proxyPort = 21;
271
+ break;
272
+ case 'sftp':
273
+ proxyPort = 22;
274
+ break;
275
+ default:
276
+ proxyPort = 80;
277
+ break;
278
+ }
279
+ foundScheme = null;
280
+
281
+
282
+ gna.proxyPort = process.gina.PROXY_PORT = parseInt(proxyPort);
283
+ gna.proxyScheme = process.gina.PROXY_SCHEME = scheme;
284
+
285
+ var isProxyHost = (
286
+ typeof(process.gina.PROXY_HOSTNAME) != 'undefined'
287
+ ) ? true : false;
288
+ // Forcing context - also available for workers
289
+ setContext('isProxyHost', isProxyHost);
290
+ }
291
+
219
292
 
220
293
 
221
294
  var bundlesPath = (isDev) ? projects[projectName]['path'] + '/src' : projects[projectName]['path'] + '/bundles';
@@ -443,12 +516,16 @@ gna.mount = process.mount = function(bundlesPath, source, target, type, callback
443
516
  }
444
517
  var tmpPath = getPath('project') + '/tmp';
445
518
  console.debug('tmp path: ', tmpPath);
446
- if ( !fs.existsSync(tmpPath) ) {
447
- new _(tmpPath).mkdirSync();
519
+ var tmpPathObj = new _(tmpPath);
520
+ if ( !tmpPathObj.existsSync() ) {
521
+ tmpPathObj.mkdirSync();
448
522
  }
523
+ tmpPathObj = null;
524
+ var sourceObj = new _(source);
525
+ var targetObj = new _(target);
449
526
 
450
- var isSourceFound = fs.existsSync(source)
451
- , isTargetFound = fs.existsSync(target)
527
+ var isSourceFound = sourceObj.existsSync()
528
+ , isTargetFound = targetObj.existsSync()
452
529
  ;
453
530
  console.debug('[ FRAMEWORK ][ MOUNT ] Source: ', source);
454
531
  console.debug('[ FRAMEWORK ][ MOUNT ] Checking before mounting ', target, isTargetFound, bundlesPath);
@@ -475,6 +552,7 @@ gna.mount = process.mount = function(bundlesPath, source, target, type, callback
475
552
  if (!destinationObj.existsSync()) {
476
553
  destinationObj.mkdirSync();
477
554
  }
555
+ console.debug('[ FRAMEWORK ][ MOUNT ] Linking ['+ srcPathObj.toString() +'] to [ '+ _(source) +' ] ');
478
556
  srcPathObj.symlinkSync(_(source));
479
557
  isSourceFound = true;
480
558
  }
@@ -485,15 +563,16 @@ gna.mount = process.mount = function(bundlesPath, source, target, type, callback
485
563
  gna.lib.generator.createPathSync(bundlesPath, function onPathCreated(err){
486
564
  if (!err) {
487
565
  try {
488
- var targetObj = new _(target);
566
+ // var targetObj = new _(target);
489
567
  if ( targetObj.existsSync() ) {
490
568
  targetObj.rmSync();
491
569
  }
492
- if ( type != undefined)
570
+ console.debug('[ FRAMEWORK ][ MOUNT ] Linking ['+ source +'] to [ '+ target +' ] ');
571
+ if ( type != undefined) {
493
572
  fs.symlinkSync(source, target, type)
494
- else
573
+ } else {
495
574
  fs.symlinkSync(source, target);
496
-
575
+ }
497
576
  // symlink created
498
577
  callback(false);
499
578
 
@@ -544,6 +623,7 @@ isBundleMounted(projects, bundlesPath, getContext('bundle'), function onBundleMo
544
623
  * */
545
624
  gna.onInitialize = process.onInitialize = function(callback) {
546
625
 
626
+ console.debug('[ FRAMEWORK ] Bootstrap Initialization... ');
547
627
  gna.initialized = true;
548
628
  e.once('init', function(instance, middleware, conf) {
549
629
 
@@ -557,22 +637,20 @@ isBundleMounted(projects, bundlesPath, getContext('bundle'), function onBundleMo
557
637
 
558
638
  joinContext(conf.contexts);
559
639
  gna.getConfig = function(name){
560
- // var tmp = '';
640
+ var tmp = null;
561
641
  if ( typeof(name) != 'undefined' ) {
562
642
  try {
563
643
  //Protect it.
564
- // tmp = JSON.stringify(conf.content[name]);
565
- // return JSON.parse(tmp)
566
- return JSON.clone(conf.content[name])
644
+ tmp = JSON.clone(conf.content[name])
567
645
  } catch (err) {
568
646
  console.error('[ FRAMEWORK ] ', err.stack);
569
647
  return undefined
570
648
  }
571
649
  } else {
572
- // tmp = JSON.stringify(conf);
573
- // return JSON.parse(tmp)
574
- return JSON.clone(conf)
650
+ //Protect it.
651
+ tmp = JSON.clone(conf)
575
652
  }
653
+ return tmp
576
654
  };
577
655
  try {
578
656
  //configureMiddleware(instance, express); // no, no and no...
@@ -876,6 +954,7 @@ isBundleMounted(projects, bundlesPath, getContext('bundle'), function onBundleMo
876
954
  if (
877
955
  conf.server.scheme == 'https'
878
956
  && !/^true$/i.test(process.env.NODE_SCOPE_IS_PRODUCTION)
957
+ && !/^true$/i.test(isProxyHost)
879
958
  ) {
880
959
  try {
881
960
  await server.verifyCertificate(conf.host, conf.server.port);
@@ -54,8 +54,8 @@ function Model(namespace, _config) {
54
54
 
55
55
 
56
56
  var setup = function(namespace) {
57
- if ( typeof(namespace) == 'undefined' || namespace == '') {
58
- console.error('[ MODEL ][ '+ namespace +' ] MODEL:ERR:1 EEMPTY: Model namespace', __stack);
57
+ if ( typeof(namespace) == 'undefined' || namespace == '') {
58
+ console.error('[MODEL]['+ namespace +'] MODEL:ERR:1 EEMPTY: Model namespace', __stack);
59
59
  }
60
60
 
61
61
  var model, namespace = namespace.split(/\//g);
@@ -75,8 +75,8 @@ function Model(namespace, _config) {
75
75
  }
76
76
 
77
77
 
78
- console.debug('[ MODEL ][ ' + model +' ] Bundle: '+ bundle);
79
- //console.debug('[ MODEL ][ ' + model +' ] Model: '+ model);
78
+ console.debug('[MODEL][' + model +'] Bundle: '+ bundle);
79
+ //console.debug('[MODEL][' + model +'] Model: '+ model);
80
80
  self.name = _connector;
81
81
  self.bundle = bundle;
82
82
  self.model = model;
@@ -115,29 +115,31 @@ function Model(namespace, _config) {
115
115
  _configuration = conf.connectors;
116
116
  self.connector = _configuration[self.name].connector;
117
117
 
118
- console.debug('[ MODEL ][ ' + model +' ] About to scan: '+ conf.path);
118
+ console.debug('[MODEL][' + model +'] About to scan: '+ conf.path);
119
119
  //TODO - More controls...
120
120
 
121
121
  //For now, I just need the F..ing entity name.
122
122
  connectorPath = local.connectorPath = _(GINA_FRAMEWORK_DIR +'/core/connectors/'+ self.connector);
123
123
  var modelPath = local.modelPath = _(conf.path + '/' + modelDirName);
124
124
  var entitiesPath = local.entitiesPath = _(modelPath + '/entities');
125
- console.debug('[ MODEL ][ ' + model +' ] Scanning model entities: ', entitiesPath +' - Existing path ? '+ fs.existsSync(entitiesPath) );
125
+ console.debug('[MODEL][' + model +'] Scanning model entities: ', entitiesPath +' - Existing path ? '+ fs.existsSync(entitiesPath) );
126
126
  if (!fs.existsSync(entitiesPath)) {
127
127
  //fs.mkdirSync(entitiesPath) // creating empty path
128
128
  new _(entitiesPath).mkdirSync();
129
129
  }
130
130
 
131
131
  connectorPath = _(connectorPath + '/lib/connector.js');
132
- console.debug('[ MODEL ][ ' + model +' ] Loading connector: ' + connectorPath);
132
+ console.debug('[MODEL][' + model +'] Loading Connector: ' + connectorPath);
133
133
  //Getting Entities Manager.
134
134
  var exists = fs.existsSync(connectorPath);
135
135
  if (exists) {
136
- if (cacheless)
136
+ if (cacheless) {
137
137
  delete require.cache[require.resolve(_(connectorPath, true))];
138
+ }
138
139
 
140
+ console.debug('[MODEL][' + model +'] Using connector path: ' + _(connectorPath, true));
139
141
  var Connector = require(_(connectorPath, true));
140
-
142
+ console.debug('[MODEL][' + model +'] Connecting ... ');
141
143
  self.connect(
142
144
  Connector,
143
145
  function onConnect(err, conn) {
@@ -154,12 +156,12 @@ function Model(namespace, _config) {
154
156
  } else {//Means that no connector was found in models.
155
157
 
156
158
  //finished.
157
- self.emit('model#ready', new Error('[ MODEL ][ '+ model +' ] No connector found'), self.bundle, self.name, conn)
159
+ self.emit('model#ready', new Error('[MODEL]['+ model +'] No connector found'), self.bundle, self.name, conn)
158
160
  }
159
161
 
160
162
  } else {
161
- console.warn('[ MODEL ][ ' + model +' ] no configuration found...');
162
- self.emit('model#ready', new Error('[ MODEL ][ ' + model +' ] no configuration found for your model: ' + model), self.bundle, self.name, null)
163
+ console.warn('[MODEL][' + model +'] No configuration found...');
164
+ self.emit('model#ready', new Error('[MODEL][' + model +'] No configuration found for your model: ' + model), self.bundle, self.name, null)
163
165
  }
164
166
 
165
167
  return self
@@ -168,7 +170,7 @@ function Model(namespace, _config) {
168
170
 
169
171
  this.connect = function(Connector, callback) {
170
172
  if ( typeof(self.connectors[_connector]) == 'undefined' ) {
171
- //console.debug('[ MODEL ] Need to create connector instance ...');
173
+ //console.debug('[MODEL] Need to create connector instance ...');
172
174
  self.connectors[_connector] = {};
173
175
  var connector = new Connector( self.getConfig(_connector) );
174
176
 
@@ -204,7 +206,10 @@ function Model(namespace, _config) {
204
206
  var i = i || 0;
205
207
 
206
208
  var configuration = null;
207
- var env = null, conf = null, connectors = null;
209
+ var env = null
210
+ , conf = null
211
+ , connectors = null
212
+ ;
208
213
  if ( typeof (_config) != 'undefined' ) {
209
214
  configuration = _config;
210
215
  env = _config.env;
@@ -215,21 +220,21 @@ function Model(namespace, _config) {
215
220
  env = configuration.Env.current;
216
221
  conf = configuration.Env.getConf(bundle, env);
217
222
  }
218
- console.debug('[ MODEL ][ ' + _connector + ' ] env ', conf.env);
219
- console.debug('[ MODEL ][ ' + _connector + ' ] configuration modelsPath ', conf.modelsPath);
220
- console.debug('[ MODEL ][ ' + _connector + ' ] connectors ', connectors);
223
+ console.debug('[MODEL][' + _connector + '][getConfigSync] env ', conf.env);
224
+ console.debug('[MODEL][' + _connector + '][getConfigSync] configuration modelsPath ', conf.modelsPath);
225
+ console.debug('[MODEL][' + _connector + '][getConfigSync] connectors ', connectors);
221
226
 
222
227
  // try {
223
228
 
224
229
  // var locals = _locals = configLib.getSync('gina', 'locals.json')
225
230
  // } catch (err) {
226
- // console.emerg('[ MODEL ][ ' + _connector +' ] Error while calling `Model::getConfigSync()` '+ err.stack||err.message);
231
+ // console.emerg('[MODEL][' + _connector +'] Error while calling `Model::getConfigSync()` '+ err.stack||err.message);
227
232
  // if ( i < 10) {
228
- // console.debug('[ MODEL ][ ' + _connector +' ] about to retry to load locals.json');
233
+ // console.debug('[MODEL][' + _connector +'] About to retry to load locals.json');
229
234
  // setTimeout(function(){
230
235
 
231
236
  // i = i+1;
232
- // console.debug('[ MODEL ][ ' + _connector +' ] retry ('+i+') ...');
237
+ // console.debug('[MODEL][' + _connector +'] Retry ('+i+') ...');
233
238
  // return getConfigSync(bundle, i)
234
239
  // }, 300)
235
240
 
@@ -245,13 +250,12 @@ function Model(namespace, _config) {
245
250
  // configuration object.
246
251
  var confObj = {
247
252
  connectors : connectors,
248
- path : conf.modelsPath/**,
249
- locals : locals*/
253
+ path : conf.modelsPath
250
254
  };
251
255
 
252
256
  return confObj
253
257
  } else {
254
- throw new Error('[ MODEL ][ ' + _connector +' ] Config not instantiated');
258
+ throw new Error('[MODEL][' + _connector +'][getConfigSync] Config not instantiated');
255
259
  return undefined
256
260
  }
257
261
  }
@@ -277,7 +281,7 @@ function Model(namespace, _config) {
277
281
  // entities == null when the database server has not started.
278
282
  if ( err ) {
279
283
  console.error(err.stack||err.message)
280
- //console.log('No entities found for [ '+ self.name +':'+ entityName +'].\n 1) Check if the database is started.\n2) Check if exists: /models/entities/'+ entityName);
284
+ //console.debug('No entities found for ['+ self.name +':'+ entityName +'].\n 1) Check if the database is started.\n2) Check if exists: /models/entities/'+ entityName);
281
285
  }
282
286
  callback(err, bundle, model, conn)
283
287
  });
@@ -476,7 +476,7 @@
476
476
  if ( typeof(liveCheckErrors[formId]) == 'undefined') {
477
477
  liveCheckErrors[formId] = {};
478
478
  }
479
- if (errors.count() > 0) {
479
+ if (errors && errors.count() > 0) {
480
480
  // reset field name
481
481
  liveCheckErrors[formId][fieldName] = {};
482
482
  // override
@@ -551,7 +551,10 @@
551
551
 
552
552
  if (!name) continue;
553
553
 
554
- if ( typeof(errors[name]) != 'undefined' && !/(form\-item\-error|form\-item\-warning)/.test($parent.className) ) {
554
+ if (
555
+ errors
556
+ && typeof(errors[name]) != 'undefined' && !/(form\-item\-error|form\-item\-warning)/.test($parent.className)
557
+ ) {
555
558
 
556
559
  if (isWarning) {
557
560
  // adding warning class
@@ -592,7 +595,15 @@
592
595
 
593
596
 
594
597
 
595
- } else if ( typeof(errors[name]) == 'undefined' && /(form\-item\-error|form\-item\-warning)/.test($parent.className) || typeof(errors[name]) != 'undefined' && errors[name].count() == 0 && /(form\-item\-error|form\-item\-warning)/.test($parent.className) ) {
598
+ } else if (
599
+ errors
600
+ && typeof(errors[name]) == 'undefined'
601
+ && /(form\-item\-error|form\-item\-warning)/.test($parent.className)
602
+ ||
603
+ errors
604
+ && typeof(errors[name]) != 'undefined' && errors[name].count() == 0
605
+ && /(form\-item\-error|form\-item\-warning)/.test($parent.className)
606
+ ) {
596
607
  // reset when not in error
597
608
  // remove child elements
598
609
  var $children = $parent.getElementsByTagName('div');
@@ -606,7 +617,11 @@
606
617
 
607
618
  $parent.className = $parent.className.replace(/(\s+form\-item\-error|form\-item\-error|\s+form\-item\-warning|form\-item\-warning)/, '');
608
619
 
609
- } else if ( typeof(errors[name]) != 'undefined' && errAttr) {
620
+ } else if (
621
+ errors
622
+ && typeof(errors[name]) != 'undefined'
623
+ && errAttr
624
+ ) {
610
625
  // refreshing already displayed error on msg update
611
626
  var $divs = $parent.getElementsByTagName('div');
612
627
  for (var d = 0, dLen = $divs.length; d<dLen; ++d) {
@@ -640,9 +655,9 @@
640
655
  }
641
656
  }
642
657
 
643
- if ($err && $target.type != 'hidden')
658
+ if ($err && $target.type != 'hidden') {
644
659
  insertAfter($target, $err);
645
-
660
+ }
646
661
  }
647
662
 
648
663
  if (typeof(fieldName) != 'undefined' && fieldName === $el.name) break;
@@ -1276,6 +1291,13 @@
1276
1291
  // } else { // external - need to remove `X-Requested-With` from `options.headers`
1277
1292
  result.location = (!/^http/.test(result.location) && !/^\//.test(result.location) ) ? location.protocol +'//' + result.location : result.location;
1278
1293
  //}
1294
+ // isProxyHost ?
1295
+ if (
1296
+ result.location.replace(/^http(.*)\:\d+/, '$1').replace(/^\:\/\//, '').split(/\//g)[0] == gina.config.hostname
1297
+ && gina.config.hostname == window.location.host
1298
+ ) {
1299
+ result.location = location.protocol + result.location.replace(/^http(.*)\:\d+/, '$1').replace(/^\:/, '')
1300
+ }
1279
1301
 
1280
1302
  return setTimeout(() => {
1281
1303
  window.location.href = result.location;
@@ -3180,6 +3202,10 @@
3180
3202
 
3181
3203
  updateSubmitTriggerState( $gForm, isFormValid);
3182
3204
 
3205
+ if ( !isFormValid && gResult.error ) {
3206
+ instance.$forms[ $el.form.getAttribute('id') ].errors = gResult.error;
3207
+ }
3208
+
3183
3209
  once = false;
3184
3210
  })
3185
3211
 
@@ -6408,7 +6434,7 @@
6408
6434
 
6409
6435
  for (var c in rules) {
6410
6436
  if (!/^\_case\_/.test(c) ) continue;
6411
- if ( typeof(rules[c].conditions) == 'undefined' || Array.isArray(rules[c].conditions) && !rules[c].conditions.length ) continue;
6437
+ if ( typeof(rules[c].conditions) == 'undefined' || Array.isArray(rules[c].conditions) && !rules[c].conditions.length ) continue;
6412
6438
  if ( typeof(rules[c].conditions[0].rules) == 'undefined' ) continue;
6413
6439
 
6414
6440
 
@@ -6590,7 +6616,14 @@
6590
6616
  // filtering conditions
6591
6617
  for (var _c = 0, _cLen = rules[c].conditions.length; _c < _cLen; ++_c) {
6592
6618
 
6593
- if (rules[c].conditions[_c].case != caseValue) {
6619
+ if (
6620
+ Array.isArray(rules[c].conditions[_c].case)
6621
+ && rules[c].conditions[_c].case.indexOf(caseValue) == -1
6622
+ ||
6623
+ !Array.isArray(rules[c].conditions[_c].case)
6624
+ && rules[c].conditions[_c].case != caseValue
6625
+
6626
+ ) {
6594
6627
  continue;
6595
6628
  }
6596
6629
 
@@ -6735,7 +6768,8 @@
6735
6768
  if (
6736
6769
  conditions[c]['case'] === caseValue
6737
6770
  ||
6738
- Array.isArray(conditions[c]['case']) && conditions[c]['case'].indexOf(caseValue) > -1
6771
+ Array.isArray(conditions[c]['case'])
6772
+ && conditions[c]['case'].indexOf(caseValue) > -1
6739
6773
  ||
6740
6774
  /^\//.test(conditions[c]['case'])
6741
6775
  ) {
@@ -118,6 +118,73 @@ function Router(env, scope) {
118
118
  // }
119
119
  // return ;
120
120
 
121
+
122
+ var serverInstance = self.getServerInstance();
123
+ var config = null
124
+ , conf = null
125
+ , bundle = null
126
+ , env = null
127
+ , scope = null
128
+ , cacheless = (/^true$/i.test(process.env.NODE_ENV_IS_DEV)) ? true : false
129
+ ;
130
+ try {
131
+ config = new Config().getInstance();
132
+ if (!params.bundle) {
133
+ try {
134
+ //params.bundle = config.bundle;
135
+ //params.param = config.routing[config.reverseRouting[params.param.url]];
136
+ var _rule = config.reverseRouting[params.param.url];
137
+ params = merge(params, config.routing[_rule]);
138
+ params.rule = _rule;
139
+ } catch(reverseRoutingError) {
140
+ serverInstance.throwError(response, 500, reverseRoutingError);
141
+ return;
142
+ }
143
+ }
144
+ bundle = local.bundle = params.bundle;
145
+ env = config.env;
146
+ scope = config.scope;
147
+ conf = config[bundle][env];
148
+ } catch (configErr) {
149
+ serverInstance.throwError(response, 500, new Error('syntax error(s) found in `'+ controllerFile +'` \nTrace: ') + (configErr.stack || configErr.message) );
150
+ return;
151
+ }
152
+
153
+ local.cacheless = cacheless;
154
+ local.request = request;
155
+ local.next = next;
156
+ local.conf = conf;
157
+ local.isStandalone = conf.isStandalone;
158
+
159
+
160
+ /**
161
+ * Reverse proxy check
162
+ */
163
+ var requestPort = request.headers.port || request.headers[':port'];
164
+ var isProxyHost = (
165
+ typeof(request.headers.host) != 'undefined'
166
+ && typeof(requestPort) != 'undefined'
167
+ && /^(80|443)$/.test(requestPort)
168
+ && conf.server.scheme +'://'+ request.headers.host +':'+ requestPort != conf.hostname.replace(/\:\d+$/, '') +':'+ conf.server.port
169
+ ||
170
+ typeof(request.headers[':authority']) != 'undefined'
171
+ && conf.server.scheme +'://'+ request.headers[':authority'] != conf.hostname
172
+ ||
173
+ typeof(request.headers.host) != 'undefined'
174
+ && typeof(requestPort) != 'undefined'
175
+ && /^(80|443)$/.test(requestPort)
176
+ && request.headers.host == conf.host
177
+ ||
178
+ typeof(request.headers['x-nginx-proxy']) != 'undefined'
179
+ && /^true$/i.test(request.headers['x-nginx-proxy'])
180
+ ||
181
+ typeof(process.gina.PROXY_HOSTNAME) != 'undefined'
182
+ ) ? true : false;
183
+
184
+ setContext('isProxyHost', isProxyHost);
185
+
186
+
187
+
121
188
  /**
122
189
  * ExpressJS modules + HTTP2 fix
123
190
  * Hack required until `express-<plugin>` get support for http2 `express-session`
@@ -140,6 +207,9 @@ function Router(env, scope) {
140
207
  ||
141
208
  typeof(request.session) != 'undefined'
142
209
  && typeof(request.isAuthenticated) == 'undefined'
210
+ ||
211
+ typeof(request.session) != 'undefined'
212
+ && typeof(request.session.passport) != 'undefined'
143
213
  ) {
144
214
  request.isAuthenticated = function() {
145
215
  var property = 'user';
@@ -284,42 +354,6 @@ function Router(env, scope) {
284
354
  * EO Passport JS HTTP2 fix
285
355
  */
286
356
 
287
- var serverInstance = self.getServerInstance();
288
- var config = null
289
- , conf = null
290
- , bundle = null
291
- , env = null
292
- , scope = null
293
- , cacheless = (/^true$/i.test(process.env.NODE_ENV_IS_DEV)) ? true : false
294
- ;
295
- try {
296
- config = new Config().getInstance();
297
- if (!params.bundle) {
298
- try {
299
- //params.bundle = config.bundle;
300
- //params.param = config.routing[config.reverseRouting[params.param.url]];
301
- var _rule = config.reverseRouting[params.param.url];
302
- params = merge(params, config.routing[_rule]);
303
- params.rule = _rule;
304
- } catch(reverseRoutingError) {
305
- serverInstance.throwError(response, 500, reverseRoutingError);
306
- return;
307
- }
308
- }
309
- bundle = local.bundle = params.bundle;
310
- env = config.env;
311
- scope = config.scope;
312
- conf = config[bundle][env];
313
- } catch (configErr) {
314
- serverInstance.throwError(response, 500, new Error('syntax error(s) found in `'+ controllerFile +'` \nTrace: ') + (configErr.stack || configErr.message) );
315
- return;
316
- }
317
-
318
- local.cacheless = cacheless;
319
- local.request = request;
320
- local.next = next;
321
- local.conf = conf;
322
- local.isStandalone = conf.isStandalone;
323
357
 
324
358
  if (cacheless) {
325
359
  refreshCoreDependencies();
@@ -416,10 +450,10 @@ function Router(env, scope) {
416
450
  rootPath : conf.executionPath || null,
417
451
  executionPath : conf.executionPath || null,
418
452
  //instance: self.serverInstance,
419
- isUsingTemplate: local.isUsingTemplate,
420
- cacheless: cacheless,
421
- path: params.param.path || null, // user custom path : namespace should be ignored or left blank
422
- assets: {}
453
+ isUsingTemplate : local.isUsingTemplate,
454
+ cacheless : cacheless,
455
+ path : params.param.path || null, // user custom path : namespace should be ignored or left blank
456
+ assets : {}
423
457
  };
424
458
 
425
459
  if (routeHasViews) {
@@ -150,18 +150,40 @@ function ServerEngineClass(options) {
150
150
 
151
151
  const onPath = function(path, cb, allowAll) {
152
152
 
153
- var queryParams = null
154
- , i = null
155
- , len = null
156
- , p = null
157
- , arr = null
158
- , a = null
153
+ var queryParams = null
154
+ , i = null
155
+ , len = null
156
+ , p = null
157
+ , arr = null
158
+ , a = null
159
+ , isProxyHost = null
160
+ , requestHost = null
159
161
  ;
160
162
 
161
163
  // http2stream handle by the Router class & the SuperController class
162
164
  // See `${core}/router.js` & `${core}/controller/controller.js`
163
165
 
164
166
  server.on('request', (request, response) => {
167
+ // Proxy detection
168
+ isProxyHost = getContext('isProxyHost');
169
+ requestHost = request.headers.host || request.headers[':authority'];
170
+ if ( !/\:[0-9]+$/.test(requestHost) ) {
171
+ // Enable proxied mode
172
+ process.gina.PROXY_HOSTNAME = process.gina.PROXY_SCHEME +'://'+ requestHost;
173
+ process.gina.PROXY_HOST = requestHost;
174
+ // Forcing context - also available for workers
175
+ setContext('isProxyHost', true);
176
+ }
177
+ if (
178
+ /^true$/.test(isProxyHost)
179
+ && /\:[0-9]+$/.test(requestHost)
180
+ ) {
181
+ // Restoring non-proxied mode
182
+ isProxyHost = false;
183
+ delete process.gina.PROXY_HOSTNAME;
184
+ delete process.gina.PROXY_HOST;
185
+ setContext('isProxyHost', isProxyHost);
186
+ }
165
187
  // healthcheck
166
188
  // TODO - add a top level API : server.api.js (check, get ...)
167
189
  // TODO - on 90% RAM usage, redirect to `come back later then restart bundle`