gina 0.3.1 → 0.3.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 (501) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/CONVENTIONS.md +42 -0
  3. package/README.md +8 -6
  4. package/ROADMAP.md +5 -2
  5. package/bin/cli +1 -0
  6. package/bin/gina +4 -0
  7. package/framework/v0.3.2/VERSION +1 -0
  8. package/framework/v0.3.2/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  9. package/framework/{v0.3.1 → v0.3.2}/core/asset/plugin/dist/vendor/gina/inspector/index.html +4 -0
  10. package/framework/{v0.3.1 → v0.3.2}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +160 -9
  11. package/framework/{v0.3.1 → v0.3.2}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +250 -7
  12. package/framework/v0.3.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js +532 -0
  13. package/framework/v0.3.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  14. package/framework/v0.3.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  15. package/framework/v0.3.2/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +8 -0
  16. package/framework/v0.3.2/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  17. package/framework/v0.3.2/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  18. package/framework/{v0.3.1 → v0.3.2}/core/connectors/couchbase/index.js +33 -13
  19. package/framework/{v0.3.1 → v0.3.2}/core/controller/controller.js +20 -1
  20. package/framework/{v0.3.1 → v0.3.2}/core/controller/controller.render-json.js +60 -14
  21. package/framework/v0.3.2/core/deps/swig-1.4.2/dist/swig.min.js +7 -0
  22. package/framework/{v0.3.1 → v0.3.2}/core/gna.js +35 -1
  23. package/framework/{v0.3.1 → v0.3.2}/core/server.isaac.js +30 -8
  24. package/framework/{v0.3.1 → v0.3.2}/core/server.js +50 -9
  25. package/framework/{v0.3.1 → v0.3.2}/helpers/context.js +1 -0
  26. package/framework/{v0.3.1 → v0.3.2}/lib/cmd/bundle/add.js +0 -1
  27. package/framework/{v0.3.1 → v0.3.2}/lib/cmd/bundle/start.js +11 -13
  28. package/framework/{v0.3.1 → v0.3.2}/lib/cmd/framework/restart.js +10 -1
  29. package/framework/v0.3.2/lib/cmd/inspector/help.js +48 -0
  30. package/framework/v0.3.2/lib/cmd/inspector/help.txt +28 -0
  31. package/framework/v0.3.2/lib/cmd/inspector/open.js +510 -0
  32. package/framework/{v0.3.1 → v0.3.2}/lib/index.js +1 -0
  33. package/framework/{v0.3.1 → v0.3.2}/lib/model.js +27 -3
  34. package/llms.txt +6 -1
  35. package/package.json +101 -101
  36. package/schema/connectors.json +99 -12
  37. package/schema/routing.json +93 -7
  38. package/schema/watchers.json +29 -0
  39. package/script/post_install.js +5 -1
  40. package/framework/v0.3.1/VERSION +0 -1
  41. package/framework/v0.3.1/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -21544
  42. package/framework/v0.3.1/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  43. package/framework/v0.3.1/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  44. package/framework/v0.3.1/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -286
  45. package/framework/v0.3.1/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  46. package/framework/v0.3.1/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  47. /package/framework/{v0.3.1 → v0.3.2}/AUTHORS +0 -0
  48. /package/framework/{v0.3.1 → v0.3.2}/LICENSE +0 -0
  49. /package/framework/{v0.3.1 → v0.3.2}/core/asset/html/nolayout.html +0 -0
  50. /package/framework/{v0.3.1 → v0.3.2}/core/asset/html/static.html +0 -0
  51. /package/framework/{v0.3.1 → v0.3.2}/core/asset/img/android-chrome-192x192.png +0 -0
  52. /package/framework/{v0.3.1 → v0.3.2}/core/asset/img/android-chrome-512x512.png +0 -0
  53. /package/framework/{v0.3.1 → v0.3.2}/core/asset/img/apple-touch-icon.png +0 -0
  54. /package/framework/{v0.3.1 → v0.3.2}/core/asset/img/favicon-16x16.png +0 -0
  55. /package/framework/{v0.3.1 → v0.3.2}/core/asset/img/favicon-32x32.png +0 -0
  56. /package/framework/{v0.3.1 → v0.3.2}/core/asset/img/favicon.ico +0 -0
  57. /package/framework/{v0.3.1 → v0.3.2}/core/asset/plugin/README.md +0 -0
  58. /package/framework/{v0.3.1 → v0.3.2}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  59. /package/framework/{v0.3.1 → v0.3.2}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  60. /package/framework/{v0.3.1 → v0.3.2}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  61. /package/framework/{v0.3.1 → v0.3.2}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  62. /package/framework/{v0.3.1 → v0.3.2}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  63. /package/framework/{v0.3.1 → v0.3.2}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  64. /package/framework/{v0.3.1 → v0.3.2}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
  65. /package/framework/{v0.3.1 → v0.3.2}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  66. /package/framework/{v0.3.1 → v0.3.2}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  67. /package/framework/{v0.3.1 → v0.3.2}/core/asset/plugin/dist/vendor/gina/html/toolbar.html +0 -0
  68. /package/framework/{v0.3.1 → v0.3.2}/core/asset/plugin/dist/vendor/gina/html/toolbar.html.br +0 -0
  69. /package/framework/{v0.3.1 → v0.3.2}/core/asset/plugin/dist/vendor/gina/html/toolbar.html.gz +0 -0
  70. /package/framework/{v0.3.1 → v0.3.2}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  71. /package/framework/{v0.3.1 → v0.3.2}/core/asset/plugin/dist/vendor/gina/js/gina.js +0 -0
  72. /package/framework/{v0.3.1 → v0.3.2}/core/config.js +0 -0
  73. /package/framework/{v0.3.1 → v0.3.2}/core/connectors/ai/index.js +0 -0
  74. /package/framework/{v0.3.1 → v0.3.2}/core/connectors/ai/lib/connector.js +0 -0
  75. /package/framework/{v0.3.1 → v0.3.2}/core/connectors/couchbase/lib/connector.js +0 -0
  76. /package/framework/{v0.3.1 → v0.3.2}/core/connectors/couchbase/lib/connector.v2.js +0 -0
  77. /package/framework/{v0.3.1 → v0.3.2}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  78. /package/framework/{v0.3.1 → v0.3.2}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  79. /package/framework/{v0.3.1 → v0.3.2}/core/connectors/couchbase/lib/n1ql.js +0 -0
  80. /package/framework/{v0.3.1 → v0.3.2}/core/connectors/couchbase/lib/session-store.js +0 -0
  81. /package/framework/{v0.3.1 → v0.3.2}/core/connectors/couchbase/lib/session-store.v2.js +0 -0
  82. /package/framework/{v0.3.1 → v0.3.2}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  83. /package/framework/{v0.3.1 → v0.3.2}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  84. /package/framework/{v0.3.1 → v0.3.2}/core/connectors/mysql/index.js +0 -0
  85. /package/framework/{v0.3.1 → v0.3.2}/core/connectors/mysql/lib/connector.js +0 -0
  86. /package/framework/{v0.3.1 → v0.3.2}/core/connectors/postgresql/index.js +0 -0
  87. /package/framework/{v0.3.1 → v0.3.2}/core/connectors/postgresql/lib/connector.js +0 -0
  88. /package/framework/{v0.3.1 → v0.3.2}/core/connectors/redis/index.js +0 -0
  89. /package/framework/{v0.3.1 → v0.3.2}/core/connectors/redis/lib/session-store.js +0 -0
  90. /package/framework/{v0.3.1 → v0.3.2}/core/connectors/sql-parser.js +0 -0
  91. /package/framework/{v0.3.1 → v0.3.2}/core/connectors/sqlite/index.js +0 -0
  92. /package/framework/{v0.3.1 → v0.3.2}/core/connectors/sqlite/lib/connector.js +0 -0
  93. /package/framework/{v0.3.1 → v0.3.2}/core/connectors/sqlite/lib/session-store.js +0 -0
  94. /package/framework/{v0.3.1 → v0.3.2}/core/content.encoding +0 -0
  95. /package/framework/{v0.3.1 → v0.3.2}/core/controller/controller.framework.js +0 -0
  96. /package/framework/{v0.3.1 → v0.3.2}/core/controller/controller.render-stream.js +0 -0
  97. /package/framework/{v0.3.1 → v0.3.2}/core/controller/controller.render-swig.js +0 -0
  98. /package/framework/{v0.3.1 → v0.3.2}/core/controller/controller.render-v1.js +0 -0
  99. /package/framework/{v0.3.1 → v0.3.2}/core/controller/index.js +0 -0
  100. /package/framework/{v0.3.1 → v0.3.2}/core/deps/busboy-1.6.0/LICENSE +0 -0
  101. /package/framework/{v0.3.1 → v0.3.2}/core/deps/busboy-1.6.0/README.md +0 -0
  102. /package/framework/{v0.3.1 → v0.3.2}/core/deps/busboy-1.6.0/lib/index.js +0 -0
  103. /package/framework/{v0.3.1 → v0.3.2}/core/deps/busboy-1.6.0/lib/types/multipart.js +0 -0
  104. /package/framework/{v0.3.1 → v0.3.2}/core/deps/busboy-1.6.0/lib/types/urlencoded.js +0 -0
  105. /package/framework/{v0.3.1 → v0.3.2}/core/deps/busboy-1.6.0/lib/utils.js +0 -0
  106. /package/framework/{v0.3.1 → v0.3.2}/core/deps/busboy-1.6.0/package.json +0 -0
  107. /package/framework/{v0.3.1 → v0.3.2}/core/deps/optimist-0.6.1/LICENSE +0 -0
  108. /package/framework/{v0.3.1 → v0.3.2}/core/deps/optimist-0.6.1/index.js +0 -0
  109. /package/framework/{v0.3.1 → v0.3.2}/core/deps/optimist-0.6.1/package.json +0 -0
  110. /package/framework/{v0.3.1 → v0.3.2}/core/deps/optimist-0.6.1/readme.markdown +0 -0
  111. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/CONTRIBUTING.md +0 -0
  112. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/HISTORY.md +0 -0
  113. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/LICENSE +0 -0
  114. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/Makefile +0 -0
  115. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/README.md +0 -0
  116. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/bin/swig.js +0 -0
  117. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/browser/comments.js +0 -0
  118. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/browser/index.js +0 -0
  119. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/docs/docs/api.html +0 -0
  120. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/docs/docs/browser.html +0 -0
  121. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/docs/docs/cli.html +0 -0
  122. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/docs/docs/extending.html +0 -0
  123. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/docs/docs/filters.html +0 -0
  124. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/docs/docs/includes/TYPES.html +0 -0
  125. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/docs/docs/includes/macros.html +0 -0
  126. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/docs/docs/index.html +0 -0
  127. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/docs/docs/layout.html +0 -0
  128. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/docs/docs/loaders.html +0 -0
  129. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/docs/docs/previous.html +0 -0
  130. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/docs/docs/tags.html +0 -0
  131. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/docs/docs.json +0 -0
  132. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/docs/index.html +0 -0
  133. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/docs/index.json +0 -0
  134. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/docs/js/lib/rainbow.min.js +0 -0
  135. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/docs/js/master.js +0 -0
  136. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/docs/layouts/html5.html +0 -0
  137. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/docs/layouts/master.html +0 -0
  138. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/docs/less/button.less +0 -0
  139. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/docs/less/fork.less +0 -0
  140. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/docs/less/header.less +0 -0
  141. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/docs/less/layout.less +0 -0
  142. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/docs/less/mixins.less +0 -0
  143. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/docs/less/rainbow.less +0 -0
  144. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/docs/less/reset.less +0 -0
  145. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/docs/less/sidenav.less +0 -0
  146. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/docs/less/swig.less +0 -0
  147. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/docs/less/variables.less +0 -0
  148. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/index.js +0 -0
  149. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/lib/dateformatter.js +0 -0
  150. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/lib/filters.js +0 -0
  151. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/lib/lexer.js +0 -0
  152. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/lib/loaders/filesystem.js +0 -0
  153. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/lib/loaders/index.js +0 -0
  154. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/lib/loaders/memory.js +0 -0
  155. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/lib/parser.js +0 -0
  156. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/lib/swig.js +0 -0
  157. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/lib/tags/autoescape.js +0 -0
  158. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/lib/tags/block.js +0 -0
  159. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/lib/tags/else.js +0 -0
  160. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/lib/tags/elseif.js +0 -0
  161. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/lib/tags/extends.js +0 -0
  162. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/lib/tags/filter.js +0 -0
  163. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/lib/tags/for.js +0 -0
  164. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/lib/tags/if.js +0 -0
  165. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/lib/tags/import.js +0 -0
  166. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/lib/tags/include.js +0 -0
  167. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/lib/tags/index.js +0 -0
  168. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/lib/tags/macro.js +0 -0
  169. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/lib/tags/parent.js +0 -0
  170. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/lib/tags/raw.js +0 -0
  171. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/lib/tags/set.js +0 -0
  172. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/lib/tags/spaceless.js +0 -0
  173. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/lib/utils.js +0 -0
  174. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/package.json +0 -0
  175. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/scripts/config-lint.js +0 -0
  176. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/scripts/githooks/post-merge +0 -0
  177. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/scripts/githooks/pre-commit +0 -0
  178. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/basic.test.js +0 -0
  179. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/bin/bin.filters.js +0 -0
  180. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/bin/bin.locals.js +0 -0
  181. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/bin/bin.locals.json +0 -0
  182. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/bin/bin.tags.js +0 -0
  183. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/bin/bin.test.js +0 -0
  184. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/bin/custom_filter.bin.html +0 -0
  185. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/bin/custom_tag.bin.html +0 -0
  186. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/bin/custom_tagControls.bin.html +0 -0
  187. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/bin/custom_varControls.bin.html +0 -0
  188. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/bin/options.js +0 -0
  189. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/extends_1.expectation.html +0 -0
  190. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/extends_1.test.html +0 -0
  191. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/extends_2.expectation.html +0 -0
  192. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/extends_2.test.html +0 -0
  193. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/extends_base.html +0 -0
  194. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/extends_layouts/extends_4.base.html +0 -0
  195. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/extends_layouts/extends_4.middle.html +0 -0
  196. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/extends_layouts/extends_bare.html +0 -0
  197. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/extends_layouts/extends_base.html +0 -0
  198. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/extends_layouts/extends_include.html +0 -0
  199. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/extends_layouts/extends_real_base.html +0 -0
  200. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/extends_set.expectation.html +0 -0
  201. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/extends_set.test.html +0 -0
  202. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/extends_tests/extends_3.expectation.html +0 -0
  203. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/extends_tests/extends_3.test.html +0 -0
  204. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/extends_tests/extends_4.expectation.html +0 -0
  205. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/extends_tests/extends_4.test.html +0 -0
  206. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/import.expectation.html +0 -0
  207. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/import.test.html +0 -0
  208. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/include.expectation.html +0 -0
  209. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/include.test.html +0 -0
  210. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/include_bar.html +0 -0
  211. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/include_extends.expectation.html +0 -0
  212. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/include_extends.test.html +0 -0
  213. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/includes.html +0 -0
  214. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/macros.expectation.html +0 -0
  215. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/macros.html +0 -0
  216. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/macros.test.html +0 -0
  217. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/nested_blocks.expectation.html +0 -0
  218. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/nested_blocks.test.html +0 -0
  219. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/nested_blocks_parent.html +0 -0
  220. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/parent-parent.expectation.html +0 -0
  221. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/parent-parent.test.html +0 -0
  222. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/parent.expectation.html +0 -0
  223. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/parent.test.html +0 -0
  224. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/set.expectation.html +0 -0
  225. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases/set.test.html +0 -0
  226. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases-error/circular.test.html +0 -0
  227. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases-error/circular_parent.html +0 -0
  228. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases-error/extends-non-existent.test.html +0 -0
  229. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases-error/report-filename-partial.html +0 -0
  230. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/cases-error/report-filename.test.html +0 -0
  231. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/comments.test.js +0 -0
  232. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/filters.test.js +0 -0
  233. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/loaders.test.js +0 -0
  234. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/regressions.test.js +0 -0
  235. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/tags/autoescape.test.js +0 -0
  236. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/tags/else.test.js +0 -0
  237. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/tags/extend.test.js +0 -0
  238. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/tags/filter.test.js +0 -0
  239. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/tags/for.test.js +0 -0
  240. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/tags/if.test.js +0 -0
  241. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/tags/import.test.js +0 -0
  242. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/tags/include.test.js +0 -0
  243. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/tags/macro.test.js +0 -0
  244. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/tags/parent.test.js +0 -0
  245. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/tags/raw.test.js +0 -0
  246. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/tags/set.test.js +0 -0
  247. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/tags/spaceless.test.js +0 -0
  248. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/tags.test.js +0 -0
  249. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/templates.test.js +0 -0
  250. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/variables.test.js +0 -0
  251. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-1.4.2/tests/whitespace.test.js +0 -0
  252. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-client/swig-2.0.0.min.js +0 -0
  253. /package/framework/{v0.3.1 → v0.3.2}/core/deps/swig-client/swig.js +0 -0
  254. /package/framework/{v0.3.1 → v0.3.2}/core/dev/index.js +0 -0
  255. /package/framework/{v0.3.1 → v0.3.2}/core/dev/lib/class.js +0 -0
  256. /package/framework/{v0.3.1 → v0.3.2}/core/dev/lib/factory.js +0 -0
  257. /package/framework/{v0.3.1 → v0.3.2}/core/dev/lib/tools.js +0 -0
  258. /package/framework/{v0.3.1 → v0.3.2}/core/locales/README.md +0 -0
  259. /package/framework/{v0.3.1 → v0.3.2}/core/locales/currency.json +0 -0
  260. /package/framework/{v0.3.1 → v0.3.2}/core/locales/dist/language/en.json +0 -0
  261. /package/framework/{v0.3.1 → v0.3.2}/core/locales/dist/language/fr.json +0 -0
  262. /package/framework/{v0.3.1 → v0.3.2}/core/locales/dist/region/en.json +0 -0
  263. /package/framework/{v0.3.1 → v0.3.2}/core/locales/dist/region/fr.json +0 -0
  264. /package/framework/{v0.3.1 → v0.3.2}/core/locales/index.js +0 -0
  265. /package/framework/{v0.3.1 → v0.3.2}/core/mime.types +0 -0
  266. /package/framework/{v0.3.1 → v0.3.2}/core/model/entity.js +0 -0
  267. /package/framework/{v0.3.1 → v0.3.2}/core/model/index.js +0 -0
  268. /package/framework/{v0.3.1 → v0.3.2}/core/model/template/entityFactory.js +0 -0
  269. /package/framework/{v0.3.1 → v0.3.2}/core/model/template/index.js +0 -0
  270. /package/framework/{v0.3.1 → v0.3.2}/core/plugins/README.md +0 -0
  271. /package/framework/{v0.3.1 → v0.3.2}/core/plugins/index.js +0 -0
  272. /package/framework/{v0.3.1 → v0.3.2}/core/plugins/lib/file/README.md +0 -0
  273. /package/framework/{v0.3.1 → v0.3.2}/core/plugins/lib/file/build.json +0 -0
  274. /package/framework/{v0.3.1 → v0.3.2}/core/plugins/lib/file/package.json +0 -0
  275. /package/framework/{v0.3.1 → v0.3.2}/core/plugins/lib/intl/README.md +0 -0
  276. /package/framework/{v0.3.1 → v0.3.2}/core/plugins/lib/intl/build.json +0 -0
  277. /package/framework/{v0.3.1 → v0.3.2}/core/plugins/lib/intl/package.json +0 -0
  278. /package/framework/{v0.3.1 → v0.3.2}/core/plugins/lib/intl/src/main.js +0 -0
  279. /package/framework/{v0.3.1 → v0.3.2}/core/plugins/lib/storage/README.md +0 -0
  280. /package/framework/{v0.3.1 → v0.3.2}/core/plugins/lib/storage/build.json +0 -0
  281. /package/framework/{v0.3.1 → v0.3.2}/core/plugins/lib/storage/package.json +0 -0
  282. /package/framework/{v0.3.1 → v0.3.2}/core/plugins/lib/storage/src/main.js +0 -0
  283. /package/framework/{v0.3.1 → v0.3.2}/core/plugins/lib/validator/README.md +0 -0
  284. /package/framework/{v0.3.1 → v0.3.2}/core/plugins/lib/validator/build.json +0 -0
  285. /package/framework/{v0.3.1 → v0.3.2}/core/plugins/lib/validator/package.json +0 -0
  286. /package/framework/{v0.3.1 → v0.3.2}/core/plugins/lib/validator/src/form-validator.js +0 -0
  287. /package/framework/{v0.3.1 → v0.3.2}/core/plugins/lib/validator/src/main.js +0 -0
  288. /package/framework/{v0.3.1 → v0.3.2}/core/router.js +0 -0
  289. /package/framework/{v0.3.1 → v0.3.2}/core/server.express.js +0 -0
  290. /package/framework/{v0.3.1 → v0.3.2}/core/status.codes +0 -0
  291. /package/framework/{v0.3.1 → v0.3.2}/core/template/_gitignore +0 -0
  292. /package/framework/{v0.3.1 → v0.3.2}/core/template/boilerplate/bundle/config/app.json +0 -0
  293. /package/framework/{v0.3.1 → v0.3.2}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  294. /package/framework/{v0.3.1 → v0.3.2}/core/template/boilerplate/bundle/config/routing.json +0 -0
  295. /package/framework/{v0.3.1 → v0.3.2}/core/template/boilerplate/bundle/config/settings.json +0 -0
  296. /package/framework/{v0.3.1 → v0.3.2}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  297. /package/framework/{v0.3.1 → v0.3.2}/core/template/boilerplate/bundle/config/templates.json +0 -0
  298. /package/framework/{v0.3.1 → v0.3.2}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  299. /package/framework/{v0.3.1 → v0.3.2}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  300. /package/framework/{v0.3.1 → v0.3.2}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  301. /package/framework/{v0.3.1 → v0.3.2}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  302. /package/framework/{v0.3.1 → v0.3.2}/core/template/boilerplate/bundle/index.js +0 -0
  303. /package/framework/{v0.3.1 → v0.3.2}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  304. /package/framework/{v0.3.1 → v0.3.2}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  305. /package/framework/{v0.3.1 → v0.3.2}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  306. /package/framework/{v0.3.1 → v0.3.2}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  307. /package/framework/{v0.3.1 → v0.3.2}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  308. /package/framework/{v0.3.1 → v0.3.2}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  309. /package/framework/{v0.3.1 → v0.3.2}/core/template/boilerplate/bundle_public/readme.md +0 -0
  310. /package/framework/{v0.3.1 → v0.3.2}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  311. /package/framework/{v0.3.1 → v0.3.2}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  312. /package/framework/{v0.3.1 → v0.3.2}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  313. /package/framework/{v0.3.1 → v0.3.2}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  314. /package/framework/{v0.3.1 → v0.3.2}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  315. /package/framework/{v0.3.1 → v0.3.2}/core/template/command/gina.bat.tpl +0 -0
  316. /package/framework/{v0.3.1 → v0.3.2}/core/template/command/gina.tpl +0 -0
  317. /package/framework/{v0.3.1 → v0.3.2}/core/template/conf/env.json +0 -0
  318. /package/framework/{v0.3.1 → v0.3.2}/core/template/conf/manifest.json +0 -0
  319. /package/framework/{v0.3.1 → v0.3.2}/core/template/conf/package.json +0 -0
  320. /package/framework/{v0.3.1 → v0.3.2}/core/template/conf/settings.json +0 -0
  321. /package/framework/{v0.3.1 → v0.3.2}/core/template/conf/statics.json +0 -0
  322. /package/framework/{v0.3.1 → v0.3.2}/core/template/conf/templates.json +0 -0
  323. /package/framework/{v0.3.1 → v0.3.2}/core/template/error/client/json/401.json +0 -0
  324. /package/framework/{v0.3.1 → v0.3.2}/core/template/error/client/json/403.json +0 -0
  325. /package/framework/{v0.3.1 → v0.3.2}/core/template/error/client/json/404.json +0 -0
  326. /package/framework/{v0.3.1 → v0.3.2}/core/template/error/server/html/50x.html +0 -0
  327. /package/framework/{v0.3.1 → v0.3.2}/core/template/error/server/json/500.json +0 -0
  328. /package/framework/{v0.3.1 → v0.3.2}/core/template/error/server/json/503.json +0 -0
  329. /package/framework/{v0.3.1 → v0.3.2}/core/template/extensions/logger/config.json +0 -0
  330. /package/framework/{v0.3.1 → v0.3.2}/helpers/console.js +0 -0
  331. /package/framework/{v0.3.1 → v0.3.2}/helpers/data/LICENSE +0 -0
  332. /package/framework/{v0.3.1 → v0.3.2}/helpers/data/README.md +0 -0
  333. /package/framework/{v0.3.1 → v0.3.2}/helpers/data/package.json +0 -0
  334. /package/framework/{v0.3.1 → v0.3.2}/helpers/data/src/main.js +0 -0
  335. /package/framework/{v0.3.1 → v0.3.2}/helpers/dateFormat.js +0 -0
  336. /package/framework/{v0.3.1 → v0.3.2}/helpers/index.js +0 -0
  337. /package/framework/{v0.3.1 → v0.3.2}/helpers/json/LICENSE +0 -0
  338. /package/framework/{v0.3.1 → v0.3.2}/helpers/json/README.md +0 -0
  339. /package/framework/{v0.3.1 → v0.3.2}/helpers/json/package.json +0 -0
  340. /package/framework/{v0.3.1 → v0.3.2}/helpers/json/src/main.js +0 -0
  341. /package/framework/{v0.3.1 → v0.3.2}/helpers/path.js +0 -0
  342. /package/framework/{v0.3.1 → v0.3.2}/helpers/plugins/README.md +0 -0
  343. /package/framework/{v0.3.1 → v0.3.2}/helpers/plugins/package.json +0 -0
  344. /package/framework/{v0.3.1 → v0.3.2}/helpers/plugins/src/api-error.js +0 -0
  345. /package/framework/{v0.3.1 → v0.3.2}/helpers/plugins/src/main.js +0 -0
  346. /package/framework/{v0.3.1 → v0.3.2}/helpers/prototypes.js +0 -0
  347. /package/framework/{v0.3.1 → v0.3.2}/helpers/task.js +0 -0
  348. /package/framework/{v0.3.1 → v0.3.2}/helpers/text.js +0 -0
  349. /package/framework/{v0.3.1 → v0.3.2}/lib/archiver/README.md +0 -0
  350. /package/framework/{v0.3.1 → v0.3.2}/lib/archiver/build.json +0 -0
  351. /package/framework/{v0.3.1 → v0.3.2}/lib/archiver/package.json +0 -0
  352. /package/framework/{v0.3.1 → v0.3.2}/lib/archiver/src/dep/jszip.min.js +0 -0
  353. /package/framework/{v0.3.1 → v0.3.2}/lib/archiver/src/main.js +0 -0
  354. /package/framework/{v0.3.1 → v0.3.2}/lib/async/package.json +0 -0
  355. /package/framework/{v0.3.1 → v0.3.2}/lib/async/src/main.js +0 -0
  356. /package/framework/{v0.3.1 → v0.3.2}/lib/cache/README.md +0 -0
  357. /package/framework/{v0.3.1 → v0.3.2}/lib/cache/build.json +0 -0
  358. /package/framework/{v0.3.1 → v0.3.2}/lib/cache/package.json +0 -0
  359. /package/framework/{v0.3.1 → v0.3.2}/lib/cache/src/main.js +0 -0
  360. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/aliases.json +0 -0
  361. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/bundle/arguments.json +0 -0
  362. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/bundle/build.js +0 -0
  363. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/bundle/copy.js +0 -0
  364. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/bundle/cp.js +0 -0
  365. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/bundle/help.js +0 -0
  366. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/bundle/help.txt +0 -0
  367. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/bundle/list.js +0 -0
  368. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/bundle/remove.js +0 -0
  369. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/bundle/rename.js +0 -0
  370. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/bundle/restart.js +0 -0
  371. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/bundle/rm.js +0 -0
  372. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/bundle/status.js +0 -0
  373. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/bundle/stop.js +0 -0
  374. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/cache/stats.js +0 -0
  375. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/env/add.js +0 -0
  376. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/env/get.js +0 -0
  377. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/env/help.js +0 -0
  378. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/env/help.txt +0 -0
  379. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/env/link-dev.js +0 -0
  380. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/env/list.js +0 -0
  381. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/env/remove.js +0 -0
  382. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/env/rm.js +0 -0
  383. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/env/set.js +0 -0
  384. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/env/unset.js +0 -0
  385. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/env/use.js +0 -0
  386. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/framework/arguments.json +0 -0
  387. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/framework/build.js +0 -0
  388. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/framework/dot.js +0 -0
  389. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/framework/get.js +0 -0
  390. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/framework/help.js +0 -0
  391. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/framework/help.txt +0 -0
  392. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/framework/init.js +0 -0
  393. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/framework/link-node-modules.js +0 -0
  394. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/framework/link.js +0 -0
  395. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/framework/msg.json +0 -0
  396. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/framework/open.js +0 -0
  397. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/framework/set.js +0 -0
  398. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/framework/start.js +0 -0
  399. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/framework/status.js +0 -0
  400. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/framework/stop.js +0 -0
  401. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/framework/tail.js +0 -0
  402. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/framework/update.js +0 -0
  403. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/framework/version.js +0 -0
  404. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/gina-dev.1.md +0 -0
  405. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/gina-framework.1.md +0 -0
  406. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/gina.1.md +0 -0
  407. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/helper.js +0 -0
  408. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/index.js +0 -0
  409. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/minion/help.js +0 -0
  410. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/minion/help.txt +0 -0
  411. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/msg.json +0 -0
  412. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/port/help.js +0 -0
  413. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/port/help.txt +0 -0
  414. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/port/inc/scan.js +0 -0
  415. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/port/list.js +0 -0
  416. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/port/reset.js +0 -0
  417. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/port/set.js +0 -0
  418. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/project/add.js +0 -0
  419. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/project/arguments.json +0 -0
  420. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/project/build.js +0 -0
  421. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/project/help.js +0 -0
  422. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/project/help.txt +0 -0
  423. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/project/import.js +0 -0
  424. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/project/list.js +0 -0
  425. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/project/move.js +0 -0
  426. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/project/remove.js +0 -0
  427. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/project/rename.js +0 -0
  428. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/project/restart.js +0 -0
  429. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/project/rm.js +0 -0
  430. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/project/start.js +0 -0
  431. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/project/status.js +0 -0
  432. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/project/stop.js +0 -0
  433. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/protocol/help.js +0 -0
  434. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/protocol/help.txt +0 -0
  435. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/protocol/list.js +0 -0
  436. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/protocol/set.js +0 -0
  437. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/scope/add.js +0 -0
  438. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/scope/help.js +0 -0
  439. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/scope/help.txt +0 -0
  440. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/scope/link-local.js +0 -0
  441. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/scope/link-production.js +0 -0
  442. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/scope/list.js +0 -0
  443. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/scope/remove.js +0 -0
  444. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/scope/rm.js +0 -0
  445. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/scope/use.js +0 -0
  446. /package/framework/{v0.3.1 → v0.3.2}/lib/cmd/view/add.js +0 -0
  447. /package/framework/{v0.3.1 → v0.3.2}/lib/collection/README.md +0 -0
  448. /package/framework/{v0.3.1 → v0.3.2}/lib/collection/build.json +0 -0
  449. /package/framework/{v0.3.1 → v0.3.2}/lib/collection/package.json +0 -0
  450. /package/framework/{v0.3.1 → v0.3.2}/lib/collection/src/main.js +0 -0
  451. /package/framework/{v0.3.1 → v0.3.2}/lib/config.js +0 -0
  452. /package/framework/{v0.3.1 → v0.3.2}/lib/cron/README.md +0 -0
  453. /package/framework/{v0.3.1 → v0.3.2}/lib/cron/package.json +0 -0
  454. /package/framework/{v0.3.1 → v0.3.2}/lib/cron/src/main.js +0 -0
  455. /package/framework/{v0.3.1 → v0.3.2}/lib/domain/LICENSE +0 -0
  456. /package/framework/{v0.3.1 → v0.3.2}/lib/domain/README.md +0 -0
  457. /package/framework/{v0.3.1 → v0.3.2}/lib/domain/dist/2025-03-14_13-41-20_UTC.dat +0 -0
  458. /package/framework/{v0.3.1 → v0.3.2}/lib/domain/dist/public_suffix_list.dat +0 -0
  459. /package/framework/{v0.3.1 → v0.3.2}/lib/domain/dist/public_suffix_list.dat.br +0 -0
  460. /package/framework/{v0.3.1 → v0.3.2}/lib/domain/dist/public_suffix_list.dat.gz +0 -0
  461. /package/framework/{v0.3.1 → v0.3.2}/lib/domain/package.json +0 -0
  462. /package/framework/{v0.3.1 → v0.3.2}/lib/domain/src/main.js +0 -0
  463. /package/framework/{v0.3.1 → v0.3.2}/lib/generator/index.js +0 -0
  464. /package/framework/{v0.3.1 → v0.3.2}/lib/inherits/LICENSE +0 -0
  465. /package/framework/{v0.3.1 → v0.3.2}/lib/inherits/README.md +0 -0
  466. /package/framework/{v0.3.1 → v0.3.2}/lib/inherits/package.json +0 -0
  467. /package/framework/{v0.3.1 → v0.3.2}/lib/inherits/src/main.js +0 -0
  468. /package/framework/{v0.3.1 → v0.3.2}/lib/logger/README.md +0 -0
  469. /package/framework/{v0.3.1 → v0.3.2}/lib/logger/package.json +0 -0
  470. /package/framework/{v0.3.1 → v0.3.2}/lib/logger/src/containers/default/index.js +0 -0
  471. /package/framework/{v0.3.1 → v0.3.2}/lib/logger/src/containers/file/index.js +0 -0
  472. /package/framework/{v0.3.1 → v0.3.2}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  473. /package/framework/{v0.3.1 → v0.3.2}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  474. /package/framework/{v0.3.1 → v0.3.2}/lib/logger/src/containers/mq/index.js +0 -0
  475. /package/framework/{v0.3.1 → v0.3.2}/lib/logger/src/containers/mq/listener.js +0 -0
  476. /package/framework/{v0.3.1 → v0.3.2}/lib/logger/src/containers/mq/speaker.js +0 -0
  477. /package/framework/{v0.3.1 → v0.3.2}/lib/logger/src/helper.js +0 -0
  478. /package/framework/{v0.3.1 → v0.3.2}/lib/logger/src/main.js +0 -0
  479. /package/framework/{v0.3.1 → v0.3.2}/lib/math/index.js +0 -0
  480. /package/framework/{v0.3.1 → v0.3.2}/lib/merge/README.md +0 -0
  481. /package/framework/{v0.3.1 → v0.3.2}/lib/merge/package.json +0 -0
  482. /package/framework/{v0.3.1 → v0.3.2}/lib/merge/src/main.js +0 -0
  483. /package/framework/{v0.3.1 → v0.3.2}/lib/proc.js +0 -0
  484. /package/framework/{v0.3.1 → v0.3.2}/lib/routing/README.md +0 -0
  485. /package/framework/{v0.3.1 → v0.3.2}/lib/routing/build.json +0 -0
  486. /package/framework/{v0.3.1 → v0.3.2}/lib/routing/package.json +0 -0
  487. /package/framework/{v0.3.1 → v0.3.2}/lib/routing/src/main.js +0 -0
  488. /package/framework/{v0.3.1 → v0.3.2}/lib/routing/src/radix.js +0 -0
  489. /package/framework/{v0.3.1 → v0.3.2}/lib/session-store.js +0 -0
  490. /package/framework/{v0.3.1 → v0.3.2}/lib/shell.js +0 -0
  491. /package/framework/{v0.3.1 → v0.3.2}/lib/state.js +0 -0
  492. /package/framework/{v0.3.1 → v0.3.2}/lib/swig-filters/README.md +0 -0
  493. /package/framework/{v0.3.1 → v0.3.2}/lib/swig-filters/package.json +0 -0
  494. /package/framework/{v0.3.1 → v0.3.2}/lib/swig-filters/src/main.js +0 -0
  495. /package/framework/{v0.3.1 → v0.3.2}/lib/url/README.md +0 -0
  496. /package/framework/{v0.3.1 → v0.3.2}/lib/url/index.js +0 -0
  497. /package/framework/{v0.3.1 → v0.3.2}/lib/url/routing.json +0 -0
  498. /package/framework/{v0.3.1 → v0.3.2}/lib/validator.js +0 -0
  499. /package/framework/{v0.3.1 → v0.3.2}/lib/watcher/package.json +0 -0
  500. /package/framework/{v0.3.1 → v0.3.2}/lib/watcher/src/main.js +0 -0
  501. /package/framework/{v0.3.1 → v0.3.2}/package.json +0 -0
@@ -0,0 +1,8 @@
1
+ window.originalContext=null;
2
+ window.onGinaLoaded=function(b){if(!b)return!1;if(b.isFrameworkLoaded)return!0;var e={bundle:'{{ page.environment.bundle }}',env:'{{ page.environment.env }}',envIsDev:/^true$/.test('{{ page.environment.envIsDev }}')?!0:!1,scope:'{{ page.environment.scope }}',scopeIsLocal:/^true$/.test('{{ page.environment.scopeIsLocal }}')?!0:!1,scopeIsProduction:/^true$/.test('{{ page.environment.scopeIsProduction }}')?!0:!1,isProxyHost:/^true$/.test('{{ page.environment.isProxyHost }}')?!0:!1,hostname:'{{ page.environment.hostname }}',
3
+ routing:JSON.parse(decodeURIComponent('{{ page.environment.routing }}')),reverseRouting:JSON.parse(decodeURIComponent('{{ page.environment.reverseRouting }}')),version:'{{ page.environment.version }}',webroot:'{{ page.environment.webroot }}',protocol:'{{ page.environment.protocol }}'};if('undefined'!=typeof b.config.routing&&0<b.config.routing.count()&&'undefined'!=typeof b.config.reverseRouting&&!b.config.reverseRouting.count()||'undefined'!=typeof b.config.routing&&0<b.config.routing.count()&&'undefined'==
4
+ typeof b.config.reverseRouting){var a=b.config.routing,d={};for(var f in a)if(/,/.test(a[f].url)){var h=a[f].url.split(/,/g),g=0;let c=h.length;for(;g<c;++g)d[h[g]]=f}else d[a[f].url]=f;b.config.reverseRouting=d}if('undefined'!=typeof b.config)for(let c in b.config)e[c]=b.config[c];b.config=e;/^true$/i.test(e.g)&&(e.proxyHost=b.config.proxyHost='{{ page.environment.proxyHost }}',e.proxyHostname=b.config.proxyHostname='{{ page.environment.proxyHostname }}');b.session={id:'{{ page.data.session.id }}',
5
+ originalTimeout:'{{ page.data.session.timeout }}',createdAt:'{{ page.data.session.createdAt }}',lastModified:'{{ page.data.session.lastModified }}',expiresAt:null};b.session.__defineGetter__('timeout',function(){if(this.lastModified){this.lastModified&&'string'==typeof this.lastModified&&(this.lastModified=new Date(this.lastModified));this.createdAt&&'string'==typeof this.createdAt&&(this.createdAt=new Date(this.createdAt));this.originalTimeout&&'string'==typeof this.originalTimeout&&(this.originalTimeout=
6
+ parseInt(this.originalTimeout));this.expiresAt=new Date((new Date(this.lastModified)).getTime()+this.originalTimeout);var c=this.expiresAt-new Date}else c=null;return c});b.session.timeout;b.config.getRouting=function(c){var k={},l=b.config.routing;if('undefined'==typeof c)return l;c=new RegExp('\\@'+c+String.fromCharCode(36));for(var m in l)c.test(m)&&(k[m]=l[m]);return 0<k.count()?k:null};window.GINA_ENV='{{ page.environment.env }}';window.GINA_ENV_IS_DEV=/^true$/i.test('{{ page.environment.envIsDev }}')?
7
+ !0:!1;if('undefined'!=typeof location.search&&/debug=/i.test(location.search)||!location.search&&/\?/.test(location.href))a=(' '+location.search).slice(1),!a&&/\?/.test(location.href)&&(a=location.href.match(/\?.*/),Array.isArray(a)&&0<a.length&&(a=a[0])),(a=a.match(/debug=(true|false)/))&&(window.GINA_ENV_IS_DEV=b.config.envIsDev=/^true$/i.test(a[0].split(/=/)[1])?!0:!1),a=a=null;b.isFrameworkLoaded=!0;b.setOptions(e);try{b.forms=JSON.parse(decodeURIComponent('{{ page.environment.forms }}'))}catch(c){throw c;
8
+ }a=null;a=document.head.getElementsByTagName('link');d=0;f=a.length;h=!1;for(g=RegExp('css/vendor/gina/gina.min.css');d<f;++d)if(g.test(a[d].href)){h=!0;break}g=f=d=a=null;h||(a=document.createElement('link'),a.href=e.webroot+'css/vendor/gina/gina.min.css',a.media='screen',a.rel='stylesheet',a.type='text/css',e=document.getElementsByTagName('head')[0],(d=e.getElementsByTagName('link'))&&'undefined'!=typeof d.length&&0<d.length?e.insertBefore(a,d[0]):e.appendChild(a),e=d=null);return!0};
@@ -98,13 +98,28 @@ function Couchbase(conn, infos) {
98
98
  * extracted indexes. Patches `queryEntry.indexes` in-place once
99
99
  * the EXPLAIN result is available.
100
100
  *
101
- * @param {object} conn - The Couchbase connection object (with `_cluster`)
101
+ * @param {object} conn - The Couchbase connection object. May have `_cluster`
102
+ * directly (entity query path) or nested at `_scope._bucket._cluster` (bulk insert path).
102
103
  * @param {string} statement - The original N1QL statement (without EXPLAIN prefix)
103
104
  * @param {object} queryEntry - The QI entry to patch with index info
104
105
  * @param {object} queryOptions - Query options (for parameters)
105
106
  * @private
106
107
  */
107
108
  var explainForIndexes = function(conn, statement, queryEntry, queryOptions) {
109
+ // Resolve cluster from whichever conn shape we received:
110
+ // - entity query path: conn._cluster exists directly
111
+ // - bulk insert path: conn is a scope object, cluster is at conn._scope._bucket._cluster
112
+ var cluster = (conn._cluster)
113
+ ? conn._cluster
114
+ : (conn._scope && conn._scope._bucket && conn._scope._bucket._cluster)
115
+ ? conn._scope._bucket._cluster
116
+ : null;
117
+
118
+ if (!cluster || typeof(cluster.query) !== 'function') {
119
+ console.warn('[explainForIndexes] Cannot resolve cluster from conn — skipping EXPLAIN for: ' + statement.substring(0, 80));
120
+ return;
121
+ }
122
+
108
123
  // Mark as pending so we don't fire multiple EXPLAINs for the same statement
109
124
  _explainCache.set(statement, null);
110
125
 
@@ -113,18 +128,23 @@ function Couchbase(conn, infos) {
113
128
  parameters: queryOptions.parameters || []
114
129
  };
115
130
 
116
- conn._cluster.query('EXPLAIN ' + statement, explainOpts)
117
- .then(function(data) {
118
- var plan = (data && data.rows && data.rows[0]) ? data.rows[0].plan || data.rows[0] : null;
119
- var indexes = extractIndexes(plan);
120
- _explainCache.set(statement, indexes);
121
- // Patch the current query entry in-place (it's already in _devLog)
122
- queryEntry.indexes = indexes;
123
- })
124
- .catch(function() {
125
- // EXPLAIN failed — leave indexes as null (N/A badge)
126
- _explainCache.set(statement, null);
127
- });
131
+ try {
132
+ cluster.query('EXPLAIN ' + statement, explainOpts)
133
+ .then(function(data) {
134
+ var plan = (data && data.rows && data.rows[0]) ? data.rows[0].plan || data.rows[0] : null;
135
+ var indexes = extractIndexes(plan);
136
+ _explainCache.set(statement, indexes);
137
+ // Patch the current query entry in-place (it's already in _devLog)
138
+ queryEntry.indexes = indexes;
139
+ })
140
+ .catch(function() {
141
+ // EXPLAIN failed — leave indexes as null (N/A badge)
142
+ _explainCache.set(statement, null);
143
+ });
144
+ } catch (_explainErr) {
145
+ console.warn('[explainForIndexes] ' + _explainErr.message);
146
+ _explainCache.set(statement, null);
147
+ }
128
148
  };
129
149
 
130
150
  /**
@@ -38,6 +38,13 @@ if (!process.gina._queryALS) {
38
38
  var { AsyncLocalStorage } = require('async_hooks');
39
39
  process.gina._queryALS = new AsyncLocalStorage();
40
40
  }
41
+ // Inspector activation flag — when false, profiling (flow timeline, query log)
42
+ // is skipped and JSON responses stay clean. Set to true when the Inspector SPA
43
+ // is opened or an SSE client connects to /_gina/agent or /_gina/logs.
44
+ // Lives on process.gina so it survives dev-mode cache busting of controller.js.
45
+ if (typeof process.gina._inspectorActive === 'undefined') {
46
+ process.gina._inspectorActive = false;
47
+ }
41
48
  var merge = lib.merge;
42
49
  var inherits = lib.inherits;
43
50
  var console = lib.logger;
@@ -247,7 +254,11 @@ function SuperController(options) {
247
254
  // reuse it. AsyncLocalStorage.enterWith() binds the log to this request's
248
255
  // async context so connector queries always push to the correct array,
249
256
  // even when concurrent requests interleave.
250
- if (_isDev) {
257
+ // Activated when the Inspector is open locally (_inspectorActive) OR when
258
+ // the request came from a cross-bundle self.query() call with the Inspector
259
+ // header (x-gina-inspector). This ensures QI captures queries on target
260
+ // bundles (e.g. coreapi) without always-on overhead.
261
+ if (_isDev && (process.gina._inspectorActive || (req.headers && req.headers['x-gina-inspector'] === 'true'))) {
251
262
  if (!req._devQueryLog) {
252
263
  req._devQueryLog = [];
253
264
  }
@@ -2436,6 +2447,7 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
2436
2447
  }
2437
2448
 
2438
2449
 
2450
+
2439
2451
  if ( typeof(data) != 'undefined' && data.count() > 0) {
2440
2452
 
2441
2453
  queryData = '?';
@@ -2570,6 +2582,12 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
2570
2582
  options.headers['x-forwarded-proto'] = process.gina.PROXY_SCHEME;
2571
2583
  }
2572
2584
 
2585
+ // #QI — propagate Inspector profiling to the target bundle so it
2586
+ // captures queries and timeline entries for cross-bundle propagation.
2587
+ if (_isDev && process.gina._inspectorActive) {
2588
+ options.headers['x-gina-inspector'] = 'true';
2589
+ }
2590
+
2573
2591
  if ( ctx.gina.config.envConf[ctx.bundle][ctx.env].server.resolvers.length > 0 ) {
2574
2592
  var resolversColl = new Collection(ctx.gina.config.envConf[ctx.bundle][ctx.env].server.resolvers);
2575
2593
  options.nameservers = resolversColl.findOne({ scope: process.env.NODE_SCOPE}).nameservers;
@@ -4169,6 +4187,7 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
4169
4187
  if (
4170
4188
  getContext('isProxyHost')
4171
4189
  && typeof(tmp.hostname) != 'undefined'
4190
+ && typeof(process.gina.PROXY_HOSTNAME) != 'undefined'
4172
4191
  ) {
4173
4192
  tmp.hostname = process.gina.PROXY_HOSTNAME;
4174
4193
  tmp.host = process.gina.PROXY_HOST;
@@ -207,17 +207,9 @@ module.exports = function renderJSON(jsonObj, deps) {
207
207
 
208
208
  console.info(request.method +' ['+ response.statusCode +'] '+ request.url);
209
209
 
210
- // #QIin dev mode, embed the request-scoped query log so upstream
211
- // callers (dashboard calling coreapi via self.query()) can merge it
212
- // into their own Inspector view. Stripped by the caller after extraction.
213
- if (self.isCacheless() && local._queryLog && local._queryLog.length > 0) {
214
- jsonObj.__ginaQueries = local._queryLog;
215
- }
216
-
217
- // #FI — in dev mode, push response-write + total timing so the Flow
218
- // waterfall has closing bars for JSON responses. Pushed before the
219
- // __ginaFlow sidecar injection so they travel with cross-bundle data.
220
- if (self.isCacheless() && local._timeline) {
210
+ // #FIpush response-write + total timing to the timeline so the
211
+ // Flow waterfall has closing bars for JSON responses.
212
+ if (self.isCacheless() && process.gina._inspectorActive && local._timeline) {
221
213
  var _jsonRespEnd = Date.now();
222
214
  var _jsonRwStart = local._timeline._renderStart || local._timeline._actionStart || local._timeline.requestStart;
223
215
  local._timeline.entries.push({
@@ -238,9 +230,63 @@ module.exports = function renderJSON(jsonObj, deps) {
238
230
  });
239
231
  }
240
232
 
241
- // #FIin dev mode, embed the request-scoped timeline so upstream
242
- // callers can merge it into their own Inspector Flow tab.
243
- if (self.isCacheless() && local._timeline && local._timeline.entries.length > 0) {
233
+ // #INSemit Inspector payload for JSON responses so the Inspector
234
+ // Data tab, Flow tab, and footer status bar work for APIs that only
235
+ // use self.renderJSON(). Gated on _inspectorActive to avoid overhead
236
+ // when the Inspector has not been opened.
237
+ if (self.isCacheless() && process.gina._inspectorActive) {
238
+ var _ctx = getContext('gina') || {};
239
+ var _conf = local.options.conf || {};
240
+ var _mem = process.memoryUsage();
241
+ var _env = {
242
+ 'gina' : _ctx.version || '',
243
+ 'gina pid' : getEnvVar('GINA_PID') || String(process.pid),
244
+ 'nodejs' : process.versions.node + ' ' + process.platform + ' ' + process.arch,
245
+ 'engine' : (_conf.server && _conf.server.engine) || '',
246
+ 'env' : process.env.NODE_ENV || '',
247
+ 'envIsDev' : self.isCacheless(),
248
+ 'scope' : process.env.NODE_SCOPE || '',
249
+ 'bundle' : _conf.bundle || '',
250
+ 'project' : _conf.projectName || '',
251
+ 'protocol' : (_conf.server && _conf.server.protocol) || '',
252
+ 'scheme' : (_conf.server && _conf.server.scheme) || '',
253
+ 'port' : (_conf.server && _conf.server.port) || '',
254
+ 'webroot' : (_conf.server && _conf.server.webroot) || '',
255
+ 'memory heap' : (_mem.heapUsed / 1024 / 1024).toFixed(2) + ' MB',
256
+ 'memory allocated': (require('v8').getHeapStatistics().heap_size_limit / (1024 * 1024 * 1024)).toFixed(2) + ' GB',
257
+ 'date.now' : new Date().toISOString(),
258
+ 'pid' : process.pid
259
+ };
260
+ var _gdUser = {
261
+ environment : _env,
262
+ data : jsonObj
263
+ };
264
+ if (local._queryLog && local._queryLog.length > 0) {
265
+ _gdUser.queries = local._queryLog;
266
+ }
267
+ if (local._timeline) {
268
+ _gdUser.flow = {
269
+ requestStart : local._timeline.requestStart,
270
+ entries : local._timeline.entries
271
+ };
272
+ }
273
+ var __gdPayload = { gina: { environment: _env }, user: _gdUser };
274
+ self.serverInstance._lastGinaData = __gdPayload;
275
+ process.emit('inspector#data', __gdPayload);
276
+ }
277
+
278
+ // #QI — embed query log as a sidecar for cross-bundle propagation.
279
+ // When bundle A calls bundle B via self.query(), B's queries travel
280
+ // back as __ginaQueries in the JSON response body. A's query()
281
+ // callback extracts, merges into its own _queryLog, and deletes
282
+ // the field before the data reaches the controller action.
283
+ if (self.isCacheless() && local._queryLog && local._queryLog.length > 0) {
284
+ jsonObj.__ginaQueries = local._queryLog;
285
+ }
286
+
287
+ // #FI — embed timeline entries as a sidecar for cross-bundle flow
288
+ // propagation (mirrors __ginaQueries pattern).
289
+ if (self.isCacheless() && local._timeline && local._timeline.entries && local._timeline.entries.length > 0) {
244
290
  jsonObj.__ginaFlow = local._timeline.entries;
245
291
  }
246
292
 
@@ -0,0 +1,7 @@
1
+ var swig=require('../index'),optimist=require('optimist'),fs=require('fs'),path=require('path'),filters=require('../lib/filters'),utils=require('../lib/utils'),uglify=require('uglify-js'),command,argv=optimist.usage('\n Usage:\n $0 compile [files] [options]\n $0 run [files] [options]\n $0 render [files] [options]\n').describe({v:'Show the Swig version number.',o:'Output location.',h:'Show this help screen.',j:'Variable context as a JSON file.',c:'Variable context as a CommonJS-style file. Used only if option `j` is not provided.',
2
+ m:'Minify compiled functions with uglify-js',filters:'Custom filters as a CommonJS-style file',tags:'Custom tags as a CommonJS-style file',options:"Customize Swig's Options from a CommonJS-style file",'wrap-start':'Template wrapper beginning for "compile".','wrap-end':'Template wrapper end for "compile".','method-name':'Method name to set template to and run from.'}).alias('v','version').alias('o','output').default('o','stdout').alias('h','help').alias('j','json').alias('c','context').alias('m','minify').default('wrap-start',
3
+ 'var tpl = ').default('wrap-end',';').default('method-name','tpl').check(function(a){if(!a.v){if(!a._.length)throw Error('');command=a._.shift();if('compile'!==command&&'render'!==command&&'run'!==command)throw Error('Unrecognized command "'+command+'". Use -h for help.');if('tpl'!==a['method-name']&&'var tpl ='!==a['wrap-start'])throw Error('Cannot use arguments "--method-name" and "--wrap-start" together.');'tpl'!==a['method-name']&&(a['wrap-start']='var '+a['method-name']+' = ')}}).argv,ctx={},
4
+ out=function(a,b){console.log(b)},efn=function(){},anonymous,files,fn;argv.v&&(console.log(require('../package').version),process.exit(0));argv.j?ctx=JSON.parse(fs.readFileSync(argv.j,'utf8')):argv.c&&(ctx=require(argv.c));if('stdout'!==argv.o){argv.o+='/';argv.o=path.normalize(argv.o);try{fs.mkdirSync(argv.o)}catch(a){if(47!==a.errno)throw a;}out=function(a,b){a=path.basename(a);fs.writeFileSync(argv.o+a,b,{flags:'w'});console.log('Wrote',argv.o+a)}}
5
+ argv.filters&&utils.each(require(path.resolve(argv.filters)),function(a,b){swig.setFilter(b,a)});argv.tags&&utils.each(require(path.resolve(argv.tags)),function(a,b){swig.setTag(b,a.parse,a.compile,a.ends,a.block)});argv.options&&swig.setDefaults(require(argv.options));
6
+ switch(command){case 'compile':fn=function(a,b){b=swig.precompile(b,{filename:a,locals:ctx}).tpl.toString().replace('anonymous','');b=argv['wrap-start']+b+argv['wrap-end'];argv.m&&(b=uglify.minify(b,{fromString:!0}).code);out(a,b)};break;case 'run':fn=function(a,b){(function(){eval(b);var c=eval(argv['method-name']);out(a,c(swig,ctx,filters,utils,efn))})()};break;case 'render':fn=function(a,b){out(a,swig.render(b,{filename:a,locals:ctx}))}}
7
+ argv._.forEach(function(a){var b=fs.readFileSync(a,'utf8');fn(a,b)});
@@ -237,6 +237,11 @@ try {
237
237
  ginaPath = getPath('gina').core;
238
238
  }
239
239
 
240
+ // Ensure gina.home is always registered (SQLite connector, session store)
241
+ if ( !getPath('gina').home && typeof(getEnvVar) != 'undefined' ) {
242
+ setPath('gina.home', getEnvVar('GINA_HOMEDIR'));
243
+ }
244
+
240
245
  if ( typeof(getEnvVar) == 'undefined') {
241
246
  console.debug('[ FRAMEWORK ][PROCESS ARGV] Process ARGV error ' + process.argv);
242
247
  }
@@ -1337,7 +1342,36 @@ isBundleMounted(projects, bundlesPath, getContext('bundle'), function onBundleMo
1337
1342
  e.emit('init', instance, middleware, conf);
1338
1343
  //In case there is no user init.
1339
1344
  if (!gna.initialized) {
1340
- e.emit('complete', instance);
1345
+ // No onInitialize handler — still need to load models
1346
+ // before starting the server.
1347
+ try {
1348
+ var configuration = config.getInstance();
1349
+ modelUtil.loadAllModels(
1350
+ conf.bundles,
1351
+ configuration,
1352
+ env,
1353
+ function() {
1354
+ joinContext(conf.contexts);
1355
+ gna.getConfig = function(name){
1356
+ var tmp = null;
1357
+ if ( typeof(name) != 'undefined' ) {
1358
+ try {
1359
+ tmp = JSON.clone(conf.content[name])
1360
+ } catch (err) {
1361
+ console.error('[ FRAMEWORK ] ', err.stack);
1362
+ return undefined
1363
+ }
1364
+ } else {
1365
+ tmp = JSON.clone(conf)
1366
+ }
1367
+ return tmp
1368
+ };
1369
+ e.emit('complete', instance);
1370
+ });
1371
+ } catch(loadErr) {
1372
+ console.error('[ FRAMEWORK ] Model loading failed: ' + (loadErr.stack||loadErr.message));
1373
+ e.emit('complete', instance);
1374
+ }
1341
1375
  }
1342
1376
  // -- EO
1343
1377
 
@@ -494,7 +494,8 @@ function ServerEngineClass(options) {
494
494
 
495
495
  request.originalUrl = request.url;
496
496
  // #FI — dev-mode request timeline for Inspector Flow tab
497
- if (isCacheless) {
497
+ // Only initialized when the Inspector has been opened (process.gina._inspectorActive)
498
+ if (isCacheless && process.gina._inspectorActive) {
498
499
  request._devTimeline = { requestStart: Date.now(), entries: [] };
499
500
  }
500
501
  // From the original
@@ -607,37 +608,45 @@ function ServerEngineClass(options) {
607
608
  && request.method.toUpperCase() === 'GET'
608
609
  && /\/_gina\/inspector(\/.*)?$/.test(request.url)
609
610
  ) {
611
+ // Activate profiling on first Inspector access — one-way flag,
612
+ // stays true until bundle restart. QI (controller.js:257) gates
613
+ // on this; it must be true before any request is processed.
614
+ if (!process.gina._inspectorActive) process.gina._inspectorActive = true;
610
615
  var _inspBase = __dirname + '/asset/plugin/dist/vendor/gina/inspector';
611
616
  var _inspPath = request.url.replace(/^.*\/_gina\/inspector\/?/, '').split('?')[0];
612
617
  if (!_inspPath || _inspPath === '') _inspPath = 'index.html';
613
618
 
614
619
  var _inspMime = {
615
- 'html': 'text/html; charset=utf8',
616
- 'js': 'application/javascript; charset=utf8',
617
- 'css': 'text/css; charset=utf8',
618
- 'svg': 'image/svg+xml'
620
+ 'html': 'text/html; charset=utf8',
621
+ 'js': 'application/javascript; charset=utf8',
622
+ 'css': 'text/css; charset=utf8',
623
+ 'svg': 'image/svg+xml',
624
+ 'woff2': 'font/woff2',
625
+ 'woff': 'font/woff'
619
626
  };
620
627
  var _inspExt = _inspPath.split('.').pop();
621
628
  var _inspFile = _(_inspBase + '/' + _inspPath, true);
622
629
 
623
630
  if (fs.existsSync(_inspFile)) {
631
+ var _inspBinary = /^(woff2?|png|ico|gif|jpe?g)$/.test(_inspExt);
624
632
  var _inspHeaders = {
625
633
  'content-type': _inspMime[_inspExt] || 'application/octet-stream',
626
634
  'cache-control': 'no-cache, no-store, must-revalidate',
627
635
  'x-content-type-options': 'nosniff',
628
636
  'X-Powered-By': 'Gina/' + GINA_VERSION
629
637
  };
638
+ var _inspData = fs.readFileSync(_inspFile, _inspBinary ? undefined : 'utf8');
630
639
 
631
640
  // HTTP/2
632
641
  if (response.stream) {
633
642
  response.stream.respond({ ':status': 200, ..._inspHeaders });
634
- return response.stream.end(fs.readFileSync(_inspFile, 'utf8'));
643
+ return response.stream.end(_inspData);
635
644
  }
636
645
 
637
646
  // HTTP/1.1
638
647
  response.writeHead(200, _inspHeaders);
639
648
  console.info(request.method + ' [200] ' + request.url);
640
- return response.end(fs.readFileSync(_inspFile, 'utf8'));
649
+ return response.end(_inspData);
641
650
  }
642
651
  // Fall through to 404 if file not found
643
652
  }
@@ -648,6 +657,7 @@ function ServerEngineClass(options) {
648
657
  && request.method.toUpperCase() === 'GET'
649
658
  && /\/_gina\/logs$/.test(request.url)
650
659
  ) {
660
+ if (!process.gina._inspectorActive) process.gina._inspectorActive = true;
651
661
  var _ansiRe = /\x1B\[\d+m/g;
652
662
 
653
663
  var _sseHeaders = {
@@ -706,6 +716,7 @@ function ServerEngineClass(options) {
706
716
  && request.method.toUpperCase() === 'GET'
707
717
  && /\/_gina\/agent$/.test(request.url)
708
718
  ) {
719
+ if (!process.gina._inspectorActive) process.gina._inspectorActive = true;
709
720
  var _agAnsiRe = /\x1B\[\d+m/g;
710
721
 
711
722
  var _agHeaders = {
@@ -733,11 +744,22 @@ function ServerEngineClass(options) {
733
744
 
734
745
  _agWrite(':ok\n\n');
735
746
 
736
- // Send current snapshot immediately if available
747
+ // Send current snapshot immediately if available; otherwise
748
+ // send a lightweight "connected" frame so the Inspector shows
749
+ // the bundle identity without waiting for the first request.
737
750
  if (server._lastGinaData) {
738
751
  try {
739
752
  _agWrite('event: data\ndata: ' + JSON.stringify(server._lastGinaData) + '\n\n');
740
753
  } catch (e) {}
754
+ } else {
755
+ try {
756
+ var _initEnv = {
757
+ bundle : options.bundle || '',
758
+ env : env || ''
759
+ };
760
+ var _initPayload = { gina: { environment: _initEnv }, user: { environment: _initEnv } };
761
+ _agWrite('event: data\ndata: ' + JSON.stringify(_initPayload) + '\n\n');
762
+ } catch (e) {}
741
763
  }
742
764
 
743
765
  // Data updates — emitted by render-swig.js on every HTML render
@@ -2257,7 +2257,8 @@ function Server(options) {
2257
2257
  self.instance.all('*', function onInstance(request, response, next) {
2258
2258
 
2259
2259
  // #FI — dev-mode request timeline for Inspector Flow tab
2260
- if (self.isCacheless()) {
2260
+ // Only initialized when the Inspector has been opened (process.gina._inspectorActive)
2261
+ if (self.isCacheless() && process.gina._inspectorActive) {
2261
2262
  request._devTimeline = { requestStart: Date.now(), entries: [] };
2262
2263
  }
2263
2264
 
@@ -2337,25 +2338,32 @@ function Server(options) {
2337
2338
  && request.method.toUpperCase() === 'GET'
2338
2339
  && /\/_gina\/inspector(\/.*)?$/.test(request.url)
2339
2340
  ) {
2341
+ // Activate profiling on first Inspector access — one-way flag,
2342
+ // stays true until bundle restart. QI (controller.js:257) gates
2343
+ // on this; it must be true before any request is processed.
2344
+ if (!process.gina._inspectorActive) process.gina._inspectorActive = true;
2340
2345
  var _bmBase = __dirname + '/asset/plugin/dist/vendor/gina/inspector';
2341
2346
  var _bmPath = request.url.replace(/^.*\/_gina\/inspector\/?/, '').split('?')[0];
2342
2347
  if (!_bmPath || _bmPath === '') _bmPath = 'index.html';
2343
2348
 
2344
2349
  var _bmMime = {
2345
- 'html': 'text/html; charset=utf8',
2346
- 'js': 'application/javascript; charset=utf8',
2347
- 'css': 'text/css; charset=utf8',
2348
- 'svg': 'image/svg+xml'
2350
+ 'html': 'text/html; charset=utf8',
2351
+ 'js': 'application/javascript; charset=utf8',
2352
+ 'css': 'text/css; charset=utf8',
2353
+ 'svg': 'image/svg+xml',
2354
+ 'woff2': 'font/woff2',
2355
+ 'woff': 'font/woff'
2349
2356
  };
2350
2357
  var _bmExt = _bmPath.split('.').pop();
2351
2358
  var _bmFile = _(_bmBase + '/' + _bmPath, true);
2352
2359
 
2353
2360
  if (fs.existsSync(_bmFile)) {
2361
+ var _bmBinary = /^(woff2?|png|ico|gif|jpe?g)$/.test(_bmExt);
2354
2362
  response.setHeader('content-type', _bmMime[_bmExt] || 'application/octet-stream');
2355
2363
  response.setHeader('cache-control', 'no-cache, no-store, must-revalidate');
2356
2364
  response.setHeader('x-content-type-options', 'nosniff');
2357
2365
  console.info(request.method + ' [200] ' + request.url);
2358
- return response.end(fs.readFileSync(_bmFile, 'utf8'));
2366
+ return response.end(fs.readFileSync(_bmFile, _bmBinary ? undefined : 'utf8'));
2359
2367
  }
2360
2368
  // Fall through to 404 if file not found
2361
2369
  }
@@ -2366,6 +2374,7 @@ function Server(options) {
2366
2374
  && request.method.toUpperCase() === 'GET'
2367
2375
  && /\/_gina\/logs$/.test(request.url)
2368
2376
  ) {
2377
+ if (!process.gina._inspectorActive) process.gina._inspectorActive = true;
2369
2378
  var _ansiRe = /\x1B\[\d+m/g;
2370
2379
 
2371
2380
  response.setHeader('content-type', 'text/event-stream; charset=utf-8');
@@ -2410,6 +2419,7 @@ function Server(options) {
2410
2419
  && request.method.toUpperCase() === 'GET'
2411
2420
  && /\/_gina\/agent$/.test(request.url)
2412
2421
  ) {
2422
+ if (!process.gina._inspectorActive) process.gina._inspectorActive = true;
2413
2423
  var _agAnsiRe = /\x1B\[\d+m/g;
2414
2424
 
2415
2425
  response.setHeader('content-type', 'text/event-stream; charset=utf-8');
@@ -2419,11 +2429,22 @@ function Server(options) {
2419
2429
  response.setHeader('x-content-type-options', 'nosniff');
2420
2430
  response.write(':ok\n\n');
2421
2431
 
2422
- // Send current snapshot immediately if available
2432
+ // Send current snapshot immediately if available; otherwise
2433
+ // send a lightweight "connected" frame so the Inspector shows
2434
+ // the bundle identity without waiting for the first request.
2423
2435
  if (self.instance && self.instance._lastGinaData) {
2424
2436
  try {
2425
2437
  response.write('event: data\ndata: ' + JSON.stringify(self.instance._lastGinaData) + '\n\n');
2426
2438
  } catch (e) {}
2439
+ } else {
2440
+ try {
2441
+ var _initEnv = {
2442
+ bundle : self.appName || '',
2443
+ env : self.env || ''
2444
+ };
2445
+ var _initPayload = { gina: { environment: _initEnv }, user: { environment: _initEnv } };
2446
+ response.write('event: data\ndata: ' + JSON.stringify(_initPayload) + '\n\n');
2447
+ } catch (e) {}
2427
2448
  }
2428
2449
 
2429
2450
  // Data updates — emitted by render-swig.js on every HTML render
@@ -2908,6 +2929,8 @@ function Server(options) {
2908
2929
  */
2909
2930
  var processRequestData = function(request, response, next) {
2910
2931
 
2932
+
2933
+
2911
2934
  var bodyStr = null, obj = null, exception = null;
2912
2935
  // to compare with /core/controller/controller.js -> getParams()
2913
2936
  switch( request.method.toLowerCase() ) {
@@ -3091,6 +3114,7 @@ function Server(options) {
3091
3114
 
3092
3115
  obj = formatDataFromString(bodyStr);
3093
3116
 
3117
+
3094
3118
  if ( typeof(obj) != 'undefined' && obj.count() == 0 && bodyStr.length > 1 ) {
3095
3119
  try {
3096
3120
  request.put = merge(request.put, obj);
@@ -3122,8 +3146,10 @@ function Server(options) {
3122
3146
  }
3123
3147
 
3124
3148
  if ( obj && typeof(obj) != 'undefined' && obj.count() > 0 ) {
3125
- // still need this to allow compatibility with express & connect middlewares
3149
+
3150
+ // still need this to allow compatibility with express & connect middlewares
3126
3151
  request.body = request.put = merge(request.put, obj);
3152
+
3127
3153
  }
3128
3154
 
3129
3155
 
@@ -3672,6 +3698,7 @@ function Server(options) {
3672
3698
  var _origParams = Object.assign({}, req.params);
3673
3699
  var _origReqMethod = (typeof(req[_reqMethodKey]) != "undefined") ? Object.assign({}, req[_reqMethodKey]) : undefined;
3674
3700
 
3701
+
3675
3702
  out:
3676
3703
  for (let name in routing) {
3677
3704
  // skip non-object entries (e.g. $schema annotations in routing.json)
@@ -3700,7 +3727,7 @@ function Server(options) {
3700
3727
  // matching; leftover values cause parseRouting lines 396-407 to inject
3701
3728
  // phantom segments, compounding work on each subsequent compareUrls call.
3702
3729
  req.params = Object.assign({}, _origParams);
3703
- delete req[_reqMethodKey];
3730
+ req[_reqMethodKey] = _origReqMethod ? Object.assign({}, _origReqMethod) : {};
3704
3731
 
3705
3732
  // Updating hostname
3706
3733
  // if (
@@ -3869,6 +3896,20 @@ function Server(options) {
3869
3896
  // Restore req[method] if deleted during route matching (#fix: routes without URL params)
3870
3897
  if (typeof(req[_reqMethodKey]) == "undefined") {
3871
3898
  req[_reqMethodKey] = _origReqMethod || {};
3899
+ } else if (
3900
+ _origReqMethod && typeof(_origReqMethod) == "object"
3901
+ && ["get", "put", "post", "patch", "delete"].indexOf(_reqMethodKey) > -1
3902
+ && _origReqMethod.count() > 0
3903
+ ) {
3904
+ // compareUrls recreates req[method] with only URL params, discarding
3905
+ // body data parsed by processRequestData (or query params for GET). Merge back in.
3906
+ // URL params (in req[method]) take precedence over original values.
3907
+ var _bodyKeys = Object.keys(_origReqMethod);
3908
+ for (var _bk = 0; _bk < _bodyKeys.length; ++_bk) {
3909
+ if (typeof(req[_reqMethodKey][_bodyKeys[_bk]]) == "undefined") {
3910
+ req[_reqMethodKey][_bodyKeys[_bk]] = _origReqMethod[_bodyKeys[_bk]];
3911
+ }
3912
+ }
3872
3913
  }
3873
3914
 
3874
3915
  // #FI — route matching end
@@ -204,6 +204,7 @@ function ContextHelper(contexts) {
204
204
  var frameworkPath = getEnvVar('GINA_FRAMEWORK_DIR');
205
205
  setPath('framework', frameworkPath);
206
206
  setPath('gina.core', getEnvVar('GINA_CORE'));
207
+ setPath('gina.home', getEnvVar('GINA_HOMEDIR'));
207
208
  setPath('gina.lib', _(frameworkPath +'/lib'));
208
209
  setPath('gina.helpers', _(frameworkPath +'/helpers'));
209
210
  setPath( 'node', _(process.argv[0]), true);
@@ -345,7 +345,6 @@ function Add(opt, cmd) {
345
345
  "_comment" : "Your comment goes here.",
346
346
  "version" : version,
347
347
  "tag" : ( version.split('.') ).join(''),
348
- "gina_version": getEnvVar('GINA_VERSION'),
349
348
  "src" : "src/" + local.bundle,
350
349
  "link" : "bundles/"+ local.bundle,
351
350
  "releases" : {}
@@ -144,7 +144,7 @@ function Start(opt, cmd) {
144
144
  nodeModulesPathObj.existsSync()
145
145
  && nodeModulesContentArr.length == 1
146
146
  && nodeModulesContentArr[0] == 'gina'
147
- && typeof(pack.dependencies) != 'object'
147
+ && typeof(pack.dependencies) == 'object'
148
148
  && pack.dependencies.count() > 0
149
149
  ) {
150
150
  if (scope == "local")
@@ -266,6 +266,16 @@ function Start(opt, cmd) {
266
266
 
267
267
  var bundle = (isBulkStart) ? self.bundles[bundleIndex] : self.name;
268
268
  // terminal.debug('bundle -> ', bundle);
269
+
270
+ var msg = null;
271
+ if ( !isBulkStart && !isDefined('bundle', bundle) ) {
272
+ msg = 'Bundle [ '+ bundle +' ] is not registered inside `@'+ self.projectName +'`.\nDid you run `gina bundle:add '+ bundle +' @'+ self.projectName +'` first?';
273
+ terminal.error(msg);
274
+
275
+ opt.msg = msg;
276
+ return end(opt, cmd, isBulkStart, bundleIndex, true)
277
+ }
278
+
269
279
  var env = ( typeof(self.bundlesByProject[self.projectName][bundle].def_env) != 'undefined') ? self.bundlesByProject[self.projectName][bundle].def_env : self.defaultEnv;
270
280
  var scope = ( typeof(self.bundlesByProject[self.projectName][bundle].def_scope) != 'undefined') ? self.bundlesByProject[self.projectName][bundle].def_scpoe : self.defaultScope;
271
281
  // terminal.debug('env -> ', env);
@@ -276,18 +286,6 @@ function Start(opt, cmd) {
276
286
  var bundlePort = self.portsReverseData[bundle + '@' + self.projectName][env][protocol][scheme];
277
287
  // terminal.debug('port -> ', bundlePort);
278
288
 
279
- var msg = null;
280
- if ( !isBulkStart && !isDefined('bundle', bundle) ) {
281
- msg = 'Bundle [ '+ bundle +' ] is not registered inside `@'+ self.projectName +'`';
282
- terminal.error(msg);
283
- // opt.client.write(msg);
284
- // // CMD exit
285
- // opt.client.emit('end');
286
-
287
- opt.msg = msg;
288
- return end(opt, cmd, isBulkStart, bundleIndex, true)
289
- }
290
-
291
289
  var isStarting = false
292
290
  , params = null
293
291
  , index = null
@@ -99,7 +99,16 @@ function Restart(opt, cmd) {
99
99
  console.debug('out => ', out);
100
100
  // TODO - retrieve running bundles with its options & restart
101
101
  } catch (err) {
102
- throw err;
102
+ // gina start may exit non-zero when Node.js writes benign
103
+ // warnings (e.g., ExperimentalWarning) to stderr while the
104
+ // daemon actually started in the background.
105
+ // Check for the PID file before treating this as a failure.
106
+ var pidFile = _(GINA_RUNDIR + '/gina-v' + self.version + '.pid', true);
107
+ if ( fs.existsSync(pidFile) ) {
108
+ console.debug('Framework v'+ self.version +' restarted successfully');
109
+ } else {
110
+ throw err;
111
+ }
103
112
  }
104
113
  }, 100);
105
114