gina 0.1.1-alpha.99 → 0.1.2-alpha.2

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 (370) hide show
  1. package/LICENSE +1 -1
  2. package/README-4Contributors.md +30 -0
  3. package/README.md +125 -39
  4. package/bin/cli +130 -41
  5. package/bin/cli-debug +46 -15
  6. package/bin/cmd +63 -41
  7. package/bin/gina +57 -49
  8. package/framework/{v0.1.1-alpha.99/lib/inherits → v0.1.2-alpha.2}/LICENSE +1 -1
  9. package/framework/v0.1.2-alpha.2/VERSION +1 -0
  10. package/framework/{v0.1.1-alpha.99/core/asset/js/plugin/readme.md → v0.1.2-alpha.2/core/asset/plugin/README.md} +34 -12
  11. package/framework/v0.1.2-alpha.2/core/asset/plugin/dist/vendor/gina/css/gina.min.css +1 -0
  12. package/framework/v0.1.2-alpha.2/core/asset/plugin/dist/vendor/gina/css/gina.min.css.map +1 -0
  13. package/framework/v0.1.2-alpha.2/core/asset/plugin/dist/vendor/gina/html/toolbar.html +251 -0
  14. package/framework/{v0.1.1-alpha.99/core/asset/js/plugin/dist → v0.1.2-alpha.2/core/asset/plugin/dist/vendor/gina/js}/gina.js +4588 -3416
  15. package/framework/v0.1.2-alpha.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js +765 -0
  16. package/framework/v0.1.2-alpha.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js.map +8 -0
  17. package/framework/v0.1.2-alpha.2/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +7 -0
  18. package/framework/v0.1.2-alpha.2/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.map +8 -0
  19. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/config.js +315 -131
  20. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/connectors/couchbase/index.js +460 -274
  21. package/framework/v0.1.2-alpha.2/core/connectors/couchbase/lib/connector.js +22 -0
  22. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/connectors/couchbase/lib/connector.v2.js +51 -51
  23. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/connectors/couchbase/lib/connector.v3.js +51 -51
  24. package/framework/v0.1.2-alpha.2/core/connectors/couchbase/lib/connector.v4.js +384 -0
  25. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/connectors/couchbase/lib/n1ql.js +3 -2
  26. package/framework/v0.1.2-alpha.2/core/connectors/couchbase/lib/session-store.js +22 -0
  27. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/connectors/couchbase/lib/session-store.v3.js +12 -12
  28. package/framework/v0.1.2-alpha.2/core/connectors/couchbase/lib/session-store.v4.js +361 -0
  29. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/controller/controller.js +1351 -902
  30. package/framework/v0.1.2-alpha.2/core/controller/index.js +23 -0
  31. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/dev/index.js +1 -1
  32. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/dev/lib/class.js +1 -1
  33. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/dev/lib/factory.js +2 -2
  34. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/gna.js +48 -24
  35. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/locales/README.md +5 -0
  36. package/framework/v0.1.2-alpha.2/core/locales/dist/region/en.json +5727 -0
  37. package/framework/v0.1.2-alpha.2/core/locales/dist/region/fr.json +11452 -0
  38. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/locales/index.js +2 -2
  39. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/locales/src/make.js +39 -41
  40. package/framework/v0.1.2-alpha.2/core/locales/src/resources/region.mapping.json +43 -0
  41. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/model/entity.js +87 -67
  42. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/model/index.js +16 -16
  43. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/model/template/entityFactory.js +1 -1
  44. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/model/template/index.js +17 -15
  45. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/index.js +1 -1
  46. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/file/package.json +1 -1
  47. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/intl/package.json +1 -1
  48. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/intl/src/main.js +5 -5
  49. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/storage/package.json +1 -1
  50. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/storage/src/main.js +6 -5
  51. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/validator/package.json +1 -1
  52. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/validator/src/form-validator.js +404 -300
  53. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/validator/src/main.js +1384 -1314
  54. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/router.js +221 -122
  55. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/server.express.js +69 -65
  56. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/server.isaac.js +274 -180
  57. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/server.js +710 -615
  58. package/framework/v0.1.2-alpha.2/core/template/boilerplate/bundle/config/settings.json +12 -0
  59. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/boilerplate/bundle/config/settings.server.json +4 -4
  60. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/boilerplate/bundle/config/templates.json +4 -4
  61. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/boilerplate/bundle/controllers/controller.content.js +1 -1
  62. package/framework/v0.1.2-alpha.2/core/template/boilerplate/bundle/controllers/setup.js +111 -0
  63. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/boilerplate/bundle/index.js +13 -1
  64. package/framework/v0.1.2-alpha.2/core/template/boilerplate/bundle_templates/html/content/homepage.html +8 -0
  65. package/framework/v0.1.2-alpha.2/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +11 -0
  66. package/framework/v0.1.2-alpha.2/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +8 -0
  67. package/framework/{v0.1.1-alpha.99/core/template/boilerplate/bundle_templates/html/layout → v0.1.2-alpha.2/core/template/boilerplate/bundle_templates/html/layouts}/main.html +10 -3
  68. package/framework/v0.1.2-alpha.2/core/template/command/gina.bat.tpl +8 -0
  69. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/command/gina.tpl +4 -4
  70. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/conf/env.json +12 -0
  71. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/conf/manifest.json +2 -0
  72. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/conf/package.json +2 -2
  73. package/framework/v0.1.2-alpha.2/core/template/conf/statics.json +12 -0
  74. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/conf/templates.json +9 -9
  75. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/helpers/console.js +3 -3
  76. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/helpers/context.js +233 -75
  77. package/framework/v0.1.2-alpha.2/helpers/data/LICENSE +9 -0
  78. package/framework/v0.1.2-alpha.2/helpers/data/README.md +12 -0
  79. package/framework/v0.1.2-alpha.2/helpers/data/package.json +20 -0
  80. package/framework/v0.1.2-alpha.2/helpers/data/src/main.js +295 -0
  81. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/helpers/dateFormat.js +9 -7
  82. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/helpers/index.js +13 -8
  83. package/framework/v0.1.2-alpha.2/helpers/json/LICENSE +9 -0
  84. package/framework/v0.1.2-alpha.2/helpers/json/README.md +12 -0
  85. package/framework/{v0.1.1-alpha.99/helpers/plugins → v0.1.2-alpha.2/helpers/json}/package.json +2 -2
  86. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/helpers/json/src/main.js +33 -28
  87. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/helpers/path.js +97 -22
  88. package/framework/{v0.1.1-alpha.99/helpers/json → v0.1.2-alpha.2/helpers/plugins}/package.json +2 -2
  89. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/helpers/plugins/src/api-error.js +23 -23
  90. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/helpers/plugins/src/main.js +3 -3
  91. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/helpers/prototypes.js +46 -38
  92. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/helpers/text.js +2 -2
  93. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/archiver/package.json +1 -1
  94. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/archiver/src/dep/jszip.min.js +3 -3
  95. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/archiver/src/main.js +183 -168
  96. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/aliases.json +4 -1
  97. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/bundle/add.js +84 -28
  98. package/framework/v0.1.2-alpha.2/lib/cmd/bundle/arguments.json +8 -0
  99. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/bundle/help.txt +4 -2
  100. package/framework/v0.1.2-alpha.2/lib/cmd/bundle/list.js +175 -0
  101. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/bundle/remove.js +39 -27
  102. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/bundle/restart.js +14 -8
  103. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/bundle/start.js +283 -49
  104. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/bundle/stop.js +93 -74
  105. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/env/add.js +87 -49
  106. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/env/list.js +26 -4
  107. package/framework/{v0.1.1-alpha.99/lib/cmd/scope → v0.1.2-alpha.2/lib/cmd/env}/remove.js +29 -24
  108. package/framework/v0.1.2-alpha.2/lib/cmd/env/use.js +106 -0
  109. package/framework/v0.1.2-alpha.2/lib/cmd/framework/build.js +93 -0
  110. package/framework/v0.1.2-alpha.2/lib/cmd/framework/init.js +932 -0
  111. package/framework/v0.1.2-alpha.2/lib/cmd/framework/link-node-modules.js +123 -0
  112. package/framework/v0.1.2-alpha.2/lib/cmd/framework/link.js +137 -0
  113. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/framework/open.js +25 -1
  114. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/framework/restart.js +78 -26
  115. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/framework/set.js +120 -40
  116. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/framework/start.js +49 -20
  117. package/framework/v0.1.2-alpha.2/lib/cmd/framework/status.js +144 -0
  118. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/framework/stop.js +64 -31
  119. package/framework/v0.1.2-alpha.2/lib/cmd/framework/tail.js +303 -0
  120. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/framework/version.js +19 -4
  121. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/helper.js +357 -53
  122. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/index.js +23 -23
  123. package/framework/v0.1.2-alpha.2/lib/cmd/port/inc/scan.js +142 -0
  124. package/framework/v0.1.2-alpha.2/lib/cmd/port/list.js +464 -0
  125. package/framework/v0.1.2-alpha.2/lib/cmd/port/reset.js +417 -0
  126. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/project/add.js +344 -157
  127. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/project/arguments.json +2 -1
  128. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/project/build.js +28 -28
  129. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/project/help.txt +7 -1
  130. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/project/list.js +22 -2
  131. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/project/remove.js +19 -17
  132. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/project/rename.js +11 -11
  133. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/protocol/set.js +260 -211
  134. package/framework/v0.1.2-alpha.2/lib/cmd/scope/add.js +129 -0
  135. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/scope/help.txt +4 -4
  136. package/framework/{v0.1.1-alpha.99/lib/cmd/env/use.js → v0.1.2-alpha.2/lib/cmd/scope/link-production.js} +22 -21
  137. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/scope/list.js +34 -11
  138. package/framework/v0.1.2-alpha.2/lib/cmd/scope/remove.js +122 -0
  139. package/framework/v0.1.2-alpha.2/lib/cmd/scope/use.js +68 -0
  140. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/view/add.js +35 -10
  141. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/collection/package.json +1 -1
  142. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/collection/src/main.js +247 -244
  143. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/config.js +33 -31
  144. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cron/package.json +1 -1
  145. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cron/src/main.js +16 -11
  146. package/framework/v0.1.2-alpha.2/lib/domain/LICENSE +9 -0
  147. package/framework/v0.1.2-alpha.2/lib/domain/README.md +46 -0
  148. package/framework/v0.1.2-alpha.2/lib/domain/dist/public_suffix_list.dat +14186 -0
  149. package/framework/v0.1.2-alpha.2/lib/domain/package.json +20 -0
  150. package/framework/v0.1.2-alpha.2/lib/domain/src/main.js +442 -0
  151. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/generator/index.js +5 -5
  152. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/index.js +3 -2
  153. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2/lib/inherits}/LICENSE +1 -1
  154. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/inherits/README.md +2 -2
  155. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/inherits/package.json +3 -4
  156. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/inherits/src/main.js +3 -3
  157. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/logger/package.json +2 -2
  158. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/logger/src/containers/default/index.js +15 -2
  159. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/logger/src/containers/file/index.js +109 -14
  160. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/logger/src/containers/mq/index.js +12 -3
  161. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/logger/src/containers/mq/listener.js +29 -21
  162. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/logger/src/containers/mq/speaker.js +33 -4
  163. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/logger/src/helper.js +22 -1
  164. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/logger/src/main.js +36 -9
  165. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/math/index.js +9 -9
  166. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/merge/README.md +2 -2
  167. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/merge/package.json +1 -1
  168. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/merge/src/main.js +118 -91
  169. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/model.js +10 -10
  170. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/proc.js +92 -49
  171. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/routing/package.json +1 -1
  172. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/routing/src/main.js +377 -420
  173. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/session-store.js +13 -7
  174. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/shell.js +3 -3
  175. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/swig-filters/package.json +1 -1
  176. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/swig-filters/src/main.js +140 -119
  177. package/framework/v0.1.2-alpha.2/lib/url/README.md +0 -0
  178. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/validator.js +2 -2
  179. package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/package.json +1 -1
  180. package/package.json +10 -10
  181. package/resources/home/main.json +39 -5
  182. package/resources/home/settings.json +8 -0
  183. package/resources/package.json.template +1 -1
  184. package/script/lib.js +0 -0
  185. package/script/post_install.js +179 -89
  186. package/script/pre_install.js +95 -12
  187. package/services/.gna/67fdf1b224a2ed5597e63d4b64283834468e05e3.txt +0 -0
  188. package/services/.gna/arch +1 -0
  189. package/services/.gna/locals.json +14 -0
  190. package/services/.gna/platform +1 -0
  191. package/services/configure +6 -0
  192. package/services/env.json +18 -0
  193. package/services/manifest.json +30 -0
  194. package/services/package.json +11 -0
  195. package/services/src/proxy/config/app.json +6 -0
  196. package/services/src/proxy/config/routing.json +11 -0
  197. package/services/src/proxy/config/settings.json +9 -0
  198. package/services/src/proxy/config/settings.server.json +31 -0
  199. package/services/src/proxy/config/statics.json +3 -0
  200. package/services/src/proxy/controllers/controller.content.js +58 -0
  201. package/services/src/proxy/controllers/controller.js +30 -0
  202. package/{framework/v0.1.1-alpha.99/core/template/boilerplate/bundle → services/src/proxy}/controllers/setup.js +14 -14
  203. package/services/src/proxy/index.js +31 -0
  204. package/services/src/proxy/lib/domain/README.md +48 -0
  205. package/services/src/proxy/lib/domain/src/config/public_suffix_list.dat +14186 -0
  206. package/services/src/toolbar/config/app.json +6 -0
  207. package/services/src/toolbar/config/routing.json +11 -0
  208. package/{framework/v0.1.1-alpha.99/core/template/boilerplate/bundle → services/src/toolbar}/config/settings.json +0 -0
  209. package/services/src/toolbar/config/settings.server.json +30 -0
  210. package/services/src/toolbar/controllers/controller.content.js +39 -0
  211. package/services/src/toolbar/controllers/controller.js +30 -0
  212. package/services/src/toolbar/controllers/setup.js +111 -0
  213. package/services/src/toolbar/index.js +43 -0
  214. package/utils/helper.js +25 -156
  215. package/utils/prototypes.js +9 -9
  216. package/utils/prototypes.json_clone.js +70 -37
  217. package/framework/v0.1.1-alpha.99/VERSION +0 -1
  218. package/framework/v0.1.1-alpha.99/core/asset/js/plugin/dist/gina.js.map +0 -56
  219. package/framework/v0.1.1-alpha.99/core/asset/js/plugin/dist/gina.min.css +0 -1
  220. package/framework/v0.1.1-alpha.99/core/asset/js/plugin/dist/gina.min.css.map +0 -1
  221. package/framework/v0.1.1-alpha.99/core/asset/js/plugin/dist/gina.min.js +0 -736
  222. package/framework/v0.1.1-alpha.99/core/asset/js/plugin/dist/gina.min.js.map +0 -56
  223. package/framework/v0.1.1-alpha.99/core/asset/js/plugin/dist/gina.onload.min.js +0 -5
  224. package/framework/v0.1.1-alpha.99/core/asset/js/plugin/dist/gina.onload.min.js.map +0 -8
  225. package/framework/v0.1.1-alpha.99/core/connectors/couchbase/lib/connector.js +0 -20
  226. package/framework/v0.1.1-alpha.99/core/connectors/couchbase/lib/session-store.js +0 -21
  227. package/framework/v0.1.1-alpha.99/core/controller/index.js +0 -27
  228. package/framework/v0.1.1-alpha.99/core/locales/dist/region/en.json +0 -9492
  229. package/framework/v0.1.1-alpha.99/core/locales/dist/region/fr.json +0 -9492
  230. package/framework/v0.1.1-alpha.99/core/locales/src/resources/region.mapping.json +0 -28
  231. package/framework/v0.1.1-alpha.99/core/template/boilerplate/bundle_templates/html/homepage.html +0 -4
  232. package/framework/v0.1.1-alpha.99/core/template/conf/statics.json +0 -10
  233. package/framework/v0.1.1-alpha.99/lib/cmd/bundle/arguments.json +0 -4
  234. package/framework/v0.1.1-alpha.99/lib/cmd/bundle/list.js +0 -129
  235. package/framework/v0.1.1-alpha.99/lib/cmd/env/remove.js +0 -150
  236. package/framework/v0.1.1-alpha.99/lib/cmd/framework/init.js +0 -541
  237. package/framework/v0.1.1-alpha.99/lib/cmd/framework/status.js +0 -72
  238. package/framework/v0.1.1-alpha.99/lib/cmd/framework/tail.js +0 -184
  239. package/framework/v0.1.1-alpha.99/lib/cmd/port/inc/scan.js +0 -108
  240. package/framework/v0.1.1-alpha.99/lib/cmd/port/list.js +0 -176
  241. package/framework/v0.1.1-alpha.99/lib/cmd/scope/set.js +0 -57
  242. package/framework/v0.1.1-alpha.99/lib/cmd/scope/unset.js +0 -44
  243. package/framework/v0.1.1-alpha.99/lib/cmd/scope/use.js +0 -79
  244. package/script/post_publish.js +0 -185
  245. package/script/prepare_version.js +0 -552
  246. /package/{framework/v0.1.1-alpha.99/core/template/command/gina.bat.tpl → bin/gina.bat} +0 -0
  247. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/AUTHORS +0 -0
  248. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/asset/html/nolayout.html +0 -0
  249. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/asset/html/static.html +0 -0
  250. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/asset/img/android-chrome-192x192.png +0 -0
  251. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/asset/img/android-chrome-512x512.png +0 -0
  252. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/asset/img/apple-touch-icon.png +0 -0
  253. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/asset/img/favicon-16x16.png +0 -0
  254. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/asset/img/favicon-32x32.png +0 -0
  255. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/asset/img/favicon.ico +0 -0
  256. /package/framework/{v0.1.1-alpha.99/core/asset/js → v0.1.2-alpha.2/core/asset}/plugin/uuid.json +0 -0
  257. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/connectors/couchbase/lib/session-store.v2.js +0 -0
  258. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/controller/controller.framework.js +0 -0
  259. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/deps/busboy/.travis.yml +0 -0
  260. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/deps/busboy/LICENSE +0 -0
  261. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/deps/busboy/README.md +0 -0
  262. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/deps/busboy/deps/encoding/encoding-indexes.js +0 -0
  263. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/deps/busboy/deps/encoding/encoding.js +0 -0
  264. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/deps/busboy/lib/main.js +0 -0
  265. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/deps/busboy/lib/types/multipart.js +0 -0
  266. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/deps/busboy/lib/types/urlencoded.js +0 -0
  267. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/deps/busboy/lib/utils.js +0 -0
  268. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/deps/busboy/package.json +0 -0
  269. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/deps/swig-client/swig-2.0.0.min.js +0 -0
  270. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/dev/lib/tools.js +0 -0
  271. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/locales/currency.json +0 -0
  272. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/locales/dist/language/en.json +0 -0
  273. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/locales/dist/language/fr.json +0 -0
  274. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/locales/src/resources/currency.csv +0 -0
  275. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/locales/src/resources/region.csv +0 -0
  276. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/mime.types +0 -0
  277. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/README.md +0 -0
  278. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/file/README.md +0 -0
  279. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/file/build.json +0 -0
  280. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/intl/README.md +0 -0
  281. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/intl/build.json +0 -0
  282. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/storage/README.md +0 -0
  283. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/storage/build.json +0 -0
  284. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/validator/README.md +0 -0
  285. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/plugins/lib/validator/build.json +0 -0
  286. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/status.codes +0 -0
  287. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/boilerplate/bundle/config/app.json +0 -0
  288. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/boilerplate/bundle/config/routing.json +0 -0
  289. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  290. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  291. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  292. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  293. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  294. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  295. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/boilerplate/bundle_public/readme.md +0 -0
  296. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  297. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/conf/settings.json +0 -0
  298. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/error/client/json/401.json +0 -0
  299. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/error/client/json/403.json +0 -0
  300. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/error/client/json/404.json +0 -0
  301. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/error/server/html/50x.html +0 -0
  302. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/error/server/json/500.json +0 -0
  303. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/error/server/json/503.json +0 -0
  304. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/core/template/extensions/logger/config.json +0 -0
  305. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/helpers/plugins/README.md +0 -0
  306. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/helpers/task.js +0 -0
  307. /package/framework/{v0.1.1-alpha.99/helpers/json → v0.1.2-alpha.2/lib/archiver}/README.md +0 -0
  308. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/archiver/build.json +0 -0
  309. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/bundle/copy.js +0 -0
  310. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/bundle/cp.js +0 -0
  311. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/bundle/help.js +0 -0
  312. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/bundle/rename.js +0 -0
  313. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/bundle/rm.js +0 -0
  314. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/bundle/status.js +0 -0
  315. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/env/get.js +0 -0
  316. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/env/help.js +0 -0
  317. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/env/help.txt +0 -0
  318. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/env/link-dev.js +0 -0
  319. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/env/rm.js +0 -0
  320. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/env/set.js +0 -0
  321. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/env/unset.js +0 -0
  322. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/framework/dot.js +0 -0
  323. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/framework/get.js +0 -0
  324. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/framework/help.js +0 -0
  325. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/framework/help.txt +0 -0
  326. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/framework/msg.json +0 -0
  327. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/framework/update.js +0 -0
  328. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/gina-dev.1.md +0 -0
  329. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/gina-framework.1.md +0 -0
  330. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/gina.1.md +0 -0
  331. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/msg.json +0 -0
  332. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/port/help.js +0 -0
  333. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/port/help.txt +0 -0
  334. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/port/set.js +0 -0
  335. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/project/help.js +0 -0
  336. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/project/import.js +0 -0
  337. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/project/move.js +0 -0
  338. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/project/restart.js +0 -0
  339. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/project/rm.js +0 -0
  340. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/project/start.js +0 -0
  341. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/project/status.js +0 -0
  342. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/project/stop.js +0 -0
  343. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/protocol/help.js +0 -0
  344. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/protocol/help.txt +0 -0
  345. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/protocol/list.js +0 -0
  346. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/scope/help.js +0 -0
  347. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/scope/link-local.js +0 -0
  348. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cmd/scope/rm.js +0 -0
  349. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/collection/README.md +0 -0
  350. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/collection/build.json +0 -0
  351. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/cron/README.md +0 -0
  352. /package/framework/{v0.1.1-alpha.99/lib/archiver/README.md → v0.1.2-alpha.2/lib/domain/exemples/backend.js} +0 -0
  353. /package/framework/{v0.1.1-alpha.99/lib/routing/README.md → v0.1.2-alpha.2/lib/domain/exemples/frontend.html} +0 -0
  354. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/inherits/example/inheriting_eventemitter.js +0 -0
  355. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/inherits/example/protected_inheritance.js +0 -0
  356. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/inherits/example/simple_inheritance.js +0 -0
  357. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/inherits/example/super_attribute_overridden_by_child_on_init.js +0 -0
  358. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/logger/README.md +0 -0
  359. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  360. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  361. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/merge/example/merge.js +0 -0
  362. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/merge/example/merge_2_literal objects.js +0 -0
  363. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/merge/example/merge_and_preserve_first.js +0 -0
  364. /package/framework/{v0.1.1-alpha.99/lib/swig-filters → v0.1.2-alpha.2/lib/routing}/README.md +0 -0
  365. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/routing/build.json +0 -0
  366. /package/framework/{v0.1.1-alpha.99/lib/url → v0.1.2-alpha.2/lib/swig-filters}/README.md +0 -0
  367. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/url/index.js +0 -0
  368. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/url/mocks.json +0 -0
  369. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/url/routing.json +0 -0
  370. /package/framework/{v0.1.1-alpha.99 → v0.1.2-alpha.2}/lib/url/test.js +0 -0
@@ -1,19 +1,22 @@
1
1
  //"use strict";
2
2
  /*
3
3
  * This file is part of the gina package.
4
- * Copyright (c) 2009-2022 Rhinostone <contact@gina.io>
4
+ * Copyright (c) 2009-2023 Rhinostone <contact@gina.io>
5
5
  *
6
6
  * For the full copyright and license information, please view the LICENSE
7
7
  * file that was distributed with this source code.
8
8
  */
9
9
  //Imports.
10
10
  var fs = require('fs');
11
+ var os = require('os');
11
12
  var dns = require('dns');
12
13
  var util = require('util');
13
14
  var Events = require('events');
14
15
  var EventEmitter = require('events').EventEmitter;
15
16
  var locales = require('./locales');
16
17
  var lib = require('./../lib');
18
+ var Domain = lib.Domain;
19
+ var domainLib = new Domain();
17
20
  var merge = lib.merge;
18
21
  var inherits = lib.inherits;
19
22
  var console = lib.logger;
@@ -33,30 +36,48 @@ var modelUtil = new lib.Model();
33
36
  * TODO - split Config.Env & Config.Host
34
37
  */
35
38
 
36
- function Config(opt) {
39
+ function Config(opt, contextResetNeeded) {
37
40
 
38
41
  var self = this;
42
+ if (
43
+ !Config.initialized
44
+ && typeof(contextResetNeeded) != 'undefined'
45
+ && /^true$/i.test(contextResetNeeded)
46
+ ) {
47
+ // requirements
48
+ setContext('env', opt.env);
49
+ setContext('scope', opt.scope);
50
+ setContext('projectName', opt.projectName || getContext('projectName'));
51
+ setContext('bundle', opt.startingApp);
52
+ // reset context
53
+ resetContext()
54
+ }
55
+
39
56
  // framework settings from homedir
57
+ var homedir = getEnvVar('GINA_HOMEDIR');
40
58
  var framework = {
41
- ports : _( GINA_HOMEDIR +'/ports.json', true),
42
- portsReverse : _( GINA_HOMEDIR +'/ports.reverse.json', true),
43
- project : _( GINA_HOMEDIR +'/projects.json', true)
59
+ ports : _( homedir +'/ports.json', true),
60
+ portsReverse : _( homedir +'/ports.reverse.json', true),
61
+ project : _( homedir +'/projects.json', true)
44
62
  };
45
63
 
46
64
  this.bundles = [];
47
65
  this.allBundles = [];
48
- this.allEnvs = getContext('envs');
66
+ this.allEnvs = getContext('envs');
67
+ this.allScopes = getContext('scopes');
49
68
 
50
69
  /**
51
70
  * Config Constructor
52
71
  * @constructor
53
72
  * */
54
- var init = function(opt) {
73
+ var init = function(opt, contextResetNeeded) {
55
74
 
56
75
  if ( !Config.initialized) {
57
- var env = opt.env;
76
+ var env = opt.env;
77
+ var scope = opt.scope;
58
78
 
59
79
  self.projectName = opt.projectName || getContext('projectName');
80
+
60
81
  self.startingApp = opt.startingApp;
61
82
  self.executionPath = opt.executionPath; // project path
62
83
 
@@ -66,7 +87,6 @@ function Config(opt) {
66
87
  var path = _(self.executionPath + '/env.json');
67
88
 
68
89
  if ( fs.existsSync(path) ) {
69
-
70
90
  self.userConf = requireJSON(path);
71
91
  console.debug('Application config file loaded [' + path + ']');
72
92
  }
@@ -74,13 +94,17 @@ function Config(opt) {
74
94
  self.Env.parent = self;
75
95
  if (env != 'undefined') self.Env.set(env);
76
96
 
97
+ self.Scope.parent = self;
98
+ if (scope != 'undefined') self.Scope.set(scope);
99
+
77
100
  self.Host.parent = self;
78
101
 
79
102
  //Do some checking please.. like already has a PID ?.
80
103
  //if yes, join in case of standalone.. or create a new thread.
81
104
  self.Host.setMaster(opt.startingApp);
82
105
 
83
- getConf(env)
106
+
107
+ getConf(env, scope);
84
108
  } else {
85
109
  if (!opt) {
86
110
  return Config.instance
@@ -90,15 +114,17 @@ function Config(opt) {
90
114
  }
91
115
  }
92
116
 
93
- var getConf = function(env) {
94
117
 
95
- self.env = env;
118
+ var getConf = function(env, scope) {
119
+
120
+ self.env = env;
121
+ self.scope = scope;
96
122
  console.debug('[ config ] Loading conf...');
97
123
 
98
124
  // framework settings
99
125
  var filename = null, content = null;
100
126
 
101
- for (var file in framework) {
127
+ for (let file in framework) {
102
128
 
103
129
  filename = framework[file];
104
130
 
@@ -173,6 +199,7 @@ function Config(opt) {
173
199
  //logger.debug('gina', 'CONFIG:DEBUG:42', 'CONF LOADED 43', __stack);
174
200
  self.bundlesConfiguration = {
175
201
  env : self.Env.get(),
202
+ scope : self.Scope.get(),
176
203
  version : self.version,
177
204
  conf : self.getInstance(),
178
205
  bundles : self.getBundles(),
@@ -183,17 +210,18 @@ function Config(opt) {
183
210
  //console.error("found bundles ", self.bundlesConfiguration.bundles);
184
211
 
185
212
  //TODO - Don't override if syntax is ok - no mixed paths.
186
- //Set paths for utils. Override for now.
213
+ //Set paths for lib. Override for now.
187
214
  //To reset it, just delete the hidden folder.
188
- var ginaPath = opt.ginaPath;
189
- var utilsConfig = new lib.Config();
215
+ var ginaPath = opt.ginaPath
216
+ , libConfig = new lib.Config()
217
+ ;
190
218
 
191
- utilsConfig.set('gina', 'locals.json', {
192
- project : utilsConfig.getProjectName(),
219
+ libConfig.set('gina', 'locals.json', {
220
+ project : libConfig.getProjectName(),
193
221
  paths : {
194
222
  project : self.projectName,
195
223
  gina : ginaPath,
196
- utils : utilsConfig.__dirname,
224
+ lib : libConfig.__dirname,
197
225
  root : opt.executionPath,
198
226
  env : opt.executionPath + '/env.json',
199
227
  tmp : opt.executionPath + '/tmp'
@@ -232,12 +260,16 @@ function Config(opt) {
232
260
  var configuration = Config.instance.envConf;
233
261
 
234
262
  var env = self.env || Config.instance.env;
263
+ var scope = self.scope || Config.instance.scope;
235
264
 
236
265
  Config.instance.Env.parent = Config.instance;
237
266
 
238
267
  if (env != 'undefined')
239
268
  Config.instance.Env.set(Config.instance.env);
240
269
 
270
+ if (scope != 'undefined')
271
+ Config.instance.Scope.set(Config.instance.scope);
272
+
241
273
  Config.instance.Host.parent = Config.instance;
242
274
 
243
275
  //Do some checking please.. like already has a PID ?.
@@ -267,8 +299,10 @@ function Config(opt) {
267
299
  *
268
300
  * Status Code, Mime Types etc ...
269
301
  * */
270
- this.setServerCoreConf = function(bundle, env, conf) {
271
- self.envConf[bundle][env].server['coreConfiguration'] = conf
302
+ this.setServerCoreConf = function(bundle, env, scope, conf) {
303
+ self.env = env;
304
+ self.scope = scope;
305
+ self.envConf[bundle][env].server['coreConfiguration'] = conf;
272
306
  }
273
307
 
274
308
  this.getServerCoreConf = function(bundle, env) {
@@ -277,7 +311,7 @@ function Config(opt) {
277
311
  } catch(err) {
278
312
  console.debug('Could not get server core configuration for <'+ bundle +'>:<'+ env +'>');
279
313
  console.error(err.stack||err.message);
280
- process.exit(1)
314
+ process.exit(1);
281
315
  }
282
316
  }
283
317
 
@@ -290,11 +324,12 @@ function Config(opt) {
290
324
  * @author Rhinostone <contact@gina.io>
291
325
  */
292
326
  this.Env = {
293
- template : requireJSON(GINA_FRAMEWORK_DIR +'/core/template/conf/env.json'),
327
+ template : requireJSON( getEnvVar('GINA_FRAMEWORK_DIR') +'/core/template/conf/env.json'),
294
328
  load : function(callback) {
295
329
  loadWithTemplate(this.parent.userConf, this.template, function(err, envConf) {
296
330
  self.envConf = envConf;
297
331
  envConf.env = self.env;
332
+ envConf.scope = self.scope;
298
333
  envConf.isStandalone = self.isStandalone;
299
334
 
300
335
  callback(false, envConf);
@@ -353,8 +388,8 @@ function Config(opt) {
353
388
 
354
389
  if ( typeof(self.envConf) != 'undefined' ) {
355
390
 
356
- var protocol = self.envConf[self.startingApp][env].content.settings.server.protocol || self.envConf[self.startingApp][env].server.protocol;
357
- var scheme = self.envConf[self.startingApp][env].content.settings.server.scheme || self.envConf[self.startingApp][env].server.scheme;
391
+ var protocol = self.envConf[self.startingApp][env].content.settings.server.protocol || self.envConf[self.startingApp][env].server.protocol;
392
+ var scheme = self.envConf[self.startingApp][env].content.settings.server.scheme || self.envConf[self.startingApp][env].server.scheme;
358
393
 
359
394
  self.envConf[self.startingApp][env].hostname = scheme + '://' + self.envConf[self.startingApp][env].host + ':' + self.envConf[self.startingApp][env].server.port;
360
395
 
@@ -376,11 +411,35 @@ function Config(opt) {
376
411
  getDefault : function() {
377
412
  return {
378
413
  "env" : this.template.defEnv,
414
+ "scope" : this.template.defScope,
379
415
  "ext" : this.template.defExt,
380
416
  "registeredEnvs" : this.template.registeredEnvs
381
417
  }
382
418
  }
383
419
  }
420
+ /**
421
+ * @class Env Sub class
422
+ *
423
+ *
424
+ * @package Gina.Config
425
+ * @namespace Gina.Config.Env
426
+ * @author Rhinostone <contact@gina.io>
427
+ */
428
+ this.Scope = {
429
+ template : requireJSON( getEnvVar('GINA_FRAMEWORK_DIR') +'/core/template/conf/env.json'),
430
+ set : function(scope) {
431
+ this.current = scope || this.template.defScope;
432
+ },
433
+
434
+ /**
435
+ * Get active scope
436
+ * @returns {String} scope
437
+ **/
438
+ get : function() {
439
+ return this.current
440
+ }
441
+ }
442
+
384
443
  /**
385
444
  * Host Class
386
445
  *
@@ -447,6 +506,33 @@ function Config(opt) {
447
506
 
448
507
  }
449
508
 
509
+ // TODO - replace `bundle`@`project` in `server.response.header['access-control-allow-origin']`
510
+ // This will allow replacement of variables before the bundle is loaded, saving some time while routing
511
+ // var getAllProjects = function(env) {
512
+ // var projectConfigPath = _(GINA_HOMEDIR + '/projects.json', true)
513
+ // , projectsList = []
514
+ // , projects = requireJSON(projectConfigPath)
515
+ // , p = 0
516
+ // , bundlesInfosPath = _(GINA_HOMEDIR + '/ports.reverse.json', true)
517
+ // , bundlesInfos = requireJSON(bundlesInfosPath)
518
+ // ;
519
+ // for (let project in projects) {
520
+ // projectsList[p] = {
521
+ // name : project,
522
+ // bundles : {}
523
+ // }
524
+ // let b = 0;
525
+ // for (let location in bundlesInfos) {
526
+ // if ( new RegExp('/@'+ project +'$/').test(location) ) {
527
+ // let bundle = location.split('@')[0];
528
+ // projectsList[p].bundles[bundle] = {}
529
+ // b++;
530
+ // }
531
+ // }
532
+
533
+ // p++;
534
+ // }
535
+ // }
450
536
 
451
537
  /**
452
538
  * Load config according to specific template
@@ -464,6 +550,7 @@ function Config(opt) {
464
550
  masterPort = null,
465
551
  appPort = null,
466
552
  env = self.Env.get(),
553
+ scope = self.Scope.get(),
467
554
  appsPath = '',
468
555
  modelsPath = '',
469
556
  projectPath = '',
@@ -479,9 +566,10 @@ function Config(opt) {
479
566
  //Pushing default app first.
480
567
  self.bundles.push(self.startingApp);//This is a JSON.push.
481
568
  var root = new _(self.executionPath).toUnixStyle();
482
- var pkg = null;
569
+ var manifest = null, pkg = null;
483
570
  try {
484
- pkg = require(_(root + '/manifest.json')).bundles;
571
+ manifest = require(_(root + '/manifest.json', true));
572
+ pkg = manifest.bundles;
485
573
  // by default but may be overriden
486
574
  masterPort = portsReverse[self.startingApp+'@'+self.projectName][env][projectConf.def_protocol][projectConf.def_scheme]
487
575
  } catch (err) {
@@ -516,7 +604,7 @@ function Config(opt) {
516
604
  var version = null, middleware = null;
517
605
  try {
518
606
  self.version = version = require(_(getPath('gina').root +'/package.json' )).version;
519
- self.middleware = middleware = fs.readFileSync(_(GINA_FRAMEWORK_DIR + '/MIDDLEWARE')).toString() || 'none';
607
+ self.middleware = middleware = fs.readFileSync(_( getEnvVar('GINA_FRAMEWORK_DIR') + '/MIDDLEWARE')).toString() || 'none';
520
608
 
521
609
  setContext('gina.version', version);
522
610
  setContext('gina.middleware', middleware);
@@ -671,7 +759,7 @@ function Config(opt) {
671
759
  bundleSettings.tmpSettingFileContent = JSON.clone(bundleSettings);
672
760
  newContent[app][env] = merge(bundleSettings, newContent[app][env]);
673
761
  // completing with missing props
674
- var defaultSettings = requireJSON(GINA_FRAMEWORK_DIR +'/core/template/conf/settings.json');
762
+ var defaultSettings = requireJSON( getEnvVar('GINA_FRAMEWORK_DIR') +'/core/template/conf/settings.json');
675
763
  newContent[app][env] = merge(newContent[app][env], defaultSettings);
676
764
 
677
765
 
@@ -704,21 +792,6 @@ function Config(opt) {
704
792
  : template["{bundle}"]["{env}"].projectPath;
705
793
 
706
794
 
707
- // TODO - remove this after the tests
708
- // if ( typeof(content[app][env].server ) != 'undefined' ) {
709
- // newContent[app][env].server = content[app][env].server;
710
-
711
- // }
712
- // else if ( bundHasSettings && typeof(bundleSettings.server) != 'undefined') {
713
- // newContent[app][env].server = bundleSettings.server;
714
- // }
715
- // else {
716
- // if ( typeof(content[app][env].server ) != 'undefined' ) {
717
- // newContent[app][env].server = template["{bundle}"]["{env}"].server
718
- // }
719
- // if ( typeof(newContent[app][env].server ) != 'undefined' ) {
720
- // newContent[app][env].server = template["{bundle}"]["{env}"].server
721
- // }
722
795
 
723
796
  // just in case someone removes the settings.server.json
724
797
  if ( typeof(newContent[app][env].server ) == 'undefined' ) {
@@ -732,8 +805,10 @@ function Config(opt) {
732
805
  // by default
733
806
  if ( typeof(newContent[app][env].server.scope) == 'undefined' ) {
734
807
  newContent[app][env].server.scope = projectConf.def_scope; // from ~/.gina/projects.json
735
- newContent[app][env].server.scopeIsLocal = (projectConf.def_scope == projectConf.local_scope) ? true : false; // from ~/.gina/projects.json
736
808
  }
809
+ newContent[app][env].server.scopeIsLocal = (projectConf.def_scope == projectConf.local_scope) ? true : false; // from ~/.gina/projects.json
810
+ newContent[app][env].server.scopeIsProduction = (projectConf.def_scope == projectConf.production_scope) ? true : false; // from ~/.gina/projects.json
811
+
737
812
  if ( typeof(newContent[app][env].server.protocol) == 'undefined' ) {
738
813
  //newContent[app][env].server.protocol = ( bundHasSettings && typeof(bundleSettings.server) != 'undefined' && typeof(bundleSettings.server.protocol) != 'undefined' ) ? bundleSettings.server.protocol : projectConf.def_protocol; // from ~/.gina/projects.json
739
814
  newContent[app][env].server.protocol = projectConf.def_protocol; // from ~/.gina/projects.json
@@ -799,22 +874,46 @@ function Config(opt) {
799
874
  newContent[app][env].executionPath = root
800
875
  }
801
876
 
802
- //Constants to be exposed in configuration files.
803
- //Variables replace. Compare with gina/core/template/conf/env.json.
877
+ // Constants to be exposed in configuration files.
878
+ // Variables replace. Compare with gina/core/template/conf/env.json.
879
+ // Defining root domain (TLD or SLD)
880
+ // by default
881
+ var rootDomain = domainLib.getRootDomain(os.hostname()).value;
882
+ // if overrided by the project `manifest.json`: meaning all bundles belong to the same TLD or SLD
883
+ if ( typeof(manifest.rootDomain) != 'undefined' ) {
884
+ rootDomain = manifest.rootDomain;
885
+ }
886
+ // if overrided by the project/env/bundle `env.json` or `bundle/config/settings.server.json`: meaning the bundles belong to a specific TLD or SLD
887
+ if ( typeof(newContent[app][env].rootDomain) != 'undefined' && newContent[app][env].rootDomain != '' ) {
888
+ rootDomain = newContent[app][env].rootDomain;
889
+ }
890
+ // custom override: user entry in the project/env/bundle `env.json` or `bundle/config/settings.server.json`
891
+ if (!/\{rootDomain\}/.test(newContent[app][env].host) ) {
892
+ rootDomain = domainLib.getRootDomain(newContent[app][env].host).value;
893
+ }
894
+ newContent[app][env].rootDomain = rootDomain;
895
+
804
896
  let reps = {
805
- "frameworkDir" : GINA_FRAMEWORK_DIR,
806
- "executionPath" : root,
807
- "projectPath" : projectPath,
808
- "bundlesPath" : appsPath,
809
- "modelsPath" : modelsPath,
810
- "tmpPath" : newContent[app][env].tmpPath,
811
- "scope" : newContent[app][env].server.scope,
812
- "host" : newContent[app][env].host,
813
- "env" : env,
814
- "bundle" : app,
815
- "version" : version
897
+ "frameworkDir" : getEnvVar('GINA_FRAMEWORK_DIR'),
898
+ "executionPath" : root,
899
+ "projectPath" : projectPath,
900
+ "bundlesPath" : appsPath,
901
+ "modelsPath" : modelsPath,
902
+ "tmpPath" : newContent[app][env].tmpPath,
903
+ "scope" : newContent[app][env].server.scope,
904
+ "rootDomain" : rootDomain,
905
+ "projectVersion" : manifest,
906
+ "projectVersionMajor" : manifest.version.split(/\./g)[0],
907
+ "host" : newContent[app][env].host,
908
+ "scheme" : newContent[app][env].server.scheme,
909
+ "env" : env,
910
+ "scope" : scope,
911
+ "bundle" : app,
912
+ "version" : version
816
913
  };
817
914
 
915
+ // replacement for {bundle}@{project}
916
+
818
917
  for (let _contant in process.gina) {
819
918
  reps[_contant] = process.gina[_contant];
820
919
  }
@@ -844,7 +943,6 @@ function Config(opt) {
844
943
  }
845
944
 
846
945
  var isFileInProject = function(file) {
847
-
848
946
  try {
849
947
  var usrConf = require(self.executionPath +'/'+ file +'.json');
850
948
  return true
@@ -874,6 +972,11 @@ function Config(opt) {
874
972
  return self.allEnvs
875
973
  }
876
974
 
975
+ this.getAllScopes = function() {
976
+ //Registered apps only.
977
+ return self.allScopes
978
+ }
979
+
877
980
  /**
878
981
  * Get original rule
879
982
  *
@@ -886,7 +989,7 @@ function Config(opt) {
886
989
 
887
990
  var currentRouting = routing[rule];
888
991
 
889
- for (var f in routing) {
992
+ for (let f in routing) {
890
993
  if (
891
994
  routing[f].param.action == currentRouting.param.action
892
995
  && routing[f].bundle == currentRouting.bundle
@@ -984,8 +1087,7 @@ function Config(opt) {
984
1087
  }
985
1088
 
986
1089
 
987
- for (var k in obj) {
988
-
1090
+ for (let k in obj) {
989
1091
  if (k == key) {
990
1092
  ++i;
991
1093
  return parseFileConf(root, arr, obj[key], len, i, content, pathname);
@@ -993,6 +1095,40 @@ function Config(opt) {
993
1095
  }
994
1096
  }
995
1097
 
1098
+ var originHostReplacement = function(name) {
1099
+ var matched = name.match(/\{\s*(.*)\s*\}/g);
1100
+ if (!matched || !Array.isArray(matched) || Array.isArray(matched) && matched.length == 0 ) {
1101
+ return name
1102
+ }
1103
+ var env = self.envConf.env;
1104
+ var scope = self.envConf.scope;
1105
+
1106
+ for (let i=0, len=matched.length; i<len; ++i) {
1107
+ let oldHost = matched[i];
1108
+ let newHost = matched[i].replace(/\{|\}|\s+/g, '');
1109
+ newHost = newHost.split(/\@/);
1110
+ let bundle = newHost[0]
1111
+ , project = newHost[1]
1112
+ , arr = null
1113
+ , hostname = null
1114
+ , scheme = null
1115
+ ;
1116
+ if ( /\//.test(newHost[1]) ) {
1117
+ arr = newHost[1].split(/\//);
1118
+ project = arr[0];
1119
+ env = (arr[1]) ? arr[1] : env;
1120
+ }
1121
+ scheme = self.envConf[bundle][env].server.scheme;
1122
+ hostname = ( !self.envConf[bundle][env].hostname ) ? self.envConf[bundle][env].server.scheme + '://' + self.envConf[bundle][env].host + ':' + self.envConf[bundle][env].server.port : self.envConf[bundle][env].hostname;
1123
+ name = name.replace(oldHost, hostname);
1124
+ }
1125
+ matched = null;
1126
+ env = null;
1127
+ scope = null;
1128
+
1129
+ return name;
1130
+ }
1131
+
996
1132
  var loadBundleConfig = function(bundles, b, callback, reload, collectedRules) {
997
1133
 
998
1134
  // current bundle
@@ -1006,13 +1142,14 @@ function Config(opt) {
1006
1142
  // environment
1007
1143
  var cacheless = self.isCacheless()
1008
1144
  , isStandalone = self.Host.isStandalone()
1009
- , env = self.env || self.Env.get() // env
1145
+ , env = self.env || self.Env.get() // env
1146
+ , scope = self.scope || self.Scope.get() // scope
1010
1147
  , conf = self.envConf // env conf
1011
1148
  ;
1012
1149
  console.debug('[ CONFIG ] loading `'+ bundle +'/'+ env +'` configuration, please wait ...');
1013
1150
 
1014
1151
 
1015
- self.setServerCoreConf(bundle, env, conf.core);
1152
+ self.setServerCoreConf(bundle, env, scope, conf.core);
1016
1153
 
1017
1154
  // bundle paths, ports, protocols
1018
1155
  var appPath = ''
@@ -1113,7 +1250,8 @@ function Config(opt) {
1113
1250
  // e.g: if env == `dev` and we have app.prod.json, we should skip it
1114
1251
  let skipIt = false;
1115
1252
  for (let e = 0, eLen = allEnvs.length; e < eLen; e++) {
1116
- let re = new RegExp('\.'+ allEnvs[e] +'\.json$');
1253
+ // *.dev.json or *.global.json
1254
+ let re = new RegExp('\.('+ allEnvs[e] +'|global)\.json$');
1117
1255
  if ( re.test(fName) && allEnvs[e] != env ) {
1118
1256
  // we should skip it
1119
1257
  skipIt = true;
@@ -1181,7 +1319,7 @@ function Config(opt) {
1181
1319
  }
1182
1320
  }
1183
1321
  // loading main
1184
- filename = _(appPath + '/config/' + main);
1322
+ filename = _(appPath + '/config/' + main, true);
1185
1323
  //Can't do anything without.
1186
1324
  try {
1187
1325
  exists = fs.existsSync(_(filename, true));
@@ -1211,25 +1349,6 @@ function Config(opt) {
1211
1349
  }
1212
1350
  }
1213
1351
 
1214
- // if (/\./.test(fNameWithNoExt)) {
1215
- // let nameArr = fNameWithNoExt.split(/\./g);
1216
- // if ( typeof(files[nameArr[0]]) == 'undefined')
1217
- // files[nameArr[0]] = {};
1218
-
1219
- // try {
1220
- // files = parseFileConf(files, nameArr, files, nameArr.length, 0, fileContent);
1221
- // continue;
1222
- // } catch (_err) {
1223
- // e = '[ ' + nameArr + ' ] could not parse file conf !!\n\r' + (_err.stack || _err.message);
1224
- // console.error(e);
1225
- // callback(new Error(e))
1226
- // }
1227
-
1228
-
1229
- // } else {
1230
- // files[name] = fileContent;
1231
- // }
1232
-
1233
1352
  if (section != '' ) {
1234
1353
  if (/\-/.test(section)) {
1235
1354
  section = section.replace(/-([a-z])/g, function(g) { return g[1].toUpperCase(); })
@@ -1255,6 +1374,14 @@ function Config(opt) {
1255
1374
  conf[bundle][env].template = true;
1256
1375
  }
1257
1376
 
1377
+ // routing.global.json
1378
+ let globalMiddlewares = null;
1379
+ let globalMiddlewaresPathObj = new _(appPath + '/config/routing.global.json', true);
1380
+ if ( globalMiddlewaresPathObj.existsSync() ) {
1381
+ globalMiddlewares = requireJSON(globalMiddlewaresPathObj.toUnixStyle()).middleware;
1382
+ }
1383
+ globalMiddlewaresPathObj = null;
1384
+
1258
1385
 
1259
1386
  name = 'routing';
1260
1387
  routing = files[name];
@@ -1262,8 +1389,8 @@ function Config(opt) {
1262
1389
  //setting app param
1263
1390
  var urls = null;
1264
1391
  // bundle status
1265
- routing['status'] = {
1266
- url: '/status',
1392
+ routing['bundle-status'] = {
1393
+ url: '/_status',
1267
1394
  method: 'GET',
1268
1395
  param: {
1269
1396
  control: 'getBundleStatus'
@@ -1276,6 +1403,7 @@ function Config(opt) {
1276
1403
  url: '/custom-error',
1277
1404
  method: 'GET',
1278
1405
  middleware: [],
1406
+ middlewareIgnored: ['shared.middlewares.global.checkScope'],
1279
1407
  param: {
1280
1408
  control: 'renderCustomError',
1281
1409
  // default data : will be fed on error
@@ -1406,6 +1534,17 @@ function Config(opt) {
1406
1534
  if ( typeof(routing[rule].middleware) == 'undefined' || !routing[rule].middleware )
1407
1535
  routing[rule].middleware = [];
1408
1536
 
1537
+ if (
1538
+ globalMiddlewares
1539
+ && Array.isArray(globalMiddlewares)
1540
+ && globalMiddlewares.length > 0
1541
+ ) {
1542
+ if ( typeof(routing[rule].middleware) == 'undefined' ) {
1543
+ routing[rule].middleware = [];
1544
+ }
1545
+ routing[rule].middleware = merge(globalMiddlewares.slice(), routing[rule].middleware);
1546
+ }
1547
+
1409
1548
  // default url
1410
1549
  if ( typeof(routing[rule].url) == 'undefined' || !routing[rule].url )
1411
1550
  routing[rule].url = '/'+ rule;
@@ -1467,7 +1606,7 @@ function Config(opt) {
1467
1606
  }
1468
1607
  }
1469
1608
 
1470
- self.setRouting(bundle, env, routing);
1609
+ self.setRouting(bundle, env, scope, routing);
1471
1610
  // reverse routing
1472
1611
  for (let rule in routing) {
1473
1612
 
@@ -1481,7 +1620,7 @@ function Config(opt) {
1481
1620
  reverseRouting[ routing[rule].url ] = rule
1482
1621
  }
1483
1622
  }
1484
- self.setReverseRouting(bundle, env, reverseRouting);
1623
+ self.setReverseRouting(bundle, env, scope, reverseRouting);
1485
1624
 
1486
1625
  if (!conf[bundle][env].executionPath) {
1487
1626
  conf[bundle][env].executionPath = self.executionPath
@@ -1490,10 +1629,11 @@ function Config(opt) {
1490
1629
  //Constants to be exposed in configuration files.
1491
1630
  var reps = {
1492
1631
  "gina" : getPath('gina').root,
1493
- "frameworkDir" : GINA_FRAMEWORK_DIR,
1632
+ "frameworkDir" : getEnvVar('GINA_FRAMEWORK_DIR'),
1494
1633
  "scope" : conf[bundle][env].server.scope,
1495
- "host" : conf[bundle][env].host,
1634
+ "host" : conf[bundle][env].host,
1496
1635
  "env" : env,
1636
+ "scope" : scope,
1497
1637
  "bundle" : bundle,
1498
1638
  // "server.engine" : conf[bundle][env].engine,
1499
1639
  // "server.protocol" : conf[bundle][env].protocol,
@@ -1514,7 +1654,7 @@ function Config(opt) {
1514
1654
  "sharedPath" : conf[bundle][env].sharedPath,
1515
1655
  "logsPath" : conf[bundle][env].logsPath,
1516
1656
  "tmpPath" : conf[bundle][env].tmpPath,
1517
- "version" : getContext('gina').version
1657
+ "version" : getContext('gina').version,
1518
1658
  };
1519
1659
 
1520
1660
  for (let _contant in process.gina) {
@@ -1534,7 +1674,7 @@ function Config(opt) {
1534
1674
  }
1535
1675
 
1536
1676
  var ports = conf[bundle][env].port;
1537
- for (var p in ports) {
1677
+ for (let p in ports) {
1538
1678
  reps[p+'Port'] = ports[p]
1539
1679
  }
1540
1680
 
@@ -1543,7 +1683,7 @@ function Config(opt) {
1543
1683
  conf[bundle][env] = merge(conf[bundle][env], requireJSON(localEnv), true);
1544
1684
  }
1545
1685
  var envKeys = conf[bundle][env];
1546
- for (var k in envKeys) {
1686
+ for (let k in envKeys) {
1547
1687
  if ( typeof(envKeys[k]) != 'object' && typeof(envKeys[k]) != 'array' ) {
1548
1688
  reps[k] = envKeys[k]
1549
1689
  }
@@ -1560,7 +1700,8 @@ function Config(opt) {
1560
1700
  files['settings'] = requireJSON(settingsPath)
1561
1701
  } else {
1562
1702
  var defaultSettings = requireJSON(settingsPath);
1563
- files['settings'] = merge( JSON.clone(files['settings']), defaultSettings)
1703
+ files['settings'] = merge(JSON.clone(files['settings']), defaultSettings)
1704
+ // files['settings'] = merge(files['settings'], defaultSettings)
1564
1705
  }
1565
1706
 
1566
1707
  if (fs.existsSync(staticsPath))
@@ -1571,7 +1712,8 @@ function Config(opt) {
1571
1712
  files['statics'] = requireJSON(staticsPath)
1572
1713
  } else if ( typeof(files['statics']) != 'undefined' ) {
1573
1714
  var defaultAliases = requireJSON(staticsPath);
1574
- files['statics'] = merge(defaultAliases, files['statics'], true)
1715
+ // files['statics'] = merge(defaultAliases, files['statics'], true)
1716
+ files['statics'] = merge(files['statics'], defaultAliases);
1575
1717
  }
1576
1718
 
1577
1719
 
@@ -1585,10 +1727,10 @@ function Config(opt) {
1585
1727
  }
1586
1728
 
1587
1729
  // templates root directories
1588
- var d = 0
1589
- , dirs = null
1590
- , pCount = 0
1591
- , sCount = 0
1730
+ var d = 0
1731
+ , dirsOrFiles = null
1732
+ , pCount = 0
1733
+ , sCount = 0
1592
1734
  ;
1593
1735
  if (conf[bundle][env].publicPath && fs.existsSync(conf[bundle][env].publicPath) ) {
1594
1736
  var publicResources = []
@@ -1596,30 +1738,44 @@ function Config(opt) {
1596
1738
  ;
1597
1739
 
1598
1740
  d = 0;
1599
- dirs = fs.readdirSync(conf[bundle][env].publicPath);
1741
+ dirsOrFiles = fs.readdirSync(conf[bundle][env].publicPath);
1600
1742
  // ignoring html (template files) directory
1601
- //dirs.splice(dirs.indexOf(new _(reps.html, true).toArray().last()), 1);
1743
+ //dirsOrFiles.splice(dirsOrFiles.indexOf(new _(reps.html, true).toArray().last()), 1);
1602
1744
 
1603
1745
  // making statics allowed directories
1604
- while ( d < dirs.length) {
1605
- lStat = fs.lstatSync(_(conf[bundle][env].publicPath +'/'+ dirs[d], true));
1606
- if ( !/^\./.test(dirs[d]) && lStat.isDirectory() ) {
1746
+ while ( d < dirsOrFiles.length) {
1747
+ if ( /^\./.test(dirsOrFiles[d]) ) {
1748
+ ++d;
1749
+ continue;
1750
+ }
1751
+ lStat = fs.lstatSync(_(conf[bundle][env].publicPath +'/'+ dirsOrFiles[d], true));
1752
+ if ( lStat.isDirectory() ) {
1607
1753
  // regular path
1608
- publicResources[pCount] = '/'+ dirs[d] +'/';
1754
+ publicResources[pCount] = '/'+ dirsOrFiles[d] +'/';
1609
1755
  ++pCount;
1756
+ if ( conf[bundle][env].server.webroot == "/" ) {
1757
+ ++d;
1758
+ continue;
1759
+ }
1610
1760
  // handle resources from public with webroot in url
1611
- publicResources[pCount] = conf[bundle][env].server.webroot + dirs[d] +'/';
1761
+ publicResources[pCount] = conf[bundle][env].server.webroot + dirsOrFiles[d] +'/';
1612
1762
  ++pCount
1613
- } else if ( !/^\./.test(dirs[d]) && lStat.isFile() ) {
1763
+ } else if ( lStat.isFile() ) {
1614
1764
  // regular path
1615
- publicResources[pCount] = '/'+ dirs[d];
1765
+ publicResources[pCount] = '/'+ dirsOrFiles[d];
1616
1766
  ++pCount;
1767
+ if ( conf[bundle][env].server.webroot == "/" ) {
1768
+ ++d;
1769
+ continue;
1770
+ }
1617
1771
  // handle resources from public with webroot in url
1618
- publicResources[pCount] = conf[bundle][env].server.webroot + dirs[d];
1772
+ publicResources[pCount] = conf[bundle][env].server.webroot + dirsOrFiles[d];
1619
1773
  ++pCount
1620
1774
  }
1621
1775
  ++d
1622
1776
  }
1777
+ d = null;
1778
+ dirsOrFiles = null;
1623
1779
 
1624
1780
  if (hasWebRoot) {
1625
1781
  var staticToPublicPath = null;
@@ -1632,6 +1788,7 @@ function Config(opt) {
1632
1788
  if ( publicResources.indexOf(staticToPublicPath) < 0 )
1633
1789
  publicResources.push( staticToPublicPath )
1634
1790
  }
1791
+ staticToPublicPath = null;
1635
1792
  }
1636
1793
 
1637
1794
  conf[bundle][env].publicResources = publicResources
@@ -1762,13 +1919,23 @@ function Config(opt) {
1762
1919
  for (; t < tLen; ++t) {
1763
1920
  noneDefaultCss[t] = JSON.clone(css);
1764
1921
  url = tTmp[t];
1922
+ let re = new RegExp('\{\s*(.*)\s*\}', 'g');
1765
1923
  if ( typeof(url) == 'string') {
1766
- noneDefaultCss[t].url = url;
1924
+ noneDefaultCss[t].url = url.replace(re, originHostReplacement);
1767
1925
  noneDefaultCss[t].name = url.substring(url.lastIndexOf('/')+1, url.lastIndexOf('.')).replace(/\W+/g, '-');
1768
1926
  noneDefaultCss[t].isCommon = ( /^_common$/.test(section) ) ? true : false;
1769
1927
  } else {
1928
+ // url replacements
1929
+ for (let prop in url) {
1930
+ if ( prop != 'url' || prop == 'url' && !url[prop] ) {
1931
+ continue;
1932
+ }
1933
+ // replacing url.url bundle@project -> <scheme>://<domain>:<port>/<webroot>
1934
+ url[prop] = url[prop].replace(re, originHostReplacement);
1935
+ }
1770
1936
  noneDefaultCss[t] = merge(url, noneDefaultCss[t]);
1771
1937
  }
1938
+ // .replace(/\s+/g, '').replace(/([a-z0-9_-]+\@[a-z0-9_-]+|[a-z0-9_-]+\@[a-z0-9_-]+\/[a-z0-9_-]+\@[a-z0-9_-]+)/ig, originHostReplacement)
1772
1939
  }
1773
1940
  }
1774
1941
 
@@ -1872,7 +2039,7 @@ function Config(opt) {
1872
2039
 
1873
2040
  if (/^(\*|\*\*|all)$/i.test(files['templates'][section][excludedStr])) {
1874
2041
  //currentCollection = allFilesCollection.notIn({ name: 'gina'}, 'name').toRaw();
1875
- currentCollection = allFilesCollection.toRaw();
2042
+ currentCollection = new Collection(allFilesCollection.toRaw());
1876
2043
 
1877
2044
  excluded = [];
1878
2045
  for (let e = 0, eLen = currentCollectionRaw.length; e < eLen; e++) {
@@ -2024,6 +2191,8 @@ function Config(opt) {
2024
2191
 
2025
2192
  files['templates']._common.ginaLoader = scriptTag;
2026
2193
 
2194
+ // files['templates']._common.ginaLoader = whisper(reps, files['templates']._common.ginaLoader);
2195
+
2027
2196
  } catch (err) {
2028
2197
  callback(err)
2029
2198
  }
@@ -2040,6 +2209,7 @@ function Config(opt) {
2040
2209
  conf[bundle][env].bundles = self.getBundles();
2041
2210
 
2042
2211
  conf[bundle][env].env = env;
2212
+ conf[bundle][env].scope = scope;
2043
2213
 
2044
2214
  // this setting is replace on http requests by the value extracted form the request header
2045
2215
  if (
@@ -2058,8 +2228,8 @@ function Config(opt) {
2058
2228
 
2059
2229
 
2060
2230
  } else {
2061
- protocol = conf[bundle][env].server.protocol;
2062
- scheme = conf[bundle][env].server.scheme;
2231
+ protocol = conf[bundle][env].server.protocol;
2232
+ scheme = conf[bundle][env].server.scheme;
2063
2233
  }
2064
2234
 
2065
2235
  conf[bundle][env].server.supportedRequestMethods = conf[bundle][env].content.settings.server.supportedRequestMethods;
@@ -2176,6 +2346,18 @@ function Config(opt) {
2176
2346
  //Also defined in core/gna.
2177
2347
  return (/^true$/i.test(process.env.NODE_ENV_IS_DEV)) ? true : false;
2178
2348
  }
2349
+ /**
2350
+ * Check if the project scope is set for local
2351
+ * */
2352
+ this.isLocalScope = function() {
2353
+ return (/^true$/i.test(process.env.NODE_SCOPE_IS_LOCAL)) ? true : false;
2354
+ }
2355
+ /**
2356
+ * Check if the project scope is set for production
2357
+ * */
2358
+ this.isProductionScope = function() {
2359
+ return (/^true$/i.test(process.env.NODE_SCOPE_IS_PRODUCTION)) ? true : false;
2360
+ }
2179
2361
  /**
2180
2362
  * Refresh for cachless mode
2181
2363
  *
@@ -2208,20 +2390,22 @@ function Config(opt) {
2208
2390
  this.refreshModels = function(bundle, env, callback) {
2209
2391
  var conf = self.envConf[bundle][env]
2210
2392
  //Reload models.
2211
- , modelsPath = _(conf.modelsPath);
2212
-
2393
+ , modelsPath = _(conf.modelsPath, true)
2394
+ , modelsPathObj = new _(modelsPath, true)
2395
+ ;
2213
2396
 
2214
- fs.exists(modelsPath, function(exists){
2215
- if (exists && self.startingApp == conf.bundle) {
2216
- modelUtil.reloadModels(
2217
- conf,
2218
- function doneReloadingModel(err) {
2219
- callback(err)
2220
- })
2221
- } else {
2222
- callback(false)
2223
- }
2224
- })
2397
+ if (
2398
+ modelsPathObj.existsSync()
2399
+ && self.startingApp == conf.bundle
2400
+ ) {
2401
+ modelUtil.reloadModels(
2402
+ conf,
2403
+ function doneReloadingModel(err) {
2404
+ callback(err)
2405
+ })
2406
+ } else {
2407
+ callback(false)
2408
+ }
2225
2409
  }
2226
2410
 
2227
2411
  /**
@@ -2229,7 +2413,7 @@ function Config(opt) {
2229
2413
  *
2230
2414
  * @param {object} routing
2231
2415
  * */
2232
- this.setRouting = function(bundle, env, routing) {
2416
+ this.setRouting = function(bundle, env, scope, routing) {
2233
2417
 
2234
2418
  if (!self.envConf.routing)
2235
2419
  self.envConf.routing = {};
@@ -2251,7 +2435,7 @@ function Config(opt) {
2251
2435
  this.getRouting = function(bundle, env) {
2252
2436
 
2253
2437
  if (typeof(env) == 'undefined') {
2254
- env = self.env || self.Env.get()
2438
+ env = self.env || self.Env.get()
2255
2439
  }
2256
2440
 
2257
2441
  if ( typeof(bundle) != 'undefined' ) {
@@ -2261,7 +2445,7 @@ function Config(opt) {
2261
2445
  return self.envConf.routing;
2262
2446
  }
2263
2447
 
2264
- this.setReverseRouting = function(bundle, env, reverseRouting) {
2448
+ this.setReverseRouting = function(bundle, env, scope, reverseRouting) {
2265
2449
 
2266
2450
  if (!self.envConf.reverseRouting)
2267
2451
  self.envConf.reverseRouting = {};
@@ -2298,7 +2482,7 @@ function Config(opt) {
2298
2482
  return self
2299
2483
  };
2300
2484
 
2301
- init(opt)
2485
+ init(opt, contextResetNeeded)
2302
2486
  }
2303
2487
 
2304
2488
  return this