gina 0.0.9-p91c → 0.1.1-alpha.100

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/AUTHORS +2 -1
  2. package/INSTALL.md +46 -0
  3. package/{core/asset/html/static.html → Icon/r} +0 -0
  4. package/LICENSE +1 -1
  5. package/README-4Contributors.md +96 -0
  6. package/README.md +397 -101
  7. package/bin/cli +305 -0
  8. package/bin/cli-debug +60 -0
  9. package/bin/cmd +184 -0
  10. package/bin/gina +180 -0
  11. package/config/logger.json +17 -0
  12. package/framework/v0.1.1-alpha.100/AUTHORS +7 -0
  13. package/{core/utils/lib/inherits → framework/v0.1.1-alpha.100}/LICENSE +1 -1
  14. package/framework/v0.1.1-alpha.100/VERSION +1 -0
  15. package/{core/locales/dist/language/en.json → framework/v0.1.1-alpha.100/core/asset/html/nolayout.html} +0 -0
  16. package/{core/locales/dist/language/fr.json → framework/v0.1.1-alpha.100/core/asset/html/static.html} +0 -0
  17. package/{core → framework/v0.1.1-alpha.100/core}/asset/img/android-chrome-192x192.png +0 -0
  18. package/{core → framework/v0.1.1-alpha.100/core}/asset/img/android-chrome-512x512.png +0 -0
  19. package/{core → framework/v0.1.1-alpha.100/core}/asset/img/apple-touch-icon.png +0 -0
  20. package/{core → framework/v0.1.1-alpha.100/core}/asset/img/favicon-16x16.png +0 -0
  21. package/{core → framework/v0.1.1-alpha.100/core}/asset/img/favicon-32x32.png +0 -0
  22. package/{core → framework/v0.1.1-alpha.100/core}/asset/img/favicon.ico +0 -0
  23. package/framework/v0.1.1-alpha.100/core/asset/js/plugin/dist/gina.js +20904 -0
  24. package/framework/v0.1.1-alpha.100/core/asset/js/plugin/dist/gina.js.map +56 -0
  25. package/framework/v0.1.1-alpha.100/core/asset/js/plugin/dist/gina.min.css +1 -0
  26. package/framework/v0.1.1-alpha.100/core/asset/js/plugin/dist/gina.min.css.map +1 -0
  27. package/framework/v0.1.1-alpha.100/core/asset/js/plugin/dist/gina.min.js +736 -0
  28. package/framework/v0.1.1-alpha.100/core/asset/js/plugin/dist/gina.min.js.map +56 -0
  29. package/framework/v0.1.1-alpha.100/core/asset/js/plugin/dist/gina.onload.min.js +5 -0
  30. package/framework/v0.1.1-alpha.100/core/asset/js/plugin/dist/gina.onload.min.js.map +8 -0
  31. package/framework/v0.1.1-alpha.100/core/asset/js/plugin/readme.md +192 -0
  32. package/framework/v0.1.1-alpha.100/core/asset/js/plugin/uuid.json +23 -0
  33. package/framework/v0.1.1-alpha.100/core/config.js +2308 -0
  34. package/framework/v0.1.1-alpha.100/core/connectors/couchbase/index.js +757 -0
  35. package/framework/v0.1.1-alpha.100/core/connectors/couchbase/lib/connector.js +20 -0
  36. package/framework/v0.1.1-alpha.100/core/connectors/couchbase/lib/connector.v2.js +429 -0
  37. package/framework/v0.1.1-alpha.100/core/connectors/couchbase/lib/connector.v3.js +432 -0
  38. package/framework/v0.1.1-alpha.100/core/connectors/couchbase/lib/n1ql.js +14 -0
  39. package/framework/v0.1.1-alpha.100/core/connectors/couchbase/lib/session-store.js +21 -0
  40. package/framework/v0.1.1-alpha.100/core/connectors/couchbase/lib/session-store.v2.js +258 -0
  41. package/framework/v0.1.1-alpha.100/core/connectors/couchbase/lib/session-store.v3.js +341 -0
  42. package/{core → framework/v0.1.1-alpha.100/core}/controller/controller.framework.js +3 -2
  43. package/framework/v0.1.1-alpha.100/core/controller/controller.js +3990 -0
  44. package/{core → framework/v0.1.1-alpha.100/core}/controller/index.js +5 -5
  45. package/framework/v0.1.1-alpha.100/core/deps/busboy/.travis.yml +17 -0
  46. package/framework/v0.1.1-alpha.100/core/deps/busboy/LICENSE +19 -0
  47. package/framework/v0.1.1-alpha.100/core/deps/busboy/README.md +225 -0
  48. package/framework/v0.1.1-alpha.100/core/deps/busboy/deps/encoding/encoding-indexes.js +73 -0
  49. package/framework/v0.1.1-alpha.100/core/deps/busboy/deps/encoding/encoding.js +2391 -0
  50. package/framework/v0.1.1-alpha.100/core/deps/busboy/lib/main.js +89 -0
  51. package/framework/v0.1.1-alpha.100/core/deps/busboy/lib/types/multipart.js +328 -0
  52. package/framework/v0.1.1-alpha.100/core/deps/busboy/lib/types/urlencoded.js +214 -0
  53. package/framework/v0.1.1-alpha.100/core/deps/busboy/lib/utils.js +191 -0
  54. package/framework/v0.1.1-alpha.100/core/deps/busboy/package.json +69 -0
  55. package/framework/v0.1.1-alpha.100/core/deps/swig-client/swig-2.0.0.min.js +5 -0
  56. package/{core → framework/v0.1.1-alpha.100/core}/dev/index.js +5 -5
  57. package/{core → framework/v0.1.1-alpha.100/core}/dev/lib/class.js +1 -1
  58. package/{core → framework/v0.1.1-alpha.100/core}/dev/lib/factory.js +1 -1
  59. package/{core → framework/v0.1.1-alpha.100/core}/dev/lib/tools.js +0 -0
  60. package/framework/v0.1.1-alpha.100/core/gna.js +1070 -0
  61. package/{core → framework/v0.1.1-alpha.100/core}/locales/README.md +41 -2
  62. package/{core → framework/v0.1.1-alpha.100/core}/locales/currency.json +0 -0
  63. package/{core/plugins/README.md → framework/v0.1.1-alpha.100/core/locales/dist/language/en.json} +0 -0
  64. package/{core/plugins/lib/intl/README.md → framework/v0.1.1-alpha.100/core/locales/dist/language/fr.json} +0 -0
  65. package/{core → framework/v0.1.1-alpha.100/core}/locales/dist/region/en.json +0 -0
  66. package/framework/v0.1.1-alpha.100/core/locales/dist/region/fr.json +9492 -0
  67. package/{core → framework/v0.1.1-alpha.100/core}/locales/index.js +5 -4
  68. package/{core → framework/v0.1.1-alpha.100/core}/locales/src/make.js +15 -12
  69. package/{core → framework/v0.1.1-alpha.100/core}/locales/src/resources/currency.csv +0 -0
  70. package/{core → framework/v0.1.1-alpha.100/core}/locales/src/resources/region.csv +0 -0
  71. package/{core → framework/v0.1.1-alpha.100/core}/locales/src/resources/region.mapping.json +0 -0
  72. package/{core → framework/v0.1.1-alpha.100/core}/mime.types +0 -0
  73. package/{core → framework/v0.1.1-alpha.100/core}/model/entity.js +156 -196
  74. package/{core → framework/v0.1.1-alpha.100/core}/model/index.js +67 -48
  75. package/{core → framework/v0.1.1-alpha.100/core}/model/template/entityFactory.js +2 -2
  76. package/{core → framework/v0.1.1-alpha.100/core}/model/template/index.js +8 -10
  77. package/{core/plugins/lib/storage → framework/v0.1.1-alpha.100/core/plugins}/README.md +0 -0
  78. package/{core → framework/v0.1.1-alpha.100/core}/plugins/index.js +3 -3
  79. package/{core/plugins/lib/validator → framework/v0.1.1-alpha.100/core/plugins/lib/file}/README.md +0 -0
  80. package/{core/plugins/lib/intl → framework/v0.1.1-alpha.100/core/plugins/lib/file}/build.json +0 -0
  81. package/framework/v0.1.1-alpha.100/core/plugins/lib/file/package.json +25 -0
  82. package/{core/utils/lib/collection → framework/v0.1.1-alpha.100/core/plugins/lib/intl}/README.md +0 -0
  83. package/{core/plugins/lib/storage → framework/v0.1.1-alpha.100/core/plugins/lib/intl}/build.json +0 -0
  84. package/{core → framework/v0.1.1-alpha.100/core}/plugins/lib/intl/package.json +3 -3
  85. package/{core → framework/v0.1.1-alpha.100/core}/plugins/lib/intl/src/main.js +17 -1
  86. package/{core/utils/lib/routing → framework/v0.1.1-alpha.100/core/plugins/lib/storage}/README.md +0 -0
  87. package/{core/plugins/lib/validator → framework/v0.1.1-alpha.100/core/plugins/lib/storage}/build.json +0 -0
  88. package/{core → framework/v0.1.1-alpha.100/core}/plugins/lib/storage/package.json +2 -2
  89. package/{core → framework/v0.1.1-alpha.100/core}/plugins/lib/storage/src/main.js +91 -85
  90. package/{core/utils/lib/url → framework/v0.1.1-alpha.100/core/plugins/lib/validator}/README.md +0 -0
  91. package/{core/utils/lib/collection → framework/v0.1.1-alpha.100/core/plugins/lib/validator}/build.json +0 -0
  92. package/{core → framework/v0.1.1-alpha.100/core}/plugins/lib/validator/package.json +3 -3
  93. package/framework/v0.1.1-alpha.100/core/plugins/lib/validator/src/form-validator.js +1762 -0
  94. package/framework/v0.1.1-alpha.100/core/plugins/lib/validator/src/main.js +6917 -0
  95. package/framework/v0.1.1-alpha.100/core/router.js +664 -0
  96. package/framework/v0.1.1-alpha.100/core/server.express.js +213 -0
  97. package/framework/v0.1.1-alpha.100/core/server.isaac.js +386 -0
  98. package/framework/v0.1.1-alpha.100/core/server.js +3010 -0
  99. package/{core → framework/v0.1.1-alpha.100/core}/status.codes +8 -0
  100. package/framework/v0.1.1-alpha.100/core/template/boilerplate/bundle/config/app.json +6 -0
  101. package/framework/v0.1.1-alpha.100/core/template/boilerplate/bundle/config/routing.json +11 -0
  102. package/framework/v0.1.1-alpha.100/core/template/boilerplate/bundle/config/settings.json +9 -0
  103. package/framework/v0.1.1-alpha.100/core/template/boilerplate/bundle/config/settings.server.json +30 -0
  104. package/framework/v0.1.1-alpha.100/core/template/boilerplate/bundle/config/templates.json +42 -0
  105. package/framework/v0.1.1-alpha.100/core/template/boilerplate/bundle/controllers/controller.content.js +39 -0
  106. package/framework/v0.1.1-alpha.100/core/template/boilerplate/bundle/controllers/controller.js +30 -0
  107. package/framework/v0.1.1-alpha.100/core/template/boilerplate/bundle/controllers/setup.js +111 -0
  108. package/{core/template/samples → framework/v0.1.1-alpha.100/core/template/boilerplate}/bundle/index.js +0 -0
  109. package/{core/template/samples/bundle → framework/v0.1.1-alpha.100/core/template/boilerplate/bundle_namespace}/controllers/controller.js +9 -7
  110. package/{core/template/views → framework/v0.1.1-alpha.100/core/template/boilerplate/bundle_public}/css/default.css +0 -0
  111. package/{core/template/views → framework/v0.1.1-alpha.100/core/template/boilerplate/bundle_public}/css/vendor/readme.md +0 -0
  112. package/{core/template/views → framework/v0.1.1-alpha.100/core/template/boilerplate/bundle_public}/favicon.ico +0 -0
  113. package/framework/v0.1.1-alpha.100/core/template/boilerplate/bundle_public/js/vendor/readme.md +1 -0
  114. package/framework/v0.1.1-alpha.100/core/template/boilerplate/bundle_public/readme.md +1 -0
  115. package/framework/v0.1.1-alpha.100/core/template/boilerplate/bundle_templates/handlers/main.js +24 -0
  116. package/{core/template/views/html/default.html → framework/v0.1.1-alpha.100/core/template/boilerplate/bundle_templates/html/homepage.html} +0 -0
  117. package/{core/template/views/html/layout.html → framework/v0.1.1-alpha.100/core/template/boilerplate/bundle_templates/html/layout/main.html} +2 -2
  118. package/{core → framework/v0.1.1-alpha.100/core}/template/command/gina.bat.tpl +0 -0
  119. package/{core → framework/v0.1.1-alpha.100/core}/template/command/gina.tpl +1 -1
  120. package/framework/v0.1.1-alpha.100/core/template/conf/env.json +76 -0
  121. package/{core/template/conf/project.json → framework/v0.1.1-alpha.100/core/template/conf/manifest.json} +1 -0
  122. package/{core → framework/v0.1.1-alpha.100/core}/template/conf/package.json +2 -2
  123. package/framework/v0.1.1-alpha.100/core/template/conf/settings.json +92 -0
  124. package/framework/v0.1.1-alpha.100/core/template/conf/statics.json +10 -0
  125. package/framework/v0.1.1-alpha.100/core/template/conf/templates.json +37 -0
  126. package/{core → framework/v0.1.1-alpha.100/core}/template/error/client/json/401.json +0 -0
  127. package/{core → framework/v0.1.1-alpha.100/core}/template/error/client/json/403.json +0 -0
  128. package/{core → framework/v0.1.1-alpha.100/core}/template/error/client/json/404.json +0 -0
  129. package/{core → framework/v0.1.1-alpha.100/core}/template/error/server/html/50x.html +0 -0
  130. package/{core → framework/v0.1.1-alpha.100/core}/template/error/server/json/500.json +0 -0
  131. package/{core → framework/v0.1.1-alpha.100/core}/template/error/server/json/503.json +0 -0
  132. package/{core/utils/lib/routing/build.json → framework/v0.1.1-alpha.100/core/template/extensions/logger/config.json} +0 -0
  133. package/{core/utils → framework/v0.1.1-alpha.100}/helpers/console.js +3 -3
  134. package/{core/utils → framework/v0.1.1-alpha.100}/helpers/context.js +240 -49
  135. package/framework/v0.1.1-alpha.100/helpers/dateFormat.js +528 -0
  136. package/framework/v0.1.1-alpha.100/helpers/index.js +79 -0
  137. package/framework/v0.1.1-alpha.100/helpers/json/README.md +0 -0
  138. package/framework/v0.1.1-alpha.100/helpers/json/package.json +20 -0
  139. package/framework/v0.1.1-alpha.100/helpers/json/src/main.js +97 -0
  140. package/{core/utils → framework/v0.1.1-alpha.100}/helpers/path.js +333 -126
  141. package/framework/v0.1.1-alpha.100/helpers/plugins/README.md +4 -0
  142. package/framework/v0.1.1-alpha.100/helpers/plugins/package.json +20 -0
  143. package/framework/v0.1.1-alpha.100/helpers/plugins/src/api-error.js +160 -0
  144. package/framework/v0.1.1-alpha.100/helpers/plugins/src/main.js +32 -0
  145. package/framework/v0.1.1-alpha.100/helpers/prototypes.js +218 -0
  146. package/{core/utils → framework/v0.1.1-alpha.100}/helpers/task.js +58 -31
  147. package/{core/utils → framework/v0.1.1-alpha.100}/helpers/text.js +7 -7
  148. package/framework/v0.1.1-alpha.100/lib/archiver/README.md +0 -0
  149. package/framework/v0.1.1-alpha.100/lib/archiver/build.json +0 -0
  150. package/framework/v0.1.1-alpha.100/lib/archiver/package.json +20 -0
  151. package/framework/v0.1.1-alpha.100/lib/archiver/src/dep/jszip.min.js +15 -0
  152. package/framework/v0.1.1-alpha.100/lib/archiver/src/main.js +499 -0
  153. package/framework/v0.1.1-alpha.100/lib/cmd/aliases.json +13 -0
  154. package/framework/v0.1.1-alpha.100/lib/cmd/bundle/add.js +507 -0
  155. package/framework/v0.1.1-alpha.100/lib/cmd/bundle/arguments.json +4 -0
  156. package/framework/v0.1.1-alpha.100/lib/cmd/bundle/copy.js +15 -0
  157. package/framework/v0.1.1-alpha.100/lib/cmd/bundle/cp.js +2 -0
  158. package/framework/v0.1.1-alpha.100/lib/cmd/bundle/help.js +28 -0
  159. package/framework/v0.1.1-alpha.100/lib/cmd/bundle/help.txt +67 -0
  160. package/framework/v0.1.1-alpha.100/lib/cmd/bundle/list.js +129 -0
  161. package/framework/v0.1.1-alpha.100/lib/cmd/bundle/remove.js +229 -0
  162. package/framework/v0.1.1-alpha.100/lib/cmd/bundle/rename.js +4 -0
  163. package/framework/v0.1.1-alpha.100/lib/cmd/bundle/restart.js +235 -0
  164. package/framework/v0.1.1-alpha.100/lib/cmd/bundle/rm.js +2 -0
  165. package/framework/v0.1.1-alpha.100/lib/cmd/bundle/start.js +394 -0
  166. package/framework/v0.1.1-alpha.100/lib/cmd/bundle/status.js +3 -0
  167. package/framework/v0.1.1-alpha.100/lib/cmd/bundle/stop.js +232 -0
  168. package/framework/v0.1.1-alpha.100/lib/cmd/env/add.js +436 -0
  169. package/framework/v0.1.1-alpha.100/lib/cmd/env/get.js +62 -0
  170. package/framework/v0.1.1-alpha.100/lib/cmd/env/help.js +28 -0
  171. package/framework/v0.1.1-alpha.100/lib/cmd/env/help.txt +33 -0
  172. package/framework/v0.1.1-alpha.100/lib/cmd/env/link-dev.js +80 -0
  173. package/framework/v0.1.1-alpha.100/lib/cmd/env/list.js +111 -0
  174. package/framework/v0.1.1-alpha.100/lib/cmd/env/remove.js +150 -0
  175. package/framework/v0.1.1-alpha.100/lib/cmd/env/rm.js +2 -0
  176. package/framework/v0.1.1-alpha.100/lib/cmd/env/set.js +57 -0
  177. package/framework/v0.1.1-alpha.100/lib/cmd/env/unset.js +44 -0
  178. package/framework/v0.1.1-alpha.100/lib/cmd/env/use.js +79 -0
  179. package/framework/v0.1.1-alpha.100/lib/cmd/framework/dot.js +70 -0
  180. package/framework/v0.1.1-alpha.100/lib/cmd/framework/get.js +0 -0
  181. package/framework/v0.1.1-alpha.100/lib/cmd/framework/help.js +39 -0
  182. package/framework/v0.1.1-alpha.100/lib/cmd/framework/help.txt +31 -0
  183. package/framework/v0.1.1-alpha.100/lib/cmd/framework/init.js +541 -0
  184. package/{core/utils/lib/cmd → framework/v0.1.1-alpha.100/lib/cmd/framework}/msg.json +3 -3
  185. package/framework/v0.1.1-alpha.100/lib/cmd/framework/open.js +50 -0
  186. package/framework/v0.1.1-alpha.100/lib/cmd/framework/restart.js +124 -0
  187. package/framework/v0.1.1-alpha.100/lib/cmd/framework/set.js +216 -0
  188. package/framework/v0.1.1-alpha.100/lib/cmd/framework/start.js +96 -0
  189. package/framework/v0.1.1-alpha.100/lib/cmd/framework/status.js +72 -0
  190. package/framework/v0.1.1-alpha.100/lib/cmd/framework/stop.js +159 -0
  191. package/framework/v0.1.1-alpha.100/lib/cmd/framework/tail.js +184 -0
  192. package/framework/v0.1.1-alpha.100/lib/cmd/framework/update.js +0 -0
  193. package/framework/v0.1.1-alpha.100/lib/cmd/framework/version.js +44 -0
  194. package/framework/v0.1.1-alpha.100/lib/cmd/gina-dev.1.md +66 -0
  195. package/framework/v0.1.1-alpha.100/lib/cmd/gina-framework.1.md +100 -0
  196. package/framework/v0.1.1-alpha.100/lib/cmd/gina.1.md +79 -0
  197. package/framework/v0.1.1-alpha.100/lib/cmd/helper.js +1147 -0
  198. package/framework/v0.1.1-alpha.100/lib/cmd/index.js +170 -0
  199. package/framework/v0.1.1-alpha.100/lib/cmd/msg.json +20 -0
  200. package/framework/v0.1.1-alpha.100/lib/cmd/port/help.js +28 -0
  201. package/framework/v0.1.1-alpha.100/lib/cmd/port/help.txt +31 -0
  202. package/framework/v0.1.1-alpha.100/lib/cmd/port/inc/scan.js +108 -0
  203. package/framework/v0.1.1-alpha.100/lib/cmd/port/list.js +176 -0
  204. package/framework/v0.1.1-alpha.100/lib/cmd/port/set.js +0 -0
  205. package/framework/v0.1.1-alpha.100/lib/cmd/project/add.js +528 -0
  206. package/framework/v0.1.1-alpha.100/lib/cmd/project/arguments.json +9 -0
  207. package/framework/v0.1.1-alpha.100/lib/cmd/project/build.js +115 -0
  208. package/framework/v0.1.1-alpha.100/lib/cmd/project/help.js +28 -0
  209. package/framework/v0.1.1-alpha.100/lib/cmd/project/help.txt +76 -0
  210. package/framework/v0.1.1-alpha.100/lib/cmd/project/import.js +2 -0
  211. package/framework/v0.1.1-alpha.100/lib/cmd/project/list.js +55 -0
  212. package/framework/v0.1.1-alpha.100/lib/cmd/project/move.js +0 -0
  213. package/framework/v0.1.1-alpha.100/lib/cmd/project/remove.js +144 -0
  214. package/framework/v0.1.1-alpha.100/lib/cmd/project/rename.js +162 -0
  215. package/framework/v0.1.1-alpha.100/lib/cmd/project/restart.js +0 -0
  216. package/framework/v0.1.1-alpha.100/lib/cmd/project/rm.js +2 -0
  217. package/framework/v0.1.1-alpha.100/lib/cmd/project/start.js +0 -0
  218. package/framework/v0.1.1-alpha.100/lib/cmd/project/status.js +3 -0
  219. package/framework/v0.1.1-alpha.100/lib/cmd/project/stop.js +0 -0
  220. package/framework/v0.1.1-alpha.100/lib/cmd/protocol/help.js +27 -0
  221. package/framework/v0.1.1-alpha.100/lib/cmd/protocol/help.txt +57 -0
  222. package/framework/v0.1.1-alpha.100/lib/cmd/protocol/list.js +239 -0
  223. package/framework/v0.1.1-alpha.100/lib/cmd/protocol/set.js +631 -0
  224. package/framework/v0.1.1-alpha.100/lib/cmd/scope/help.js +28 -0
  225. package/framework/v0.1.1-alpha.100/lib/cmd/scope/help.txt +33 -0
  226. package/framework/v0.1.1-alpha.100/lib/cmd/scope/link-local.js +80 -0
  227. package/framework/v0.1.1-alpha.100/lib/cmd/scope/list.js +116 -0
  228. package/framework/v0.1.1-alpha.100/lib/cmd/scope/remove.js +150 -0
  229. package/framework/v0.1.1-alpha.100/lib/cmd/scope/rm.js +2 -0
  230. package/framework/v0.1.1-alpha.100/lib/cmd/scope/set.js +57 -0
  231. package/framework/v0.1.1-alpha.100/lib/cmd/scope/unset.js +44 -0
  232. package/framework/v0.1.1-alpha.100/lib/cmd/scope/use.js +79 -0
  233. package/framework/v0.1.1-alpha.100/lib/cmd/view/add.js +311 -0
  234. package/framework/v0.1.1-alpha.100/lib/collection/README.md +5 -0
  235. package/framework/v0.1.1-alpha.100/lib/collection/build.json +0 -0
  236. package/{core/utils → framework/v0.1.1-alpha.100}/lib/collection/package.json +2 -2
  237. package/framework/v0.1.1-alpha.100/lib/collection/src/main.js +1459 -0
  238. package/{core/utils → framework/v0.1.1-alpha.100}/lib/config.js +49 -34
  239. package/framework/v0.1.1-alpha.100/lib/cron/README.md +7 -0
  240. package/framework/v0.1.1-alpha.100/lib/cron/package.json +20 -0
  241. package/framework/v0.1.1-alpha.100/lib/cron/src/main.js +176 -0
  242. package/{core/utils → framework/v0.1.1-alpha.100}/lib/generator/index.js +8 -4
  243. package/framework/v0.1.1-alpha.100/lib/index.js +116 -0
  244. package/framework/v0.1.1-alpha.100/lib/inherits/LICENSE +19 -0
  245. package/{core/utils → framework/v0.1.1-alpha.100}/lib/inherits/README.md +0 -0
  246. package/{core/utils → framework/v0.1.1-alpha.100}/lib/inherits/example/inheriting_eventemitter.js +0 -0
  247. package/{core/utils → framework/v0.1.1-alpha.100}/lib/inherits/example/protected_inheritance.js +0 -0
  248. package/{core/utils → framework/v0.1.1-alpha.100}/lib/inherits/example/simple_inheritance.js +0 -0
  249. package/{core/utils → framework/v0.1.1-alpha.100}/lib/inherits/example/super_attribute_overridden_by_child_on_init.js +0 -0
  250. package/{core/utils → framework/v0.1.1-alpha.100}/lib/inherits/package.json +2 -2
  251. package/{core/utils → framework/v0.1.1-alpha.100}/lib/inherits/src/main.js +18 -19
  252. package/framework/v0.1.1-alpha.100/lib/logger/README.md +7 -0
  253. package/framework/v0.1.1-alpha.100/lib/logger/package.json +20 -0
  254. package/framework/v0.1.1-alpha.100/lib/logger/src/containers/default/index.js +55 -0
  255. package/framework/v0.1.1-alpha.100/lib/logger/src/containers/file/index.js +251 -0
  256. package/framework/v0.1.1-alpha.100/lib/logger/src/containers/file/lib/logrotator/README.md +100 -0
  257. package/framework/v0.1.1-alpha.100/lib/logger/src/containers/file/lib/logrotator/index.js +274 -0
  258. package/framework/v0.1.1-alpha.100/lib/logger/src/containers/mq/index.js +52 -0
  259. package/framework/v0.1.1-alpha.100/lib/logger/src/containers/mq/listener.js +302 -0
  260. package/framework/v0.1.1-alpha.100/lib/logger/src/containers/mq/speaker.js +118 -0
  261. package/framework/v0.1.1-alpha.100/lib/logger/src/helper.js +131 -0
  262. package/framework/v0.1.1-alpha.100/lib/logger/src/main.js +739 -0
  263. package/{core/utils → framework/v0.1.1-alpha.100}/lib/math/index.js +58 -35
  264. package/{core/utils → framework/v0.1.1-alpha.100}/lib/merge/README.md +5 -0
  265. package/{core/utils → framework/v0.1.1-alpha.100}/lib/merge/example/merge.js +1 -1
  266. package/{core/utils → framework/v0.1.1-alpha.100}/lib/merge/example/merge_2_literal objects.js +0 -0
  267. package/{core/utils → framework/v0.1.1-alpha.100}/lib/merge/example/merge_and_preserve_first.js +2 -0
  268. package/{core/utils → framework/v0.1.1-alpha.100}/lib/merge/package.json +2 -2
  269. package/framework/v0.1.1-alpha.100/lib/merge/src/main.js +531 -0
  270. package/{core/utils → framework/v0.1.1-alpha.100}/lib/model.js +42 -19
  271. package/framework/v0.1.1-alpha.100/lib/proc.js +518 -0
  272. package/framework/v0.1.1-alpha.100/lib/routing/README.md +0 -0
  273. package/framework/v0.1.1-alpha.100/lib/routing/build.json +0 -0
  274. package/{core/utils → framework/v0.1.1-alpha.100}/lib/routing/package.json +2 -2
  275. package/framework/v0.1.1-alpha.100/lib/routing/src/main.js +1492 -0
  276. package/framework/v0.1.1-alpha.100/lib/session-store.js +33 -0
  277. package/{core/utils → framework/v0.1.1-alpha.100}/lib/shell.js +43 -30
  278. package/framework/v0.1.1-alpha.100/lib/swig-filters/README.md +0 -0
  279. package/framework/v0.1.1-alpha.100/lib/swig-filters/package.json +20 -0
  280. package/framework/v0.1.1-alpha.100/lib/swig-filters/src/main.js +322 -0
  281. package/framework/v0.1.1-alpha.100/lib/url/README.md +0 -0
  282. package/{core/utils → framework/v0.1.1-alpha.100}/lib/url/index.js +2 -1
  283. package/{core/utils → framework/v0.1.1-alpha.100}/lib/url/mocks.json +0 -0
  284. package/{core/utils → framework/v0.1.1-alpha.100}/lib/url/routing.json +9 -9
  285. package/{core/utils → framework/v0.1.1-alpha.100}/lib/url/test.js +0 -0
  286. package/{core/utils → framework/v0.1.1-alpha.100}/lib/validator.js +7 -7
  287. package/framework/v0.1.1-alpha.100/package.json +14 -0
  288. package/package.json +44 -33
  289. package/resources/etc/init.d/debian/gina +117 -0
  290. package/resources/home/framework/env.json +34 -0
  291. package/resources/home/framework/locals.json +14 -0
  292. package/resources/home/framework/project.json +48 -0
  293. package/resources/home/framework/projects.json +6 -0
  294. package/resources/home/main.json +65 -0
  295. package/resources/home/settings.json +24 -0
  296. package/resources/home/user/extensions/logger/default/config.json +77 -0
  297. package/resources/home/user/extensions/logger/file/config.json +11 -0
  298. package/resources/img/android-chrome-192x192.png +0 -0
  299. package/resources/img/android-chrome-512x512.png +0 -0
  300. package/resources/img/apple-touch-icon.png +0 -0
  301. package/resources/img/favicon-16x16.png +0 -0
  302. package/resources/img/favicon-32x32.png +0 -0
  303. package/resources/img/favicon.ico +0 -0
  304. package/resources/package.json.template +61 -0
  305. package/script/lib.js +24 -0
  306. package/script/post_install.js +747 -169
  307. package/script/post_publish.js +185 -0
  308. package/script/pre_install.js +627 -37
  309. package/script/prepare_version.js +552 -0
  310. package/utils/helper.js +620 -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
@@ -1,63 +1,653 @@
1
1
  /**
2
- * This file is part of the gina package.
3
- * Copyright (c) 2016 Rhinostone <gina@rhinostone.com>
2
+ * This file is part of the gina pkg.
3
+ * Copyright (c) 2009-2022 Rhinostone <contact@gina.io>
4
4
  *
5
5
  * For the full copyright and license information, please view the LICENSE
6
6
  * file that was distributed with this source code.
7
7
  */
8
- process.env.IS_SCRIPT_MODE = true;
9
- var fs = require('fs');
10
- var os = require('os');
11
-
12
- // var helpers = require('./../core/utils/helpers');
13
- // var utils = {
14
- // logger : require('./../core/utils/lib/logger'),
15
- // generator : require('./../core/utils/lib/generator')
16
- // };
17
- var utils = require('./../core/utils');
18
- var console = utils.logger;
8
+
9
+ var fs = require('fs');
10
+ var os = require("os");
11
+ var util = require('util');
12
+ var promisify = util.promisify;
13
+ var { execSync } = require('child_process');
14
+
15
+ //var lib = require('./lib');
16
+ // var console = lib.logger;
17
+ var lib = null;
18
+ var helpers = null;
19
19
 
20
20
  /**
21
21
  * Pre install constructor
22
+ *
23
+ * if you need to test, go to gina main folder
24
+ * $ node --inspect-brk=5858 ./script/pre_install.js -g
25
+ *
26
+ * NB.: At this stage, Gina is not yet installed and no lib or helper cannot be used here
27
+ * excepted if Gina has been previously installed
28
+ *
22
29
  * @constructor
23
30
  * */
24
31
  function PreInstall() {
25
- var self = this;
32
+ var self = {};
33
+
34
+ var configure = function() {
35
+
36
+ // TODO - handle windows case
37
+ if ( /^true$/i.test(isWin32()) ) {
38
+ throw new Error('Windows in not yet fully supported. Thank you for your patience');
39
+ }
40
+
41
+ self.isWin32 = isWin32();
42
+ self.isGlobalInstall = process.env.npm_config_global || false;
43
+ self.isResetNeeded = process.env.npm_config_reset || false;
44
+ self.defaultPrefix = execSync('npm config get prefix').toString().replace(/\n$/g, '');
45
+
46
+
47
+ // `process.env.npm_config_prefix` is only retrieved on `npm install gina`
48
+ // and it should always be equal to `self.defaultPrefix`
49
+ self.prefix = process.env.npm_config_prefix || self.defaultPrefix;
50
+ self.isCustomPrefix = false;
51
+ self.isGinaInstalled = false;
52
+
53
+ // Overriding thru passed arguments
54
+ var args = process.argv, i = 0, len = args.length;
55
+ for (; i < len; ++i) {
56
+ if ( /^(\-g|\-\-global)$/.test(args[i]) ) {
57
+ self.isGlobalInstall = true;
58
+ continue;
59
+ }
60
+
61
+ if ( /^\-\-reset$/.test(args[i]) ) {
62
+ self.isResetNeeded = true;
63
+ continue;
64
+ }
65
+
66
+ if ( /^\-\-prefix\=/.test(args[i] ) ) {
67
+ self.isCustomPrefix = true;
68
+ self.prefix = args[i].split(/\=/)[1];
69
+ self.prefix = self.prefix.replace(/^\~/, getUserHome());
70
+ continue;
71
+ }
72
+ }
73
+
74
+ // For local install
75
+ console.debug('self.isGlobalInstall => '+ self.isGlobalInstall);
76
+ if ( !self.isGlobalInstall ) {
77
+ console.warn('Local installation is not fully supported at the moment.');
78
+ console.warn('You are encouraged to use `npm install -g gina`\nor, if you are trying to link gina to your project, use `npm link gina` if Gina has already been installed globally\n');
79
+ // Just in case someone is trying to run pre_install from the `gina` module
80
+ console.info('process.env.INIT_CWD: ', process.env.INIT_CWD);
81
+ if (!/node\_modules(\\\\|\/)gina$/.test(process.env.INIT_CWD)) {
82
+ self.prefix = process.env.INIT_CWD;//process.cwd();
83
+ }
84
+ }
85
+
86
+ // checking permission
87
+ var hasPermissionsForBin = isWritableSync(self.prefix + ( isWin32() ? '\\' : '/' ) + 'bin');
88
+ var hasPermissionsForLib = isWritableSync(self.prefix + ( isWin32() ? '\\' : '/' ) + 'lib');
89
+ var hasPermissionsForVar = isWritableSync(self.prefix + ( isWin32() ? '\\' : '/' ) + 'var');
90
+ if ( !hasPermissionsForBin || !hasPermissionsForLib || !hasPermissionsForVar) {
91
+ if (!hasPermissionsForBin) {
92
+ console.warn('Path not accessible or missing: '+ self.prefix + ( isWin32() ? '\\' : '/' ) + 'bin')
93
+ }
94
+ if (!hasPermissionsForLib) {
95
+ console.warn('Path not accessible or missing: '+ self.prefix + ( isWin32() ? '\\' : '/' ) + 'lib')
96
+ }
97
+ if (!hasPermissionsForVar) {
98
+ console.warn('Path not accessible or missing: '+ self.prefix + ( isWin32() ? '\\' : '/' ) + 'var')
99
+ }
100
+
101
+ // console.warn('You do not have sufficient permissions. Switching to `--prefix='+ self.optionalPrefix +'`');
102
+ // process.env.npm_config_prefix = self.prefix = self.optionalPrefix;
103
+ }
104
+
105
+ var pkg = null, pkgObj = null, cmd = null;
106
+ try {
107
+ cmd = 'npm list gina --long --json --prefix='+ self.prefix;
108
+ if (self.isGlobalInstall) {
109
+ cmd += ' -g';
110
+ }
111
+ pkg = execSync(cmd).toString().replace(/\n$/g, '');
112
+ self.optionalPrefix = JSON.parse(pkg).dependencies.gina.config.optionalPrefix.replace(/^\~/, getUserHome());
113
+
114
+ } catch(err) {
115
+ throw err
116
+ }
117
+ pkgObj = JSON.parse(pkg);
118
+ self.optionalPrefix = pkgObj.dependencies.gina.config.optionalPrefix.replace(/^\~/, getUserHome());
119
+
120
+ if ( self.prefix != self.defaultPrefix ) {
121
+ self.isCustomPrefix = true;
122
+ }
123
+
124
+ self.gina = __dirname +'/..';
125
+ // tying to figure out if gina is already install the given prefix
126
+ // var hasFoundGina = execSync('npm list -g gina --long --json').toString().replace(/\n$/g, '');
127
+ var hasFoundGina = pkg;
128
+ try {
129
+ hasFoundGina = JSON.parse(hasFoundGina);
130
+ if ( hasFoundGina.dependencies && typeof(hasFoundGina.dependencies.gina) != 'undefined' ) {
131
+ self.isGinaInstalled = true;
132
+ self.versionPath = self.gina;
133
+ self.versionPath += (isWin32()) ? '\\framework\\' : '/framework/';
134
+ self.versionPath += 'v'+ hasFoundGina.dependencies.gina.version;
135
+
136
+ console.debug('Install path => '+ hasFoundGina.dependencies.gina.path);
137
+
138
+ // OK ... found installed gina but on a different prefix
139
+ // In this case, let's assume that it is not really installed
140
+ if ( !new RegExp('^'+ self.prefix).test(hasFoundGina.dependencies.gina.path) ) {
141
+ self.isGinaInstalled = false;
142
+ }
143
+ }
144
+ } catch (err) {}
145
+
146
+ console.debug('self.defaultPrefix => '+ self.defaultPrefix);
147
+ console.debug('self.optionalPrefix => '+ self.optionalPrefix );
148
+ console.debug('self.prefix => '+ self.prefix);
149
+ console.debug('self.isCustomPrefix => ', self.isCustomPrefix);
150
+ // only available when running the script with NPM
151
+ console.debug('process.env.npm_config_prefix => '+ process.env.npm_config_prefix);
152
+ }
26
153
 
27
154
  var init = function() {
28
- self.isWin32 = ( os.platform() == 'win32' ) ? true : false;
29
- self.path = __dirname.substring(0, (__dirname.length - 'script'.length));
30
155
 
31
- console.debug('paths -> '+ self.path);
156
+ configure();
32
157
 
33
- if ( hasNodeModulesSync() ) { // cleaining old
34
- var target = new _(self.path + '/node_modules');
35
- console.debug('replacing: ', target.toString() );
36
- var err = target.rmSync();
37
- if (err instanceof Error) {
38
- throw err;
39
- process.exit(1)
158
+ begin(0);
159
+ }
160
+
161
+ /**
162
+ * Bebin - Will run checking tasks in order of declaration
163
+ * */
164
+ var begin = async function(i) {
165
+ var n = 0, funct = null, functName = null;
166
+ for (let t in self) {
167
+ if ( typeof(self[t]) == 'function') {
168
+ if (n == i){
169
+ //let func = 'self.' + t + '()';
170
+ let func = 'self.' + t;
171
+ console.debug('Running [ ' + func + '() ]');
172
+ funct = func;
173
+ functName = t;
174
+ break;
175
+ }
176
+ n++;
40
177
  }
178
+ }
41
179
 
42
- fs.mkdirSync(_(self.path) + '/node_modules');
180
+ // to handle sync vs async to allow execution in order of declaration
181
+ if (funct) {
182
+ eval('async function on'+functName+'(){ await promisify('+ funct + ')().catch(function(e){ console.error(e.toString()); process.exit(-1);}).then(function(){ begin('+(i+1)+')});}; on'+functName+'();');// jshint ignore:line
183
+ } else {
184
+ process.exit(0);
43
185
  }
186
+ }
187
+
44
188
 
189
+
190
+ self.checkRequirements = async function(done) {
191
+
192
+ var ginaHome = getUserHome() + ( isWin32() ? '\\.gina' : '/.gina' );
193
+ if ( self.isResetNeeded && existsSync(ginaHome) ) {
194
+ console.debug('`.gina` reset requested ...');
195
+ fs.rmSync(ginaHome, { recursive: true, force: true });
196
+ }
197
+
198
+ // Let's temporarily install `colors` into `GINA_DIR` it will be removed by the `post_install.js` script
199
+ var initialDir = process.cwd();
200
+
201
+ if ( !fs.existsSync(self.gina +'/node_modules/colors') ) {
202
+ process.chdir(self.gina);
203
+
204
+ var oldConfigGlobal = process.env.npm_config_global;
205
+ process.env.npm_config_global=false;
206
+ var cmd = ( isWin32() ) ? 'npm.cmd install colors@1.4.0' : 'npm install colors@1.4.0';
207
+ execSync(cmd);
208
+ process.env.npm_config_global=oldConfigGlobal;
209
+
210
+ process.chdir(initialDir);
211
+ }
212
+
213
+
214
+
215
+ console.debug('framework path: ' + self.gina);
216
+ console.debug('framework version path: ' + self.versionPath);
217
+ console.debug('Is this a global install: '+ self.isGlobalInstall);
218
+
219
+ done();
45
220
  }
46
221
 
47
- var hasNodeModulesSync = function() {
48
- return fs.existsSync( _(self.path + '/node_modules') )
222
+ self.checkRequiredFolders = function(done) {
223
+
224
+ var ginaHomeDir = getUserHome() + ((isWin32()) ? '\\.gina': '/.gina');
225
+ if (!existsSync(ginaHomeDir) ) {
226
+ fs.mkdirSync(ginaHomeDir)
227
+ }
228
+
229
+ // check for `/usr/local/tmp` or `/tmp`
230
+ var tmpDir = getTmpDir(self.prefix);
231
+ console.info('`tmp` dir -> '+ tmpDir);
232
+ if ( !existsSync(tmpDir) ) {
233
+ fs.mkdirSync(tmpDir)
234
+ }
235
+
236
+
237
+ // check for `/usr/local/run`
238
+ var runDir = getRunDir(self.prefix);
239
+ console.info('`run` dir -> '+ runDir);
240
+
241
+ // check for `/usr/local/log`
242
+ var logDir = getLogDir(self.prefix);
243
+ console.info('`log` dir -> '+ logDir);
244
+
245
+ // var settingsBackupPath = tmpDir + ((isWin32()) ? '\\': '/') + 'gina-install-settings.json';
246
+ // console.info('tmp folder backup -> '+ settingsBackupPath);
247
+ // var data = JSON.stringify({
248
+ // prefix: self.prefix,
249
+ // rundir: runDir,
250
+ // logdir: logDir,
251
+ // tmpdir: tmpDir
252
+ // }, null, 4);
253
+ // fs.writeFileSync(settingsBackupPath, data);
254
+ // fs.chmodSync(settingsBackupPath, 0755);
255
+
256
+ done()
49
257
  }
50
- // compare with post_install.js if you want to use this
51
- //var filename = _(self.path + '/SUCCESS');
52
- //var installed = fs.existsSync( filename );
53
- //if (installed && /node_modules\/gina/.test( new _(process.cwd()).toUnixStyle() ) ) {
54
- // process.exit(0)
55
- //} else {
56
- // fs.writeFileSync(filename, true );
57
- //}
58
- // ...
258
+
259
+
260
+ /**
261
+ * Setup global installation path
262
+ * Eg.: npm install -g gina --prefix=~/.npm-global
263
+ *
264
+ * Resolving EACCES permissions errors when installing packages globally
265
+ * https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally
266
+ */
267
+ // self.setupPermissions = async function(done) {
268
+
269
+ // // create a directory for global installations
270
+ // var npmGlobalPath = getUserHome() + '/.npm-global';
271
+
272
+ // console.info('Setting npm global path: '+ npmGlobalPath +' '+ new _(npmGlobalPath).existsSync() );
273
+ // var npmGlobalPathObj = new _(npmGlobalPath);
274
+ // if ( !npmGlobalPathObj.existsSync() ) {
275
+ // npmGlobalPathObj.mkdirSync()
276
+ // }
277
+ // // from `/usr/local` -> `~/.npm-global`
278
+ // var cmd = 'npm config set prefix '+ getUserHome() +'/.npm-global';
279
+ // await promisify(run)(cmd, { cwd: _(self.path), tmp: getTmpDir(self.prefix);, outToProcessSTD: true })
280
+ // .catch(function onError(err){
281
+ // if (err) {
282
+ // console.warn('try to run: sudo ' + cmd);
283
+ // return done(err);
284
+ // }
285
+ // });
286
+
287
+ // var profilePath = getUserHome() + '/.profile';
288
+ // var profilePathObj = new _(profilePath);
289
+ // if ( !profilePathObj.existsSync() ) {
290
+ // cmd = 'touch '+ profilePath;
291
+ // await promisify(run)(cmd, { cwd: _(self.path), tmp: getTmpDir(self.prefix);, outToProcessSTD: true })
292
+ // .catch(function onError(err){
293
+ // if (err) {
294
+ // console.warn('try to run: sudo ' + cmd);
295
+ // return done(err);
296
+ // }
297
+ // });
298
+ // }
299
+
300
+ // var inFile = null;
301
+ // try {
302
+ // inFile = execSync("cat ~/.profile | grep .npm-global/bin").toString();
303
+ // } catch (err) {
304
+ // // nothing to do
305
+ // }
306
+
307
+ // if (!inFile) {
308
+ // inFile = "\n# set PATH so it includes user‘s private npm bin if exists"
309
+ // inFile += '\nif [ -d "$HOME/.npm-global/bin" ]; then';
310
+ // inFile += '\n PATH="$HOME/.npm-global/bin:$PATH"';
311
+ // inFile += '\nfi\n';
312
+ // try {
313
+ // fs.appendFileSync( getUserHome()+'/.profile', inFile );
314
+ // } catch (err) {
315
+ // return done(err);
316
+ // }
317
+ // inFile = null;
318
+
319
+ // // we need to source/update ~/.profile
320
+ // try {
321
+ // execSync("source "+ profilePath);
322
+ // } catch (err) {
323
+ // return done(err)
324
+ // }
325
+ // }
326
+
327
+ // done()
328
+ // }
329
+
330
+ self.checkIfGinaIsAlreadyInstalled = async function(done) {
331
+
332
+ console.debug('Checking if Gina is already installed for prefix `'+ self.prefix+'`: '+ self.isGinaInstalled);
333
+ if (!self.isGinaInstalled) {
334
+ return done();
335
+ }
336
+
337
+
338
+ // Backup current version
339
+
340
+ // check for ~/.gina
341
+ var ginaHomeDir = getUserHome() + ((isWin32()) ? '\\.gina': '/.gina');
342
+ // if not found -> skip because it means that gina might not be installed or configured yet
343
+ if (!existsSync(ginaHomeDir) ) {
344
+ return done();
345
+ }
346
+
347
+ var frameworkPath = self.versionPath;
348
+ try {
349
+ helpers = require(self.gina+ '/utils/helper');
350
+ lib = require('./lib');
351
+ console = lib.logger;
352
+ } catch (err) {
353
+ return done(err)
354
+ }
355
+
356
+
357
+
358
+ // root
359
+ // self.gina = getEnvVar('GINA_DIR');
360
+ // self.versionPath = getEnvVar('GINA_FRAMEWORK');
361
+
362
+ // check if framework version folder is found
363
+ var versionsFolders = null, frameworkFolder = null;
364
+ try {
365
+ frameworkFolder = _(self.gina +'/framework', true);
366
+ console.debug('frameworkFolder: ', frameworkFolder);
367
+ if ( !existsSync(frameworkFolder) ) {
368
+ return done();
369
+ }
370
+ versionsFolders = fs.readdirSync(frameworkFolder);
371
+ } catch (err) {
372
+ // do nothing
373
+ }
374
+
375
+ // if found, retrieve all versions folders
376
+ // && compare them to `~/.gina/main.json`
377
+ // var mainConfigPath = _(ginaHomeDir +'/main.json', true);
378
+ // var mainConfig = require(mainConfigPath);
379
+
380
+ // if yes, && not symlink, cp to archives ... a symlink will be done back to the framework folder by `post_install` script
381
+ for (let i = 0, len = versionsFolders.length; i < len; i++) {
382
+ let dir = versionsFolders[i];
383
+ // skip junk
384
+ if ( /^\./i.test(dir) || /(\s+copy|\.old)$/i.test(dir) ) {
385
+ continue;
386
+ }
387
+
388
+ // skip symlinks
389
+ try {
390
+ if ( fs.lstatSync( _(frameworkPath +'/'+ dir, true) ).isSymbolicLink() ) {
391
+ continue;
392
+ }
393
+ } catch (e) {
394
+ continue;
395
+ }
396
+
397
+ console.info('Found old version to backup: ', dir);
398
+
399
+ let archiveVersionPath = _( ginaHomeDir+'/archives/framework/'+ dir, true);
400
+ let archiveVersionPathObj = new _(archiveVersionPath);
401
+ // remove existing
402
+ if ( archiveVersionPathObj.existsSync() ) {
403
+ archiveVersionPathObj.rmSync()
404
+ }
405
+
406
+ let frameworkPathObj = new _(frameworkPath +'/'+ dir);
407
+
408
+ // since we cannot yet promissify directly PathObject.cp()
409
+ let f = function(destination, cb) {// jshint ignore:line
410
+ frameworkPathObj.cp(destination, cb);
411
+ };
412
+ let err = false;
413
+ await promisify(f)(archiveVersionPath)
414
+ .catch( function onCopyError(_err) {// jshint ignore:line
415
+ err = _err;
416
+ })
417
+ .then( function onCopy(_destination) {// jshint ignore:line
418
+ console.info('Backup '+ dir +' to '+ _destination +' done !');
419
+ });
420
+
421
+ if (err) {
422
+ return done(err);
423
+ }
424
+ }
425
+ // It is not required to update `~/.gina/main.json` && `~/.gina/{shortVersion}/settings.json`
426
+ done()
427
+ }
428
+
429
+ var isWin32 = function() {
430
+ return (process.platform === 'win32') ? true : false;
431
+ };
432
+
433
+ var existsSync = function(path) {
434
+ if ( fs.accessSync && typeof(fs.accessSync) != 'undefined' ) {
435
+ try {
436
+ fs.accessSync(path, fs.constants.F_OK);
437
+ return true;
438
+ } catch (err) {
439
+ return false;
440
+ }
441
+ } else { // support for old version of nodejs
442
+ return fs.existsSync(path);
443
+ }
444
+ }
445
+
446
+ var isWritableSync = function(path) {
447
+ var canWrite = false;
448
+ if ( fs.accessSync && typeof(fs.accessSync) != 'undefined' ) {
449
+ try {
450
+ fs.accessSync(path, fs.constants.W_OK);
451
+ canWrite = true;
452
+ } catch (err) {
453
+ canWrite = false;
454
+ }
455
+ } else { // support for old version of nodejs
456
+
457
+ try {
458
+ canWrite = (fs.statSync(path).mode & (fs.constants.S_IRUSR | fs.constants.S_IRGRP | fs.constants.S_IROTH));
459
+ } catch (err) {
460
+ canWrite = false
461
+ }
462
+ }
463
+
464
+ return canWrite
465
+ };
466
+
467
+ /**
468
+ * Get run\lock path
469
+ * @returns {string} rundir
470
+ * */
471
+ var getRunDir = function(prefix) {
472
+ if ( !prefix || typeof(prefix) == 'undefined' || prefix == '' ) {
473
+ prefix = self.defaultPrefix;
474
+ }
475
+
476
+ // Trying to retrieve original value if already defined
477
+ // Means `/usr/local/var/lock` or `/usr/local/var/run` by default.
478
+ var runDir = (isWin32()) ? getUserHome() + '\\.gina\\run' : prefix+'/var/lock';
479
+
480
+ if ( !isWin32() && new RegExp('^'+ prefix).test(runDir) && !isWritableSync(prefix) ) {
481
+ runDir = getUserHome() +'/.gina/run';
482
+ if ( !existsSync(runDir) ) {
483
+ fs.mkdirSync(runDir)
484
+ }
485
+
486
+ return runDir
487
+ }
488
+
489
+ if ( existsSync(runDir) ) {
490
+ if ( !isWritableSync(runDir) ) {
491
+ throw new Error('location `'+ runDir +'` found but not writable !' )
492
+ }
493
+
494
+ runDir += ( isWin32() ) ? '' : '/gina'
495
+ if ( !existsSync(runDir) ) {
496
+ fs.mkdirSync(runDir)
497
+ }
498
+
499
+ return runDir;
500
+ }
501
+
502
+ try {
503
+ //by default.
504
+ runDir = prefix+'/var';
505
+ if ( !existsSync(runDir) ) {
506
+ fs.mkdirSync(runDir)
507
+ }
508
+ runDir += '/run';
509
+ if ( !existsSync(runDir) ) {
510
+ fs.mkdirSync(runDir)
511
+ }
512
+ } catch (err) {
513
+ throw new Error('location error: `'+ runDir+'`\n'+ err.stack);
514
+ }
515
+
516
+ if (self.optionalPrefix != prefix) {
517
+ runDir += ( isWin32() ) ? '\\gina' : '/gina'
518
+ if ( !existsSync(runDir) ) {
519
+ fs.mkdirSync(runDir)
520
+ }
521
+ }
522
+
523
+ return runDir;
524
+ };
525
+
526
+ var getTmpDir = function(prefix) {
527
+ if ( !prefix || typeof(prefix) == 'undefined' || prefix == '' ) {
528
+ prefix = self.defaultPrefix;
529
+ }
530
+ // support for node 0.10.x & 0.11.x
531
+ var tmp = (os.tmpdir) ? os.tmpdir : function() {
532
+ var tmpDir = null;
533
+ if ( isWin32() ) {
534
+ tmpDir = process.env.TEMP ||
535
+ process.env.TMP ||
536
+ (process.env.SystemRoot || process.env.windir) + '\\Temp'
537
+ ;
538
+ } else {
539
+ tmpDir = process.env.TMPDIR ||
540
+ process.env.TMP ||
541
+ process.env.TEMP ||
542
+ prefix+'/var/tmp'
543
+ ;
544
+
545
+ if ( new RegExp('^'+ prefix).test(tmpDir) && !isWritableSync(prefix) ) {
546
+ tmpDir = getUserHome() +'/.gina/tmp';
547
+ if ( !existsSync(tmpDir) ) {
548
+ fs.mkdirSync(tmpDir)
549
+ }
550
+ }
551
+
552
+ if ( new RegExp('^'+ prefix +'/var').test(tmpDir) && !existsSync(prefix+'/var') ) {
553
+ fs.mkdirSync(prefix+'/var');
554
+ }
555
+ }
556
+
557
+ if ( !existsSync(tmpDir) ) {
558
+ fs.mkdirSync(tmpDir);
559
+ }
560
+
561
+ return tmpDir
562
+ };
563
+
564
+ return tmp()
565
+ };
566
+
567
+ /**
568
+ * Get log path - %SystemRoot%\system32\winevt\logs or /
569
+ *
570
+ * @returns {string} logPath
571
+ * */
572
+ var getLogDir = function(prefix) {
573
+ if ( !prefix || typeof(prefix) == 'undefined' || prefix == '' ) {
574
+ prefix = self.defaultPrefix;
575
+ }
576
+ // Trying to retrieve original value if already defined
577
+ var logDir = null;
578
+
579
+ if ( isWin32() ) {
580
+ logDir = process.env.LOG ||
581
+ process.env.LOGS ||
582
+ (process.env.SystemRoot || process.env.windir) + '\\System32\\Winevt\\Logs'
583
+ ;
584
+
585
+ if ( !logDir || logDir == '' ) {
586
+ throw new Error('Log directory not defined or not found !');
587
+ }
588
+
589
+ if ( !isWritableSync(logDir) ) {
590
+ throw new Error('Log directory found but not writable: need permissions for `'+ logDir +'`');
591
+ }
592
+
593
+ if ( !/gina$/.test(logDir) ) {
594
+ logDir += '\\gina'
595
+ }
596
+ } else {
597
+ logDir = process.env.LOGDIR ||
598
+ process.env.LOG ||
599
+ process.env.LOGS ||
600
+ prefix+'/var/log'
601
+ ;
602
+
603
+ if ( new RegExp('^'+ prefix).test(logDir) && !isWritableSync(prefix) ) {
604
+ logDir = getUserHome() +'/.gina/log';
605
+ if ( !existsSync(logDir) ) {
606
+ fs.mkdirSync(logDir)
607
+ }
608
+
609
+ return logDir
610
+ }
611
+
612
+ if ( new RegExp('^'+ prefix +'/var').test(logDir) && !existsSync(prefix+'/var') ) {
613
+ fs.mkdirSync(prefix+'/var');
614
+ }
615
+
616
+ if ( !existsSync(logDir) ) {
617
+ fs.mkdirSync(logDir);
618
+ }
619
+
620
+ if ( !/gina$/.test(logDir) && self.optionalPrefix != prefix ) {
621
+ logDir += '/gina'
622
+ }
623
+ }
624
+
625
+ if ( !existsSync(logDir) ) {
626
+ fs.mkdirSync(logDir)
627
+ }
628
+
629
+ return logDir;
630
+ };
631
+
632
+ var getUserHome = function() {
633
+ var home = os.homedir ? os.homedir : function() {
634
+ var homeDir = process.env[(isWin32()) ? 'USERPROFILE' : 'HOME'];
635
+
636
+ if ( !homeDir || homeDir == '' ) {
637
+ throw new Error('Home directory not defined or not found !');
638
+ }
639
+
640
+ if ( !isWritableSync(homeDir) ) {
641
+ throw new Error('Home directory found but not writable: need permissions for `'+ homeDir +'`');
642
+ }
643
+
644
+ return homeDir;
645
+ };
646
+
647
+ return home()
648
+ };
59
649
 
60
650
  init()
61
- };
651
+ }
62
652
 
63
653
  new PreInstall()