gina 0.0.9-p91c → 0.1.1-alpha.3

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 (466) hide show
  1. package/INSTALL.md +46 -0
  2. package/{core/asset/html/static.html → Icon/r} +0 -0
  3. package/LICENSE +1 -1
  4. package/README-4Contributors.md +96 -0
  5. package/README.md +296 -104
  6. package/bin/cli +287 -0
  7. package/bin/cli-debug +60 -0
  8. package/bin/cmd +184 -0
  9. package/bin/gina +180 -0
  10. package/config/logger.json +17 -0
  11. package/doc/framework/cli/doc.json +9 -0
  12. package/doc/framework/index.md +60 -0
  13. package/framework/v0.1.1-alpha.3/AUTHORS +7 -0
  14. package/{core/utils/lib/inherits → framework/v0.1.1-alpha.3}/LICENSE +1 -1
  15. package/framework/v0.1.1-alpha.3/VERSION +1 -0
  16. package/{core/locales/dist/language/en.json → framework/v0.1.1-alpha.3/core/asset/html/nolayout.html} +0 -0
  17. package/{core/locales/dist/language/fr.json → framework/v0.1.1-alpha.3/core/asset/html/static.html} +0 -0
  18. package/{core → framework/v0.1.1-alpha.3/core}/asset/img/android-chrome-192x192.png +0 -0
  19. package/{core → framework/v0.1.1-alpha.3/core}/asset/img/android-chrome-512x512.png +0 -0
  20. package/{core → framework/v0.1.1-alpha.3/core}/asset/img/apple-touch-icon.png +0 -0
  21. package/{core → framework/v0.1.1-alpha.3/core}/asset/img/favicon-16x16.png +0 -0
  22. package/{core → framework/v0.1.1-alpha.3/core}/asset/img/favicon-32x32.png +0 -0
  23. package/{core → framework/v0.1.1-alpha.3/core}/asset/img/favicon.ico +0 -0
  24. package/framework/v0.1.1-alpha.3/core/asset/js/plugin/dist/gina.js +20904 -0
  25. package/framework/v0.1.1-alpha.3/core/asset/js/plugin/dist/gina.js.map +56 -0
  26. package/framework/v0.1.1-alpha.3/core/asset/js/plugin/dist/gina.min.css +1 -0
  27. package/framework/v0.1.1-alpha.3/core/asset/js/plugin/dist/gina.min.css.map +1 -0
  28. package/framework/v0.1.1-alpha.3/core/asset/js/plugin/dist/gina.min.js +736 -0
  29. package/framework/v0.1.1-alpha.3/core/asset/js/plugin/dist/gina.min.js.map +56 -0
  30. package/framework/v0.1.1-alpha.3/core/asset/js/plugin/dist/gina.onload.min.js +5 -0
  31. package/framework/v0.1.1-alpha.3/core/asset/js/plugin/dist/gina.onload.min.js.map +8 -0
  32. package/framework/v0.1.1-alpha.3/core/asset/js/plugin/readme.md +192 -0
  33. package/framework/v0.1.1-alpha.3/core/asset/js/plugin/uuid.json +23 -0
  34. package/framework/v0.1.1-alpha.3/core/config.js +2308 -0
  35. package/framework/v0.1.1-alpha.3/core/connectors/couchbase/index.js +757 -0
  36. package/framework/v0.1.1-alpha.3/core/connectors/couchbase/lib/connector.js +20 -0
  37. package/framework/v0.1.1-alpha.3/core/connectors/couchbase/lib/connector.v2.js +429 -0
  38. package/framework/v0.1.1-alpha.3/core/connectors/couchbase/lib/connector.v3.js +432 -0
  39. package/framework/v0.1.1-alpha.3/core/connectors/couchbase/lib/n1ql.js +14 -0
  40. package/framework/v0.1.1-alpha.3/core/connectors/couchbase/lib/session-store.js +21 -0
  41. package/framework/v0.1.1-alpha.3/core/connectors/couchbase/lib/session-store.v2.js +258 -0
  42. package/framework/v0.1.1-alpha.3/core/connectors/couchbase/lib/session-store.v3.js +341 -0
  43. package/{core → framework/v0.1.1-alpha.3/core}/controller/controller.framework.js +3 -2
  44. package/framework/v0.1.1-alpha.3/core/controller/controller.js +3990 -0
  45. package/{core → framework/v0.1.1-alpha.3/core}/controller/index.js +5 -5
  46. package/framework/v0.1.1-alpha.3/core/deps/busboy/.travis.yml +17 -0
  47. package/framework/v0.1.1-alpha.3/core/deps/busboy/LICENSE +19 -0
  48. package/framework/v0.1.1-alpha.3/core/deps/busboy/README.md +225 -0
  49. package/framework/v0.1.1-alpha.3/core/deps/busboy/deps/encoding/encoding-indexes.js +73 -0
  50. package/framework/v0.1.1-alpha.3/core/deps/busboy/deps/encoding/encoding.js +2391 -0
  51. package/framework/v0.1.1-alpha.3/core/deps/busboy/lib/main.js +89 -0
  52. package/framework/v0.1.1-alpha.3/core/deps/busboy/lib/types/multipart.js +328 -0
  53. package/framework/v0.1.1-alpha.3/core/deps/busboy/lib/types/urlencoded.js +214 -0
  54. package/framework/v0.1.1-alpha.3/core/deps/busboy/lib/utils.js +191 -0
  55. package/framework/v0.1.1-alpha.3/core/deps/busboy/package.json +69 -0
  56. package/framework/v0.1.1-alpha.3/core/deps/swig-client/swig-2.0.0.min.js +5 -0
  57. package/{core → framework/v0.1.1-alpha.3/core}/dev/index.js +5 -5
  58. package/{core → framework/v0.1.1-alpha.3/core}/dev/lib/class.js +1 -1
  59. package/{core → framework/v0.1.1-alpha.3/core}/dev/lib/factory.js +1 -1
  60. package/{core → framework/v0.1.1-alpha.3/core}/dev/lib/tools.js +0 -0
  61. package/framework/v0.1.1-alpha.3/core/gna.js +1070 -0
  62. package/{core → framework/v0.1.1-alpha.3/core}/locales/README.md +41 -2
  63. package/{core → framework/v0.1.1-alpha.3/core}/locales/currency.json +0 -0
  64. package/{core/plugins/README.md → framework/v0.1.1-alpha.3/core/locales/dist/language/en.json} +0 -0
  65. package/{core/plugins/lib/intl/README.md → framework/v0.1.1-alpha.3/core/locales/dist/language/fr.json} +0 -0
  66. package/{core → framework/v0.1.1-alpha.3/core}/locales/dist/region/en.json +0 -0
  67. package/framework/v0.1.1-alpha.3/core/locales/dist/region/fr.json +9492 -0
  68. package/{core → framework/v0.1.1-alpha.3/core}/locales/index.js +5 -4
  69. package/{core → framework/v0.1.1-alpha.3/core}/locales/src/make.js +15 -12
  70. package/{core → framework/v0.1.1-alpha.3/core}/locales/src/resources/currency.csv +0 -0
  71. package/{core → framework/v0.1.1-alpha.3/core}/locales/src/resources/region.csv +0 -0
  72. package/{core → framework/v0.1.1-alpha.3/core}/locales/src/resources/region.mapping.json +0 -0
  73. package/{core → framework/v0.1.1-alpha.3/core}/mime.types +0 -0
  74. package/{core → framework/v0.1.1-alpha.3/core}/model/entity.js +156 -196
  75. package/{core → framework/v0.1.1-alpha.3/core}/model/index.js +67 -48
  76. package/{core → framework/v0.1.1-alpha.3/core}/model/template/entityFactory.js +2 -2
  77. package/{core → framework/v0.1.1-alpha.3/core}/model/template/index.js +8 -10
  78. package/{core/plugins/lib/storage → framework/v0.1.1-alpha.3/core/plugins}/README.md +0 -0
  79. package/{core → framework/v0.1.1-alpha.3/core}/plugins/index.js +3 -3
  80. package/{core/plugins/lib/validator → framework/v0.1.1-alpha.3/core/plugins/lib/file}/README.md +0 -0
  81. package/{core/plugins/lib/intl → framework/v0.1.1-alpha.3/core/plugins/lib/file}/build.json +0 -0
  82. package/framework/v0.1.1-alpha.3/core/plugins/lib/file/package.json +25 -0
  83. package/{core/utils/lib/collection → framework/v0.1.1-alpha.3/core/plugins/lib/intl}/README.md +0 -0
  84. package/{core/plugins/lib/storage → framework/v0.1.1-alpha.3/core/plugins/lib/intl}/build.json +0 -0
  85. package/{core → framework/v0.1.1-alpha.3/core}/plugins/lib/intl/package.json +3 -3
  86. package/{core → framework/v0.1.1-alpha.3/core}/plugins/lib/intl/src/main.js +17 -1
  87. package/{core/utils/lib/routing → framework/v0.1.1-alpha.3/core/plugins/lib/storage}/README.md +0 -0
  88. package/{core/plugins/lib/validator → framework/v0.1.1-alpha.3/core/plugins/lib/storage}/build.json +0 -0
  89. package/{core → framework/v0.1.1-alpha.3/core}/plugins/lib/storage/package.json +2 -2
  90. package/{core → framework/v0.1.1-alpha.3/core}/plugins/lib/storage/src/main.js +91 -85
  91. package/{core/utils/lib/url → framework/v0.1.1-alpha.3/core/plugins/lib/validator}/README.md +0 -0
  92. package/{core/utils/lib/collection → framework/v0.1.1-alpha.3/core/plugins/lib/validator}/build.json +0 -0
  93. package/{core → framework/v0.1.1-alpha.3/core}/plugins/lib/validator/package.json +3 -3
  94. package/framework/v0.1.1-alpha.3/core/plugins/lib/validator/src/form-validator.js +1762 -0
  95. package/framework/v0.1.1-alpha.3/core/plugins/lib/validator/src/main.js +6917 -0
  96. package/framework/v0.1.1-alpha.3/core/router.js +664 -0
  97. package/framework/v0.1.1-alpha.3/core/server.express.js +213 -0
  98. package/framework/v0.1.1-alpha.3/core/server.isaac.js +386 -0
  99. package/framework/v0.1.1-alpha.3/core/server.js +3010 -0
  100. package/{core → framework/v0.1.1-alpha.3/core}/status.codes +8 -0
  101. package/framework/v0.1.1-alpha.3/core/template/boilerplate/bundle/config/app.json +6 -0
  102. package/framework/v0.1.1-alpha.3/core/template/boilerplate/bundle/config/routing.json +11 -0
  103. package/framework/v0.1.1-alpha.3/core/template/boilerplate/bundle/config/settings.json +9 -0
  104. package/framework/v0.1.1-alpha.3/core/template/boilerplate/bundle/config/settings.server.json +30 -0
  105. package/framework/v0.1.1-alpha.3/core/template/boilerplate/bundle/config/templates.json +42 -0
  106. package/framework/v0.1.1-alpha.3/core/template/boilerplate/bundle/controllers/controller.content.js +39 -0
  107. package/framework/v0.1.1-alpha.3/core/template/boilerplate/bundle/controllers/controller.js +30 -0
  108. package/framework/v0.1.1-alpha.3/core/template/boilerplate/bundle/controllers/setup.js +111 -0
  109. package/{core/template/samples → framework/v0.1.1-alpha.3/core/template/boilerplate}/bundle/index.js +0 -0
  110. package/{core/template/samples/bundle → framework/v0.1.1-alpha.3/core/template/boilerplate/bundle_namespace}/controllers/controller.js +9 -7
  111. package/{core/template/views → framework/v0.1.1-alpha.3/core/template/boilerplate/bundle_public}/css/default.css +0 -0
  112. package/{core/template/views → framework/v0.1.1-alpha.3/core/template/boilerplate/bundle_public}/css/vendor/readme.md +0 -0
  113. package/{core/template/views → framework/v0.1.1-alpha.3/core/template/boilerplate/bundle_public}/favicon.ico +0 -0
  114. package/framework/v0.1.1-alpha.3/core/template/boilerplate/bundle_public/js/vendor/readme.md +1 -0
  115. package/framework/v0.1.1-alpha.3/core/template/boilerplate/bundle_public/readme.md +1 -0
  116. package/framework/v0.1.1-alpha.3/core/template/boilerplate/bundle_templates/handlers/main.js +24 -0
  117. package/{core/template/views/html/default.html → framework/v0.1.1-alpha.3/core/template/boilerplate/bundle_templates/html/homepage.html} +0 -0
  118. package/{core/template/views/html/layout.html → framework/v0.1.1-alpha.3/core/template/boilerplate/bundle_templates/html/layout/main.html} +2 -2
  119. package/{core → framework/v0.1.1-alpha.3/core}/template/command/gina.bat.tpl +0 -0
  120. package/{core → framework/v0.1.1-alpha.3/core}/template/command/gina.tpl +1 -1
  121. package/framework/v0.1.1-alpha.3/core/template/conf/env.json +76 -0
  122. package/{core/template/conf/project.json → framework/v0.1.1-alpha.3/core/template/conf/manifest.json} +1 -0
  123. package/{core → framework/v0.1.1-alpha.3/core}/template/conf/package.json +2 -2
  124. package/framework/v0.1.1-alpha.3/core/template/conf/settings.json +92 -0
  125. package/framework/v0.1.1-alpha.3/core/template/conf/statics.json +10 -0
  126. package/framework/v0.1.1-alpha.3/core/template/conf/templates.json +37 -0
  127. package/{core → framework/v0.1.1-alpha.3/core}/template/error/client/json/401.json +0 -0
  128. package/{core → framework/v0.1.1-alpha.3/core}/template/error/client/json/403.json +0 -0
  129. package/{core → framework/v0.1.1-alpha.3/core}/template/error/client/json/404.json +0 -0
  130. package/{core → framework/v0.1.1-alpha.3/core}/template/error/server/html/50x.html +0 -0
  131. package/{core → framework/v0.1.1-alpha.3/core}/template/error/server/json/500.json +0 -0
  132. package/{core → framework/v0.1.1-alpha.3/core}/template/error/server/json/503.json +0 -0
  133. package/{core/utils/lib/routing/build.json → framework/v0.1.1-alpha.3/core/template/extensions/logger/config.json} +0 -0
  134. package/{core/utils → framework/v0.1.1-alpha.3}/helpers/console.js +3 -3
  135. package/{core/utils → framework/v0.1.1-alpha.3}/helpers/context.js +240 -49
  136. package/framework/v0.1.1-alpha.3/helpers/dateFormat.js +528 -0
  137. package/framework/v0.1.1-alpha.3/helpers/index.js +79 -0
  138. package/framework/v0.1.1-alpha.3/helpers/json/README.md +0 -0
  139. package/framework/v0.1.1-alpha.3/helpers/json/package.json +20 -0
  140. package/framework/v0.1.1-alpha.3/helpers/json/src/main.js +97 -0
  141. package/{core/utils → framework/v0.1.1-alpha.3}/helpers/path.js +342 -140
  142. package/framework/v0.1.1-alpha.3/helpers/plugins/README.md +4 -0
  143. package/framework/v0.1.1-alpha.3/helpers/plugins/package.json +20 -0
  144. package/framework/v0.1.1-alpha.3/helpers/plugins/src/api-error.js +160 -0
  145. package/framework/v0.1.1-alpha.3/helpers/plugins/src/main.js +32 -0
  146. package/framework/v0.1.1-alpha.3/helpers/prototypes.js +218 -0
  147. package/{core/utils → framework/v0.1.1-alpha.3}/helpers/task.js +49 -29
  148. package/{core/utils → framework/v0.1.1-alpha.3}/helpers/text.js +7 -7
  149. package/framework/v0.1.1-alpha.3/lib/archiver/README.md +0 -0
  150. package/framework/v0.1.1-alpha.3/lib/archiver/build.json +0 -0
  151. package/framework/v0.1.1-alpha.3/lib/archiver/package.json +20 -0
  152. package/framework/v0.1.1-alpha.3/lib/archiver/src/dep/jszip.min.js +15 -0
  153. package/framework/v0.1.1-alpha.3/lib/archiver/src/main.js +499 -0
  154. package/framework/v0.1.1-alpha.3/lib/cmd/aliases.json +13 -0
  155. package/framework/v0.1.1-alpha.3/lib/cmd/bundle/add.js +507 -0
  156. package/framework/v0.1.1-alpha.3/lib/cmd/bundle/arguments.json +4 -0
  157. package/framework/v0.1.1-alpha.3/lib/cmd/bundle/copy.js +15 -0
  158. package/framework/v0.1.1-alpha.3/lib/cmd/bundle/cp.js +2 -0
  159. package/framework/v0.1.1-alpha.3/lib/cmd/bundle/help.js +28 -0
  160. package/framework/v0.1.1-alpha.3/lib/cmd/bundle/help.txt +67 -0
  161. package/framework/v0.1.1-alpha.3/lib/cmd/bundle/list.js +129 -0
  162. package/framework/v0.1.1-alpha.3/lib/cmd/bundle/remove.js +229 -0
  163. package/framework/v0.1.1-alpha.3/lib/cmd/bundle/rename.js +4 -0
  164. package/framework/v0.1.1-alpha.3/lib/cmd/bundle/restart.js +235 -0
  165. package/framework/v0.1.1-alpha.3/lib/cmd/bundle/rm.js +2 -0
  166. package/framework/v0.1.1-alpha.3/lib/cmd/bundle/start.js +394 -0
  167. package/framework/v0.1.1-alpha.3/lib/cmd/bundle/status.js +3 -0
  168. package/framework/v0.1.1-alpha.3/lib/cmd/bundle/stop.js +232 -0
  169. package/framework/v0.1.1-alpha.3/lib/cmd/env/add.js +436 -0
  170. package/framework/v0.1.1-alpha.3/lib/cmd/env/get.js +62 -0
  171. package/framework/v0.1.1-alpha.3/lib/cmd/env/help.js +28 -0
  172. package/framework/v0.1.1-alpha.3/lib/cmd/env/help.txt +33 -0
  173. package/framework/v0.1.1-alpha.3/lib/cmd/env/link-dev.js +80 -0
  174. package/framework/v0.1.1-alpha.3/lib/cmd/env/list.js +111 -0
  175. package/framework/v0.1.1-alpha.3/lib/cmd/env/remove.js +150 -0
  176. package/framework/v0.1.1-alpha.3/lib/cmd/env/rm.js +2 -0
  177. package/framework/v0.1.1-alpha.3/lib/cmd/env/set.js +57 -0
  178. package/framework/v0.1.1-alpha.3/lib/cmd/env/unset.js +44 -0
  179. package/framework/v0.1.1-alpha.3/lib/cmd/env/use.js +79 -0
  180. package/framework/v0.1.1-alpha.3/lib/cmd/framework/dot.js +70 -0
  181. package/framework/v0.1.1-alpha.3/lib/cmd/framework/get.js +0 -0
  182. package/framework/v0.1.1-alpha.3/lib/cmd/framework/help.js +39 -0
  183. package/framework/v0.1.1-alpha.3/lib/cmd/framework/help.txt +31 -0
  184. package/framework/v0.1.1-alpha.3/lib/cmd/framework/init.js +514 -0
  185. package/{core/utils/lib/cmd → framework/v0.1.1-alpha.3/lib/cmd/framework}/msg.json +3 -3
  186. package/framework/v0.1.1-alpha.3/lib/cmd/framework/open.js +50 -0
  187. package/framework/v0.1.1-alpha.3/lib/cmd/framework/restart.js +124 -0
  188. package/framework/v0.1.1-alpha.3/lib/cmd/framework/set.js +161 -0
  189. package/framework/v0.1.1-alpha.3/lib/cmd/framework/start.js +96 -0
  190. package/framework/v0.1.1-alpha.3/lib/cmd/framework/status.js +72 -0
  191. package/framework/v0.1.1-alpha.3/lib/cmd/framework/stop.js +159 -0
  192. package/framework/v0.1.1-alpha.3/lib/cmd/framework/tail.js +183 -0
  193. package/framework/v0.1.1-alpha.3/lib/cmd/framework/update.js +0 -0
  194. package/framework/v0.1.1-alpha.3/lib/cmd/framework/version.js +44 -0
  195. package/framework/v0.1.1-alpha.3/lib/cmd/gina-dev.1.md +66 -0
  196. package/framework/v0.1.1-alpha.3/lib/cmd/gina-framework.1.md +100 -0
  197. package/framework/v0.1.1-alpha.3/lib/cmd/gina.1.md +79 -0
  198. package/framework/v0.1.1-alpha.3/lib/cmd/helper.js +1147 -0
  199. package/framework/v0.1.1-alpha.3/lib/cmd/index.js +170 -0
  200. package/framework/v0.1.1-alpha.3/lib/cmd/msg.json +20 -0
  201. package/framework/v0.1.1-alpha.3/lib/cmd/port/help.js +28 -0
  202. package/framework/v0.1.1-alpha.3/lib/cmd/port/help.txt +31 -0
  203. package/framework/v0.1.1-alpha.3/lib/cmd/port/inc/scan.js +108 -0
  204. package/framework/v0.1.1-alpha.3/lib/cmd/port/list.js +176 -0
  205. package/framework/v0.1.1-alpha.3/lib/cmd/port/set.js +0 -0
  206. package/framework/v0.1.1-alpha.3/lib/cmd/project/add.js +528 -0
  207. package/framework/v0.1.1-alpha.3/lib/cmd/project/arguments.json +9 -0
  208. package/framework/v0.1.1-alpha.3/lib/cmd/project/build.js +115 -0
  209. package/framework/v0.1.1-alpha.3/lib/cmd/project/help.js +28 -0
  210. package/framework/v0.1.1-alpha.3/lib/cmd/project/help.txt +76 -0
  211. package/framework/v0.1.1-alpha.3/lib/cmd/project/import.js +2 -0
  212. package/framework/v0.1.1-alpha.3/lib/cmd/project/list.js +55 -0
  213. package/framework/v0.1.1-alpha.3/lib/cmd/project/move.js +0 -0
  214. package/framework/v0.1.1-alpha.3/lib/cmd/project/remove.js +144 -0
  215. package/framework/v0.1.1-alpha.3/lib/cmd/project/rename.js +162 -0
  216. package/framework/v0.1.1-alpha.3/lib/cmd/project/restart.js +0 -0
  217. package/framework/v0.1.1-alpha.3/lib/cmd/project/rm.js +2 -0
  218. package/framework/v0.1.1-alpha.3/lib/cmd/project/start.js +0 -0
  219. package/framework/v0.1.1-alpha.3/lib/cmd/project/status.js +3 -0
  220. package/framework/v0.1.1-alpha.3/lib/cmd/project/stop.js +0 -0
  221. package/framework/v0.1.1-alpha.3/lib/cmd/protocol/help.js +27 -0
  222. package/framework/v0.1.1-alpha.3/lib/cmd/protocol/help.txt +57 -0
  223. package/framework/v0.1.1-alpha.3/lib/cmd/protocol/list.js +239 -0
  224. package/framework/v0.1.1-alpha.3/lib/cmd/protocol/set.js +631 -0
  225. package/framework/v0.1.1-alpha.3/lib/cmd/scope/help.js +28 -0
  226. package/framework/v0.1.1-alpha.3/lib/cmd/scope/help.txt +33 -0
  227. package/framework/v0.1.1-alpha.3/lib/cmd/scope/link-local.js +80 -0
  228. package/framework/v0.1.1-alpha.3/lib/cmd/scope/list.js +116 -0
  229. package/framework/v0.1.1-alpha.3/lib/cmd/scope/remove.js +150 -0
  230. package/framework/v0.1.1-alpha.3/lib/cmd/scope/rm.js +2 -0
  231. package/framework/v0.1.1-alpha.3/lib/cmd/scope/set.js +57 -0
  232. package/framework/v0.1.1-alpha.3/lib/cmd/scope/unset.js +44 -0
  233. package/framework/v0.1.1-alpha.3/lib/cmd/scope/use.js +79 -0
  234. package/framework/v0.1.1-alpha.3/lib/cmd/view/add.js +311 -0
  235. package/framework/v0.1.1-alpha.3/lib/collection/README.md +5 -0
  236. package/framework/v0.1.1-alpha.3/lib/collection/build.json +0 -0
  237. package/{core/utils → framework/v0.1.1-alpha.3}/lib/collection/package.json +2 -2
  238. package/framework/v0.1.1-alpha.3/lib/collection/src/main.js +1459 -0
  239. package/{core/utils → framework/v0.1.1-alpha.3}/lib/config.js +49 -34
  240. package/framework/v0.1.1-alpha.3/lib/cron/README.md +7 -0
  241. package/framework/v0.1.1-alpha.3/lib/cron/package.json +20 -0
  242. package/framework/v0.1.1-alpha.3/lib/cron/src/main.js +176 -0
  243. package/{core/utils → framework/v0.1.1-alpha.3}/lib/generator/index.js +8 -4
  244. package/framework/v0.1.1-alpha.3/lib/index.js +116 -0
  245. package/framework/v0.1.1-alpha.3/lib/inherits/LICENSE +19 -0
  246. package/{core/utils → framework/v0.1.1-alpha.3}/lib/inherits/README.md +0 -0
  247. package/{core/utils → framework/v0.1.1-alpha.3}/lib/inherits/example/inheriting_eventemitter.js +0 -0
  248. package/{core/utils → framework/v0.1.1-alpha.3}/lib/inherits/example/protected_inheritance.js +0 -0
  249. package/{core/utils → framework/v0.1.1-alpha.3}/lib/inherits/example/simple_inheritance.js +0 -0
  250. package/{core/utils → framework/v0.1.1-alpha.3}/lib/inherits/example/super_attribute_overridden_by_child_on_init.js +0 -0
  251. package/{core/utils → framework/v0.1.1-alpha.3}/lib/inherits/package.json +2 -2
  252. package/{core/utils → framework/v0.1.1-alpha.3}/lib/inherits/src/main.js +18 -19
  253. package/framework/v0.1.1-alpha.3/lib/logger/README.md +7 -0
  254. package/framework/v0.1.1-alpha.3/lib/logger/package.json +20 -0
  255. package/framework/v0.1.1-alpha.3/lib/logger/src/containers/default/index.js +55 -0
  256. package/framework/v0.1.1-alpha.3/lib/logger/src/containers/file/index.js +251 -0
  257. package/framework/v0.1.1-alpha.3/lib/logger/src/containers/file/lib/logrotator/README.md +100 -0
  258. package/framework/v0.1.1-alpha.3/lib/logger/src/containers/file/lib/logrotator/index.js +274 -0
  259. package/framework/v0.1.1-alpha.3/lib/logger/src/containers/mq/index.js +52 -0
  260. package/framework/v0.1.1-alpha.3/lib/logger/src/containers/mq/listener.js +302 -0
  261. package/framework/v0.1.1-alpha.3/lib/logger/src/containers/mq/speaker.js +118 -0
  262. package/framework/v0.1.1-alpha.3/lib/logger/src/helper.js +131 -0
  263. package/framework/v0.1.1-alpha.3/lib/logger/src/main.js +739 -0
  264. package/{core/utils → framework/v0.1.1-alpha.3}/lib/math/index.js +58 -35
  265. package/{core/utils → framework/v0.1.1-alpha.3}/lib/merge/README.md +5 -0
  266. package/{core/utils → framework/v0.1.1-alpha.3}/lib/merge/example/merge.js +1 -1
  267. package/{core/utils → framework/v0.1.1-alpha.3}/lib/merge/example/merge_2_literal objects.js +0 -0
  268. package/{core/utils → framework/v0.1.1-alpha.3}/lib/merge/example/merge_and_preserve_first.js +2 -0
  269. package/{core/utils → framework/v0.1.1-alpha.3}/lib/merge/package.json +2 -2
  270. package/framework/v0.1.1-alpha.3/lib/merge/src/main.js +531 -0
  271. package/{core/utils → framework/v0.1.1-alpha.3}/lib/model.js +42 -19
  272. package/framework/v0.1.1-alpha.3/lib/proc.js +518 -0
  273. package/framework/v0.1.1-alpha.3/lib/routing/README.md +0 -0
  274. package/framework/v0.1.1-alpha.3/lib/routing/build.json +0 -0
  275. package/{core/utils → framework/v0.1.1-alpha.3}/lib/routing/package.json +2 -2
  276. package/framework/v0.1.1-alpha.3/lib/routing/src/main.js +1492 -0
  277. package/framework/v0.1.1-alpha.3/lib/session-store.js +33 -0
  278. package/{core/utils → framework/v0.1.1-alpha.3}/lib/shell.js +43 -30
  279. package/framework/v0.1.1-alpha.3/lib/swig-filters/README.md +0 -0
  280. package/framework/v0.1.1-alpha.3/lib/swig-filters/package.json +20 -0
  281. package/framework/v0.1.1-alpha.3/lib/swig-filters/src/main.js +322 -0
  282. package/framework/v0.1.1-alpha.3/lib/url/README.md +0 -0
  283. package/{core/utils → framework/v0.1.1-alpha.3}/lib/url/index.js +2 -1
  284. package/{core/utils → framework/v0.1.1-alpha.3}/lib/url/mocks.json +0 -0
  285. package/{core/utils → framework/v0.1.1-alpha.3}/lib/url/routing.json +9 -9
  286. package/{core/utils → framework/v0.1.1-alpha.3}/lib/url/test.js +0 -0
  287. package/{core/utils → framework/v0.1.1-alpha.3}/lib/validator.js +7 -7
  288. package/framework/v0.1.1-alpha.3/package.json +14 -0
  289. package/package.json +35 -33
  290. package/resources/etc/init.d/debian/gina +117 -0
  291. package/resources/home/framework/env.json +34 -0
  292. package/resources/home/framework/locals.json +14 -0
  293. package/resources/home/framework/project.json +48 -0
  294. package/resources/home/framework/projects.json +6 -0
  295. package/resources/home/main.json +47 -0
  296. package/resources/home/settings.json +22 -0
  297. package/resources/home/user/extensions/logger/default/config.json +77 -0
  298. package/resources/home/user/extensions/logger/file/config.json +11 -0
  299. package/resources/img/android-chrome-192x192.png +0 -0
  300. package/resources/img/android-chrome-512x512.png +0 -0
  301. package/resources/img/apple-touch-icon.png +0 -0
  302. package/resources/img/favicon-16x16.png +0 -0
  303. package/resources/img/favicon-32x32.png +0 -0
  304. package/resources/img/favicon.ico +0 -0
  305. package/resources/package.json.template +50 -0
  306. package/script/lib.js +24 -0
  307. package/script/post_install.js +449 -157
  308. package/script/pre_install.js +277 -36
  309. package/script/prepare_version.js +425 -0
  310. package/utils/helper.js +438 -0
  311. package/utils/prototypes.js +239 -0
  312. package/utils/prototypes.json_clone.js +175 -0
  313. package/.npmignore +0 -6
  314. package/MIDDLEWARE +0 -1
  315. package/SUCCESS +0 -1
  316. package/VERSION +0 -1
  317. package/core/asset/html/nolayout.html +0 -1
  318. package/core/asset/js/plugin/build.dev.json +0 -28
  319. package/core/asset/js/plugin/build.json +0 -31
  320. package/core/asset/js/plugin/dist/gina.min.css +0 -1
  321. package/core/asset/js/plugin/dist/gina.min.css.map +0 -1
  322. package/core/asset/js/plugin/dist/gina.min.js +0 -13732
  323. package/core/asset/js/plugin/dist/gina.min.js.map +0 -42
  324. package/core/asset/js/plugin/dist/gina.onload.min.js +0 -3
  325. package/core/asset/js/plugin/dist/gina.onload.min.js.map +0 -8
  326. package/core/asset/js/plugin/readme.md +0 -152
  327. package/core/asset/js/plugin/src/gina/main.js +0 -132
  328. package/core/asset/js/plugin/src/gina/popin/css/design.css +0 -23
  329. package/core/asset/js/plugin/src/gina/popin/css/main.css +0 -1112
  330. package/core/asset/js/plugin/src/gina/popin/css/popin.css +0 -3
  331. package/core/asset/js/plugin/src/gina/popin/css/popin.css.map +0 -1
  332. package/core/asset/js/plugin/src/gina/popin/doc/TOC.md +0 -29
  333. package/core/asset/js/plugin/src/gina/popin/doc/css.md +0 -162
  334. package/core/asset/js/plugin/src/gina/popin/doc/extend.md +0 -663
  335. package/core/asset/js/plugin/src/gina/popin/doc/faq.md +0 -46
  336. package/core/asset/js/plugin/src/gina/popin/doc/html.md +0 -227
  337. package/core/asset/js/plugin/src/gina/popin/doc/js.md +0 -37
  338. package/core/asset/js/plugin/src/gina/popin/doc/misc.md +0 -178
  339. package/core/asset/js/plugin/src/gina/popin/doc/usage.md +0 -130
  340. package/core/asset/js/plugin/src/gina/popin/main.js +0 -783
  341. package/core/asset/js/plugin/src/gina/popin/sass/config.sass +0 -37
  342. package/core/asset/js/plugin/src/gina/popin/sass/gina-design.sass +0 -622
  343. package/core/asset/js/plugin/src/gina/popin/sass/gina-popin.sass +0 -54
  344. package/core/asset/js/plugin/src/gina/popin/sass/helper.scss +0 -73
  345. package/core/asset/js/plugin/src/gina/toolbar/.npmignore +0 -19
  346. package/core/asset/js/plugin/src/gina/toolbar/css/toolbar.css +0 -433
  347. package/core/asset/js/plugin/src/gina/toolbar/css/toolbar.css.map +0 -1
  348. package/core/asset/js/plugin/src/gina/toolbar/index.html +0 -285
  349. package/core/asset/js/plugin/src/gina/toolbar/index.kit +0 -120
  350. package/core/asset/js/plugin/src/gina/toolbar/jquery-3.1.0.min.js +0 -4
  351. package/core/asset/js/plugin/src/gina/toolbar/main.js +0 -693
  352. package/core/asset/js/plugin/src/gina/toolbar/mock.gina.json +0 -1
  353. package/core/asset/js/plugin/src/gina/toolbar/mock.user.json +0 -1
  354. package/core/asset/js/plugin/src/gina/toolbar/readme.md +0 -7
  355. package/core/asset/js/plugin/src/gina/toolbar/sass/toolbar.sass +0 -563
  356. package/core/asset/js/plugin/src/gina/toolbar/svg-src/Info-color.svg +0 -1
  357. package/core/asset/js/plugin/src/gina/toolbar/svg-src/Info-grey.svg +0 -1
  358. package/core/asset/js/plugin/src/gina/toolbar/svg-src/error-color.svg +0 -1
  359. package/core/asset/js/plugin/src/gina/toolbar/svg-src/error-grey.svg +0 -1
  360. package/core/asset/js/plugin/src/gina/toolbar/svg-src/info-optim.svg +0 -13
  361. package/core/asset/js/plugin/src/gina/toolbar/svg-src/logo-gina.svg +0 -1
  362. package/core/asset/js/plugin/src/gina/toolbar/svg-src/settings-big.svg +0 -1
  363. package/core/asset/js/plugin/src/gina/toolbar/svg-src/settings.afdesign +0 -0
  364. package/core/asset/js/plugin/src/gina/toolbar/svg-src/settings.svg +0 -1
  365. package/core/asset/js/plugin/src/gina/toolbar/svg-src/stripe-calendar-optim.svg +0 -1
  366. package/core/asset/js/plugin/src/gina/toolbar/svg-src/stripe-calendar.svg +0 -1
  367. package/core/asset/js/plugin/src/gina/toolbar/svg-src/stripe-card-optim.svg +0 -1
  368. package/core/asset/js/plugin/src/gina/toolbar/svg-src/stripe-card.svg +0 -1
  369. package/core/asset/js/plugin/src/gina/toolbar/svg-src/stripe-lock-optim.svg +0 -1
  370. package/core/asset/js/plugin/src/gina/toolbar/svg-src/stripe-lock.svg +0 -1
  371. package/core/asset/js/plugin/src/gina/toolbar/svg-src/warning-color.svg +0 -1
  372. package/core/asset/js/plugin/src/gina/toolbar/svg-src/warning-grey.svg +0 -1
  373. package/core/asset/js/plugin/src/gina/toolbar/test.jpg +0 -0
  374. package/core/asset/js/plugin/src/gina/toolbar/toolbar.html +0 -104
  375. package/core/asset/js/plugin/src/gina/utils/dom.js +0 -24
  376. package/core/asset/js/plugin/src/gina/utils/events.js +0 -201
  377. package/core/asset/js/plugin/src/gina/utils/loader.js +0 -57
  378. package/core/asset/js/plugin/src/main.js +0 -235
  379. package/core/asset/js/plugin/src/vendor/jquery/1.11.1-css-event_alias.min.js +0 -5
  380. package/core/asset/js/plugin/src/vendor/jquery/1.12.4.min.js +0 -5
  381. package/core/asset/js/plugin/src/vendor/jquery/2.1.1-css-event_alias-sizzle.min.js +0 -4
  382. package/core/asset/js/plugin/src/vendor/jquery/README.md +0 -14
  383. package/core/asset/js/plugin/src/vendor/jquery/slim-3.1.1.min.js +0 -4
  384. package/core/config.js +0 -1225
  385. package/core/controller/controller.js +0 -1860
  386. package/core/gna.js +0 -908
  387. package/core/plugins/lib/validator/src/form-validator.js +0 -789
  388. package/core/plugins/lib/validator/src/main.js +0 -2056
  389. package/core/router.js +0 -717
  390. package/core/server.js +0 -1363
  391. package/core/template/conf/env.json +0 -70
  392. package/core/template/conf/settings.json +0 -48
  393. package/core/template/conf/statics.json +0 -6
  394. package/core/template/conf/views.json +0 -16
  395. package/core/template/samples/bundle/config/app.json +0 -4
  396. package/core/template/samples/bundle/config/routing.json +0 -9
  397. package/core/template/samples/bundle/controllers/setup.js +0 -33
  398. package/core/template/views/js/vendor/readme.md +0 -1
  399. package/core/template/views/readme.md +0 -1
  400. package/core/utils/helpers/dateFormat.js +0 -264
  401. package/core/utils/helpers/index.js +0 -202
  402. package/core/utils/index.js +0 -75
  403. package/core/utils/lib/cmd/app.js +0 -686
  404. package/core/utils/lib/cmd/basic.help.txt +0 -40
  405. package/core/utils/lib/cmd/basic.js +0 -141
  406. package/core/utils/lib/cmd/gina-add-bundle.js +0 -328
  407. package/core/utils/lib/cmd/gina-add-views.js +0 -99
  408. package/core/utils/lib/cmd/gina-build.js +0 -218
  409. package/core/utils/lib/cmd/gina-clean.js +0 -26
  410. package/core/utils/lib/cmd/gina-connect.js +0 -176
  411. package/core/utils/lib/cmd/gina-delete-bundle.js +0 -176
  412. package/core/utils/lib/cmd/gina-deploy.js +0 -452
  413. package/core/utils/lib/cmd/gina-init-project.js +0 -83
  414. package/core/utils/lib/cmd/gina-start-bundle.js +0 -3
  415. package/core/utils/lib/cmd/gina-start.js +0 -3
  416. package/core/utils/lib/cmd/index.js +0 -157
  417. package/core/utils/lib/cmd/project.js +0 -14
  418. package/core/utils/lib/collection/src/main.js +0 -650
  419. package/core/utils/lib/logger/containers/file.js +0 -11
  420. package/core/utils/lib/logger/index.js +0 -260
  421. package/core/utils/lib/merge/src/main.js +0 -344
  422. package/core/utils/lib/proc.js +0 -416
  423. package/core/utils/lib/routing/src/main.js +0 -165
  424. package/documentation/css/default.css +0 -3
  425. package/documentation/html/home.html +0 -6
  426. package/documentation/html/inc/_footer.html +0 -5
  427. package/documentation/html/layout.html +0 -21
  428. package/documentation/img/debug-conf1.png +0 -0
  429. package/documentation/img/debug-conf2.png +0 -0
  430. package/documentation/img/debug-conf3.png +0 -0
  431. package/documentation/img/debug-conf4.png +0 -0
  432. package/documentation/img/debug-conf5.png +0 -0
  433. package/documentation/img/debug-conf6.png +0 -0
  434. package/documentation/img/debug-conf7.png +0 -0
  435. package/documentation/img/debug-new1.png +0 -0
  436. package/documentation/img/debug-new2.png +0 -0
  437. package/documentation/img/debug-start.png +0 -0
  438. package/documentation/md/api/controller/main.md +0 -74
  439. package/migration_note.md +0 -7
  440. package/package-lock.json +0 -611
  441. package/script/pre_publish.js +0 -207
  442. package/tutorial/Commands/README.md +0 -56
  443. package/tutorial/Commands/add-bundle-result.png +0 -0
  444. package/tutorial/Commands/add-bundle.png +0 -0
  445. package/tutorial/Commands/delete-bundle.png +0 -0
  446. package/tutorial/Commands/help.png +0 -0
  447. package/tutorial/Commands/init-project.png +0 -0
  448. package/tutorial/Commands/start-bundle-result.png +0 -0
  449. package/tutorial/Commands/start-bundle-stop.png +0 -0
  450. package/tutorial/Commands/start-bundle.png +0 -0
  451. package/tutorial/Commands/version.png +0 -0
  452. package/tutorial/ETC/README.md +0 -74
  453. package/tutorial/ETC/add-bundle-result.png +0 -0
  454. package/tutorial/ETC/add-bundle.png +0 -0
  455. package/tutorial/ETC/init-project.png +0 -0
  456. package/tutorial/Install/README.md +0 -54
  457. package/tutorial/Install/git-get.png +0 -0
  458. package/tutorial/Install/git-install-end.png +0 -0
  459. package/tutorial/Install/git-install-result.png +0 -0
  460. package/tutorial/Install/git-install-start.png +0 -0
  461. package/tutorial/Install/install-end.png +0 -0
  462. package/tutorial/Install/install-result.png +0 -0
  463. package/tutorial/Install/install-start.png +0 -0
  464. package/tutorial/WebStorm/README.md +0 -30
  465. package/tutorial/WebStorm/closure-compiler.png +0 -0
  466. package/tutorial/WebStorm/sass.png +0 -0
@@ -0,0 +1,1147 @@
1
+ var fs = require('fs');
2
+ var console = lib.logger;
3
+ var merge = lib.merge;
4
+ var helpers = require( getPath('gina').helpers);
5
+ /**
6
+ * CmdHelper
7
+ *
8
+ * @package gina.lib.cmd
9
+ * @author Rhinostone <contact@gina.io>
10
+ * @api public
11
+ * */
12
+ function CmdHelper(cmd, client, debug) {
13
+
14
+ var conf = {
15
+ main: null,
16
+ settings: null,
17
+ ports: null, // ports & protocols
18
+ reversePorts: null,
19
+ projects: null
20
+ };
21
+
22
+
23
+ // cmd properties list
24
+ var self = {
25
+ task: null,
26
+ // framework main config {object}
27
+ mainConfig : null,
28
+ // framework main config path {string}
29
+ mainConfigPath : null,
30
+ // framework core env - core/template/conf/env.json
31
+ coreEnv : null,
32
+
33
+ // CMD params list ( starting with --) {object}
34
+ params : {}, //
35
+ nodeParams : [],
36
+ debugPort: debug.port,
37
+ debugBrkEnabled: debug.brkEnabled,
38
+ // gina short version for the project
39
+ def_framework_short : null,
40
+ // project name {string}
41
+ projectName : null, // defined by filterArgs()
42
+ projectLocation: null,
43
+ projectArgvList: [],
44
+ // global projects collection {collection}
45
+ projects : null, // defined by filterArgs()
46
+ projectsPath : _(GINA_HOMEDIR + '/projects.json'), // ~/.gina/project.json
47
+ // current project path
48
+ projectPath : null, // local project/manifest.json - defined by filterArgs()
49
+ projectConfigPath: null, // path to .gina/project.json
50
+ projectData: {},
51
+ // current project bundles list {array}
52
+ bundles : [], // defined by filterArgs()
53
+ // don't use this collection to store into files
54
+ bundlesByProject: {}, // bundles collection will be loaded into cmd.projects[$project].bundles
55
+ bundlesLocation : null,
56
+
57
+ // current project env.json path
58
+ envPath : null, // path to env.json - defined by filterArgs()
59
+ // current env {object}
60
+ envData : {}, // defined by loadAssets()
61
+ envs : [], // all gina envs defined by loadAssets()
62
+ defaultEnv : null, // defined by loadAssets()
63
+ devEnv : null, // defined by loadAssets()
64
+ protocols : [], // defined by loadAssets()
65
+ protocolsAvailable : [], // defined by loadAssets()
66
+ defaultProtocol : null, // defined by loadAssets()
67
+ schemes : [], // defined by loadAssets()
68
+ schemesAvailable : [], // defined by loadAssets()
69
+ defaultScheme : null, // defined by loadAssets()
70
+ portsPath : null, // defined by filterArgs()
71
+ portsData : {}, // defined by loadAssets()
72
+ portsList : [], // conxtual ports list (bundle or project) for the scanner ?
73
+ portsGlobalList : [], // global ports list for the scanner ?
74
+ portsReversePath : null, // defined by filterArgs()
75
+ portsReverseData : {} // defined by loadAssets()
76
+ };
77
+
78
+
79
+ // merging with default
80
+ cmd = merge(cmd, self);
81
+
82
+ var getParams = function () {
83
+
84
+ // filtering CMD arguments VS node.js argument
85
+ var taskGroup = cmd.task.split(/:/)[0]
86
+ , file = _( __dirname +'/'+ taskGroup +'/arguments.json', true )
87
+ , cmdArguments = []
88
+ ;
89
+
90
+ if ( fs.existsSync(file) ) {
91
+ if ( typeof(require.cache[file]) != 'undefined') {
92
+ delete require.cache[require.resolve(file)]
93
+ }
94
+
95
+ cmdArguments = requireJSON(file);
96
+ }
97
+
98
+ var arr = [];
99
+
100
+ // retieving debug infos
101
+ var debugOption = null;
102
+ if ( cmd.debugPort ) {
103
+ debugOption = '--inspect=' + cmd.debugPort;
104
+
105
+ if (cmd.debugBrkEnabled) {
106
+ debugOption = debugOption.replace(/\-\-inspect/, '--inspect-brk')
107
+ }
108
+
109
+ cmd.nodeParams.push(debugOption)
110
+ }
111
+
112
+ console.debug('process.argv: ', process.argv);
113
+ for (var a in process.argv) {
114
+
115
+
116
+ if ( /^\-\-(inspect|debug)\-brk/.test(process.argv[a]) ) {
117
+ cmd.debugBrkEnabled = debug.brkEnabled = true;
118
+ }
119
+
120
+ if ( process.argv[a].indexOf('--') > -1 && process.argv[a].indexOf('=') > -1) {
121
+
122
+ arr = (process.argv[a].replace(/--/, '')).split(/=/);
123
+
124
+ arr[0] = arr[0].toLowerCase();
125
+
126
+ //Boolean values.
127
+ if ( typeof(arr[1]) == 'undefined' || arr[1] === "true" ) {
128
+ arr[1] = true
129
+ }
130
+
131
+ if (arr[1] === "false") {
132
+ arr[1] = false
133
+ }
134
+
135
+ if ( cmdArguments.indexOf('--' + arr[0]) > -1 )
136
+ cmd.params[arr[0]] = arr[1];
137
+ else
138
+ cmd.nodeParams.push('--' + arr[0] +'='+ arr[1]);
139
+
140
+
141
+ } else if ( process.argv[a].indexOf('--') > -1 ) {
142
+
143
+ if ( cmdArguments.indexOf(process.argv[a]) > -1 )
144
+ cmd.params[ process.argv[a].replace(/--/, '') ] = true;
145
+ else
146
+ cmd.nodeParams.push(process.argv[a]);
147
+
148
+ }
149
+ }
150
+
151
+ //console.log('nodeParams ', cmd.nodeParams)
152
+ }
153
+
154
+ /**
155
+ * isCmdConfigured
156
+ * filter argv & merge cmd properties
157
+ * Used once at init to filter argv inputs and set some assets variables
158
+ *
159
+ *
160
+ * @returns {boolean} isConfigured
161
+ * */
162
+ isCmdConfigured = function() {
163
+
164
+ cmd.configured = ( typeof(cmd.configured) != 'undefined' ) ? cmd.configured : false;
165
+
166
+ if (cmd.configured) return; // can only be called once !!
167
+
168
+ var errMsg = null;
169
+
170
+ try {
171
+
172
+ // framework package
173
+ //cmd.package = require( _(GINA_HOMEDIR + '/template/conf/package.json', true) );
174
+
175
+
176
+ // main config
177
+ cmd.mainConfigPath = _(GINA_HOMEDIR + '/main.json', true);
178
+ if ( typeof(require.cache[cmd.mainConfigPath]) != 'undefined') {
179
+ delete require.cache[require.resolve(cmd.mainConfigPath)]
180
+ }
181
+ cmd.mainConfig = requireJSON( cmd.mainConfigPath );
182
+
183
+ // projectsprojects
184
+ cmd.projectConfigPath = _(GINA_HOMEDIR + '/projects.json', true);
185
+ if ( typeof(require.cache[cmd.projectConfigPath]) != 'undefined') {
186
+ delete require.cache[require.resolve(cmd.projectConfigPath)]
187
+ }
188
+
189
+ cmd.projects = requireJSON( cmd.projectConfigPath );
190
+
191
+ // bundles passed to the CMD
192
+ cmd.bundles = ( typeof(cmd.bundles) == 'undefined' ) ? [] : cmd.bundles;
193
+
194
+ var i = 3 // usual the index start position for CMD task argument
195
+ , argv = process.argv
196
+ , len = argv.length
197
+ , folder = null
198
+ ;
199
+
200
+ cmd.task = argv[2];
201
+ if (
202
+ /^project\:/.test(cmd.task)
203
+ // excluded
204
+ && !/^project\:(list|help|status)/.test(cmd.task)
205
+ && !/^\@/.test(argv[3])
206
+ ) {
207
+ errMsg = 'This is a project command line. Cannot understand what your are asking with: `'+ process.argv.slice(2).join(' ') +'`';
208
+ console.error(errMsg);
209
+ exit(errMsg);
210
+ }
211
+ // getting CMD params
212
+ getParams();
213
+ console.debug('nodeParams: ', cmd.nodeParams);
214
+ console.debug('cmd.params: ', cmd.params);
215
+
216
+
217
+ var mightBeASomeBundle = true;
218
+ for (; i < len; ++i) {
219
+
220
+ if ( typeof(argv[i]) == 'undefined' )
221
+ break;
222
+
223
+ // detection for project name
224
+ if ( /^\@[a-z0-9_.]/.test(argv[i]) ) {
225
+
226
+ mightBeASomeBundle = false;
227
+
228
+ if ( !isValidName(argv[i]) ) {
229
+ errMsg = '[ '+ argv[i] +' ] is not a valid project name. Please, try something else: @[a-z0-9_.]';
230
+ console.error(errMsg);
231
+ exit(errMsg);
232
+ return false;
233
+ } else {
234
+ // only take the first one
235
+ if ( !cmd.projectArgvList.length )
236
+ cmd.projectName = argv[i].replace('@', '');
237
+ }
238
+
239
+ // only take the first one
240
+ if ( !cmd.projectArgvList.length ) {
241
+ // if path is set through CMD argv
242
+ // --path
243
+ if ( typeof(cmd.params.path) != 'undefined' ) {
244
+ if ( /^\.\//.test(cmd.params.path) ) {
245
+ if (cmd.params.path == './') {
246
+ cmd.params.path += cmd.projectName;
247
+ }
248
+ cmd.params.path = cmd.params.path.replace(/^\.\//, process.cwd() +'/')
249
+ }
250
+ folder = new _( cmd.params.path, true );
251
+
252
+
253
+ }
254
+ else if ( typeof(cmd.params.path) == 'undefined' ) {
255
+ // getting the current path
256
+ try {
257
+ folder = new _( process.cwd(), true );
258
+ } catch (err) {
259
+ errMsg = 'You are trying to run command from a deleted path ! Please move to another location to run this command.';
260
+ console.error(errMsg);
261
+ exit(errMsg);
262
+ return false;
263
+ }
264
+
265
+ }
266
+
267
+ if ( folder.isValidPath() ) {
268
+
269
+ if ( folder.toArray().last() == cmd.projectName ) {
270
+ cmd.projectLocation = _( folder.toString(), true );
271
+ } else {
272
+ cmd.projectLocation = _( folder.toString(), true );
273
+ }
274
+
275
+ } else {
276
+ errMsg = 'Argument `--path=`' +cmd.params.path + ' is not valid';
277
+ console.error(errMsg);
278
+ exit(errMsg);
279
+ return false;
280
+ }
281
+ }
282
+
283
+ cmd.projectArgvList.push( argv[i].replace('@', '') )
284
+
285
+ } else if (mightBeASomeBundle && !/^\@/.test(argv[i]) && isValidName(argv[i]) ) { // bundles list
286
+ cmd.bundles.push( argv[i] )
287
+ }
288
+ }
289
+
290
+ // cleanup bundles list in case of `bundle:`task
291
+ if ( /^bundle\:/.test(cmd.task) ) {
292
+ var newArgv = argv.slice();
293
+ // remove the first part of the command line
294
+ newArgv.splice(0, 3);
295
+ // filter
296
+ for (let a = 0, len = newArgv.length; a < len; ++a) {
297
+ if ( /^\@/.test(newArgv[a]) ) {
298
+ newArgv.splice(a, 1);
299
+ len--;
300
+ a--;
301
+ continue
302
+ }
303
+ if ( /^\-\-/.test(newArgv[a]) ) {
304
+ newArgv.splice(a, 1);
305
+ len--;
306
+ a--;
307
+ }
308
+ }
309
+
310
+ cmd.bundles = newArgv.slice();
311
+ newArgv = null;
312
+ }
313
+
314
+ if (cmd.bundles.length == 1 ) {
315
+ if ( isValidName(cmd.bundles[0]) ) {
316
+ cmd.name = cmd.bundles[0]
317
+ } else {
318
+ console.error('[ ' + cmd.name + ' ] is not a valid bundle name.');
319
+ process.exit(1)
320
+ }
321
+ } // else, might be a bulk operation: look for `isBulkOperation`
322
+
323
+ // project name : passed or using the current folder as project name by default
324
+ if ( cmd.projectName == null || typeof(cmd.projectName) == 'undefined' || cmd.projectName == '' ) {
325
+
326
+ if (!/\:list$/.test(cmd.task)) {// ignore this cases
327
+ var folder = new _(process.cwd()).toArray().last();
328
+
329
+ if (isDefined('project', folder)) {
330
+
331
+ cmd.projectName = folder;
332
+ cmd.projectLocation = _(process.cwd(), true);
333
+ } else if (!/\:help$/.test(cmd.task)) {
334
+
335
+ errMsg = 'No project name found: make sure it starts with `@` as `@<project_name>`';
336
+ console.error(errMsg);
337
+ exit(errMsg);
338
+ return false;
339
+ }
340
+ }
341
+ }
342
+
343
+ // only when adding a project
344
+ if (cmd.projectName != null) {
345
+ // valid name but not in projects and task != :add, :remove or :import
346
+ if ( typeof(cmd.projects[cmd.projectName]) == 'undefined' && !/\:(add|import|remove)$/.test(cmd.task) ) {
347
+ errMsg = 'Project ['+ cmd.projectName +'] not found in your projects list';
348
+ console.error(errMsg);
349
+ exit(errMsg);
350
+ return false;
351
+ }
352
+
353
+ if ( typeof(cmd.projects[cmd.projectName]) == 'undefined') {
354
+ cmd.projectPath = _(cmd.projectLocation + '/manifest.json', true)
355
+ }
356
+
357
+ cmd.projectPath = (!cmd.projectPath) ? _(cmd.projects[cmd.projectName].path + '/manifest.json', true) : cmd.projectPath;
358
+
359
+ if (typeof (cmd.projects[cmd.projectName]) != 'undefined') // ignore when adding project
360
+ cmd.envPath = _(cmd.projects[cmd.projectName].path + '/env.json', true);
361
+ }
362
+
363
+
364
+
365
+ cmd.portsPath = _(GINA_HOMEDIR + '/ports.json', true);
366
+ cmd.portsReversePath = _(GINA_HOMEDIR + '/ports.reverse.json', true);
367
+
368
+
369
+ loadAssets();
370
+ cmd.configured = true;
371
+
372
+ return true; // completed configuration
373
+
374
+ } catch (err) {
375
+
376
+ console.emerg(err.stack);
377
+ exit(err.stack);
378
+ return false; // configuration failed
379
+ }
380
+ }
381
+
382
+ getCoreEnv = function(bundle, env) {
383
+ var coreEnvPath = _(GINA_CORE + '/template/conf/env.json', true);
384
+ var coreEnv = requireJSON(coreEnvPath);
385
+
386
+ var reps = {
387
+ "frameworkDir" : GINA_FRAMEWORK_DIR,
388
+ "executionPath" : _(cmd.projects[cmd.projectName].path, true),
389
+ "projectPath" : _(cmd.projects[cmd.projectName].path, true),
390
+ // "bundlesPath" : appsPath,
391
+ // "modelsPath" : modelsPath,
392
+ "env" : env || cmd.projects[cmd.projectName].def_env,
393
+ "bundle" : bundle,
394
+ "version" : GINA_VERSION
395
+ };
396
+
397
+
398
+ try {
399
+ //console.error("reps ", reps);
400
+ coreEnv = whisper(reps, coreEnv);
401
+ } catch (err) {
402
+ console.error('`whisper(reps, coreEnv)` - Potential `reps` issue '+ coreEnvPath + ' ?\n' + err.stack);
403
+ }
404
+
405
+
406
+ return coreEnv
407
+ }
408
+
409
+ /**
410
+ * loadAssets
411
+ * Will load files & content without cache
412
+ * Use before require()
413
+ *
414
+ * @param {object} [usercmd]
415
+ * */
416
+ loadAssets = function () {
417
+
418
+ var ports = null;
419
+
420
+ if (
421
+ cmd.projectName != null
422
+ && typeof(cmd.projects[cmd.projectName]) != 'undefined'
423
+ //&& !cmd.params['force']
424
+ ) { // ignore when adding project
425
+
426
+
427
+ if ( typeof(require.cache[cmd.projectPath]) != 'undefined') {
428
+ delete require.cache[require.resolve(cmd.projectPath)]
429
+ }
430
+ if ( ! new _(cmd.projectPath).existsSync() ) {
431
+ console.error('A project with this name is already added. If you want to override, you should try to add: `--force` at the end of your command line');
432
+ return process.exit(1);
433
+ }
434
+
435
+ cmd.projectData = requireJSON(cmd.projectPath);
436
+ cmd.projectLocation = cmd.projects[cmd.projectName].path;
437
+ cmd.bundlesLocation = _(cmd.projects[cmd.projectName].path +'/src', true);
438
+ cmd.envPath = _(cmd.projects[cmd.projectName].path + '/env.json', true);
439
+
440
+ if (fs.existsSync(cmd.projectLocation) ) {
441
+ cmd.projects[cmd.projectName].exists = true;
442
+ } else {
443
+ cmd.projects[cmd.projectName].exists = false;
444
+ return;
445
+ }
446
+
447
+
448
+ if (typeof(require.cache[cmd.envPath]) != 'undefined') {
449
+ delete require.cache[require.resolve(cmd.envPath)]
450
+ }
451
+ console.debug('[ ConfigAssetsLoaderHelper ] envPath ', cmd.envPath);
452
+ cmd.envData = requireJSON(cmd.envPath);
453
+
454
+ cmd.def_framework_short = ( typeof(cmd.projects[cmd.projectName].framework) != 'undefined' ) ? (cmd.projects[cmd.projectName].framework.replace(/^v/, '').split(/\./g).splice(0,2)).join('.') : (cmd.mainConfig.def_framework.split(/\./g).splice(0,2)).join('.');
455
+ console.debug('default def_framework_short ', cmd.def_framework_short);
456
+
457
+ // updating default envs list
458
+ cmd.envs = [];
459
+ for (let e in cmd.projects[cmd.projectName].envs) {
460
+ cmd.envs.push(cmd.projects[cmd.projectName].envs[e])
461
+ }
462
+
463
+ cmd.envs.sort();
464
+ // updating default protocols list
465
+ cmd.protocols = [];
466
+ for (let p in cmd.projects[cmd.projectName].protocols) {
467
+ cmd.protocols.push(cmd.projects[cmd.projectName].protocols[p])
468
+ }
469
+ if ( !cmd.protocols.length ) {
470
+ var defProtocols = cmd.mainConfig.protocols[cmd.def_framework_short];
471
+ console.debug('default protocols ', defProtocols);
472
+ for (let p in defProtocols) {
473
+ cmd.protocols.push(defProtocols[p]);
474
+ }
475
+ }
476
+ //cmd.protocols.sort();
477
+ // updating default schemes list
478
+ cmd.schemes = [];
479
+ for (let s in cmd.projects[cmd.projectName].schemes) {
480
+ cmd.schemes.push(cmd.projects[cmd.projectName].schemes[s])
481
+ }
482
+ if ( !cmd.schemes.length ) {
483
+ var defSchemes = cmd.mainConfig.schemes[cmd.def_framework_short];
484
+ console.debug('default schemes ', defSchemes);
485
+ for (let s in defSchemes) {
486
+ cmd.schemes.push(defSchemes[s]);
487
+ }
488
+ }
489
+ //cmd.schemes.sort();
490
+
491
+ if ( typeof(require.cache[cmd.portsPath]) != 'undefined') {
492
+ delete require.cache[require.resolve(cmd.portsPath)]
493
+ }
494
+ cmd.portsData = requireJSON(cmd.portsPath) || {};
495
+
496
+ if ( typeof(require.cache[cmd.portsReversePath]) != 'undefined') {
497
+ delete require.cache[require.resolve(cmd.portsReversePath)]
498
+ }
499
+ cmd.portsReverseData = requireJSON(cmd.portsReversePath) || {};
500
+
501
+
502
+
503
+ ports = JSON.clone(cmd.portsData);
504
+
505
+ var re = null;
506
+ //console.debug('[ ConfigAssetsLoaderHelper ] Loaded bundles list\n'+ JSON.stringify(cmd.bundles, null, 4));
507
+
508
+ // protocols & schemes list: for the project
509
+ re = new RegExp('\@' + cmd.projectName, '');
510
+
511
+ for (var protocol in ports) {
512
+ if ( typeof(cmd.portsData[protocol]) == 'undefined')
513
+ cmd.portsData[protocol] = {};
514
+
515
+ for (var scheme in ports[protocol]) {
516
+ if ( typeof(cmd.portsData[protocol][scheme]) == 'undefined')
517
+ cmd.portsData[protocol][scheme] = {};
518
+
519
+ for (var port in ports[protocol][scheme]) {
520
+ // updating protocols list
521
+ if (cmd.protocols.indexOf(protocol) < 0 && re.test(ports[protocol][scheme][port])) {
522
+ //cmd.protocols.push(protocol);
523
+ if (typeof(cmd.portsData[protocol][scheme][port]) == 'undefined')
524
+ cmd.portsData[protocol][scheme][port] = {}
525
+ }
526
+
527
+ // updating schemes list
528
+ if (cmd.schemes.indexOf(scheme) < 0 && re.test(ports[protocol][scheme][port])) {
529
+ //cmd.schemes.push(scheme);
530
+ if (typeof(cmd.portsData[protocol][scheme][port]) == 'undefined')
531
+ cmd.portsData[protocol][scheme][port] = {}
532
+ }
533
+
534
+ // updating port list
535
+ //if (cmd.portsList.indexOf(protocol) < 0 && re.test(ports[protocol][scheme][port])) {
536
+ if (cmd.portsList.indexOf(port) < 0 && re.test(ports[protocol][scheme][port])) {
537
+ cmd.portsList.push(port);
538
+ cmd.portsData[protocol][scheme][port] = ports[protocol][scheme][port]
539
+ }
540
+ }
541
+ }
542
+ }
543
+ }
544
+
545
+ //console.debug('[ ConfigAssetsLoaderHelper ] Loaded portsData\n'+ JSON.stringify(cmd.portsData, null, 4));
546
+ // sorting
547
+ cmd.protocols.sort();
548
+ cmd.schemes.sort();
549
+
550
+ // getting defautl envs list
551
+ cmd.envs = (cmd.projectName != null && typeof(cmd.projects[cmd.projectName]) != 'undefined') ? cmd.projects[cmd.projectName]['envs'] : cmd.mainConfig['envs'][ GINA_SHORT_VERSION ];
552
+ // getting default env
553
+ cmd.defaultEnv = (cmd.projectName != null && typeof(cmd.projects[cmd.projectName]) != 'undefined' ) ? cmd.projects[cmd.projectName]['def_env'] : cmd.mainConfig['def_env'][ GINA_SHORT_VERSION ];
554
+ // getting dev env
555
+ cmd.devEnv = (cmd.projectName != null &&typeof(cmd.projects[cmd.projectName]) != 'undefined' ) ? cmd.projects[cmd.projectName]['dev_env'] : cmd.mainConfig['dev_env'][ GINA_SHORT_VERSION ];
556
+ //cmd.bundlesByProject[cmd.projectName][cmd.name].def_env = cmd.defaultEnv; // by default
557
+ // project or bundle environment override through : --env=<some env>
558
+ if ( typeof(cmd.params.env) != 'undefined' && /\:(start|stop|restart|build|deploy)/i.test(cmd.task) ) {
559
+ console.debug('Overriding default project env: '+ cmd.defaultEnv +' => '+ cmd.params.env);
560
+ if (cmd.envs.indexOf(cmd.params.env) < 0) {
561
+ errMsg = 'Environment `'+ cmd.params.env +'` not found in your project ['+ cmd.projectName +']';
562
+ console.error(errMsg);
563
+ return false;
564
+ }
565
+ cmd.defaultEnv = process.env.NODE_ENV = cmd.params.env;
566
+ // override
567
+ //cmd.bundlesByProject[cmd.projectName][cmd.name].def_env = cmd.params.env;
568
+ } else {
569
+ delete process.env.NODE_ENV
570
+ }
571
+
572
+ // available protocols
573
+ cmd.protocolsAvailable = cmd.mainConfig.protocols[GINA_SHORT_VERSION];
574
+ // getting default protocol
575
+ cmd.defaultProtocol = (cmd.projectName != null && typeof(cmd.projects[cmd.projectName]) != 'undefined' && typeof(cmd.projects[cmd.projectName]['def_protocol']) != 'undefined' ) ? cmd.projects[cmd.projectName]['def_protocol'] : cmd.mainConfig['def_protocol'][ GINA_SHORT_VERSION ];
576
+ if (cmd.protocolsAvailable.indexOf(cmd.defaultProtocol) < 0) {
577
+ cmd.defaultProtocol = cmd.protocolsAvailable[0]; //take the first one by default if no match
578
+ }
579
+
580
+ // available schemes
581
+ cmd.schemesAvailable = cmd.mainConfig.schemes[GINA_SHORT_VERSION];
582
+ // getting default scheme
583
+ cmd.defaultScheme = (cmd.projectName != null && typeof(cmd.projects[cmd.projectName]) != 'undefined' && typeof(cmd.projects[cmd.projectName]['def_scheme']) != 'undefined' ) ? cmd.projects[cmd.projectName]['def_scheme'] : cmd.mainConfig['def_scheme'][ GINA_SHORT_VERSION ];
584
+ if (cmd.schemesAvailable.indexOf(cmd.defaultScheme) < 0) {
585
+ cmd.defaultScheme = cmd.schemesAvailable[0]; //take the first one by default if no match
586
+ }
587
+
588
+ // global & currnet project ports list
589
+ if (typeof (require.cache[cmd.portsPath]) != 'undefined') {
590
+ delete require.cache[require.resolve(cmd.portsPath)]
591
+ }
592
+
593
+ ports = requireJSON(cmd.portsPath);
594
+ portsReverse = requireJSON(cmd.portsReversePath);
595
+
596
+ // protocols list
597
+ if (cmd.protocols.length == 0)
598
+ cmd.protocols = [];
599
+ // schemes list
600
+ if (cmd.schemes.length == 0)
601
+ cmd.schemes = [];
602
+ // setting port list
603
+ var hasProject = false, re = null;
604
+ if ( cmd.projectName != null && typeof(cmd.projects[cmd.projectName]) != 'undefined' ) {
605
+ hasProject = true;
606
+ re = new RegExp('\@'+ cmd.projectName +'\/', '');
607
+
608
+ if ( cmd.name != null ) {
609
+ re = new RegExp(cmd.name + '\@'+ cmd.projectName +'\/', '');
610
+ }
611
+ }
612
+
613
+ for (let protocol in ports) {
614
+ if ( !protocol || protocol == 'undefined' ) continue;
615
+ for (let scheme in ports[protocol]) {
616
+ if ( !scheme || scheme == 'undefined' ) continue;
617
+ for (let port in ports[protocol][scheme]) {
618
+ cmd.portsGlobalList.push(~~port); // updating global ports list
619
+
620
+ if ( hasProject && re.test(ports[protocol][scheme][port]) && cmd.portsList.indexOf(port) < 0 ) {
621
+ cmd.portsList.push(port) // updating contextual ports list
622
+
623
+ // updating protocols list
624
+ if ( re.test(ports[protocol][scheme][port]) ) {
625
+ if ( cmd.protocols.indexOf(protocol) < 0 )
626
+ cmd.protocols.push(protocol); // updating contextual protocol list
627
+ if ( cmd.schemes.indexOf(scheme) < 0 )
628
+ cmd.schemes.push(scheme); // updating contextual protocol list
629
+ }
630
+ }
631
+
632
+ }
633
+ }
634
+ }
635
+ //console.debug('Got Global Ports List ', cmd.portsGlobalList);
636
+
637
+ if ( !cmd.portsData.count() )
638
+ cmd.portsData = ports;
639
+
640
+ if ( !cmd.portsReverseData.count() )
641
+ cmd.portsReverseData = portsReverse;
642
+
643
+ if (cmd.protocols.length > 0)
644
+ cmd.protocols.sort();
645
+
646
+ if (cmd.schemes.length > 0)
647
+ cmd.schemes.sort();
648
+
649
+ // supplementing projects with bundles collection
650
+ var projectPropertiesPath = null;
651
+ //console.debug('[ ConfigAssetsLoaderHelper ] getting bundles by project ', JSON.stringify(cmd.projects, null, 4));
652
+ for (let project in cmd.projects) {
653
+
654
+ projectPropertiesPath = _(cmd.projects[project].path + '/manifest.json', true);
655
+ if (typeof (require.cache[projectPropertiesPath]) != 'undefined') {
656
+ delete require.cache[require.resolve(projectPropertiesPath)]
657
+ }
658
+ cmd.bundlesByProject[project] = {};
659
+ if (fs.existsSync(cmd.projects[project].path) ) {
660
+ cmd.projects[project].exists = true;
661
+ if ( !new _(projectPropertiesPath).existsSync() ) {
662
+ console.error('`'+ projectPropertiesPath +'` not found ! Maybe, you can try to remove the project reference by hand by editing: `'+ _(GINA_HOMEDIR + '/project.json') +'`')
663
+ }
664
+
665
+ cmd.bundlesByProject[project] = requireJSON(projectPropertiesPath).bundles;
666
+
667
+ } else {
668
+ cmd.projects[project].exists = false;
669
+ }
670
+ }
671
+
672
+
673
+ var bundleConfigPath = null, settings = null, isBulkOperation = false;
674
+ for (let project in cmd.bundlesByProject) { // for each project
675
+
676
+ if (!cmd.bundlesByProject[project]) continue;
677
+
678
+ if (
679
+ !cmd.bundles.length && /^bundle\:/.test(cmd.task)
680
+ && project == cmd.projectName
681
+ ) {
682
+ isBulkOperation = true;
683
+ }
684
+
685
+ for (let bundle in cmd.bundlesByProject[project]) { // for each bundle
686
+ // bundles array list
687
+ if (
688
+ !/^bundle\:/.test(cmd.task)
689
+ && cmd.bundles.indexOf(bundle) < 0
690
+ && cmd.projectName != null
691
+ && project == cmd.projectName
692
+ ||
693
+ isBulkOperation
694
+ && project == cmd.projectName
695
+ ) {
696
+ cmd.bundles.push(bundle);
697
+ }
698
+
699
+
700
+
701
+ if ( typeof(cmd.bundlesByProject[project][bundle].protocols) == 'undefined' ) {
702
+ cmd.bundlesByProject[project][bundle].protocols = []
703
+ }
704
+ if ( typeof(cmd.bundlesByProject[project][bundle].schemes) == 'undefined' ) {
705
+ cmd.bundlesByProject[project][bundle].schemes = []
706
+ }
707
+
708
+ // bundle default environment inherits project's default environement
709
+ cmd.bundlesByProject[project][bundle].defaultEnv = cmd.projects[project].def_env;
710
+
711
+ // adding project available protocols & schemes to the bundle
712
+ cmd.bundlesByProject[project][bundle].protocols = cmd.projects[project].protocols;
713
+ cmd.bundlesByProject[project][bundle].def_protocol = cmd.defaultProtocol;
714
+
715
+ cmd.bundlesByProject[project][bundle].schemes = cmd.projects[project].schemes;
716
+ cmd.bundlesByProject[project][bundle].def_scheme = cmd.defaultScheme;
717
+
718
+ if ( fs.existsSync(_(cmd.projectLocation + '/'+ cmd.bundlesByProject[project][bundle].src )) ) {
719
+ cmd.bundlesByProject[project][bundle].exists = true;
720
+ // adding configurations
721
+ bundleConfigPath = _(cmd.projectLocation + '/'+ cmd.bundlesByProject[project][bundle].src +'/config' );
722
+ cmd.bundlesByProject[project][bundle].configPaths = {
723
+ settings: _(bundleConfigPath +'/settings.json')
724
+ };
725
+ // adding protocol & scheme found in the bunble settings
726
+ if ( fs.existsSync(cmd.bundlesByProject[project][bundle].configPaths.settings) ) {
727
+
728
+ settings = requireJSON(cmd.bundlesByProject[project][bundle].configPaths.settings);
729
+ if (
730
+ typeof(settings.server) != 'undefined'
731
+ && typeof(settings.server.protocol) != 'undefined'
732
+ ) {
733
+ // adding in case of bad configuration : exists in bundle, but not listed in available/global settings
734
+ if (cmd.bundlesByProject[project][bundle].protocols.indexOf(settings.server.protocol) < 0)
735
+ cmd.bundlesByProject[project][bundle].protocols.push(settings.server.protocol);
736
+
737
+ cmd.bundlesByProject[project][bundle].def_protocol = settings.server.protocol
738
+ }
739
+
740
+ if (
741
+ typeof(settings.server) != 'undefined'
742
+ && typeof(settings.server.scheme) != 'undefined'
743
+ ) {
744
+ // adding in case of bad configuration : exists in bundle, but not listed in available/global settings
745
+ if (cmd.bundlesByProject[project][bundle].schemes.indexOf(settings.server.scheme) < 0)
746
+ cmd.bundlesByProject[project][bundle].schemes.push(settings.server.scheme);
747
+
748
+ cmd.bundlesByProject[project][bundle].def_scheme = settings.server.scheme
749
+ }
750
+ }
751
+
752
+ cmd.bundlesByProject[cmd.projectName][bundle].def_env = (cmd.params.env) ? cmd.params.env : cmd.defaultEnv; // by default
753
+
754
+
755
+ } else {
756
+ cmd.bundlesByProject[project][bundle].exists = false;
757
+ }
758
+ }
759
+ }
760
+
761
+ // control the bundle name
762
+ // no existing project found for the bundle
763
+ if ( cmd.projectName != null && cmd.name != null && typeof(cmd.projects[cmd.projectName]) == 'undefined' ) {
764
+ return false;
765
+ }
766
+ if (
767
+ /bundle\:/.test(cmd.task)
768
+ && cmd.projectName != null
769
+ && cmd.name != null
770
+ && typeof(cmd.bundlesByProject[cmd.projectName][cmd.name]) == 'undefined'
771
+ ) {
772
+
773
+ errMsg = 'Bundle name `'+ cmd.name +'` not found in your project `@'+ cmd.projectName +'`';
774
+ //console.debug('task `'+ cmd.task +'` error:');
775
+ if ( cmd.task != 'bundle:add' ) {
776
+ console.warn(errMsg);
777
+ }
778
+ return false;
779
+ }
780
+
781
+ }
782
+
783
+
784
+ /**
785
+ * isDefined
786
+ *
787
+ * @param {string} type [ project | bundle | env ]
788
+ * @param {string} name
789
+ *
790
+ * @returns {boolean} exists
791
+ * */
792
+ isDefined = function(type, name) {
793
+
794
+ if (
795
+ typeof(name) == 'undefined'
796
+ || typeof(name) != 'undefined' && name == ''
797
+ || typeof(name) != 'undefined' && name == null
798
+ ) {
799
+ throw new Error('isDefined Error : name cannot be undefined, null or blank !')
800
+ }
801
+
802
+ switch (type) {
803
+
804
+ case 'project':
805
+ return ( typeof(cmd.projects) != 'undefined' && typeof(cmd.projects[name]) != 'undefined' && cmd.projects[name] != null && cmd.projects[name] != '' ) ? true : false;
806
+
807
+ case 'bundle':
808
+ return ( typeof(cmd.portsReverseData) != 'undefined' && typeof(cmd.portsReverseData[ name +'@'+ cmd.projectName ]) != 'undefined' ) ? true : false;
809
+
810
+ case 'env':
811
+ return ( typeof(cmd.envs) != 'undefined' && cmd.envs.indexOf(name) > -1 ) ? true : false;
812
+
813
+ default:
814
+ return false;
815
+ }
816
+ }
817
+
818
+ /**
819
+ * isValidName
820
+ * test if a given [ project | bundle | env] name is valid or not
821
+ * */
822
+ isValidName = function(name) {
823
+
824
+ if ( typeof(name) == 'undefined' || name == null || name == undefined || name == '')
825
+ return false;
826
+
827
+ return /^[a-z0-9_.]/.test( name.replace('@', '') )
828
+ }
829
+
830
+ /**
831
+ * getHelp
832
+ *
833
+ * Output current help.txt
834
+ * */
835
+ getHelp = function () {
836
+
837
+ var taskGroup = cmd.task.split(/:/)[0]
838
+ , file = _( __dirname +'/'+ taskGroup +'/help.txt', true )
839
+ , errMsg = 'No help available for `'+ taskGroup +'` command line at the moment. Please try again on the next release';
840
+
841
+ console.log('file ', file);
842
+ if ( !fs.existsSync(file) ) {
843
+
844
+ console.error(errMsg);
845
+ exit(errMsg);
846
+ return false;
847
+ }
848
+
849
+ try {
850
+ console.log( '\n' + fs.readFileSync( file ) )
851
+ } catch(err) {
852
+ console.error( err.stack )
853
+ }
854
+ }
855
+
856
+ getBundleScanLimit = function(bundle, env) {
857
+ var limit = null
858
+ , i = 0
859
+ , maxLimit = cmd.projects[cmd.projectName].envs.length * cmd.projects[cmd.projectName].protocols.length * cmd.projects[cmd.projectName].schemes.length
860
+ , portsReverse = cmd.portsReverseData[bundle +'@'+ cmd.projectName]
861
+ ;
862
+
863
+ if ( typeof(env) != 'undefined' ) {
864
+ maxLimit = cmd.projects[cmd.projectName].protocols.length * cmd.projects[cmd.projectName].schemes.length;
865
+ portsReverse = cmd.portsReverseData[bundle +'@'+ cmd.projectName][env];
866
+ for ( let protocol in portsReverse[env]) {
867
+ for (let scheme in portsReverse[env][protocol]) {
868
+ ++i;
869
+ }
870
+ }
871
+ limit = maxLimit - i;
872
+ } else {
873
+ for (let env in portsReverse) {
874
+ for (let protocol in portsReverse[env]) {
875
+ for (let scheme in portsReverse[env][protocol]) {
876
+ ++i;
877
+ }
878
+ }
879
+ }
880
+ limit = maxLimit - i;
881
+ }
882
+
883
+ return limit;
884
+ }
885
+
886
+ getPortsList = function() {
887
+ var ports = require(_(GINA_HOMEDIR + '/ports.json'));
888
+ var portsList = []; // list of all ports to ignore whles scanning
889
+ var protocols = cmd.projects[cmd.projectName].protocols;
890
+ var schemes = cmd.projects[cmd.projectName].schemes;
891
+ for (let protocol in ports) {
892
+ if (protocols.indexOf(protocol) < 0) continue;
893
+ for (let scheme in ports[protocol]) {
894
+ if (schemes.indexOf(scheme) < 0) continue;
895
+ for (let p in ports[protocol][scheme]) {
896
+ if ( cmd.portsList.indexOf(p) > -1 ) continue;
897
+ portsList.push(''+p)
898
+ }
899
+ }
900
+ }
901
+ // double checking
902
+ var portsReverse = require(_(GINA_HOMEDIR + '/ports.reverse.json'));
903
+ for (let bundle in portsReverse) {
904
+ for (let env in portsReverse[bundle]) {
905
+ for (let protocole in portsReverse[bundle][env]) {
906
+ for (let scheme in portsReverse[bundle][env][protocole]) {
907
+ let p = portsReverse[bundle][env][protocole][scheme];
908
+ if ( portsList.indexOf(''+p) < 0 ) {
909
+
910
+ portsList.push(''+p)
911
+ }
912
+ }
913
+ }
914
+ }
915
+ }
916
+
917
+ portsList.sort();
918
+
919
+ return portsList;
920
+ }
921
+
922
+ /**
923
+ * setPorts
924
+ * Setting bundle ports per env
925
+ *
926
+ * @param {string} bundle
927
+ * @param {array} portsAvailable
928
+ *
929
+ * @callback cb
930
+ */
931
+ setPorts = function(bundle, portsAvailable, cb) {
932
+ var portsPath = _(GINA_HOMEDIR + '/ports.json', true)
933
+ , portsReversePath = _(GINA_HOMEDIR + '/ports.reverse.json', true)
934
+ , envDataPath = _(cmd.projects[cmd.projectName].path + '/env.json', true)
935
+ ;
936
+
937
+ if ( typeof(require.cache[portsPath]) != 'undefined') {
938
+ delete require.cache[require.resolve(portsPath)]
939
+ }
940
+ if ( typeof(require.cache[portsReversePath]) != 'undefined') {
941
+ delete require.cache[require.resolve(portsReversePath)]
942
+ }
943
+ if ( typeof(require.cache[envDataPath]) != 'undefined') {
944
+ delete require.cache[require.resolve(envDataPath)]
945
+ }
946
+
947
+ var envData = requireJSON(envDataPath)
948
+ , portsData = requireJSON(portsPath)
949
+ , portsReverseData = requireJSON(portsReversePath)
950
+ ;
951
+
952
+
953
+ var content = JSON.clone(envData)
954
+ , ports = JSON.clone(portsData)
955
+ , portsReverse = JSON.clone(portsReverseData)
956
+ , allProjectEnvs = cmd.projects[cmd.projectName].envs
957
+ , allProjectProtocols = cmd.projects[cmd.projectName].protocols
958
+ , allProjectSchemes = cmd.projects[cmd.projectName].schemes
959
+ ;
960
+
961
+
962
+
963
+ // BO project/env.json
964
+ if ( typeof(content[bundle]) == 'undefined' ) {
965
+ content[bundle] = {}
966
+ }
967
+
968
+ // getting available all envs
969
+ for (let n in cmd.envs) {
970
+ let newEnv = cmd.envs[n];
971
+ if (allProjectEnvs.indexOf(newEnv) < 0) {
972
+ console.debug('adding new env ['+newEnv+'] VS' + JSON.stringify(cmd.envs, null, 2));
973
+ allProjectEnvs.push(newEnv);
974
+ }
975
+ }
976
+ // getting available all protocols
977
+ for (let p in cmd.protocols) {
978
+ let newProtocol = allProjectProtocols[p];
979
+ if (allProjectProtocols.indexOf(newProtocol) < 0) {
980
+ console.debug('adding new protocol ['+newProtocol+'] VS' + JSON.stringify(cmd.protocols, null, 2));
981
+ allProjectProtocols.push(newProtocol);
982
+ }
983
+ }
984
+ // getting available all schemes
985
+ for (let p in cmd.schemes) {
986
+ let newScheme = allProjectSchemes[p];
987
+ if (allProjectSchemes.indexOf(newScheme) < 0) {
988
+ console.debug('adding new scheme ['+newScheme+'] VS' + JSON.stringify(cmd.schemes, null, 2));
989
+ allProjectSchemes.push(newScheme);
990
+ }
991
+ }
992
+ // EO project/env.json
993
+
994
+
995
+
996
+
997
+
998
+ for (let e in allProjectEnvs) { // ports are to be set for each env
999
+ let env = allProjectEnvs[e];
1000
+
1001
+ // editing env.json to add host infos
1002
+ if ( typeof(content[bundle][env]) == 'undefined' ) {
1003
+ content[bundle][env] = {}
1004
+ }
1005
+ if ( typeof(content[bundle][env].host) == 'undefined' ) {
1006
+ content[bundle][env].host = "localhost"
1007
+ }
1008
+
1009
+
1010
+ // BO ~/.gina/ports.reverse.json - part 1/2
1011
+ if ( typeof(portsReverse[bundle + '@' + cmd.projectName]) == 'undefined' ) {
1012
+ portsReverse[bundle + '@' + cmd.projectName] = {}
1013
+ }
1014
+ if (
1015
+ typeof(portsReverse[bundle + '@' + cmd.projectName][env]) == 'undefined'
1016
+ ||
1017
+ /^string$/i.test( typeof(portsReverse[bundle + '@' + cmd.projectName][env]) )
1018
+ ) {
1019
+ portsReverse[bundle + '@' + cmd.projectName][env] = {}
1020
+ }
1021
+ // EO ~/.gina/ports.reverse.json - part 1/2
1022
+
1023
+
1024
+ // BO ~/.gina/ports.json
1025
+ for (let p in allProjectProtocols) {
1026
+ let protocol = allProjectProtocols[p];
1027
+ if ( typeof(ports[protocol]) == 'undefined' ) {
1028
+ ports[protocol] = {}
1029
+ }
1030
+ if ( typeof(portsReverse[bundle + '@' + cmd.projectName][env][protocol]) == 'undefined' ) {
1031
+ portsReverse[bundle + '@' + cmd.projectName][env][protocol] = {}
1032
+ }
1033
+ for (let s in allProjectSchemes) {
1034
+ let scheme = allProjectSchemes[s];
1035
+ // skipping none `https` schemes for `http/2`
1036
+ if ( /^http\/2/.test(protocol) && scheme != 'https' ) {
1037
+ console.debug('skipping none `https` schemes for `http/2`');
1038
+ continue;
1039
+ }
1040
+ if ( typeof(ports[protocol][scheme]) == 'undefined' ) {
1041
+ ports[protocol][scheme] = {}
1042
+ }
1043
+ if ( typeof(portsReverse[bundle + '@' + cmd.projectName][env][protocol][scheme]) == 'undefined' ) {
1044
+ portsReverse[bundle + '@' + cmd.projectName][env][protocol][scheme] = {}
1045
+ }
1046
+
1047
+ let assigned = [];
1048
+ if ( ports[protocol][scheme].count() > 0 ) {
1049
+ for (let port in ports[protocol][scheme]) {
1050
+ let portDescription = ports[protocol][scheme][port] || null;
1051
+ // already assigned
1052
+ if ( portDescription && assigned.indexOf(portDescription) > -1 ) {
1053
+ // cleanup
1054
+ delete ports[protocol][scheme][port];
1055
+ portsAvailable.unshift(port);
1056
+ continue;
1057
+ }
1058
+ assigned.push(portDescription);
1059
+ }
1060
+ }
1061
+
1062
+
1063
+ let stringifiedScheme = JSON.stringify(ports[protocol][scheme]);
1064
+ let patt = new RegExp(bundle +'@'+ cmd.projectName +'/'+ env);
1065
+ let found = false;
1066
+ let portToAssign = null;
1067
+ // do not override if existing
1068
+ if ( patt.test(stringifiedScheme) ) { // there can multiple matches
1069
+ found = true;
1070
+ // reusing the same for portsReverse
1071
+ let re = new RegExp('([0-9]+)\"\:(|\s+)\"('+ bundle +'\@'+ cmd.projectName +'\/'+ env +')', 'g');
1072
+ let m;
1073
+ while ((m = re.exec(stringifiedScheme)) !== null) {
1074
+ // This is necessary to avoid infinite loops with zero-width matches
1075
+ if (m.index === re.lastIndex) {
1076
+ re.lastIndex++;
1077
+ }
1078
+ // The result can be accessed through the `m`-variable.
1079
+ try {
1080
+ m.forEach((match, groupIndex) => {
1081
+ //console.debug(`Found match, group ${groupIndex}: ${match}`);
1082
+ if (groupIndex == 1) {
1083
+ portToAssign = ~~match;
1084
+ //console.debug('['+bundle+'] port to assign '+ portToAssign + ' - ' + protocol +' '+ scheme);
1085
+ throw new Error('breakExeception');
1086
+ }
1087
+ });
1088
+ } catch (breakExeption) {
1089
+ break;
1090
+ }
1091
+ }
1092
+ }
1093
+
1094
+ if (!portToAssign) {
1095
+ //console.debug('['+bundle+'] No port to assign '+ portToAssign + ' - ' + protocol +' '+ scheme);
1096
+ portToAssign = portsAvailable[0];
1097
+
1098
+ // port is no longer available
1099
+ portsAvailable.splice(0,1);
1100
+ }
1101
+ ports[protocol][scheme][portToAssign] = bundle +'@'+ cmd.projectName +'/'+ env;
1102
+
1103
+ // BO ~/.gina/ports.reverse.json - part 2/2
1104
+ //override needed since it is relying on ports definitions
1105
+ portsReverse[bundle + '@' + cmd.projectName][env][protocol][scheme] = ~~portToAssign;
1106
+ // EO ~/.gina/ports.reverse.json - part 2/2
1107
+
1108
+ } // EO for (let scheme in schemes)
1109
+ } // for (let protocol in protocols)
1110
+ // EO ~/.gina/ports.json
1111
+ }
1112
+
1113
+
1114
+ try {
1115
+ // save to /<project_path>/env.json
1116
+ lib.generator.createFileFromDataSync(content, envDataPath);
1117
+ cmd.envDataWrote = true;
1118
+
1119
+ // save to ~/.gina/ports.json
1120
+ lib.generator.createFileFromDataSync(ports, portsPath);
1121
+ cmd.portsDataWrote = true;
1122
+ // save to ~/.gina/ports.reverse.json
1123
+ lib.generator.createFileFromDataSync(portsReverse, portsReversePath);
1124
+ cmd.portsReverseDataWrote = true;
1125
+
1126
+ cb(false)
1127
+ } catch (err) {
1128
+ cb(err)
1129
+ }
1130
+ }
1131
+
1132
+
1133
+ exit = function(errorMessage) {
1134
+ // CMD Client exit
1135
+ if ( typeof(errorMessage) != 'undefined' ) {
1136
+ client.write(errorMessage + '\n');
1137
+ }
1138
+ client.end();
1139
+ if (errorMessage) {
1140
+ process.exit(1)
1141
+ } else {
1142
+ process.exit()
1143
+ }
1144
+ }
1145
+ };
1146
+
1147
+ module.exports = CmdHelper;