gina 0.2.1-alpha.2 → 0.3.0

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 (504) hide show
  1. package/CHANGELOG.md +74 -0
  2. package/CONTRIBUTING.md +9 -0
  3. package/CONVENTIONS.md +564 -0
  4. package/README.md +35 -611
  5. package/ROADMAP.md +90 -47
  6. package/bin/cli +24 -0
  7. package/bin/gina-container +23 -0
  8. package/framework/v0.3.0/VERSION +1 -0
  9. package/framework/v0.3.0/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +493 -0
  10. package/framework/v0.3.0/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +513 -0
  11. package/framework/v0.3.0/core/asset/plugin/dist/vendor/gina/beemaster/index.html +108 -0
  12. package/framework/v0.3.0/core/asset/plugin/dist/vendor/gina/html/statusbar.html +152 -0
  13. package/framework/v0.3.0/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  14. package/framework/v0.3.0/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  15. package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/asset/plugin/dist/vendor/gina/html/toolbar.html +0 -2
  16. package/framework/v0.3.0/core/asset/plugin/dist/vendor/gina/html/toolbar.html.br +0 -0
  17. package/framework/v0.3.0/core/asset/plugin/dist/vendor/gina/html/toolbar.html.gz +0 -0
  18. package/framework/v0.3.0/core/asset/plugin/dist/vendor/gina/inspector/index.html +269 -0
  19. package/framework/v0.3.0/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +3442 -0
  20. package/framework/v0.3.0/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +4186 -0
  21. package/framework/v0.3.0/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +1 -0
  22. package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/asset/plugin/dist/vendor/gina/js/gina.js +5005 -6592
  23. package/framework/v0.3.0/core/asset/plugin/dist/vendor/gina/js/gina.min.js +21544 -0
  24. package/framework/v0.3.0/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  25. package/framework/v0.3.0/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  26. package/framework/v0.3.0/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +286 -0
  27. package/framework/v0.3.0/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  28. package/framework/v0.3.0/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  29. package/framework/v0.3.0/core/connectors/ai/index.js +183 -0
  30. package/framework/v0.3.0/core/connectors/ai/lib/connector.js +186 -0
  31. package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/connectors/couchbase/index.js +241 -21
  32. package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/connectors/couchbase/lib/session-store.v3.js +8 -4
  33. package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/connectors/couchbase/lib/session-store.v4.js +18 -7
  34. package/framework/v0.3.0/core/connectors/mysql/index.js +355 -0
  35. package/framework/v0.3.0/core/connectors/mysql/lib/connector.js +115 -0
  36. package/framework/v0.3.0/core/connectors/postgresql/index.js +356 -0
  37. package/framework/v0.3.0/core/connectors/postgresql/lib/connector.js +123 -0
  38. package/framework/v0.3.0/core/connectors/sql-parser.js +152 -0
  39. package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/connectors/sqlite/index.js +53 -6
  40. package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/controller/controller.js +437 -59
  41. package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/controller/controller.render-json.js +67 -0
  42. package/framework/v0.3.0/core/controller/controller.render-stream.js +142 -0
  43. package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/controller/controller.render-swig.js +251 -24
  44. package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/controller/controller.render-v1.js +47 -7
  45. package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/gna.js +36 -9
  46. package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/model/entity.js +74 -54
  47. package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/plugins/lib/storage/src/main.js +1 -1
  48. package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/plugins/lib/validator/src/main.js +1 -1
  49. package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/router.js +63 -8
  50. package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/server.express.js +7 -0
  51. package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/server.isaac.js +260 -16
  52. package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/server.js +436 -18
  53. package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/status.codes +1 -1
  54. package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/boilerplate/bundle/config/settings.server.json +16 -0
  55. package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/conf/env.json +5 -5
  56. package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/conf/manifest.json +1 -0
  57. package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/conf/settings.json +12 -3
  58. package/framework/{v0.2.1-alpha.2 → v0.3.0}/helpers/context.js +1 -1
  59. package/framework/{v0.2.1-alpha.2 → v0.3.0}/helpers/path.js +28 -0
  60. package/framework/{v0.2.1-alpha.2 → v0.3.0}/helpers/prototypes.js +1 -7
  61. package/framework/v0.3.0/lib/async/package.json +20 -0
  62. package/framework/v0.3.0/lib/async/src/main.js +70 -0
  63. package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cache/src/main.js +1 -1
  64. package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/bundle/add.js +7 -6
  65. package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/bundle/arguments.json +2 -1
  66. package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/bundle/help.txt +18 -0
  67. package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/bundle/start.js +26 -1
  68. package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/env/help.txt +23 -0
  69. package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/gina.1.md +8 -0
  70. package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/helper.js +68 -9
  71. package/framework/v0.3.0/lib/cmd/port/help.txt +60 -0
  72. package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/port/inc/scan.js +8 -1
  73. package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/project/help.txt +5 -5
  74. package/framework/v0.3.0/lib/cmd/project/restart.js +82 -0
  75. package/framework/v0.3.0/lib/cmd/project/start.js +82 -0
  76. package/framework/v0.3.0/lib/cmd/project/stop.js +63 -0
  77. package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/protocol/help.txt +2 -2
  78. package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/scope/help.txt +11 -0
  79. package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/collection/src/main.js +1 -1
  80. package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/index.js +3 -0
  81. package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/proc.js +5 -1
  82. package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/routing/src/main.js +60 -0
  83. package/framework/v0.3.0/lib/routing/src/radix.js +114 -0
  84. package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/swig-filters/src/main.js +54 -0
  85. package/framework/{v0.2.1-alpha.2 → v0.3.0}/package.json +1 -1
  86. package/llms.txt +388 -28
  87. package/package.json +15 -5
  88. package/resources/img/logo.svg +1 -0
  89. package/schema/manifest.json +103 -0
  90. package/script/post_install.js +24 -0
  91. package/utils/helper.js +1 -1
  92. package/framework/v0.2.1-alpha.2/VERSION +0 -1
  93. package/framework/v0.2.1-alpha.2/core/asset/plugin/dist/vendor/gina/html/toolbar.html.br +0 -0
  94. package/framework/v0.2.1-alpha.2/core/asset/plugin/dist/vendor/gina/html/toolbar.html.gz +0 -0
  95. package/framework/v0.2.1-alpha.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -791
  96. package/framework/v0.2.1-alpha.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  97. package/framework/v0.2.1-alpha.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  98. package/framework/v0.2.1-alpha.2/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -9
  99. package/framework/v0.2.1-alpha.2/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  100. package/framework/v0.2.1-alpha.2/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  101. package/framework/v0.2.1-alpha.2/core/asset/plugin/uuid.json +0 -23
  102. package/framework/v0.2.1-alpha.2/lib/cmd/port/help.txt +0 -31
  103. package/framework/v0.2.1-alpha.2/lib/cmd/project/restart.js +0 -0
  104. package/framework/v0.2.1-alpha.2/lib/cmd/project/start.js +0 -0
  105. package/framework/v0.2.1-alpha.2/lib/cmd/project/stop.js +0 -0
  106. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/AUTHORS +0 -0
  107. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/LICENSE +0 -0
  108. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/asset/html/nolayout.html +0 -0
  109. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/asset/html/static.html +0 -0
  110. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/asset/img/android-chrome-192x192.png +0 -0
  111. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/asset/img/android-chrome-512x512.png +0 -0
  112. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/asset/img/apple-touch-icon.png +0 -0
  113. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/asset/img/favicon-16x16.png +0 -0
  114. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/asset/img/favicon-32x32.png +0 -0
  115. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/asset/img/favicon.ico +0 -0
  116. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/asset/plugin/README.md +0 -0
  117. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  118. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  119. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  120. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/config.js +0 -0
  121. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/connectors/couchbase/lib/connector.js +0 -0
  122. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/connectors/couchbase/lib/connector.v2.js +0 -0
  123. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  124. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  125. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/connectors/couchbase/lib/n1ql.js +0 -0
  126. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/connectors/couchbase/lib/session-store.js +0 -0
  127. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/connectors/couchbase/lib/session-store.v2.js +0 -0
  128. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/connectors/redis/index.js +0 -0
  129. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/connectors/redis/lib/session-store.js +0 -0
  130. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/connectors/sqlite/lib/connector.js +0 -0
  131. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/connectors/sqlite/lib/session-store.js +0 -0
  132. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/content.encoding +0 -0
  133. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/controller/controller.framework.js +0 -0
  134. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/controller/index.js +0 -0
  135. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/busboy-1.6.0/LICENSE +0 -0
  136. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/busboy-1.6.0/README.md +0 -0
  137. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/busboy-1.6.0/lib/index.js +0 -0
  138. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/busboy-1.6.0/lib/types/multipart.js +0 -0
  139. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/busboy-1.6.0/lib/types/urlencoded.js +0 -0
  140. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/busboy-1.6.0/lib/utils.js +0 -0
  141. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/busboy-1.6.0/package.json +0 -0
  142. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/optimist-0.6.1/LICENSE +0 -0
  143. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/optimist-0.6.1/index.js +0 -0
  144. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/optimist-0.6.1/package.json +0 -0
  145. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/optimist-0.6.1/readme.markdown +0 -0
  146. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/CONTRIBUTING.md +0 -0
  147. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/HISTORY.md +0 -0
  148. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/LICENSE +0 -0
  149. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/Makefile +0 -0
  150. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/README.md +0 -0
  151. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/bin/swig.js +0 -0
  152. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/browser/comments.js +0 -0
  153. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/browser/index.js +0 -0
  154. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/docs/docs/api.html +0 -0
  155. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/docs/docs/browser.html +0 -0
  156. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/docs/docs/cli.html +0 -0
  157. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/docs/docs/extending.html +0 -0
  158. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/docs/docs/filters.html +0 -0
  159. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/docs/docs/includes/TYPES.html +0 -0
  160. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/docs/docs/includes/macros.html +0 -0
  161. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/docs/docs/index.html +0 -0
  162. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/docs/docs/layout.html +0 -0
  163. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/docs/docs/loaders.html +0 -0
  164. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/docs/docs/previous.html +0 -0
  165. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/docs/docs/tags.html +0 -0
  166. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/docs/docs.json +0 -0
  167. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/docs/index.html +0 -0
  168. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/docs/index.json +0 -0
  169. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/docs/js/lib/rainbow.min.js +0 -0
  170. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/docs/js/master.js +0 -0
  171. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/docs/layouts/html5.html +0 -0
  172. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/docs/layouts/master.html +0 -0
  173. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/docs/less/button.less +0 -0
  174. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/docs/less/fork.less +0 -0
  175. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/docs/less/header.less +0 -0
  176. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/docs/less/layout.less +0 -0
  177. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/docs/less/mixins.less +0 -0
  178. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/docs/less/rainbow.less +0 -0
  179. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/docs/less/reset.less +0 -0
  180. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/docs/less/sidenav.less +0 -0
  181. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/docs/less/swig.less +0 -0
  182. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/docs/less/variables.less +0 -0
  183. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/index.js +0 -0
  184. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/lib/dateformatter.js +0 -0
  185. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/lib/filters.js +0 -0
  186. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/lib/lexer.js +0 -0
  187. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/lib/loaders/filesystem.js +0 -0
  188. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/lib/loaders/index.js +0 -0
  189. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/lib/loaders/memory.js +0 -0
  190. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/lib/parser.js +0 -0
  191. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/lib/swig.js +0 -0
  192. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/lib/tags/autoescape.js +0 -0
  193. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/lib/tags/block.js +0 -0
  194. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/lib/tags/else.js +0 -0
  195. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/lib/tags/elseif.js +0 -0
  196. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/lib/tags/extends.js +0 -0
  197. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/lib/tags/filter.js +0 -0
  198. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/lib/tags/for.js +0 -0
  199. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/lib/tags/if.js +0 -0
  200. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/lib/tags/import.js +0 -0
  201. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/lib/tags/include.js +0 -0
  202. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/lib/tags/index.js +0 -0
  203. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/lib/tags/macro.js +0 -0
  204. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/lib/tags/parent.js +0 -0
  205. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/lib/tags/raw.js +0 -0
  206. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/lib/tags/set.js +0 -0
  207. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/lib/tags/spaceless.js +0 -0
  208. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/lib/utils.js +0 -0
  209. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/package.json +0 -0
  210. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/scripts/config-lint.js +0 -0
  211. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/scripts/githooks/post-merge +0 -0
  212. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/scripts/githooks/pre-commit +0 -0
  213. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/basic.test.js +0 -0
  214. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/bin/bin.filters.js +0 -0
  215. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/bin/bin.locals.js +0 -0
  216. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/bin/bin.locals.json +0 -0
  217. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/bin/bin.tags.js +0 -0
  218. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/bin/bin.test.js +0 -0
  219. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/bin/custom_filter.bin.html +0 -0
  220. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/bin/custom_tag.bin.html +0 -0
  221. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/bin/custom_tagControls.bin.html +0 -0
  222. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/bin/custom_varControls.bin.html +0 -0
  223. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/bin/options.js +0 -0
  224. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/extends_1.expectation.html +0 -0
  225. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/extends_1.test.html +0 -0
  226. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/extends_2.expectation.html +0 -0
  227. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/extends_2.test.html +0 -0
  228. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/extends_base.html +0 -0
  229. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/extends_layouts/extends_4.base.html +0 -0
  230. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/extends_layouts/extends_4.middle.html +0 -0
  231. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/extends_layouts/extends_bare.html +0 -0
  232. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/extends_layouts/extends_base.html +0 -0
  233. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/extends_layouts/extends_include.html +0 -0
  234. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/extends_layouts/extends_real_base.html +0 -0
  235. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/extends_set.expectation.html +0 -0
  236. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/extends_set.test.html +0 -0
  237. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/extends_tests/extends_3.expectation.html +0 -0
  238. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/extends_tests/extends_3.test.html +0 -0
  239. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/extends_tests/extends_4.expectation.html +0 -0
  240. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/extends_tests/extends_4.test.html +0 -0
  241. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/import.expectation.html +0 -0
  242. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/import.test.html +0 -0
  243. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/include.expectation.html +0 -0
  244. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/include.test.html +0 -0
  245. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/include_bar.html +0 -0
  246. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/include_extends.expectation.html +0 -0
  247. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/include_extends.test.html +0 -0
  248. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/includes.html +0 -0
  249. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/macros.expectation.html +0 -0
  250. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/macros.html +0 -0
  251. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/macros.test.html +0 -0
  252. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/nested_blocks.expectation.html +0 -0
  253. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/nested_blocks.test.html +0 -0
  254. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/nested_blocks_parent.html +0 -0
  255. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/parent-parent.expectation.html +0 -0
  256. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/parent-parent.test.html +0 -0
  257. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/parent.expectation.html +0 -0
  258. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/parent.test.html +0 -0
  259. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/set.expectation.html +0 -0
  260. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases/set.test.html +0 -0
  261. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases-error/circular.test.html +0 -0
  262. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases-error/circular_parent.html +0 -0
  263. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases-error/extends-non-existent.test.html +0 -0
  264. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases-error/report-filename-partial.html +0 -0
  265. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/cases-error/report-filename.test.html +0 -0
  266. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/comments.test.js +0 -0
  267. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/filters.test.js +0 -0
  268. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/loaders.test.js +0 -0
  269. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/regressions.test.js +0 -0
  270. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/tags/autoescape.test.js +0 -0
  271. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/tags/else.test.js +0 -0
  272. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/tags/extend.test.js +0 -0
  273. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/tags/filter.test.js +0 -0
  274. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/tags/for.test.js +0 -0
  275. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/tags/if.test.js +0 -0
  276. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/tags/import.test.js +0 -0
  277. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/tags/include.test.js +0 -0
  278. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/tags/macro.test.js +0 -0
  279. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/tags/parent.test.js +0 -0
  280. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/tags/raw.test.js +0 -0
  281. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/tags/set.test.js +0 -0
  282. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/tags/spaceless.test.js +0 -0
  283. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/tags.test.js +0 -0
  284. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/templates.test.js +0 -0
  285. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/variables.test.js +0 -0
  286. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-1.4.2/tests/whitespace.test.js +0 -0
  287. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-client/swig-2.0.0.min.js +0 -0
  288. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/deps/swig-client/swig.js +0 -0
  289. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/dev/index.js +0 -0
  290. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/dev/lib/class.js +0 -0
  291. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/dev/lib/factory.js +0 -0
  292. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/dev/lib/tools.js +0 -0
  293. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/locales/README.md +0 -0
  294. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/locales/currency.json +0 -0
  295. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/locales/dist/language/en.json +0 -0
  296. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/locales/dist/language/fr.json +0 -0
  297. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/locales/dist/region/en.json +0 -0
  298. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/locales/dist/region/fr.json +0 -0
  299. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/locales/index.js +0 -0
  300. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/mime.types +0 -0
  301. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/model/index.js +0 -0
  302. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/model/template/entityFactory.js +0 -0
  303. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/model/template/index.js +0 -0
  304. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/plugins/README.md +0 -0
  305. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/plugins/index.js +0 -0
  306. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/plugins/lib/file/README.md +0 -0
  307. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/plugins/lib/file/build.json +0 -0
  308. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/plugins/lib/file/package.json +0 -0
  309. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/plugins/lib/intl/README.md +0 -0
  310. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/plugins/lib/intl/build.json +0 -0
  311. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/plugins/lib/intl/package.json +0 -0
  312. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/plugins/lib/intl/src/main.js +0 -0
  313. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/plugins/lib/storage/README.md +0 -0
  314. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/plugins/lib/storage/build.json +0 -0
  315. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/plugins/lib/storage/package.json +0 -0
  316. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/plugins/lib/validator/README.md +0 -0
  317. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/plugins/lib/validator/build.json +0 -0
  318. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/plugins/lib/validator/package.json +0 -0
  319. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/plugins/lib/validator/src/form-validator.js +0 -0
  320. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/_gitignore +0 -0
  321. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/boilerplate/bundle/config/app.json +0 -0
  322. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  323. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/boilerplate/bundle/config/routing.json +0 -0
  324. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/boilerplate/bundle/config/settings.json +0 -0
  325. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/boilerplate/bundle/config/templates.json +0 -0
  326. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  327. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  328. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  329. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  330. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/boilerplate/bundle/index.js +0 -0
  331. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  332. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  333. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  334. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  335. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  336. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  337. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/boilerplate/bundle_public/readme.md +0 -0
  338. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  339. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  340. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  341. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  342. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  343. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/command/gina.bat.tpl +0 -0
  344. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/command/gina.tpl +0 -0
  345. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/conf/package.json +0 -0
  346. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/conf/statics.json +0 -0
  347. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/conf/templates.json +0 -0
  348. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/error/client/json/401.json +0 -0
  349. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/error/client/json/403.json +0 -0
  350. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/error/client/json/404.json +0 -0
  351. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/error/server/html/50x.html +0 -0
  352. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/error/server/json/500.json +0 -0
  353. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/error/server/json/503.json +0 -0
  354. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/core/template/extensions/logger/config.json +0 -0
  355. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/helpers/console.js +0 -0
  356. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/helpers/data/LICENSE +0 -0
  357. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/helpers/data/README.md +0 -0
  358. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/helpers/data/package.json +0 -0
  359. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/helpers/data/src/main.js +0 -0
  360. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/helpers/dateFormat.js +0 -0
  361. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/helpers/index.js +0 -0
  362. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/helpers/json/LICENSE +0 -0
  363. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/helpers/json/README.md +0 -0
  364. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/helpers/json/package.json +0 -0
  365. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/helpers/json/src/main.js +0 -0
  366. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/helpers/plugins/README.md +0 -0
  367. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/helpers/plugins/package.json +0 -0
  368. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/helpers/plugins/src/api-error.js +0 -0
  369. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/helpers/plugins/src/main.js +0 -0
  370. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/helpers/task.js +0 -0
  371. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/helpers/text.js +0 -0
  372. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/archiver/README.md +0 -0
  373. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/archiver/build.json +0 -0
  374. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/archiver/package.json +0 -0
  375. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/archiver/src/dep/jszip.min.js +0 -0
  376. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/archiver/src/main.js +0 -0
  377. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cache/README.md +0 -0
  378. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cache/build.json +0 -0
  379. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cache/package.json +0 -0
  380. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/aliases.json +0 -0
  381. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/bundle/build.js +0 -0
  382. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/bundle/copy.js +0 -0
  383. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/bundle/cp.js +0 -0
  384. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/bundle/help.js +0 -0
  385. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/bundle/list.js +0 -0
  386. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/bundle/remove.js +0 -0
  387. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/bundle/rename.js +0 -0
  388. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/bundle/restart.js +0 -0
  389. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/bundle/rm.js +0 -0
  390. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/bundle/status.js +0 -0
  391. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/bundle/stop.js +0 -0
  392. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/cache/stats.js +0 -0
  393. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/env/add.js +0 -0
  394. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/env/get.js +0 -0
  395. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/env/help.js +0 -0
  396. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/env/link-dev.js +0 -0
  397. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/env/list.js +0 -0
  398. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/env/remove.js +0 -0
  399. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/env/rm.js +0 -0
  400. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/env/set.js +0 -0
  401. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/env/unset.js +0 -0
  402. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/env/use.js +0 -0
  403. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/framework/arguments.json +0 -0
  404. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/framework/build.js +0 -0
  405. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/framework/dot.js +0 -0
  406. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/framework/get.js +0 -0
  407. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/framework/help.js +0 -0
  408. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/framework/help.txt +0 -0
  409. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/framework/init.js +0 -0
  410. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/framework/link-node-modules.js +0 -0
  411. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/framework/link.js +0 -0
  412. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/framework/msg.json +0 -0
  413. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/framework/open.js +0 -0
  414. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/framework/restart.js +0 -0
  415. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/framework/set.js +0 -0
  416. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/framework/start.js +0 -0
  417. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/framework/status.js +0 -0
  418. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/framework/stop.js +0 -0
  419. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/framework/tail.js +0 -0
  420. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/framework/update.js +0 -0
  421. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/framework/version.js +0 -0
  422. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/gina-dev.1.md +0 -0
  423. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/gina-framework.1.md +0 -0
  424. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/index.js +0 -0
  425. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/minion/help.js +0 -0
  426. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/minion/help.txt +0 -0
  427. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/msg.json +0 -0
  428. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/port/help.js +0 -0
  429. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/port/list.js +0 -0
  430. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/port/reset.js +0 -0
  431. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/port/set.js +0 -0
  432. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/project/add.js +0 -0
  433. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/project/arguments.json +0 -0
  434. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/project/build.js +0 -0
  435. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/project/help.js +0 -0
  436. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/project/import.js +0 -0
  437. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/project/list.js +0 -0
  438. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/project/move.js +0 -0
  439. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/project/remove.js +0 -0
  440. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/project/rename.js +0 -0
  441. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/project/rm.js +0 -0
  442. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/project/status.js +0 -0
  443. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/protocol/help.js +0 -0
  444. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/protocol/list.js +0 -0
  445. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/protocol/set.js +0 -0
  446. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/scope/add.js +0 -0
  447. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/scope/help.js +0 -0
  448. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/scope/link-local.js +0 -0
  449. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/scope/link-production.js +0 -0
  450. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/scope/list.js +0 -0
  451. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/scope/remove.js +0 -0
  452. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/scope/rm.js +0 -0
  453. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/scope/use.js +0 -0
  454. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cmd/view/add.js +0 -0
  455. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/collection/README.md +0 -0
  456. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/collection/build.json +0 -0
  457. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/collection/package.json +0 -0
  458. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/config.js +0 -0
  459. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cron/README.md +0 -0
  460. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cron/package.json +0 -0
  461. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/cron/src/main.js +0 -0
  462. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/domain/LICENSE +0 -0
  463. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/domain/README.md +0 -0
  464. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/domain/dist/2025-03-14_13-41-20_UTC.dat +0 -0
  465. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/domain/dist/public_suffix_list.dat +0 -0
  466. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/domain/dist/public_suffix_list.dat.br +0 -0
  467. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/domain/dist/public_suffix_list.dat.gz +0 -0
  468. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/domain/package.json +0 -0
  469. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/domain/src/main.js +0 -0
  470. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/generator/index.js +0 -0
  471. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/inherits/LICENSE +0 -0
  472. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/inherits/README.md +0 -0
  473. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/inherits/package.json +0 -0
  474. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/inherits/src/main.js +0 -0
  475. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/logger/README.md +0 -0
  476. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/logger/package.json +0 -0
  477. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/logger/src/containers/default/index.js +0 -0
  478. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/logger/src/containers/file/index.js +0 -0
  479. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  480. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  481. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/logger/src/containers/mq/index.js +0 -0
  482. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/logger/src/containers/mq/listener.js +0 -0
  483. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/logger/src/containers/mq/speaker.js +0 -0
  484. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/logger/src/helper.js +0 -0
  485. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/logger/src/main.js +0 -0
  486. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/math/index.js +0 -0
  487. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/merge/README.md +0 -0
  488. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/merge/package.json +0 -0
  489. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/merge/src/main.js +0 -0
  490. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/model.js +0 -0
  491. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/routing/README.md +0 -0
  492. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/routing/build.json +0 -0
  493. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/routing/package.json +0 -0
  494. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/session-store.js +0 -0
  495. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/shell.js +0 -0
  496. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/state.js +0 -0
  497. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/swig-filters/README.md +0 -0
  498. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/swig-filters/package.json +0 -0
  499. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/url/README.md +0 -0
  500. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/url/index.js +0 -0
  501. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/url/routing.json +0 -0
  502. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/validator.js +0 -0
  503. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/watcher/package.json +0 -0
  504. /package/framework/{v0.2.1-alpha.2 → v0.3.0}/lib/watcher/src/main.js +0 -0
package/CONVENTIONS.md ADDED
@@ -0,0 +1,564 @@
1
+ # Gina — Coding Conventions
2
+
3
+ Observed from the current framework codebase. Each convention includes current practice, consistency estimate, and improvement recommendations.
4
+
5
+ ---
6
+
7
+ ## 1. Variable Declarations
8
+
9
+ **Current practice:** `var` dominates (~90%). `const` appears for top-level `require()` imports in newer files and a few module-level constants. `let` is used almost exclusively in `for` loop counters.
10
+
11
+ ```js
12
+ // dominant pattern — all scopes
13
+ var self = this;
14
+ var local = {};
15
+ var fs = require('fs');
16
+
17
+ // newer files only — top-level imports
18
+ const path = require('path');
19
+ const { EventEmitter } = require('events');
20
+
21
+ // rare — loop counters in recent code
22
+ for (let i = 0, len = arr.length; i < len; ++i) { ... }
23
+ ```
24
+
25
+ **Rules:**
26
+ - `var` for all function-scoped variables in existing code
27
+ - `const` for imports and values that never reassign (new files)
28
+ - `let` for block-scoped temporaries and loop counters (new files)
29
+ - No arrow functions — see §2
30
+
31
+ **Recommendation:**
32
+ Standardise new files on `const` for imports, `let` for locals, `var` only where hoisting is intentionally relied upon. Do not do a mass refactor of existing files — the risk outweighs the gain. Apply the new standard file-by-file as files are touched for other reasons.
33
+
34
+ ---
35
+
36
+ ## 2. Function Definition Style
37
+
38
+ **Current practice:** Named function expressions for private inner functions; `this.method = function()` for public instance methods; named declarations for constructors and top-level utilities. Arrow functions are absent by convention.
39
+
40
+ ```js
41
+ // constructor (top-level declaration)
42
+ function SuperController(options) { ... }
43
+
44
+ // private inner function (expression)
45
+ var init = function() { ... }
46
+ var freeMemory = function(variables, isGlobalModeNeeded) { ... }
47
+
48
+ // public instance method
49
+ this.render = function(userData, displayInspector, errOptions) { ... }
50
+
51
+ // async addition (recent)
52
+ this.store = async function(key, value, ttl) { ... }
53
+ ```
54
+
55
+ **Rules:**
56
+ - No arrow functions `=>` in framework code — not a restriction to lift, but a deliberate choice that avoids `this`-binding ambiguity in the constructor/closure patterns used
57
+ - `async function` is acceptable for new I/O-bound operations
58
+ - Do not convert existing callbacks to `async` without also converting all callers (see §5)
59
+
60
+ **Recommendation:**
61
+ Arrow functions may be introduced carefully in pure utility functions with no `this` reference. Keep the ban on arrow functions inside constructor bodies where `self = this` captures are in use — the risk of confusing `this` contexts is real.
62
+
63
+ ---
64
+
65
+ ## 3. Constructor / Class Patterns
66
+
67
+ **Current practice:** Pre-ES6 constructor functions exclusively. No `class` keyword anywhere. Singleton via static properties. Inheritance via `lib/inherits(Child, Parent)`.
68
+
69
+ ```js
70
+ // Singleton pattern
71
+ function Router(env, scope) {
72
+ var self = this;
73
+ var local = {};
74
+ var init = function() {
75
+ if (typeof(Router.initialized) != 'undefined') return self.getInstance();
76
+ Router.instance = self;
77
+ Router.initialized = true;
78
+ }
79
+ init();
80
+ }
81
+
82
+ // Public instance method
83
+ Router.prototype.getInstance = function() { return Router.instance; }
84
+
85
+ // Inheritance
86
+ Entity = inherits(Entity, EntitySuperClass);
87
+ ```
88
+
89
+ **Rules:**
90
+ - No ES6 `class` syntax — existing code uses pre-ES6 patterns throughout
91
+ - Singletons use `Constructor.initialized` + `Constructor.instance` static flags
92
+ - `var self = this;` is mandatory in all constructors and methods referencing instance state
93
+ - `var local = {};` is the private closure for per-instance or per-request state
94
+ - Static factory methods (e.g., `SuperController.createTestInstance`) are the approved pattern for test instances
95
+
96
+ **Recommendation:**
97
+ ES6 `class` can be introduced for entirely new modules that have no inheritance relationship with existing framework classes. Do not mix `class extends` with `inherits()` — they are incompatible. The singleton `#C1` pattern (#M1 roadmap item) is the primary architectural risk — see architecture docs.
98
+
99
+ ---
100
+
101
+ ## 4. Error Handling
102
+
103
+ **Current practice:** Four patterns coexist across different generations of the codebase.
104
+
105
+ ```js
106
+ // 1. try/catch (dominant in core)
107
+ try {
108
+ var config = new Config().getInstance();
109
+ } catch (configErr) {
110
+ serverInstance.throwError(response, 500, configErr);
111
+ return null;
112
+ }
113
+
114
+ // 2. self.throwError / controller.throwError (HTTP errors)
115
+ self.throwError(local.res, 404, new Error('Not found'));
116
+
117
+ // 3. next(err) (middleware chain)
118
+ return next(err);
119
+
120
+ // 4. error-as-value return (path helpers — anti-pattern)
121
+ var result = pathObj.mkdirSync(); // may return Error, callers rarely check
122
+ ```
123
+
124
+ **Rules:**
125
+ - `try/catch` for all I/O and JSON operations
126
+ - `self.throwError(res, code, err)` for HTTP error responses in controllers
127
+ - `next(err)` for middleware-style propagation
128
+ - **Never** use error-as-value returns in new code — always `throw` or callback with `err`
129
+ - Always null `local.req/res/next` at every error exit point in controllers (memory hygiene)
130
+
131
+ **Recommendation:**
132
+ Audit all `_.prototype.mkdirSync()` call sites (~25) that ignore the return value — this is a silent failure risk documented in security.md. New code must either `throw` on error or use the callback/Promise pattern. Introduce a lint rule to catch unchecked return values from `mkdirSync`.
133
+
134
+ ---
135
+
136
+ ## 5. Async Patterns
137
+
138
+ **Current practice:** Three generations coexist. Migration from callbacks → EventEmitter → Promises is in progress.
139
+
140
+ ```js
141
+ // Gen 1: error-first callbacks (original, still used in cmd handlers)
142
+ self.checkIfMain(function(err) {
143
+ if (err) return done(err);
144
+ done();
145
+ });
146
+
147
+ // Gen 2: EventEmitter .onComplete() (entity model layer, backward-compat bridge)
148
+ entity.findById(id).onComplete(function(err, data) { ... });
149
+
150
+ // Gen 3: native Promise + .onComplete() bridge (added 2026-03-20)
151
+ var _promise = new Promise(function(resolve, reject) {
152
+ entity.once('user#findById', function(err, result) {
153
+ if (err) reject(err); else resolve(result);
154
+ });
155
+ });
156
+ _promise.onComplete = function(cb) { _promise.then(cb.bind(null,null)).catch(cb); return _promise; };
157
+ return _promise;
158
+ ```
159
+
160
+ **Rules:**
161
+ - `.onComplete(cb)` is the public contract for all entity methods — never break it
162
+ - `.once()` not `.on()` for entity event listeners — mandatory (documented in architecture)
163
+ - `entity.removeAllListeners([eventName])` before every `.once()` registration
164
+ - New non-entity async code may use `async/await` directly
165
+ - Do not `await` inside a constructor — use lazy init patterns instead
166
+
167
+ **Recommendation:**
168
+ Complete the migration by adding `onCompleteCall(emitter)` Promise adapter (#M4) so controllers can use `async/await` without touching entity internals. Avoid creating any new callback-only APIs — all new async APIs should return Promises with an optional `.onComplete()` bridge for backward compatibility.
169
+
170
+ ---
171
+
172
+ ## 6. Module System
173
+
174
+ **Current practice:** CommonJS exclusively. No ESM. Extensive use of global helpers injected by `gna.js` without explicit `require()`.
175
+
176
+ ```js
177
+ // Standard CJS
178
+ var fs = require('fs');
179
+ module.exports = SuperController;
180
+
181
+ // Dev-mode cache-busting pattern
182
+ var _require = function(path) {
183
+ if (isCacheless) { delete require.cache[require.resolve(path)]; }
184
+ return require(path);
185
+ }
186
+
187
+ // Globals (no require needed — injected by gna.js)
188
+ _(path, true) // PathObject constructor
189
+ getContext('gina') // global context read
190
+ setEnvVar('KEY', val) // env var write
191
+ requireJSON(path) // cached JSON read
192
+ ```
193
+
194
+ **Rules:**
195
+ - No ESM `import`/`export` in framework files (roadmap item #M10 for Q1 2027)
196
+ - `_require()` only for hot-reload delegate files; use plain `require()` for singletons (logger, cache)
197
+ - Do not add new global injections — use explicit `require()` in new files
198
+ - Circular dependencies must be resolved at the module level, not papered over with `require.cache` fallbacks
199
+
200
+ **Recommendation:**
201
+ Document all globals injected by `gna.js` with `@global` JSDoc so IDEs can discover them. Long-term, migrate toward explicit exports (#M8) so static analysis tools can trace the dependency graph. The `utils/helper.js ↔ lib/logger` circular dependency is a known risk — resolve before the async migration (#M4/M5).
202
+
203
+ ---
204
+
205
+ ## 7. Naming Conventions
206
+
207
+ **Current practice:**
208
+
209
+ | Element | Convention | Example |
210
+ | --- | --- | --- |
211
+ | Files (multi-word) | dot-separated namespacing | `controller.render-json.js`, `server.isaac.js` |
212
+ | Files (versioned) | `.vN` suffix | `connector.v4.js`, `session-store.v2.js` |
213
+ | Files (kebab) | kebab-case | `link-dev.js`, `api-error.js` |
214
+ | Files (test) | numeric prefix + snake | `01-init_new_project.js` |
215
+ | Constructors | PascalCase | `SuperController`, `EntitySuper`, `CmdHelper` |
216
+ | Variables | camelCase | `envIsDev`, `scopeIsLocal`, `isLoadedThroughCLI` |
217
+ | Private/internal | `_` prefix | `_isDev`, `_options`, `_scope`, `_conn`, `_promise` |
218
+ | Instance capture | always `self` | `var self = this;` |
219
+ | Private closure | always `local` | `var local = {};` |
220
+ | EventEmitter instance | `e` | `var e = new EventEmitter();` |
221
+ | Env vars / globals | SCREAMING_SNAKE | `GINA_DIR`, `GINA_HOMEDIR`, `NODE_SCOPE` |
222
+ | Config keys (settings) | snake_case | `dev_env`, `def_scope`, `log_level` |
223
+ | Config keys (routing) | camelCase | `startingApp`, `projectName`, `bundlesConfiguration` |
224
+
225
+ **Rules:**
226
+ - `self` and `local` are reserved names — do not use them for other purposes inside constructors
227
+ - Underscore prefix means "not part of the public API" — never call `_prefixed` methods from user bundles
228
+ - Settings/home dir config: `snake_case`. Routing/server config: `camelCase`. Do not mix within one config file.
229
+ - **Names must be human-readable:** functions, methods, classes, and variables must use full words that describe intent. Single-letter names (`x`, `n`, `fn`) are only acceptable as loop counters (`i`, `j`, `k`, `len`) and in arrow-function shorthands where context is unambiguous. Abbreviations are allowed only when universally understood in the domain (`req`, `res`, `err`, `env`, `cfg`, `cb`). Never use names like `tmp2`, `foo`, `data2`, or `handler1` — name the thing by what it actually does or represents.
230
+
231
+ **Recommendation:**
232
+ Standardise config file field naming to `camelCase` across all new config files (`snake_case` is a legacy of early framework development). Document the reserved words (`self`, `local`, `e`) in this file so contributors know not to repurpose them.
233
+
234
+ ---
235
+
236
+ ## 8. Comments and JSDoc
237
+
238
+ **Current practice:** JSDoc on constructors and public methods in recently refactored files. Inline comments use `//` with a `TODO -` format. Ticket references use `#` prefix.
239
+
240
+ ```js
241
+ // Copyright block (most files)
242
+ /*
243
+ * This file is part of the gina package.
244
+ * Copyright (c) 2009-2026 Rhinostone <contact@gina.io>
245
+ * ...
246
+ */
247
+
248
+ // JSDoc (recent files)
249
+ /**
250
+ * @class SuperController
251
+ * @constructor
252
+ * @this {SuperController}
253
+ */
254
+
255
+ // Inline markers
256
+ // TODO - handle windows case
257
+ // N.B.: must be called before setOptions()
258
+ // replaced: old pattern — reason (#ticket)
259
+ // BO - section description
260
+ // EO - section description
261
+ ```
262
+
263
+ **Rules:**
264
+ - **Every time code is written or modified, add or update JSDoc on the affected functions.** This is not a deferred task — JSDoc is part of the definition of done for any code change. New functions must ship with JSDoc; modified functions must have their JSDoc updated to reflect the change.
265
+ - Every constructor must have `@class`, `@constructor`, `@this` JSDoc
266
+ - Every public method must have at minimum `@param`, `@returns`, and at least one `@example`
267
+ - Private/inner functions (inside IIFEs or closures) must have `@inner` and `@private`
268
+ - Use `@typedef` for reusable data shapes at the top of the file
269
+ - Use `@constant` for module-level constants with a brief description of purpose
270
+ - State variables should have `@type` annotations describing their role
271
+ - `TODO - ` (with dash and space) is the standard TODO format
272
+ - Preserve replaced code as inline comments with `// replaced: <what> — <why>` when the change is non-obvious
273
+ - `"use strict";` should be present in all new files
274
+ - **Never use `*/` inside a JSDoc comment** (e.g. in code examples showing block comments) — it prematurely closes the comment block and causes syntax errors. Reword to avoid it.
275
+
276
+ **Recommendation:**
277
+ Add `"use strict";` to all new files immediately (no mass refactor of old files). Add ESLint or JSHint config (`.jshintrc` / `.eslintrc`) to enforce it on new code. The JSDoc backfill is tracked as #M9 in the roadmap.
278
+
279
+ ---
280
+
281
+ ## 9. EventEmitter Patterns
282
+
283
+ **Current practice:** Well-established and consistently applied.
284
+
285
+ ```js
286
+ // Entity trigger naming: <entity>#<method>
287
+ entity.removeAllListeners(['user#findById']);
288
+ entity.once('user#findById', function(err, result) {
289
+ if (err) reject(err); else resolve(result);
290
+ });
291
+
292
+ // Framework lifecycle events: descriptive strings
293
+ emitter.emit('server#started', server, app);
294
+ emitter.once('config#complete', function(err, config) { ... });
295
+
296
+ // Listener cap
297
+ var ENTITY_MAX_LISTENERS = 100;
298
+ self.setMaxListeners(Math.min(self._maxListeners + 1, ENTITY_MAX_LISTENERS));
299
+ ```
300
+
301
+ **Rules:**
302
+ - `.once()` not `.on()` for all entity trigger listeners — mandatory
303
+ - `removeAllListeners([name])` before every `.once()` registration
304
+ - `ENTITY_MAX_LISTENERS = 100` — never exceed without understanding the implication
305
+ - Framework lifecycle events use `#` separator: `component#event`
306
+ - Entity triggers use `#` separator: `entityName#methodName`
307
+ - Numbered variant (`entity#method1`) exists for loop/recursive emit safety — avoid in new code
308
+
309
+ **Recommendation:**
310
+ This is the best-maintained convention in the codebase. The only risk is `_arguments` buffer poisoning under concurrent load (#M2) — tracked in the roadmap.
311
+
312
+ ---
313
+
314
+ ## 10. Path Handling
315
+
316
+ **Current practice:** The `_()` global is the primary tool for path normalization.
317
+
318
+ ```js
319
+ // String path (most common)
320
+ var filename = _(opt.path + '/' + bundle + '/data' + url + '.json', true);
321
+
322
+ // PathObject (for existence checks, mkdir, cp, mv)
323
+ var obj = new _(self.opt.homedir + '/main.json', true);
324
+ if (obj.existsSync()) { ... }
325
+
326
+ // Node path module — used when `_()` is insufficient
327
+ const nodePath = require('path'); // renamed to avoid collision with local `path` var
328
+ nodePath.resolve(root, userPath);
329
+ ```
330
+
331
+ **Rules:**
332
+ - Always use `_()` for framework-internal path construction
333
+ - Import `path` as `nodePath` in files where a local variable named `path` already exists
334
+ - Use `nodePath.resolve()` for security-sensitive path validation (CVE-2023-25345 pattern)
335
+ - Never concatenate user-supplied strings into file paths without a `nodePath.resolve()` boundary check
336
+
337
+ **Recommendation:**
338
+ Replace string concatenation paths with `nodePath.join()` in new code — more readable and avoids double-slash issues. The `_()` helper should remain the primary API but should internally use `path.join` instead of raw concatenation.
339
+
340
+ ---
341
+
342
+ ## 11. Logging
343
+
344
+ **Current practice:** Consistent and well-standardised.
345
+
346
+ ```js
347
+ var console = lib.logger; // shadows Node's console — present in virtually every file
348
+
349
+ console.log('message'); // info-level
350
+ console.info('message'); // info-level
351
+ console.warn('message'); // warn-level
352
+ console.error('message'); // error-level
353
+ console.debug('message'); // debug-level (suppressed unless GINA_LOG_LEVEL=debug)
354
+ console.emerg('message'); // fatal/emergency
355
+ ```
356
+
357
+ **Rules:**
358
+ - Always shadow `console` with `lib.logger` — never use `process.stdout.write()` directly in bundle code
359
+ - `console.debug()` for developer-only tracing (filtered by log level)
360
+ - `console.emerg()` for conditions that require immediate attention
361
+ - Bootstrap code (before logger is ready) may use `fs.writeSync(2, msg)` directly
362
+
363
+ **Recommendation:**
364
+ Introduce structured logging (#M12) as a future migration, not a replacement — the `%d [%s][%a] %m` template format will need to produce `{ ts, level, group, msg }` JSON when `GINA_LOG_STDOUT=true` is set.
365
+
366
+ ---
367
+
368
+ ## 12. Test Conventions
369
+
370
+ **Current practice:** `nodeunit` framework. Tests use `exports['test name'] = function(test) {}`. Files are numerically prefixed and named with `snake_case`.
371
+
372
+ ```js
373
+ // Test structure
374
+ exports['[ find limit ] Hotel WHERE country === "France"'] = function(test) {
375
+ test.equal(actual, expected, 'message');
376
+ test.deepEqual(obj1, obj2);
377
+ test.done(); // mandatory — hangs if omitted
378
+ }
379
+
380
+ // Setup
381
+ exports.setUp = function(done) {
382
+ if (initialized) return done();
383
+ initialized = true;
384
+ // setup code
385
+ done();
386
+ }
387
+ ```
388
+
389
+ **Rules:**
390
+ - `test.done()` is mandatory at every exit path
391
+ - Test names use `[ category ] description` format for grouping
392
+ - Setup guards (`if (initialized) return done()`) prevent re-execution across test suites
393
+ - New unit tests go in `test/core/` with numeric prefix for ordering
394
+
395
+ **Recommendation:**
396
+ Migrate to `node:test` (built-in, Node 18+) for all new test files — `nodeunit` is unmaintained. Do not convert existing tests; add `node:test` tests alongside. The HTTP/2 client mock harness (#UT1) should use `node:test + node:assert` natively.
397
+
398
+ ---
399
+
400
+ ## 13. Git Commit Style
401
+
402
+ **Current practice:** Short imperative or gerund subject lines. Ticket references in subject or body. No AI references. No co-author footers.
403
+
404
+ ```
405
+ Fixed ReferenceError: defIsoShort/defDate used across function boundary in init.js
406
+ Added SuperController.createTestInstance for controller unit testing (#R4)
407
+ Removed stale root core/ directory left over from pre-versioned framework layout
408
+ ```
409
+
410
+ **Rules:**
411
+ - No AI tool references anywhere in commit messages or comments
412
+ - No `Co-Authored-By:` footers
413
+ - Ticket references: `(#ID)` at end of subject line, or inline in body
414
+ - Subject line: max ~72 characters
415
+ - Body: explain *why*, not *what* (the diff shows what)
416
+
417
+ ---
418
+
419
+ ## 14. File Headers
420
+
421
+ **Current practice:** Copyright block present in most files. `"use strict"` in ~40% of files. `@module` JSDoc in recently refactored files.
422
+
423
+ ```js
424
+ /*
425
+ * This file is part of the gina package.
426
+ * Copyright (c) 2009-2026 Rhinostone <contact@gina.io>
427
+ *
428
+ * For the full copyright and license information, please view the LICENSE
429
+ * file that was distributed with this source code.
430
+ */
431
+ 'use strict';
432
+
433
+ /**
434
+ * @module gina/core/config
435
+ * @class Config
436
+ * @constructor
437
+ */
438
+ ```
439
+
440
+ **Rules:**
441
+ - Copyright block is mandatory in all framework files
442
+ - `"use strict";` is required in all new files
443
+ - `@module` is required in all new files
444
+ - `@class` + `@constructor` on every constructor function
445
+
446
+ ---
447
+
448
+ ## 15. Version & Home Directory Schema
449
+
450
+ **Current practice:** Version strings use `0.MINOR.PATCH-STAGE.N` format (e.g., `0.1.8-alpha.1`). The "short version" is the first two components (`0.1`), used as the namespace key in `~/.gina/main.json` and the `~/.gina/0.1/` directory name.
451
+
452
+ ```js
453
+ // Short version derivation in init.js
454
+ var shortVersion = version.split('.');
455
+ shortVersion.splice(2);
456
+ shortVersion = shortVersion.join('.'); // "0.1.8-alpha.1" → "0.1"
457
+ ```
458
+
459
+ **Rules:**
460
+ - All `main.json` config keys are namespaced by short version: `main['def_culture']['0.1']`
461
+ - Incrementing the minor version (`0.1.x → 0.1.(x+1)`) keeps short version `"0.1"` — no migration
462
+ - Incrementing the middle version (`0.1.x → 0.2.0`) changes short version to `"0.2"` — **requires migration script**
463
+ - Patch releases within a minor version use `-pN` suffix: `0.1.8-p1`, `0.1.8-p2`
464
+
465
+ **Recommendation:**
466
+ All planned releases should stay in the `0.1.x` series (see roadmap) to avoid the home directory migration until a dedicated `gina framework:migrate` command is built. When a `0.2.0` release is eventually warranted, the migration script must: (1) copy all `"0.1"` keys to `"0.2"` in `main.json`, (2) create `~/.gina/0.2/` from `~/.gina/0.1/`, (3) update `projects.json` entries.
467
+
468
+ ---
469
+
470
+ ## 16. `whisper()` Substitution — `${variable}` Syntax and `reps` Completeness
471
+
472
+ **Background:** `helpers/context.js::whisper(dictionary, replaceable)` performs a single-pass `${variable}` substitution on JSON config objects. It was migrated from `{variable}` syntax to `${variable}` syntax.
473
+
474
+ **Critical rule — single-pass, no self-resolution:**
475
+ `whisper()` does **not** do multi-pass resolution. If `env.json` defines `bundlesPath` as `"${homedir}/bundles"`, and `bundlePath` as `"${bundlesPath}/${bundle}"`, whisper **cannot** derive `bundlePath` from `homedir` alone — both `homedir` AND `bundlesPath` must be in the `reps` dictionary at call time.
476
+
477
+ **Rule for every `getCoreEnv` / `whisper()` call site:**
478
+ > Pre-compute all derived values before building `reps`. The dictionary must contain every `${placeholder}` key that appears anywhere in the template being substituted, including keys whose values are themselves derived from other keys.
479
+
480
+ **Required keys for `lib/cmd/helper.js::getCoreEnv`** (covers `core/template/conf/env.json`):
481
+
482
+ | Key | Source |
483
+ | --- | --- |
484
+ | `frameworkDir` | `GINA_FRAMEWORK_DIR` |
485
+ | `executionPath` | `cmd.projects[name].path` |
486
+ | `projectPath` | `cmd.projects[name].path` |
487
+ | `projectName` | `cmd.projectName` |
488
+ | `homedir` | `cmd.projects[name].homedir` or `os.homedir() + '/.' + projectName` |
489
+ | `bundlesPath` | `cmd.projects[name].bundles_path` or `homedir + '/bundles'` |
490
+ | `cachePath` | `homedir + '/cache'` |
491
+ | `projectVersion` | `manifest.version` from `projectPath/manifest.json` |
492
+ | `projectVersionMajor` | `manifest.version.split('.')[0]` |
493
+ | `env` | `cmd.projects[name].def_env` |
494
+ | `bundle` | bundle argument |
495
+ | `version` | `GINA_VERSION` |
496
+
497
+ **Error message format:** When a key is missing, `context.js` logs `[Whisper Error]: The key ${varName} was not found`. If you see `{varName}` (without `$`) in logs, the error message itself has a formatting bug — report it and fix `context.js` line 743.
498
+
499
+ **Syntax migration note:** The old `{variable}` (without `$`) placeholder syntax is no longer supported as of a breaking change in `0.1.8`. Any template file still using `{variable}` will silently pass through substitution without replacement. Always use `${variable}`.
500
+
501
+ ---
502
+
503
+ ## Known Anti-Patterns
504
+
505
+ | Anti-pattern | Location | Risk | Roadmap item |
506
+ | --- | --- | --- | --- |
507
+ | Shared `local` closure on singleton controller | `controller.js` | Data corruption under concurrency | #M1 |
508
+ | `_arguments` buffer persists across concurrent calls | `entity.js` | Stale null results | #M2 |
509
+ | Error-as-value from `_.prototype.mkdirSync()` | `helpers/path.js`, ~25 call sites | Silent failures | — |
510
+ | Implicit globals injected by `gna.js` | Everywhere | Not statically analysable | #M8 |
511
+ | `typeof(x)` with parentheses | Everywhere | Style inconsistency | — |
512
+ | `"use strict"` absent from ~60% of files | Everywhere | Sloppy mode bugs | #M9 |
513
+ | `eval()` in install script | `script/pre_install.js:222` | Low-risk but code smell | — |
514
+ | Circular dep `utils/helper ↔ lib/logger` | `lib/index.js:32` | Import order fragility | — |
515
+ | Commented-out code preserved in large blocks | `context.js`, `controller.render-json.js` | Dead code maintenance burden | — |
516
+ | Incomplete `reps` dict in `getCoreEnv` | `lib/cmd/helper.js` | whisper silently leaves `${placeholder}` unresolved | — |
517
+
518
+ ---
519
+
520
+ ## Unit Tests — `node:test` Async Patterns
521
+
522
+ **Framework:** `node:test` (built-in, used throughout `test/`)
523
+
524
+ ### Async tests must return a Promise or use `async function`
525
+
526
+ `node:test` does **not** support the Mocha-style `done` callback. If you write:
527
+
528
+ ```js
529
+ it('name', function(_, done) {
530
+ somePromise.then(function(val) {
531
+ assert.equal(val, 'expected');
532
+ done(); // ← done is undefined — this throws, but AFTER the test passes
533
+ });
534
+ // function returns undefined → test is marked passing immediately
535
+ });
536
+ ```
537
+
538
+ The test appears to pass without executing the assertion. The `.then()` callback runs asynchronously after `node:test` has already closed the test. The `done()` call throws silently. **This is a silent false positive.**
539
+
540
+ **Correct patterns:**
541
+
542
+ ```js
543
+ // Option A — async function (preferred)
544
+ it('name', async function() {
545
+ var val = await somePromise;
546
+ assert.equal(val, 'expected');
547
+ });
548
+
549
+ // Option B — return the Promise
550
+ it('name', function() {
551
+ return somePromise.then(function(val) {
552
+ assert.equal(val, 'expected');
553
+ });
554
+ });
555
+
556
+ // Option C — assert.rejects for rejection tests
557
+ it('name', async function() {
558
+ await assert.rejects(somePromise, expectedError);
559
+ });
560
+ ```
561
+
562
+ **Rule**
563
+
564
+ > Every async `it()` block must either be declared `async` or explicitly `return` a Promise. Any test that calls an async API without doing either will silently pass without testing anything.