gina 0.0.9-p91b → 0.1.1-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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.2/AUTHORS +7 -0
  14. package/{core/utils/lib/inherits → framework/v0.1.1-alpha.2}/LICENSE +1 -1
  15. package/framework/v0.1.1-alpha.2/VERSION +1 -0
  16. package/{core/locales/dist/language/en.json → framework/v0.1.1-alpha.2/core/asset/html/nolayout.html} +0 -0
  17. package/{core/locales/dist/language/fr.json → framework/v0.1.1-alpha.2/core/asset/html/static.html} +0 -0
  18. package/{core → framework/v0.1.1-alpha.2/core}/asset/img/android-chrome-192x192.png +0 -0
  19. package/{core → framework/v0.1.1-alpha.2/core}/asset/img/android-chrome-512x512.png +0 -0
  20. package/{core → framework/v0.1.1-alpha.2/core}/asset/img/apple-touch-icon.png +0 -0
  21. package/{core → framework/v0.1.1-alpha.2/core}/asset/img/favicon-16x16.png +0 -0
  22. package/{core → framework/v0.1.1-alpha.2/core}/asset/img/favicon-32x32.png +0 -0
  23. package/{core → framework/v0.1.1-alpha.2/core}/asset/img/favicon.ico +0 -0
  24. package/framework/v0.1.1-alpha.2/core/asset/js/plugin/dist/gina.js +20904 -0
  25. package/framework/v0.1.1-alpha.2/core/asset/js/plugin/dist/gina.js.map +56 -0
  26. package/framework/v0.1.1-alpha.2/core/asset/js/plugin/dist/gina.min.css +1 -0
  27. package/framework/v0.1.1-alpha.2/core/asset/js/plugin/dist/gina.min.css.map +1 -0
  28. package/framework/v0.1.1-alpha.2/core/asset/js/plugin/dist/gina.min.js +736 -0
  29. package/framework/v0.1.1-alpha.2/core/asset/js/plugin/dist/gina.min.js.map +56 -0
  30. package/framework/v0.1.1-alpha.2/core/asset/js/plugin/dist/gina.onload.min.js +5 -0
  31. package/framework/v0.1.1-alpha.2/core/asset/js/plugin/dist/gina.onload.min.js.map +8 -0
  32. package/framework/v0.1.1-alpha.2/core/asset/js/plugin/readme.md +192 -0
  33. package/framework/v0.1.1-alpha.2/core/asset/js/plugin/uuid.json +23 -0
  34. package/framework/v0.1.1-alpha.2/core/config.js +2308 -0
  35. package/framework/v0.1.1-alpha.2/core/connectors/couchbase/index.js +757 -0
  36. package/framework/v0.1.1-alpha.2/core/connectors/couchbase/lib/connector.js +20 -0
  37. package/framework/v0.1.1-alpha.2/core/connectors/couchbase/lib/connector.v2.js +429 -0
  38. package/framework/v0.1.1-alpha.2/core/connectors/couchbase/lib/connector.v3.js +432 -0
  39. package/framework/v0.1.1-alpha.2/core/connectors/couchbase/lib/n1ql.js +14 -0
  40. package/framework/v0.1.1-alpha.2/core/connectors/couchbase/lib/session-store.js +21 -0
  41. package/framework/v0.1.1-alpha.2/core/connectors/couchbase/lib/session-store.v2.js +258 -0
  42. package/framework/v0.1.1-alpha.2/core/connectors/couchbase/lib/session-store.v3.js +341 -0
  43. package/{core → framework/v0.1.1-alpha.2/core}/controller/controller.framework.js +3 -2
  44. package/framework/v0.1.1-alpha.2/core/controller/controller.js +3990 -0
  45. package/{core → framework/v0.1.1-alpha.2/core}/controller/index.js +5 -5
  46. package/framework/v0.1.1-alpha.2/core/deps/busboy/.travis.yml +17 -0
  47. package/framework/v0.1.1-alpha.2/core/deps/busboy/LICENSE +19 -0
  48. package/framework/v0.1.1-alpha.2/core/deps/busboy/README.md +225 -0
  49. package/framework/v0.1.1-alpha.2/core/deps/busboy/deps/encoding/encoding-indexes.js +73 -0
  50. package/framework/v0.1.1-alpha.2/core/deps/busboy/deps/encoding/encoding.js +2391 -0
  51. package/framework/v0.1.1-alpha.2/core/deps/busboy/lib/main.js +89 -0
  52. package/framework/v0.1.1-alpha.2/core/deps/busboy/lib/types/multipart.js +328 -0
  53. package/framework/v0.1.1-alpha.2/core/deps/busboy/lib/types/urlencoded.js +214 -0
  54. package/framework/v0.1.1-alpha.2/core/deps/busboy/lib/utils.js +191 -0
  55. package/framework/v0.1.1-alpha.2/core/deps/busboy/package.json +69 -0
  56. package/framework/v0.1.1-alpha.2/core/deps/swig-client/swig-2.0.0.min.js +5 -0
  57. package/{core → framework/v0.1.1-alpha.2/core}/dev/index.js +5 -5
  58. package/{core → framework/v0.1.1-alpha.2/core}/dev/lib/class.js +1 -1
  59. package/{core → framework/v0.1.1-alpha.2/core}/dev/lib/factory.js +1 -1
  60. package/{core → framework/v0.1.1-alpha.2/core}/dev/lib/tools.js +0 -0
  61. package/framework/v0.1.1-alpha.2/core/gna.js +1070 -0
  62. package/{core → framework/v0.1.1-alpha.2/core}/locales/README.md +41 -2
  63. package/{core → framework/v0.1.1-alpha.2/core}/locales/currency.json +0 -0
  64. package/{core/plugins/README.md → framework/v0.1.1-alpha.2/core/locales/dist/language/en.json} +0 -0
  65. package/{core/plugins/lib/intl/README.md → framework/v0.1.1-alpha.2/core/locales/dist/language/fr.json} +0 -0
  66. package/{core → framework/v0.1.1-alpha.2/core}/locales/dist/region/en.json +0 -0
  67. package/framework/v0.1.1-alpha.2/core/locales/dist/region/fr.json +9492 -0
  68. package/{core → framework/v0.1.1-alpha.2/core}/locales/index.js +5 -4
  69. package/{core → framework/v0.1.1-alpha.2/core}/locales/src/make.js +15 -12
  70. package/{core → framework/v0.1.1-alpha.2/core}/locales/src/resources/currency.csv +0 -0
  71. package/{core → framework/v0.1.1-alpha.2/core}/locales/src/resources/region.csv +0 -0
  72. package/{core → framework/v0.1.1-alpha.2/core}/locales/src/resources/region.mapping.json +0 -0
  73. package/{core → framework/v0.1.1-alpha.2/core}/mime.types +0 -0
  74. package/{core → framework/v0.1.1-alpha.2/core}/model/entity.js +156 -196
  75. package/{core → framework/v0.1.1-alpha.2/core}/model/index.js +67 -48
  76. package/{core → framework/v0.1.1-alpha.2/core}/model/template/entityFactory.js +2 -2
  77. package/{core → framework/v0.1.1-alpha.2/core}/model/template/index.js +8 -10
  78. package/{core/plugins/lib/storage → framework/v0.1.1-alpha.2/core/plugins}/README.md +0 -0
  79. package/{core → framework/v0.1.1-alpha.2/core}/plugins/index.js +3 -3
  80. package/{core/plugins/lib/validator → framework/v0.1.1-alpha.2/core/plugins/lib/file}/README.md +0 -0
  81. package/{core/plugins/lib/intl → framework/v0.1.1-alpha.2/core/plugins/lib/file}/build.json +0 -0
  82. package/framework/v0.1.1-alpha.2/core/plugins/lib/file/package.json +25 -0
  83. package/{core/utils/lib/collection → framework/v0.1.1-alpha.2/core/plugins/lib/intl}/README.md +0 -0
  84. package/{core/plugins/lib/storage → framework/v0.1.1-alpha.2/core/plugins/lib/intl}/build.json +0 -0
  85. package/{core → framework/v0.1.1-alpha.2/core}/plugins/lib/intl/package.json +3 -3
  86. package/{core → framework/v0.1.1-alpha.2/core}/plugins/lib/intl/src/main.js +17 -1
  87. package/{core/utils/lib/routing → framework/v0.1.1-alpha.2/core/plugins/lib/storage}/README.md +0 -0
  88. package/{core/plugins/lib/validator → framework/v0.1.1-alpha.2/core/plugins/lib/storage}/build.json +0 -0
  89. package/{core → framework/v0.1.1-alpha.2/core}/plugins/lib/storage/package.json +2 -2
  90. package/{core → framework/v0.1.1-alpha.2/core}/plugins/lib/storage/src/main.js +91 -85
  91. package/{core/utils/lib/url → framework/v0.1.1-alpha.2/core/plugins/lib/validator}/README.md +0 -0
  92. package/{core/utils/lib/collection → framework/v0.1.1-alpha.2/core/plugins/lib/validator}/build.json +0 -0
  93. package/{core → framework/v0.1.1-alpha.2/core}/plugins/lib/validator/package.json +3 -3
  94. package/framework/v0.1.1-alpha.2/core/plugins/lib/validator/src/form-validator.js +1762 -0
  95. package/framework/v0.1.1-alpha.2/core/plugins/lib/validator/src/main.js +6917 -0
  96. package/framework/v0.1.1-alpha.2/core/router.js +664 -0
  97. package/framework/v0.1.1-alpha.2/core/server.express.js +213 -0
  98. package/framework/v0.1.1-alpha.2/core/server.isaac.js +386 -0
  99. package/framework/v0.1.1-alpha.2/core/server.js +3010 -0
  100. package/{core → framework/v0.1.1-alpha.2/core}/status.codes +8 -0
  101. package/framework/v0.1.1-alpha.2/core/template/boilerplate/bundle/config/app.json +6 -0
  102. package/framework/v0.1.1-alpha.2/core/template/boilerplate/bundle/config/routing.json +11 -0
  103. package/framework/v0.1.1-alpha.2/core/template/boilerplate/bundle/config/settings.json +9 -0
  104. package/framework/v0.1.1-alpha.2/core/template/boilerplate/bundle/config/settings.server.json +30 -0
  105. package/framework/v0.1.1-alpha.2/core/template/boilerplate/bundle/config/templates.json +42 -0
  106. package/framework/v0.1.1-alpha.2/core/template/boilerplate/bundle/controllers/controller.content.js +39 -0
  107. package/framework/v0.1.1-alpha.2/core/template/boilerplate/bundle/controllers/controller.js +30 -0
  108. package/framework/v0.1.1-alpha.2/core/template/boilerplate/bundle/controllers/setup.js +111 -0
  109. package/{core/template/samples → framework/v0.1.1-alpha.2/core/template/boilerplate}/bundle/index.js +0 -0
  110. package/{core/template/samples/bundle → framework/v0.1.1-alpha.2/core/template/boilerplate/bundle_namespace}/controllers/controller.js +9 -7
  111. package/{core/template/views → framework/v0.1.1-alpha.2/core/template/boilerplate/bundle_public}/css/default.css +0 -0
  112. package/{core/template/views → framework/v0.1.1-alpha.2/core/template/boilerplate/bundle_public}/css/vendor/readme.md +0 -0
  113. package/{core/template/views → framework/v0.1.1-alpha.2/core/template/boilerplate/bundle_public}/favicon.ico +0 -0
  114. package/framework/v0.1.1-alpha.2/core/template/boilerplate/bundle_public/js/vendor/readme.md +1 -0
  115. package/framework/v0.1.1-alpha.2/core/template/boilerplate/bundle_public/readme.md +1 -0
  116. package/framework/v0.1.1-alpha.2/core/template/boilerplate/bundle_templates/handlers/main.js +24 -0
  117. package/{core/template/views/html/default.html → framework/v0.1.1-alpha.2/core/template/boilerplate/bundle_templates/html/homepage.html} +0 -0
  118. package/{core/template/views/html/layout.html → framework/v0.1.1-alpha.2/core/template/boilerplate/bundle_templates/html/layout/main.html} +2 -2
  119. package/{core → framework/v0.1.1-alpha.2/core}/template/command/gina.bat.tpl +0 -0
  120. package/{core → framework/v0.1.1-alpha.2/core}/template/command/gina.tpl +1 -1
  121. package/framework/v0.1.1-alpha.2/core/template/conf/env.json +76 -0
  122. package/{core/template/conf/project.json → framework/v0.1.1-alpha.2/core/template/conf/manifest.json} +1 -0
  123. package/{core → framework/v0.1.1-alpha.2/core}/template/conf/package.json +2 -2
  124. package/framework/v0.1.1-alpha.2/core/template/conf/settings.json +92 -0
  125. package/framework/v0.1.1-alpha.2/core/template/conf/statics.json +10 -0
  126. package/framework/v0.1.1-alpha.2/core/template/conf/templates.json +37 -0
  127. package/{core → framework/v0.1.1-alpha.2/core}/template/error/client/json/401.json +0 -0
  128. package/{core → framework/v0.1.1-alpha.2/core}/template/error/client/json/403.json +0 -0
  129. package/{core → framework/v0.1.1-alpha.2/core}/template/error/client/json/404.json +0 -0
  130. package/{core → framework/v0.1.1-alpha.2/core}/template/error/server/html/50x.html +0 -0
  131. package/{core → framework/v0.1.1-alpha.2/core}/template/error/server/json/500.json +0 -0
  132. package/{core → framework/v0.1.1-alpha.2/core}/template/error/server/json/503.json +0 -0
  133. package/{core/utils/lib/routing/build.json → framework/v0.1.1-alpha.2/core/template/extensions/logger/config.json} +0 -0
  134. package/{core/utils → framework/v0.1.1-alpha.2}/helpers/console.js +3 -3
  135. package/{core/utils → framework/v0.1.1-alpha.2}/helpers/context.js +240 -49
  136. package/framework/v0.1.1-alpha.2/helpers/dateFormat.js +528 -0
  137. package/framework/v0.1.1-alpha.2/helpers/index.js +79 -0
  138. package/framework/v0.1.1-alpha.2/helpers/json/README.md +0 -0
  139. package/framework/v0.1.1-alpha.2/helpers/json/package.json +20 -0
  140. package/framework/v0.1.1-alpha.2/helpers/json/src/main.js +97 -0
  141. package/{core/utils → framework/v0.1.1-alpha.2}/helpers/path.js +342 -140
  142. package/framework/v0.1.1-alpha.2/helpers/plugins/README.md +4 -0
  143. package/framework/v0.1.1-alpha.2/helpers/plugins/package.json +20 -0
  144. package/framework/v0.1.1-alpha.2/helpers/plugins/src/api-error.js +160 -0
  145. package/framework/v0.1.1-alpha.2/helpers/plugins/src/main.js +32 -0
  146. package/framework/v0.1.1-alpha.2/helpers/prototypes.js +218 -0
  147. package/{core/utils → framework/v0.1.1-alpha.2}/helpers/task.js +49 -29
  148. package/{core/utils → framework/v0.1.1-alpha.2}/helpers/text.js +7 -7
  149. package/framework/v0.1.1-alpha.2/lib/archiver/README.md +0 -0
  150. package/framework/v0.1.1-alpha.2/lib/archiver/build.json +0 -0
  151. package/framework/v0.1.1-alpha.2/lib/archiver/package.json +20 -0
  152. package/framework/v0.1.1-alpha.2/lib/archiver/src/dep/jszip.min.js +15 -0
  153. package/framework/v0.1.1-alpha.2/lib/archiver/src/main.js +499 -0
  154. package/framework/v0.1.1-alpha.2/lib/cmd/aliases.json +13 -0
  155. package/framework/v0.1.1-alpha.2/lib/cmd/bundle/add.js +507 -0
  156. package/framework/v0.1.1-alpha.2/lib/cmd/bundle/arguments.json +4 -0
  157. package/framework/v0.1.1-alpha.2/lib/cmd/bundle/copy.js +15 -0
  158. package/framework/v0.1.1-alpha.2/lib/cmd/bundle/cp.js +2 -0
  159. package/framework/v0.1.1-alpha.2/lib/cmd/bundle/help.js +28 -0
  160. package/framework/v0.1.1-alpha.2/lib/cmd/bundle/help.txt +67 -0
  161. package/framework/v0.1.1-alpha.2/lib/cmd/bundle/list.js +129 -0
  162. package/framework/v0.1.1-alpha.2/lib/cmd/bundle/remove.js +229 -0
  163. package/framework/v0.1.1-alpha.2/lib/cmd/bundle/rename.js +4 -0
  164. package/framework/v0.1.1-alpha.2/lib/cmd/bundle/restart.js +235 -0
  165. package/framework/v0.1.1-alpha.2/lib/cmd/bundle/rm.js +2 -0
  166. package/framework/v0.1.1-alpha.2/lib/cmd/bundle/start.js +394 -0
  167. package/framework/v0.1.1-alpha.2/lib/cmd/bundle/status.js +3 -0
  168. package/framework/v0.1.1-alpha.2/lib/cmd/bundle/stop.js +232 -0
  169. package/framework/v0.1.1-alpha.2/lib/cmd/env/add.js +436 -0
  170. package/framework/v0.1.1-alpha.2/lib/cmd/env/get.js +62 -0
  171. package/framework/v0.1.1-alpha.2/lib/cmd/env/help.js +28 -0
  172. package/framework/v0.1.1-alpha.2/lib/cmd/env/help.txt +33 -0
  173. package/framework/v0.1.1-alpha.2/lib/cmd/env/link-dev.js +80 -0
  174. package/framework/v0.1.1-alpha.2/lib/cmd/env/list.js +111 -0
  175. package/framework/v0.1.1-alpha.2/lib/cmd/env/remove.js +150 -0
  176. package/framework/v0.1.1-alpha.2/lib/cmd/env/rm.js +2 -0
  177. package/framework/v0.1.1-alpha.2/lib/cmd/env/set.js +57 -0
  178. package/framework/v0.1.1-alpha.2/lib/cmd/env/unset.js +44 -0
  179. package/framework/v0.1.1-alpha.2/lib/cmd/env/use.js +79 -0
  180. package/framework/v0.1.1-alpha.2/lib/cmd/framework/dot.js +70 -0
  181. package/framework/v0.1.1-alpha.2/lib/cmd/framework/get.js +0 -0
  182. package/framework/v0.1.1-alpha.2/lib/cmd/framework/help.js +39 -0
  183. package/framework/v0.1.1-alpha.2/lib/cmd/framework/help.txt +31 -0
  184. package/framework/v0.1.1-alpha.2/lib/cmd/framework/init.js +514 -0
  185. package/{core/utils/lib/cmd → framework/v0.1.1-alpha.2/lib/cmd/framework}/msg.json +3 -3
  186. package/framework/v0.1.1-alpha.2/lib/cmd/framework/open.js +50 -0
  187. package/framework/v0.1.1-alpha.2/lib/cmd/framework/restart.js +124 -0
  188. package/framework/v0.1.1-alpha.2/lib/cmd/framework/set.js +161 -0
  189. package/framework/v0.1.1-alpha.2/lib/cmd/framework/start.js +96 -0
  190. package/framework/v0.1.1-alpha.2/lib/cmd/framework/status.js +72 -0
  191. package/framework/v0.1.1-alpha.2/lib/cmd/framework/stop.js +159 -0
  192. package/framework/v0.1.1-alpha.2/lib/cmd/framework/tail.js +183 -0
  193. package/framework/v0.1.1-alpha.2/lib/cmd/framework/update.js +0 -0
  194. package/framework/v0.1.1-alpha.2/lib/cmd/framework/version.js +44 -0
  195. package/framework/v0.1.1-alpha.2/lib/cmd/gina-dev.1.md +66 -0
  196. package/framework/v0.1.1-alpha.2/lib/cmd/gina-framework.1.md +100 -0
  197. package/framework/v0.1.1-alpha.2/lib/cmd/gina.1.md +79 -0
  198. package/framework/v0.1.1-alpha.2/lib/cmd/helper.js +1147 -0
  199. package/framework/v0.1.1-alpha.2/lib/cmd/index.js +170 -0
  200. package/framework/v0.1.1-alpha.2/lib/cmd/msg.json +20 -0
  201. package/framework/v0.1.1-alpha.2/lib/cmd/port/help.js +28 -0
  202. package/framework/v0.1.1-alpha.2/lib/cmd/port/help.txt +31 -0
  203. package/framework/v0.1.1-alpha.2/lib/cmd/port/inc/scan.js +108 -0
  204. package/framework/v0.1.1-alpha.2/lib/cmd/port/list.js +176 -0
  205. package/framework/v0.1.1-alpha.2/lib/cmd/port/set.js +0 -0
  206. package/framework/v0.1.1-alpha.2/lib/cmd/project/add.js +528 -0
  207. package/framework/v0.1.1-alpha.2/lib/cmd/project/arguments.json +9 -0
  208. package/framework/v0.1.1-alpha.2/lib/cmd/project/build.js +115 -0
  209. package/framework/v0.1.1-alpha.2/lib/cmd/project/help.js +28 -0
  210. package/framework/v0.1.1-alpha.2/lib/cmd/project/help.txt +76 -0
  211. package/framework/v0.1.1-alpha.2/lib/cmd/project/import.js +2 -0
  212. package/framework/v0.1.1-alpha.2/lib/cmd/project/list.js +55 -0
  213. package/framework/v0.1.1-alpha.2/lib/cmd/project/move.js +0 -0
  214. package/framework/v0.1.1-alpha.2/lib/cmd/project/remove.js +144 -0
  215. package/framework/v0.1.1-alpha.2/lib/cmd/project/rename.js +162 -0
  216. package/framework/v0.1.1-alpha.2/lib/cmd/project/restart.js +0 -0
  217. package/framework/v0.1.1-alpha.2/lib/cmd/project/rm.js +2 -0
  218. package/framework/v0.1.1-alpha.2/lib/cmd/project/start.js +0 -0
  219. package/framework/v0.1.1-alpha.2/lib/cmd/project/status.js +3 -0
  220. package/framework/v0.1.1-alpha.2/lib/cmd/project/stop.js +0 -0
  221. package/framework/v0.1.1-alpha.2/lib/cmd/protocol/help.js +27 -0
  222. package/framework/v0.1.1-alpha.2/lib/cmd/protocol/help.txt +57 -0
  223. package/framework/v0.1.1-alpha.2/lib/cmd/protocol/list.js +239 -0
  224. package/framework/v0.1.1-alpha.2/lib/cmd/protocol/set.js +631 -0
  225. package/framework/v0.1.1-alpha.2/lib/cmd/scope/help.js +28 -0
  226. package/framework/v0.1.1-alpha.2/lib/cmd/scope/help.txt +33 -0
  227. package/framework/v0.1.1-alpha.2/lib/cmd/scope/link-local.js +80 -0
  228. package/framework/v0.1.1-alpha.2/lib/cmd/scope/list.js +116 -0
  229. package/framework/v0.1.1-alpha.2/lib/cmd/scope/remove.js +150 -0
  230. package/framework/v0.1.1-alpha.2/lib/cmd/scope/rm.js +2 -0
  231. package/framework/v0.1.1-alpha.2/lib/cmd/scope/set.js +57 -0
  232. package/framework/v0.1.1-alpha.2/lib/cmd/scope/unset.js +44 -0
  233. package/framework/v0.1.1-alpha.2/lib/cmd/scope/use.js +79 -0
  234. package/framework/v0.1.1-alpha.2/lib/cmd/view/add.js +311 -0
  235. package/framework/v0.1.1-alpha.2/lib/collection/README.md +5 -0
  236. package/framework/v0.1.1-alpha.2/lib/collection/build.json +0 -0
  237. package/{core/utils → framework/v0.1.1-alpha.2}/lib/collection/package.json +2 -2
  238. package/framework/v0.1.1-alpha.2/lib/collection/src/main.js +1459 -0
  239. package/{core/utils → framework/v0.1.1-alpha.2}/lib/config.js +49 -34
  240. package/framework/v0.1.1-alpha.2/lib/cron/README.md +7 -0
  241. package/framework/v0.1.1-alpha.2/lib/cron/package.json +20 -0
  242. package/framework/v0.1.1-alpha.2/lib/cron/src/main.js +176 -0
  243. package/{core/utils → framework/v0.1.1-alpha.2}/lib/generator/index.js +8 -4
  244. package/framework/v0.1.1-alpha.2/lib/index.js +116 -0
  245. package/framework/v0.1.1-alpha.2/lib/inherits/LICENSE +19 -0
  246. package/{core/utils → framework/v0.1.1-alpha.2}/lib/inherits/README.md +0 -0
  247. package/{core/utils → framework/v0.1.1-alpha.2}/lib/inherits/example/inheriting_eventemitter.js +0 -0
  248. package/{core/utils → framework/v0.1.1-alpha.2}/lib/inherits/example/protected_inheritance.js +0 -0
  249. package/{core/utils → framework/v0.1.1-alpha.2}/lib/inherits/example/simple_inheritance.js +0 -0
  250. package/{core/utils → framework/v0.1.1-alpha.2}/lib/inherits/example/super_attribute_overridden_by_child_on_init.js +0 -0
  251. package/{core/utils → framework/v0.1.1-alpha.2}/lib/inherits/package.json +2 -2
  252. package/{core/utils → framework/v0.1.1-alpha.2}/lib/inherits/src/main.js +18 -19
  253. package/framework/v0.1.1-alpha.2/lib/logger/README.md +7 -0
  254. package/framework/v0.1.1-alpha.2/lib/logger/package.json +20 -0
  255. package/framework/v0.1.1-alpha.2/lib/logger/src/containers/default/index.js +55 -0
  256. package/framework/v0.1.1-alpha.2/lib/logger/src/containers/file/index.js +251 -0
  257. package/framework/v0.1.1-alpha.2/lib/logger/src/containers/file/lib/logrotator/README.md +100 -0
  258. package/framework/v0.1.1-alpha.2/lib/logger/src/containers/file/lib/logrotator/index.js +274 -0
  259. package/framework/v0.1.1-alpha.2/lib/logger/src/containers/mq/index.js +52 -0
  260. package/framework/v0.1.1-alpha.2/lib/logger/src/containers/mq/listener.js +302 -0
  261. package/framework/v0.1.1-alpha.2/lib/logger/src/containers/mq/speaker.js +118 -0
  262. package/framework/v0.1.1-alpha.2/lib/logger/src/helper.js +131 -0
  263. package/framework/v0.1.1-alpha.2/lib/logger/src/main.js +734 -0
  264. package/{core/utils → framework/v0.1.1-alpha.2}/lib/math/index.js +58 -35
  265. package/{core/utils → framework/v0.1.1-alpha.2}/lib/merge/README.md +5 -0
  266. package/{core/utils → framework/v0.1.1-alpha.2}/lib/merge/example/merge.js +1 -1
  267. package/{core/utils → framework/v0.1.1-alpha.2}/lib/merge/example/merge_2_literal objects.js +0 -0
  268. package/{core/utils → framework/v0.1.1-alpha.2}/lib/merge/example/merge_and_preserve_first.js +2 -0
  269. package/{core/utils → framework/v0.1.1-alpha.2}/lib/merge/package.json +2 -2
  270. package/framework/v0.1.1-alpha.2/lib/merge/src/main.js +531 -0
  271. package/{core/utils → framework/v0.1.1-alpha.2}/lib/model.js +42 -19
  272. package/framework/v0.1.1-alpha.2/lib/proc.js +518 -0
  273. package/framework/v0.1.1-alpha.2/lib/routing/README.md +0 -0
  274. package/framework/v0.1.1-alpha.2/lib/routing/build.json +0 -0
  275. package/{core/utils → framework/v0.1.1-alpha.2}/lib/routing/package.json +2 -2
  276. package/framework/v0.1.1-alpha.2/lib/routing/src/main.js +1492 -0
  277. package/framework/v0.1.1-alpha.2/lib/session-store.js +33 -0
  278. package/{core/utils → framework/v0.1.1-alpha.2}/lib/shell.js +43 -30
  279. package/framework/v0.1.1-alpha.2/lib/swig-filters/README.md +0 -0
  280. package/framework/v0.1.1-alpha.2/lib/swig-filters/package.json +20 -0
  281. package/framework/v0.1.1-alpha.2/lib/swig-filters/src/main.js +322 -0
  282. package/framework/v0.1.1-alpha.2/lib/url/README.md +0 -0
  283. package/{core/utils → framework/v0.1.1-alpha.2}/lib/url/index.js +2 -1
  284. package/{core/utils → framework/v0.1.1-alpha.2}/lib/url/mocks.json +0 -0
  285. package/{core/utils → framework/v0.1.1-alpha.2}/lib/url/routing.json +9 -9
  286. package/{core/utils → framework/v0.1.1-alpha.2}/lib/url/test.js +0 -0
  287. package/{core/utils → framework/v0.1.1-alpha.2}/lib/validator.js +7 -7
  288. package/framework/v0.1.1-alpha.2/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 -13731
  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 -788
  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,664 @@
1
+ //"use strict";
2
+ /*
3
+ * This file is part of the gina package.
4
+ * Copyright (c) 2009-2022 Rhinostone <contact@gina.io>
5
+ *
6
+ * For the full copyright and license information, please view the LICENSE
7
+ * file that was distributed with this source code.
8
+ */
9
+
10
+
11
+ //Imports.
12
+ var fs = require('fs')
13
+
14
+ , lib = require('./../lib')
15
+ , console = lib.logger
16
+ , inherits = lib.inherits
17
+ , merge = lib.merge
18
+ , routing = lib.routing
19
+
20
+ , SuperController = require('./controller')
21
+ , Config = require('./config')
22
+ ;
23
+
24
+ /**
25
+ * @class Router
26
+ *
27
+ *
28
+ * @package Gina
29
+ * @namespace
30
+ * @author Rhinostone <contact@gina.io>
31
+ * @api Public
32
+ */
33
+ function Router(env) {
34
+
35
+ this.name = 'Router';
36
+
37
+ var self = this
38
+ , local = {}
39
+ ;
40
+
41
+ /**
42
+ * Router Constructor
43
+ * @constructor
44
+ * */
45
+ var init = function() {
46
+
47
+ if ( typeof(Router.initialized) != "undefined" ) {
48
+ return self.getInstance()
49
+ } else {
50
+ self.initialized = true;
51
+ self.hasCompletedControlllerSetup = false;
52
+ }
53
+ }
54
+
55
+ var isSetupRequired = function(control) {
56
+
57
+ if (local.isXMLRequest) return false;
58
+
59
+ return ([
60
+ 'redirect',
61
+ 'query',
62
+ 'store',
63
+ 'downloadFromLocal',
64
+ 'downloadFromURL'
65
+ ].indexOf(control) < 0 ) ? true : false;
66
+ }
67
+
68
+ this.getInstance = function() {
69
+ return self
70
+ }
71
+
72
+ /**
73
+ * Core dependencies refresh for cacheless env
74
+ * - {core}/controller/controller.js
75
+ */
76
+ var refreshCoreDependencies= function() {
77
+
78
+ var corePath = getPath('gina').core;
79
+
80
+ // Super controller
81
+ delete require.cache[require.resolve(_(corePath +'/controller/controller.js', true))];
82
+ delete require.cache[require.resolve(_(corePath +'/controller/index.js', true))];
83
+ require.cache[_(corePath +'/controller/controller.js', true)] = require( _(corePath +'/controller/controller.js', true) );
84
+ require.cache[_(corePath +'/controller/index.js', true)] = require( _(corePath +'/controller/index.js', true) );
85
+
86
+ SuperController = require.cache[_(corePath +'/controller/index.js', true)];
87
+ }
88
+
89
+ this.setServerInstance = function(serverInstance) {
90
+ serverInstance._http2streamEventInitalized = false;
91
+ self.serverInstance = serverInstance;
92
+ }
93
+
94
+ this.getServerInstance = function () {
95
+ return self.serverInstance;
96
+ }
97
+
98
+
99
+ /**
100
+ * Route on the fly
101
+ *
102
+ * @param {object} request
103
+ * @param {object} response
104
+ * @param {object} params - Route params
105
+ *
106
+ * @callback next
107
+ * */
108
+ this.route = function(request, response, next, params) {
109
+
110
+ /**
111
+ * BO Passport JS HTTP2 fix : taken from passport/request.js
112
+ */
113
+ if ( typeof(request._passport) != 'undefined' && typeof(request.isAuthenticated) == 'undefined' ) {
114
+ request.isAuthenticated = function() {
115
+ var property = 'user';
116
+ if (this._passport && this._passport.instance) {
117
+ property = this._passport.instance._userProperty || 'user';
118
+ }
119
+ var isAuthenticated = (this[property]) ? true : false;
120
+ if (isAuthenticated) {
121
+ request.session.user = this[property]
122
+ }
123
+ return isAuthenticated;
124
+ };
125
+ }
126
+
127
+ if ( typeof(request._passport) != 'undefined' && (typeof(request.logIn) == 'undefined' || typeof(request.login) == 'undefined') ) {
128
+ request.login =
129
+ request.logIn = function(user, options, done) {
130
+ if (typeof options == 'function') {
131
+ done = options;
132
+ options = {};
133
+ }
134
+ options = options || {};
135
+
136
+ var property = 'user';
137
+ if (this._passport && this._passport.instance) {
138
+ property = this._passport.instance._userProperty || 'user';
139
+ }
140
+ var session = (options.session === undefined) ? true : options.session;
141
+
142
+ this[property] = user;
143
+ if (session) {
144
+ if (!this._passport) { throw new Error('passport.initialize() middleware not in use'); }
145
+ if (typeof done != 'function') { throw new Error('req#login requires a callback function'); }
146
+
147
+ var self = this;
148
+ this._passport.instance._sm.logIn(this, user, function(err) {
149
+ if (err) {
150
+ self[property] = null;
151
+ return done(err);
152
+ }
153
+ done();
154
+ });
155
+ } else {
156
+ done && done();
157
+ }
158
+ };
159
+ }
160
+
161
+ if ( typeof(request._passport) != 'undefined' && (typeof(request.logOut) == 'undefined' ||  typeof(request.logout) == 'undefined') ) {
162
+ request.logout =
163
+ request.logOut = function() {
164
+ var property = 'user';
165
+ if (this._passport && this._passport.instance) {
166
+ property = this._passport.instance._userProperty || 'user';
167
+ }
168
+
169
+ this[property] = null;
170
+ if (this._passport) {
171
+ this._passport.instance._sm.logOut(this);
172
+ }
173
+ };
174
+ }
175
+
176
+ // for redirect with `hidden inheritedData`
177
+ if ( /get/i.test(request.method) && typeof(request.session) != 'undefined' ) {
178
+ var userSession = request.session.user || request.session;
179
+ if ( typeof(userSession.inheritedData) != 'undefined' ) {
180
+ if (!request.get) {
181
+ request.get = {};
182
+ }
183
+ request.get = merge(request.get, userSession.inheritedData);
184
+
185
+ // if not persisted ... means that if you refresh the current page, `inheritedData` will be lost
186
+ delete userSession.inheritedData;
187
+ }
188
+ }
189
+
190
+ /**
191
+ * EO Passport JS HTTP2 fix
192
+ */
193
+
194
+ var serverInstance = self.getServerInstance();
195
+ var config = null
196
+ , conf = null
197
+ , bundle = null
198
+ , env = null
199
+ , cacheless = (/^true$/i.test(process.env.NODE_ENV_IS_DEV)) ? true : false
200
+ ;
201
+ try {
202
+ config = new Config().getInstance();
203
+ if (!params.bundle) {
204
+ try {
205
+ //params.bundle = config.bundle;
206
+ //params.param = config.routing[config.reverseRouting[params.param.url]];
207
+ var _rule = config.reverseRouting[params.param.url];
208
+ params = merge(params, config.routing[_rule]);
209
+ params.rule = _rule;
210
+ } catch(reverseRoutingError) {
211
+ serverInstance.throwError(response, 500, reverseRoutingError);
212
+ return;
213
+ }
214
+ }
215
+ bundle = local.bundle = params.bundle;
216
+ env = config.env;
217
+ conf = config[bundle][env];
218
+ } catch (configErr) {
219
+ serverInstance.throwError(response, 500, new Error('syntax error(s) found in `'+ controllerFile +'` \nTrace: ') + (configErr.stack || configErr.message) );
220
+ return;
221
+ }
222
+
223
+ local.cacheless = cacheless;
224
+ local.request = request;
225
+ local.next = next;
226
+ local.conf = conf;
227
+ local.isStandalone = conf.isStandalone;
228
+
229
+ if (cacheless) {
230
+ refreshCoreDependencies();
231
+ }
232
+
233
+
234
+ var action = request.control = params.param.control;
235
+ // more can be added ... but it will always start by `on`Something.
236
+ var reservedActions = [
237
+ 'onReady',
238
+ 'setup'
239
+ ];
240
+
241
+
242
+ if (reservedActions.indexOf(action) > -1) {
243
+ serverInstance.throwError(response, 500, '[ this.'+action+' ] is reserved for the framework');
244
+ return;
245
+ }
246
+
247
+
248
+ // Routing object
249
+ var routerObj = {
250
+ response : response,
251
+ next : next,
252
+ hasViews : ( typeof(conf.content.templates) != 'undefined' ) ? true : false,
253
+ isUsingTemplate : conf.template,
254
+ isProcessingXMLRequest : params.isXMLRequest,
255
+ isProcessingWithcredentials : params.isWithCredentials
256
+ };
257
+
258
+ setContext('router', routerObj);
259
+
260
+ var middleware = params.middleware || [];
261
+ var actionFile = params.param.file || null; // matches rule name
262
+ var namespace = params.namespace;
263
+ var routeHasViews = routerObj.hasViews;
264
+ var isUsingTemplate = conf.template;
265
+ var hasSetup = false;
266
+
267
+
268
+ local.isXMLRequest = params.isXMLRequest;
269
+ local.isWithCredentials = params.isWithCredentials;
270
+ local.routeHasViews = routeHasViews;
271
+ local.isUsingTemplate = isUsingTemplate;
272
+
273
+
274
+ //Getting superCleasses & extending it with super Models.
275
+ var mainControllerFile = conf.bundlesPath +'/'+ bundle + '/controllers/controller.js'
276
+ , controllerFile = null
277
+ , setupFile = null
278
+ , MainController = {} // controller.js
279
+ , Controller = {} // controller.namespace.js
280
+ , hasControllerNamespace = (namespace) ? true : false
281
+ ;
282
+
283
+ // TODO - ?? merge all controllers into a single file while building for other env than `dev`
284
+
285
+ setupFile = conf.bundlesPath +'/'+ bundle + '/controllers/setup.js';
286
+ var filename = '';
287
+ if (hasControllerNamespace) {
288
+ filename = conf.bundlesPath +'/'+ bundle + '/controllers/controller.'+ namespace +'.js';
289
+ if ( !fs.existsSync(filename) ) {
290
+ hasControllerNamespace = false;
291
+ console.warn('Namespace `'+ namespace +'` found, but no related controller file found at `'+filename+'` to load: just ignore this message if this is ok with you');
292
+ filename = conf.bundlesPath +'/'+ bundle + '/controllers/controller.js';
293
+ console.info('Switching to default controller: '+ mainControllerFile);
294
+ }
295
+ } else {
296
+ filename = mainControllerFile;
297
+ }
298
+ controllerFile = filename;
299
+
300
+ /**
301
+ * BO routing configuration
302
+ * Attention: this portion of code is replicated in `form-validator.js`
303
+ * Any modification on this part must be reflected on `form-validator.js`
304
+ */
305
+ // default param setting
306
+ if ( !params.rule ) {
307
+ params.rule = params.name;
308
+ }
309
+ var templateName = params.rule.replace('\@'+ bundle, '') || '_common';
310
+
311
+ var options = {
312
+ // view namespace first
313
+ namespace : (/controller\.js$/i.test(controllerFile)) ? null : params.param.namespace || namespace,
314
+ control : params.param.control,
315
+ controller : controllerFile,
316
+ //controller: '<span class="gina-bundle-name">' + bundle +'</span>/controllers/controller.js',
317
+ file : actionFile,
318
+ //bundle : bundle,//module
319
+ bundlePath : conf.bundlesPath + '/' + bundle,
320
+ rootPath : conf.executionPath || null,
321
+ executionPath : conf.executionPath || null,
322
+ //instance: self.serverInstance,
323
+ isUsingTemplate: local.isUsingTemplate,
324
+ cacheless: cacheless,
325
+ path: params.param.path || null, // user custom path : namespace should be ignored or left blank
326
+ assets: {}
327
+ };
328
+
329
+ if (routeHasViews) {
330
+ options.template = (routeHasViews) ? conf.content.templates[templateName] || conf.content.templates._common : undefined;
331
+ }
332
+
333
+ // Options need to be protected by a clone to allow overrides
334
+ options = merge(JSON.clone(options), params);
335
+ // We want to keep original conf untouched
336
+ options.conf = JSON.clone(conf);
337
+ // inheriting from _common
338
+ if (
339
+ options.template
340
+ && typeof(options.template.ginaLoader) == 'undefined'
341
+ ) {
342
+ options.template.ginaLoader = options.conf.content.templates._common.ginaLoader;
343
+ }
344
+ options.conf.content.routing[options.rule].param = params.param;
345
+ delete options.middleware;
346
+ delete options.param;
347
+ delete options.requirements;
348
+ /**
349
+ * EO routing configuration
350
+ */
351
+
352
+ try {
353
+
354
+ if ( fs.existsSync(_(setupFile, true)) )
355
+ hasSetup = true;
356
+
357
+ if (cacheless) {
358
+ if (hasControllerNamespace) {
359
+ delete require.cache[require.resolve(_(mainControllerFile, true))];
360
+ }
361
+ delete require.cache[require.resolve(_(controllerFile, true))];
362
+
363
+ if ( hasSetup )
364
+ delete require.cache[require.resolve(_(setupFile, true))];
365
+ }
366
+ if (hasControllerNamespace) {
367
+ MainController = require(_(mainControllerFile, true));
368
+ }
369
+ Controller = require(_(controllerFile, true));
370
+
371
+ } catch (err) {
372
+ // means that you have a syntax errors in you controller file
373
+ // TODO - increase `stack-trace` from 10 (default value) to 500 or more to get the exact error --stack-trace-limit=1000
374
+ // TODO - also check `stack-size` why not set it to at the same time => --stack-size=1024
375
+ serverInstance.throwError(response, 500, new Error('syntax error(s) found in `'+ controllerFile +'` \nTrace: ') + (err.stack || err.message) );
376
+ return;
377
+ }
378
+
379
+
380
+ // about to contact Controller ...
381
+ try {
382
+ if (hasControllerNamespace) {
383
+ MainController = inherits(MainController, SuperController);
384
+ Controller = inherits(Controller, MainController, SuperController);
385
+ } else {
386
+ Controller = inherits(Controller, SuperController);
387
+ }
388
+
389
+
390
+ var controller = new Controller(options);
391
+ controller.name = options.control;
392
+ controller.serverInstance = serverInstance;
393
+ controller.setOptions(request, response, next, options);
394
+
395
+ /**
396
+ * requireController
397
+ * Allowing another controller (public methods) to be required inside the current controller
398
+ *
399
+ * @param {string} namespace - Controller namespace
400
+ * @param {object} [options] - Controller options
401
+ *
402
+ * @returns {object} controllerInstance
403
+ * */
404
+ var requireController = function (namespace, options) {
405
+
406
+ var cacheless = (process.env.NODE_ENV_IS_DEV == 'false') ? false : true;
407
+ var corePath = getPath('gina').core;
408
+ var config = getContext('gina').Config.instance;
409
+ var bundle = config.bundle;
410
+ var env = config.env;
411
+ var bundleConf = config.Env.getConf(bundle, env);
412
+
413
+ var controllerFile = ( typeof(namespace) != 'undefined' && namespace != '' && namespace != 'null' && namespace != null ) ? 'controller.'+ namespace : 'controller';
414
+ var filename = _(bundleConf.bundlesPath + '/' + bundle + '/controllers/' + controllerFile + '.js', true);
415
+
416
+ if (typeof (options.controlRequired) == 'undefined')
417
+ options.controlRequired = [];
418
+
419
+ var ctrlInfo = {};
420
+ ctrlInfo[controllerFile] = filename;
421
+ options.controlRequired.push(ctrlInfo);
422
+
423
+ try {
424
+
425
+ //if (cacheless) {
426
+ // Super controller
427
+ delete require.cache[require.resolve(_(corePath +'/controller/index.js', true))];
428
+ require.cache[_(corePath +'/controller/index.js', true)] = require( _(corePath +'/controller/index.js', true) );
429
+
430
+ delete require.cache[require.resolve(filename)];
431
+ //}
432
+
433
+ var SuperController = require.cache[_(corePath +'/controller/index.js', true)];
434
+
435
+
436
+ var RequiredController = require(filename);
437
+
438
+ RequiredController = inherits(RequiredController, SuperController);
439
+
440
+ var controller = null;
441
+ if ( typeof(options) != 'undefined' ) {
442
+
443
+ controller = new RequiredController( options );
444
+ controller.name = namespace;
445
+
446
+ controller.setOptions(request, response, next, options);
447
+
448
+ } else {
449
+ controller = new RequiredController();
450
+ }
451
+
452
+ controller.serverInstance = serverInstance;
453
+
454
+ controller.requireController = requireController;
455
+
456
+ return controller;
457
+ } catch (err) {
458
+ return serverInstance.throwError(response, 500, err );
459
+ }
460
+ };
461
+
462
+ controller.requireController = requireController;
463
+
464
+ if (hasSetup && isSetupRequired(params.param.control) || hasSetup && !self.hasCompletedControlllerSetup ) { // adding setup
465
+
466
+ controller.setup = function(request, response, next) {
467
+ if (!this._setupDone) {
468
+ this._setupDone = true;
469
+ return function (request, response, next) { // getting rid of the controller context
470
+ var Setup = require(_(setupFile, true));
471
+
472
+
473
+ // Inheriting SuperController functions & objects
474
+ // Exporting config & common methods
475
+ Setup.engine = controller.engine;
476
+ // This is working, but too heavy
477
+ // TODO- Allow user to target selected methods to be exported
478
+ // TODO - loop on a defiend SuperController property like SuperController._allowedForExport
479
+ // for ( let f in controller) {
480
+ // if ( typeof(controller[f]) != 'function' ) {
481
+ // continue;
482
+ // }
483
+ // Setup[f] = controller[f];
484
+ // }
485
+ Setup.getConfig = controller.getConfig;
486
+ Setup.checkBundleStatus = controller.checkBundleStatus;
487
+ Setup.getLocales = controller.getLocales;
488
+ Setup.getFormsRules = controller.getFormsRules;
489
+ Setup.throwError = serverInstance.throwError;
490
+ Setup.redirect = controller.redirect;
491
+ Setup.render = controller.render;
492
+ Setup.renderJSON = controller.renderJSON;
493
+ Setup.renderWithoutLayout = controller.renderWithoutLayout;
494
+ Setup.isXMLRequest = controller.isXMLRequest;
495
+ Setup.isWithCredentials = controller.isWithCredentials,
496
+ Setup.isCacheless = controller.isCacheless;
497
+ Setup.requireController = controller.requireController;
498
+
499
+
500
+ Setup.apply(Setup, arguments);
501
+
502
+ return Setup;
503
+ }(request, response, next)
504
+ }
505
+ }
506
+
507
+ if ( !self.hasCompletedControlllerSetup )
508
+ self.hasCompletedControlllerSetup = true;
509
+ } else {
510
+ controller.setup = function() { return };
511
+ }
512
+
513
+
514
+
515
+ if (middleware.length > 0) {
516
+ processMiddlewares(middleware, controller, action, request, response, next,
517
+ function onDone(action, request, response, next){
518
+ // handle superController events
519
+ for (var e=0; e<reservedActions.length; ++e) {
520
+ if ( typeof(controller[reservedActions[e]]) == 'function' ) {
521
+ controller[reservedActions[e]](request, response, next)
522
+ }
523
+ }
524
+
525
+ try {
526
+ controller[action](request, response, next)
527
+ } catch (err) {
528
+ var superController = new SuperController(options);
529
+ superController.setOptions(request, response, next, options);
530
+ if (typeof (controller) != 'undefined' && typeof (controller[action]) == 'undefined') {
531
+ serverInstance.throwError(response, 500, (new Error('control not found: `' + action + '`. Please, check your routing.json ('+ options.rule +') or the related control in your `' + controllerFile + '`.')).stack);
532
+ } else {
533
+ serverInstance.throwError(response, 500, err.stack);
534
+ }
535
+ return;
536
+ }
537
+
538
+ })
539
+ } else {
540
+ // handle superController events
541
+ // e.g.: inside your controller, you can defined: `this.onReady = function(){...}` which will always be called before the main action
542
+ for (var e=0; e<reservedActions.length; ++e) {
543
+ if ( typeof(controller[reservedActions[e]]) == 'function' ) {
544
+ controller[reservedActions[e]](request, response, next)
545
+ }
546
+ }
547
+ try {
548
+ controller[action](request, response, next);
549
+ } catch (err) {
550
+ if ( typeof(controller) != 'undefined' && typeof (controller[action]) == 'undefined') {
551
+ serverInstance.throwError(response, 500, (new Error('control not found: `' + action + '`. Please, check your routing.json or the related control in your `' + controllerFile + '`.')).stack);
552
+ } else {
553
+ serverInstance.throwError(response, 500, err.stack);
554
+ }
555
+ return;
556
+ }
557
+ }
558
+
559
+ } catch (err) {
560
+ if ( typeof(controller) != 'undefined' && typeof (controller[action]) == 'undefined') {
561
+ serverInstance.throwError(response, 500, (new Error('control not found: `' + action + '`. Please, check your routing.json or the related control in your `' + controllerFile + '`.')).stack);
562
+ } else {
563
+ serverInstance.throwError(response, 500, err.stack);
564
+ }
565
+ return;
566
+ }
567
+
568
+ action = null
569
+ };//EO route()
570
+
571
+ var processMiddlewares = function(middlewares, controller, action, req, res, next, cb){
572
+
573
+ var filename = _(local.conf.bundlePath)
574
+ , middleware = null
575
+ , constructor = null
576
+ , re = new RegExp('^'+filename);
577
+
578
+ if ( middlewares.length > 0 ) {
579
+ for (var m=0; m<middlewares.length; ++m) {
580
+ constructor = middlewares[m].split(/\./g);
581
+ constructor = constructor
582
+ .splice(constructor.length-1,1)
583
+ .toString();
584
+ middleware = middlewares[m].split(/\./g);
585
+ middleware.splice(middleware.length-1);
586
+ middleware = middleware.join('/');
587
+ filename = _(filename +'/'+ middleware + '/index.js');
588
+ if ( !fs.existsSync( filename ) ) {
589
+ // no middleware found with this alias
590
+ serverInstance.throwError(res, 501, new Error('middleware not found '+ middleware).stack);
591
+ return;
592
+ }
593
+
594
+ if (local.cacheless) delete require.cache[require.resolve(_(filename, true))];
595
+
596
+ var MiddlewareClass = function(req, res, next) {
597
+
598
+ return function () { // getting rid of the middleware context
599
+
600
+ var Middleware = require(_(filename, true));
601
+ // TODO - loop on a defined SuperController property like SuperController._allowedForExport
602
+
603
+
604
+ // Exporting config & common methods
605
+ Middleware.prototype.checkBundleStatus = controller.checkBundleStatus;
606
+ Middleware.prototype.getConfig = controller.getConfig;
607
+ Middleware.prototype.getFormsRules = controller.getFormsRules;
608
+ Middleware.prototype.getLocales = controller.getLocales;
609
+ Middleware.prototype.isCacheless = controller.isCacheless;
610
+ Middleware.prototype.isHaltedRequest = controller.isHaltedRequest;
611
+ Middleware.prototype.isWithCredentials = controller.isWithCredentials;
612
+ Middleware.prototype.isXMLRequest = controller.isXMLRequest;
613
+ Middleware.prototype.pauseRequest = controller.pauseRequest;
614
+ Middleware.prototype.query = controller.query;
615
+ Middleware.prototype.redirect = controller.redirect;
616
+ Middleware.prototype.render = controller.render;
617
+ Middleware.prototype.renderJSON = controller.renderJSON;
618
+ Middleware.prototype.renderWithoutLayout = controller.renderWithoutLayout;
619
+ Middleware.prototype.resumeRequest = controller.resumeRequest;
620
+ Middleware.prototype.requireController = controller.requireController;
621
+ Middleware.prototype.throwError = controller.throwError;
622
+
623
+ return Middleware;
624
+ }(req, res, next)
625
+ }(req, res, next);
626
+
627
+ middleware = new MiddlewareClass();
628
+
629
+
630
+ if ( !middleware[constructor] ) {
631
+ serverInstance.throwError(res, 501, new Error('contructor [ '+constructor+' ] not found @'+ middlewares[m]).stack);
632
+ return;
633
+ }
634
+
635
+ if ( typeof(middleware[constructor]) != 'undefined') {
636
+
637
+ middleware[constructor](req, res, next,
638
+ function onMiddlewareProcessed(req, res, next){
639
+ middlewares.splice(m, 1);
640
+ if (middlewares.length > 0) {
641
+ processMiddlewares(middlewares, controller, action, req, res, next, cb)
642
+ } else {
643
+ cb(action, req, res, next)
644
+ }
645
+ }
646
+ );
647
+
648
+ break
649
+ }
650
+ }
651
+
652
+ } else {
653
+ cb(action, req, res, next)
654
+ }
655
+ };
656
+
657
+ // var hasViews = function() {
658
+ // return local.routeHasViews;
659
+ // };
660
+
661
+ init()
662
+ };
663
+
664
+ module.exports = Router