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,274 @@
1
+ const fs = require('fs');
2
+ const util = require('util');
3
+ const zlib = require('zlib');
4
+ const events = require('events');
5
+
6
+ /**
7
+ * Performs scheduled and on demand log rotation on files
8
+ */
9
+ function Logrotator() {
10
+ events.EventEmitter.call(this);
11
+ this.timers = {};
12
+ }
13
+
14
+ util.inherits(Logrotator, events.EventEmitter);
15
+
16
+ /**
17
+ * Schedules a file for rotation. emits a 'rotate' event whenever the file has been rotated.
18
+ * @param file full file path to rotate
19
+ * @param options rotation options
20
+ * - schedule - how often to check for file rotation conditions. possible values are '1s', '1m', '1h'. default is 5m.
21
+ * - size - size of the file to trigger rotation. possible values are '1k', '1m', '1g'. default is 10m.
22
+ * - count - number of files to keep. default is 3.
23
+ * - compress - whether to gzip rotated files. default is true.
24
+ * - format - a function to build the name of a rotated file. the function receives the index of the rotated file.
25
+ * default format is the index itself.
26
+ */
27
+ Logrotator.prototype.register = function(file, options) {
28
+
29
+ options = util._extend({schedule: '5m'}, options);
30
+
31
+ var match = options.schedule.match(/^([0-9]+)(s|m|h)$/);
32
+ if (!match) {
33
+ this.emit('error', 'incorrect schedule format ' + options.schedule);
34
+ return;
35
+ }
36
+
37
+ if (this.timers[file]) {
38
+ this.unregister(file);
39
+ }
40
+
41
+ // calculate the schedule
42
+ var multi = this._timeMultiplier(match[2]);
43
+ var schedule = parseInt(match[1]) * multi;
44
+ var _this = this;
45
+
46
+ // perform rotation
47
+ function _doRotate() {
48
+ _this.rotate(file, options, function(err, rotated) {
49
+ if (err) {
50
+ _this.emit('error', err);
51
+ return;
52
+ }
53
+ if (rotated) {
54
+ _this.emit('rotate', file);
55
+ }
56
+ });
57
+ }
58
+
59
+ // register the rotation timer
60
+ this.timers[file] = setInterval(function() {
61
+ _doRotate();
62
+ }, schedule);
63
+
64
+ // immediately rotate
65
+ _doRotate();
66
+ };
67
+
68
+ /**
69
+ * Remove the scheduled rotation of a file
70
+ * @param file the file to stop rotating
71
+ */
72
+ Logrotator.prototype.unregister = function(file) {
73
+ if (!this.timers[file]) {
74
+ return;
75
+ }
76
+
77
+ clearInterval(this.timers[file]);
78
+ delete this.timers[file];
79
+ };
80
+
81
+ /**
82
+ * Stop all schedulers
83
+ */
84
+ Logrotator.prototype.stop = function() {
85
+ var _this = this;
86
+ Object.keys(this.timers).forEach(function(name) {
87
+ clearInterval(_this.timers[name]);
88
+ });
89
+ this.timers = {};
90
+ };
91
+
92
+ Logrotator.prototype._timeMultiplier = function(multi) {
93
+ switch (multi) {
94
+ case 's':
95
+ return 1000;
96
+ case 'm':
97
+ return 60*1000;
98
+ case 'h':
99
+ return 60*60*1000;
100
+ }
101
+ };
102
+
103
+ Logrotator.prototype._sizeMultiplier = function(multi) {
104
+ switch (multi) {
105
+ case 'k':
106
+ return 1024;
107
+ case 'm':
108
+ return 1024*1024;
109
+ case 'g':
110
+ return 1024*1024*1024;
111
+ }
112
+ };
113
+
114
+ /**
115
+ * Rotate a file now if size conditions are met.
116
+ * @param file full file path to rotate
117
+ * @param options rotation options
118
+ * - size - size of the file to trigger rotation. possible values are '1k', '1m', '1g'. default is 10m.
119
+ * - count - number of files to keep. default is 3.
120
+ * - compress - gzip rotated files. default is true.
121
+ * - format - a function to build the name of a rotated file. the function receives the index of the rotated file.
122
+ * default format is the index itself.
123
+ * @param cb - invoked on completion, receives 'err' on error
124
+ */
125
+ Logrotator.prototype.rotate = function(file, options, cb) {
126
+
127
+ if (!cb) {
128
+ cb = options;
129
+ options = null;
130
+ }
131
+
132
+ options = util._extend({size: '10m', count: 3, compress: true}, options);
133
+
134
+ var match = options.size.match(/^([0-9]+)(k|m|g)$/);
135
+ if (!match) {
136
+ cb('incorrect size format ' + options.size);
137
+ return;
138
+ }
139
+
140
+ var multi = this._sizeMultiplier(match[2]);
141
+ var size = parseInt(match[1]) * multi;
142
+
143
+ // check if the file reached the trigger size
144
+ var _this = this;
145
+ fs.stat(file, function(err, stats) {
146
+ if (err) {
147
+ var message = null;
148
+ // if file does not exist, ignore
149
+ if (err.code !== 'ENOENT') {
150
+ // other errors
151
+ message = file + ' stat failed: ' + err.message;
152
+ }
153
+ cb(message);
154
+ return;
155
+ }
156
+
157
+ // this isn't a file
158
+ if (!stats.isFile()) {
159
+ cb(file + ' is not a file');
160
+ return;
161
+ }
162
+
163
+ // check file size to see if rotation is needed
164
+ if (stats.size >= size) {
165
+ _this._rotate(file, options.count, options, cb);
166
+ } else {
167
+ cb(null, false);
168
+ }
169
+ });
170
+
171
+ };
172
+
173
+ /**
174
+ * Get the correct file name based on params
175
+ * @param file
176
+ * @param index
177
+ * @param options
178
+ * @private
179
+ */
180
+ Logrotator.prototype._filename = function(file, index, options) {
181
+ var format = index;
182
+ if (typeof options.format === 'function') {
183
+ format = options.format(index);
184
+ }
185
+
186
+ var fileName = file + '.' + format;
187
+ if (options.compress) {
188
+ fileName += '.gz';
189
+ }
190
+ return fileName;
191
+ };
192
+
193
+ /**
194
+ * The log rotation brains
195
+ * @param file
196
+ * @param index
197
+ * @param options
198
+ * @param cb
199
+ * @private
200
+ */
201
+ Logrotator.prototype._rotate = function(file, index, options, cb) {
202
+
203
+ // rotate all existing files
204
+ // 1. delete last file
205
+ // 2. rename all files to with +1
206
+ // 3. read + compress current log into 1
207
+ // 4. truncate file to size 0
208
+ var _this = this;
209
+ var fileName = this._filename(file, index, options);
210
+
211
+ // delete last file
212
+ if (index === options.count) {
213
+ fs.unlink(fileName, function(err) {
214
+ if (err && err.code !== 'ENOENT') {
215
+ cb('error deleting file ' + fileName + ': ' + err.message);
216
+ return;
217
+ }
218
+ _this._rotate(file, --index, options, cb);
219
+ });
220
+ return;
221
+ }
222
+
223
+ // rename all files to with +1
224
+ if (index > 0) {
225
+ var renameTo = this._filename(file, index+1, options);
226
+ fs.rename(fileName, renameTo, function(err) {
227
+ if (err && err.code !== 'ENOENT') {
228
+ cb('error renaming file ' + fileName + ': ' + err.message);
229
+ return;
230
+ }
231
+ _this._rotate(file, --index, options, cb);
232
+ });
233
+
234
+ return;
235
+ }
236
+
237
+ // read (and compress) the file log into index 1
238
+ var fis = fs.createReadStream(file);
239
+ var fos = fs.createWriteStream(this._filename(file, 1, options));
240
+ var pipe;
241
+ if (options.compress) {
242
+ pipe = fis.pipe(zlib.createGzip()).pipe(fos);
243
+ } else {
244
+ pipe = fis.pipe(fos);
245
+ }
246
+
247
+ var error;
248
+ pipe.on('finish', function() {
249
+ if (error) {
250
+ return;
251
+ }
252
+ // truncate log file to size 0
253
+ fs.truncate(file, 0, function(err) {
254
+ if (err) {
255
+ cb && cb('error truncating file ' + file + ': ' + err.message);
256
+ return;
257
+ }
258
+ cb && cb(null, true);
259
+ })
260
+ });
261
+ pipe.on('error', function(err) {
262
+ error = true;
263
+ cb('error compressing file ' + file + ': ' + err.message);
264
+ cb = null;
265
+ });
266
+ };
267
+
268
+ // create a new log rotator
269
+ module.exports.create = function() {
270
+ return new Logrotator();
271
+ };
272
+
273
+ // global log rotator
274
+ module.exports.rotator = new Logrotator();
@@ -0,0 +1,52 @@
1
+ 'use strict';
2
+ // Imports
3
+ const fs = require('fs');
4
+ const net = require('net');
5
+ const util = require('util');
6
+ const promisify = util.promisify;
7
+ const merge = require(__dirname +'/../../../../merge');
8
+
9
+ function MqContainer(opt, loggers) {
10
+ var self = {
11
+ // flow or container name/id
12
+ name: 'mq'
13
+ };
14
+
15
+ // TODO - get options like the `port` from: ~/.gina/user/extensions/logger/{container}/config.json
16
+
17
+ var MQSpeaker = require('./speaker.js');
18
+ opt = merge(opt, { port: 8125 });
19
+ var mqSpeaker = new MQSpeaker(opt, loggers);
20
+
21
+ function init() {
22
+ onPayload()
23
+
24
+ // ------------------------------------------------------------------------
25
+ var level = 'debug';
26
+ // Init debugging - Logs not in hierarchy will just be ignored
27
+ if (opt.hierarchies[opt.hierarchy].indexOf( opt.levels[level].code) > -1) {
28
+ process.emit('logger#'+self.name, JSON.stringify({
29
+ group : opt.name,
30
+ level : level,
31
+ // Raw content !
32
+ content : '`'+ self.name +'` logger container loaded !'
33
+ }));
34
+ }
35
+ // ------------------------------------------------------------------------
36
+ }
37
+
38
+ function onPayload() {
39
+ process.on('logger#'+self.name, function onPayload(payload) {
40
+ if ( !loggers[opt.name]._options.isReporting ) {
41
+ return;
42
+ }
43
+ if (mqSpeaker.write) {
44
+ mqSpeaker.write( payload +'\r\n' );
45
+ }
46
+
47
+ });
48
+ }
49
+
50
+ init();
51
+ }
52
+ module.exports = MqContainer;
@@ -0,0 +1,302 @@
1
+ 'use strict';
2
+ // Imports
3
+ const fs = require('fs');
4
+ // const util = require('util');
5
+ const net = require('net');
6
+ const uuid = require('uuid');
7
+
8
+ function MQListener(opt, cb) {
9
+ var self = {
10
+ name: 'MQListener'
11
+ };
12
+ var sessions = {};
13
+ // tels to the listener when and to whom forward payloads
14
+ var forwardList = {}; // for all flows but `speaker` (report)
15
+ // will be in memory until the framework is stopped
16
+ // TODO - remove specific `bundle` or `CLI` config when the process is terminated
17
+ var sharedConfig = { loggers: {}};
18
+ var homedir = getEnvVar('GINA_HOMEDIR');
19
+ var isLoggedByFile = false; // by default
20
+ var fileLogsList = {};
21
+
22
+
23
+ function init(opt, cb) {
24
+ setup();
25
+ return startMQListener(opt.port, cb);
26
+ }
27
+
28
+ function setup() {
29
+ var mainConfigPath = _(homedir +'/user/extensions/logger/default/config.json', true);
30
+ if ( !new _(mainConfigPath, true).existsSync() ) {
31
+ //throw new Error('Required file not found: '+ mainConfigPath);
32
+ return;
33
+ }
34
+ var mainConfig = requireJSON(mainConfigPath);
35
+ if ( mainConfig.flows.indexOf('file') > -1 ) {
36
+ isLoggedByFile = true;
37
+ }
38
+ }
39
+
40
+ /**
41
+ * startLogRotator
42
+ *
43
+ * @param {string} name - `project name` or `hostname`
44
+ *
45
+ * @returns
46
+ */
47
+ function startLogRotator(name) {
48
+
49
+ if ( typeof(fileLogsList[name]) == 'undefined' ) {
50
+
51
+ fileLogsList[name] = {
52
+ started: false
53
+ }
54
+ }
55
+
56
+ if (fileLogsList[name].started) {
57
+ return;
58
+ }
59
+
60
+ //homedir
61
+ var file = name; // by default, it should be hostname
62
+ if ( !/^gina$/.test(name) && /\@/.test(name) ) {
63
+ name = opt.name.split(/\@/)[1];
64
+ file = name;
65
+ }
66
+ file += '.log';
67
+ var filename = _(GINA_LOGDIR +'/'+ file);
68
+ var filenameObj = new _(filename);
69
+ if ( !filenameObj.existsSync() ) {
70
+ // create an empty file
71
+ try {
72
+ fs.openSync(filename, 'w')
73
+ } catch (fileErr) {
74
+ throw fileErr
75
+ }
76
+ }
77
+ // default options
78
+ var rotatorOptions = {
79
+ schedule: '5m',
80
+ size: '10m',
81
+ compress: true,
82
+ count: 3
83
+ };
84
+ var rotatorOptionsPath = _(homedir +'/user/extensions/logger/file/config.json', true);
85
+ if ( new _(rotatorOptionsPath).existsSync() ) {
86
+ try {
87
+ rotatorOptions = merge( requireJSON(rotatorOptionsPath).logrotator, rotatorOptions );
88
+ } catch (userConfigErr) {
89
+ throw userConfigErr
90
+ }
91
+ }
92
+
93
+
94
+ var rotator = require(__dirname + './../lib/logrotator').rotator;
95
+ // check file rotation every 5 minutes, and rotate the file if its size exceeds 10 mb.
96
+ // keep only 3 rotated files and compress (gzip) them.
97
+ rotator.register(filename, rotatorOptions);
98
+
99
+ rotator.on('error', function(err) {
100
+ console.error('[MQListener] log rotation failed: '+ err.stack);
101
+ });
102
+
103
+ // 'rotate' event is invoked whenever a registered file gets rotated
104
+ rotator.on('rotate', function(file) {
105
+ console.debug('[MQListener] file ' + file + ' was rotated!');
106
+ });
107
+
108
+ fileLogsList[name].started = true;
109
+ }
110
+
111
+ self.report = function(sessionId, payload) {
112
+ //process.stdout.write( '[MQListener] sending MQSpeaker to `'+ sessionId +'` '+ JSON.stringify(payload) +'\n' );
113
+ sessions[sessionId].write( JSON.stringify(payload) +'\r\n');
114
+ //
115
+ // dispatching to onctainsers/flows
116
+ // var i = null , r = sessions[sessionId].request;
117
+ // if ( typeof(forwardList[r]) == 'undefined' ) {
118
+ // forwardList[r] = []
119
+ // }
120
+ if ( forwardList && forwardList.count() > 0 ) {
121
+ for ( let r in forwardList) {
122
+ let i = -1;
123
+ while ( i < forwardList[r].length-1) {
124
+ i++;
125
+ let forwardSessionId = forwardList[r][i];
126
+ // filter receipient flow
127
+ if (forwardSessionId == sessionId) {
128
+ continue;
129
+ }
130
+ if (sessions[forwardSessionId]) {
131
+ if (payload.loggers) {
132
+ self.respond(forwardSessionId, sharedConfig);
133
+ continue;
134
+ }
135
+ self.respond(forwardSessionId, payload);
136
+ }
137
+ }
138
+ }
139
+ }
140
+ }
141
+
142
+ // self.tail = function(sessionId, payload) {
143
+ // //process.stdout.write( '[MQListener] sending tail to `'+ sessionId +'` '+ JSON.stringify(payload) +'\n' );
144
+ // sessions[sessionId].write( JSON.stringify(payload) +'\r\n')
145
+ // }
146
+
147
+ self.respond = function(sessionId, payload) {
148
+ //process.stdout.write( '[MQListener] sending `'+ sessionId +'` '+ JSON.stringify(payload) +'\n' );
149
+ sessions[sessionId].write( JSON.stringify(payload) +'\r\n');
150
+ }
151
+
152
+ function startMQListener(port, cb) {
153
+ // AbortController is a global object
154
+ const controller = new AbortController();// jshint ignore:line
155
+ var server = net.createServer( function(conn) {//'connection' listener
156
+
157
+ conn.sessionId = uuid.v4();
158
+ // conn.request = 'report'; // by default
159
+ sessions[conn.sessionId] = conn;
160
+ conn.write(JSON.stringify({ sessionId: conn.sessionId }) +'\r\n' );
161
+
162
+ //feedback.
163
+ var forwardId = null;
164
+ conn.on('end', function() {
165
+ delete sessions[this.sessionId];
166
+ if ( this.request != 'report' ) {
167
+ forwardId = forwardList[this.request].indexOf(this.sessionId);
168
+ if ( forwardId > -1 ) {
169
+ forwardList[this.request].splice(forwardId, 1);
170
+ }
171
+ }
172
+ console.debug('[MQListener] (end) client disconected');
173
+ //process.stdout.write('[MQListener] (end) client disconected\n');
174
+ //conn.end();
175
+ });
176
+ // force exit
177
+ conn.on('exit', function() {
178
+ delete sessions[this.sessionId];
179
+ if ( this.request != 'report' ) {
180
+ forwardId = forwardList[this.request].indexOf(this.sessionId);
181
+ if ( forwardId > -1 ) {
182
+ forwardList[this.request].splice(forwardId, 1);
183
+ }
184
+ }
185
+
186
+ console.info('[MQListener] (exit) client forced to exit');
187
+ //process.stdout.write('[MQListener] (exit) client forced to exit\n');
188
+ //conn.end();
189
+ });
190
+
191
+ //Receiving.
192
+ var payloads = null, i = null;
193
+ // do not use console to send data to clients
194
+ conn.on('data', function(data) {
195
+ payloads = data.toString();
196
+
197
+ // filter payloads
198
+ if ( /^(\{\"|\[\{\")/.test(payloads) ) {
199
+ payloads = payloads.split(/\r\n/g);
200
+ //console.log(payloads);
201
+ i = -1;
202
+ while(i < payloads.length) {
203
+ i++;
204
+ let payload = payloads[i];
205
+ if ( /^\{/.test(payload) && /\}$/.test(payload)) {
206
+ let pl = JSON.parse(payload);
207
+
208
+
209
+ // mostly after client that acknowledeged sessionId
210
+ if (!pl.content) {
211
+ process.stdout.write( '[MQListener] (undefined content) '+ JSON.stringify(pl, null) +'\n' );
212
+ }
213
+
214
+ if (pl.loggers) {
215
+ sharedConfig.loggers = merge(sharedConfig.loggers, pl.loggers);// jshint ignore:line
216
+ }
217
+
218
+ if (pl.request && !this.request) {
219
+ this.request = pl.request;
220
+ // forward to all but `speakers`
221
+ if ( this.request != 'report' ) {
222
+ if ( typeof(forwardList[this.request]) == 'undefined' ) {
223
+ forwardList[this.request] = []
224
+ }
225
+ if ( forwardList[this.request].indexOf(this.sessionId) < 0 ) {
226
+ forwardList[this.request].push(this.sessionId)
227
+ }
228
+ }
229
+ }
230
+ else if (!this.request) {
231
+ // by default
232
+ this.request = 'report';
233
+ }
234
+
235
+
236
+
237
+ if ( this.request && this.sessionId ) {
238
+
239
+ if ( typeof(self[this.request]) != 'undefined' ) {
240
+ self[this.request](this.sessionId, pl);
241
+ continue;
242
+ }
243
+ self.respond(this.sessionId, pl);
244
+ continue;
245
+ }
246
+
247
+ // uncatched sessionId - not supposed to get there
248
+ process.stdout.write( '[MQListener] '+ pl.content +'\n' );
249
+ }
250
+ }
251
+
252
+ return
253
+ }
254
+
255
+ // regular messages
256
+ process.stdout.write( '[MQListener] '+ payloads +'\n' );
257
+ });
258
+
259
+ conn.on('connect', function(data) {
260
+ console.info( '[MQListener] connect received "'+ data.toString() +'"' );
261
+ });
262
+ });
263
+
264
+
265
+ server.on('error', function(err) {
266
+ if (err.code === 'EADDRINUSE') {
267
+ console.warn('[MQListener] is already running on port [ '+ (err.port || port) +' ]');
268
+ } else {
269
+ console.emerg('[MQListener] Could not start', err.stack)
270
+ }
271
+
272
+ if (cb) {
273
+ cb(err);
274
+ }
275
+ });
276
+
277
+
278
+ server.on('close', function() {
279
+ for ( let i = 0, len = sessions.length; i < len; i++) {
280
+ //sessions[i].close();
281
+ sessions[i].destroy()
282
+ }
283
+ });
284
+
285
+ server.listen({
286
+ host: '127.0.0.1',
287
+ port: port,
288
+ signal: controller.signal
289
+ }, function() {
290
+ // Server started.
291
+ console.info('[MQListener] is waitting for speakers on port `'+ port +'`');
292
+ if (cb) {
293
+ cb(false);
294
+ }
295
+ });
296
+
297
+ return server;
298
+ }
299
+
300
+ return init(opt, cb);
301
+ }
302
+ module.exports = MQListener;