gina 0.5.4 → 0.5.5

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 (498) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +12 -12
  3. package/ROADMAP.md +11 -6
  4. package/bin/cli-debug +7 -1
  5. package/bin/gina +25 -4
  6. package/framework/v0.5.5/VERSION +1 -0
  7. package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/js/gina.js +85 -30
  8. package/framework/v0.5.5/core/asset/plugin/dist/vendor/gina/js/gina.min.js +573 -0
  9. package/framework/v0.5.5/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  10. package/framework/v0.5.5/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  11. package/framework/{v0.5.4 → v0.5.5}/core/config.js +18 -4
  12. package/framework/{v0.5.4 → v0.5.5}/core/controller/controller.js +48 -6
  13. package/framework/{v0.5.4 → v0.5.5}/core/gna.js +70 -4
  14. package/framework/{v0.5.4 → v0.5.5}/core/server.isaac.js +115 -6
  15. package/framework/{v0.5.4 → v0.5.5}/core/server.js +74 -0
  16. package/framework/{v0.5.4 → v0.5.5}/lib/archiver/src/main.js +109 -0
  17. package/framework/v0.5.5/lib/cmd/bundle/man.js +10 -0
  18. package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/start.js +17 -3
  19. package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/status.js +22 -10
  20. package/framework/v0.5.5/lib/cmd/framework/add.js +498 -0
  21. package/framework/v0.5.5/lib/cmd/framework/arguments.json +13 -0
  22. package/framework/v0.5.5/lib/cmd/framework/help.txt +62 -0
  23. package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/init.js +52 -10
  24. package/framework/v0.5.5/lib/cmd/framework/list.js +352 -0
  25. package/framework/v0.5.5/lib/cmd/framework/man.js +9 -0
  26. package/framework/v0.5.5/lib/cmd/framework/remove.js +411 -0
  27. package/framework/v0.5.5/lib/cmd/framework/reset.js +206 -0
  28. package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/tail.js +9 -1
  29. package/framework/v0.5.5/lib/cmd/framework/update.js +477 -0
  30. package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/version.js +12 -1
  31. package/framework/{v0.5.4 → v0.5.5}/lib/cmd/gina-framework.1.md +10 -1
  32. package/framework/{v0.5.4 → v0.5.5}/lib/cmd/helper.js +4 -2
  33. package/framework/v0.5.5/lib/cmd/man-render.js +144 -0
  34. package/framework/{v0.5.4 → v0.5.5}/lib/cmd/project/arguments.json +2 -0
  35. package/framework/v0.5.5/lib/cmd/project/backup.js +228 -0
  36. package/framework/{v0.5.4 → v0.5.5}/lib/cmd/project/help.txt +18 -8
  37. package/framework/v0.5.5/lib/cmd/project/man.js +10 -0
  38. package/framework/v0.5.5/lib/cmd/project/move.js +215 -0
  39. package/framework/v0.5.5/lib/cmd/project/restore.js +221 -0
  40. package/framework/{v0.5.4 → v0.5.5}/lib/cmd/project/status.js +24 -12
  41. package/framework/v0.5.5/lib/cmd/service/man.js +10 -0
  42. package/framework/{v0.5.4 → v0.5.5}/lib/index.js +8 -0
  43. package/framework/{v0.5.4 → v0.5.5}/lib/logger/src/containers/mq/listener.js +6 -1
  44. package/framework/{v0.5.4 → v0.5.5}/lib/proc.js +7 -0
  45. package/framework/v0.5.5/lib/ws-query/package.json +10 -0
  46. package/framework/v0.5.5/lib/ws-query/src/main.js +145 -0
  47. package/framework/{v0.5.4 → v0.5.5}/package.json +2 -2
  48. package/gna.js +4 -4
  49. package/llms.txt +20 -4
  50. package/package.json +8 -6
  51. package/script/post_install.js +7 -1
  52. package/script/smoke_in_container.js +336 -0
  53. package/script/smoke_test_tarball.js +283 -0
  54. package/utils/helper.js +34 -7
  55. package/utils/runtime.js +103 -0
  56. package/framework/v0.5.4/VERSION +0 -1
  57. package/framework/v0.5.4/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -572
  58. package/framework/v0.5.4/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  59. package/framework/v0.5.4/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  60. package/framework/v0.5.4/lib/cmd/framework/arguments.json +0 -7
  61. package/framework/v0.5.4/lib/cmd/framework/help.txt +0 -36
  62. package/framework/v0.5.4/lib/cmd/framework/update.js +0 -0
  63. package/framework/v0.5.4/lib/cmd/project/move.js +0 -0
  64. /package/framework/{v0.5.4 → v0.5.5}/AUTHORS +0 -0
  65. /package/framework/{v0.5.4 → v0.5.5}/LICENSE +0 -0
  66. /package/framework/{v0.5.4 → v0.5.5}/core/asset/html/nolayout.html +0 -0
  67. /package/framework/{v0.5.4 → v0.5.5}/core/asset/html/static.html +0 -0
  68. /package/framework/{v0.5.4 → v0.5.5}/core/asset/img/android-chrome-192x192.png +0 -0
  69. /package/framework/{v0.5.4 → v0.5.5}/core/asset/img/android-chrome-512x512.png +0 -0
  70. /package/framework/{v0.5.4 → v0.5.5}/core/asset/img/apple-touch-icon.png +0 -0
  71. /package/framework/{v0.5.4 → v0.5.5}/core/asset/img/favicon-16x16.png +0 -0
  72. /package/framework/{v0.5.4 → v0.5.5}/core/asset/img/favicon-32x32.png +0 -0
  73. /package/framework/{v0.5.4 → v0.5.5}/core/asset/img/favicon.ico +0 -0
  74. /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/README.md +0 -0
  75. /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  76. /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  77. /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  78. /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  79. /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  80. /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  81. /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
  82. /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  83. /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  84. /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  85. /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
  86. /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
  87. /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
  88. /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  89. /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
  90. /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  91. /package/framework/{v0.5.4 → v0.5.5}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  92. /package/framework/{v0.5.4 → v0.5.5}/core/connectors/ai/index.js +0 -0
  93. /package/framework/{v0.5.4 → v0.5.5}/core/connectors/ai/lib/connector.js +0 -0
  94. /package/framework/{v0.5.4 → v0.5.5}/core/connectors/couchbase/index.js +0 -0
  95. /package/framework/{v0.5.4 → v0.5.5}/core/connectors/couchbase/lib/connector.js +0 -0
  96. /package/framework/{v0.5.4 → v0.5.5}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  97. /package/framework/{v0.5.4 → v0.5.5}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  98. /package/framework/{v0.5.4 → v0.5.5}/core/connectors/couchbase/lib/n1ql.js +0 -0
  99. /package/framework/{v0.5.4 → v0.5.5}/core/connectors/couchbase/lib/session-store.js +0 -0
  100. /package/framework/{v0.5.4 → v0.5.5}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  101. /package/framework/{v0.5.4 → v0.5.5}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  102. /package/framework/{v0.5.4 → v0.5.5}/core/connectors/mongodb/index.js +0 -0
  103. /package/framework/{v0.5.4 → v0.5.5}/core/connectors/mongodb/lib/connector.js +0 -0
  104. /package/framework/{v0.5.4 → v0.5.5}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
  105. /package/framework/{v0.5.4 → v0.5.5}/core/connectors/mongodb/lib/session-store.js +0 -0
  106. /package/framework/{v0.5.4 → v0.5.5}/core/connectors/mysql/index.js +0 -0
  107. /package/framework/{v0.5.4 → v0.5.5}/core/connectors/mysql/lib/connector.js +0 -0
  108. /package/framework/{v0.5.4 → v0.5.5}/core/connectors/postgresql/index.js +0 -0
  109. /package/framework/{v0.5.4 → v0.5.5}/core/connectors/postgresql/lib/connector.js +0 -0
  110. /package/framework/{v0.5.4 → v0.5.5}/core/connectors/redis/index.js +0 -0
  111. /package/framework/{v0.5.4 → v0.5.5}/core/connectors/redis/lib/session-store.js +0 -0
  112. /package/framework/{v0.5.4 → v0.5.5}/core/connectors/scylladb/index.js +0 -0
  113. /package/framework/{v0.5.4 → v0.5.5}/core/connectors/scylladb/lib/connector.js +0 -0
  114. /package/framework/{v0.5.4 → v0.5.5}/core/connectors/scylladb/lib/session-store.js +0 -0
  115. /package/framework/{v0.5.4 → v0.5.5}/core/connectors/sql-parser.js +0 -0
  116. /package/framework/{v0.5.4 → v0.5.5}/core/connectors/sqlite/index.js +0 -0
  117. /package/framework/{v0.5.4 → v0.5.5}/core/connectors/sqlite/lib/connector.js +0 -0
  118. /package/framework/{v0.5.4 → v0.5.5}/core/connectors/sqlite/lib/session-store.js +0 -0
  119. /package/framework/{v0.5.4 → v0.5.5}/core/content.encoding +0 -0
  120. /package/framework/{v0.5.4 → v0.5.5}/core/controller/controller.framework.js +0 -0
  121. /package/framework/{v0.5.4 → v0.5.5}/core/controller/controller.render-json.js +0 -0
  122. /package/framework/{v0.5.4 → v0.5.5}/core/controller/controller.render-nunjucks-async.js +0 -0
  123. /package/framework/{v0.5.4 → v0.5.5}/core/controller/controller.render-nunjucks.js +0 -0
  124. /package/framework/{v0.5.4 → v0.5.5}/core/controller/controller.render-stream.js +0 -0
  125. /package/framework/{v0.5.4 → v0.5.5}/core/controller/controller.render-swig-async.js +0 -0
  126. /package/framework/{v0.5.4 → v0.5.5}/core/controller/controller.render-swig.js +0 -0
  127. /package/framework/{v0.5.4 → v0.5.5}/core/controller/controller.render-v1.js +0 -0
  128. /package/framework/{v0.5.4 → v0.5.5}/core/controller/index.js +0 -0
  129. /package/framework/{v0.5.4 → v0.5.5}/core/controller/inspector-window-emit.js +0 -0
  130. /package/framework/{v0.5.4 → v0.5.5}/core/deps/busboy-1.6.0/LICENSE +0 -0
  131. /package/framework/{v0.5.4 → v0.5.5}/core/deps/busboy-1.6.0/README.md +0 -0
  132. /package/framework/{v0.5.4 → v0.5.5}/core/deps/busboy-1.6.0/lib/index.js +0 -0
  133. /package/framework/{v0.5.4 → v0.5.5}/core/deps/busboy-1.6.0/lib/types/multipart.js +0 -0
  134. /package/framework/{v0.5.4 → v0.5.5}/core/deps/busboy-1.6.0/lib/types/urlencoded.js +0 -0
  135. /package/framework/{v0.5.4 → v0.5.5}/core/deps/busboy-1.6.0/lib/utils.js +0 -0
  136. /package/framework/{v0.5.4 → v0.5.5}/core/deps/busboy-1.6.0/package.json +0 -0
  137. /package/framework/{v0.5.4 → v0.5.5}/core/deps/streamsearch-1.1.0/LICENSE +0 -0
  138. /package/framework/{v0.5.4 → v0.5.5}/core/deps/streamsearch-1.1.0/lib/sbmh.js +0 -0
  139. /package/framework/{v0.5.4 → v0.5.5}/core/deps/streamsearch-1.1.0/package.json +0 -0
  140. /package/framework/{v0.5.4 → v0.5.5}/core/dev/index.js +0 -0
  141. /package/framework/{v0.5.4 → v0.5.5}/core/dev/lib/class.js +0 -0
  142. /package/framework/{v0.5.4 → v0.5.5}/core/dev/lib/factory.js +0 -0
  143. /package/framework/{v0.5.4 → v0.5.5}/core/dev/lib/tools.js +0 -0
  144. /package/framework/{v0.5.4 → v0.5.5}/core/locales/README.md +0 -0
  145. /package/framework/{v0.5.4 → v0.5.5}/core/locales/currency.json +0 -0
  146. /package/framework/{v0.5.4 → v0.5.5}/core/locales/dist/language/en.json +0 -0
  147. /package/framework/{v0.5.4 → v0.5.5}/core/locales/dist/language/fr.json +0 -0
  148. /package/framework/{v0.5.4 → v0.5.5}/core/locales/dist/region/en.json +0 -0
  149. /package/framework/{v0.5.4 → v0.5.5}/core/locales/dist/region/fr.json +0 -0
  150. /package/framework/{v0.5.4 → v0.5.5}/core/locales/index.js +0 -0
  151. /package/framework/{v0.5.4 → v0.5.5}/core/mime.types +0 -0
  152. /package/framework/{v0.5.4 → v0.5.5}/core/model/entity.js +0 -0
  153. /package/framework/{v0.5.4 → v0.5.5}/core/model/index.js +0 -0
  154. /package/framework/{v0.5.4 → v0.5.5}/core/model/template/entityFactory.js +0 -0
  155. /package/framework/{v0.5.4 → v0.5.5}/core/model/template/index.js +0 -0
  156. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/README.md +0 -0
  157. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/index.js +0 -0
  158. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/csrf/README.md +0 -0
  159. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/csrf/package.json +0 -0
  160. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/csrf/src/main.js +0 -0
  161. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/README.md +0 -0
  162. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/coep/README.md +0 -0
  163. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/coep/package.json +0 -0
  164. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
  165. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/coop/README.md +0 -0
  166. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/coop/package.json +0 -0
  167. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
  168. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/corp/README.md +0 -0
  169. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/corp/package.json +0 -0
  170. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
  171. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/csp/README.md +0 -0
  172. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/csp/package.json +0 -0
  173. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
  174. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
  175. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
  176. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
  177. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/hsts/README.md +0 -0
  178. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/hsts/package.json +0 -0
  179. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
  180. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
  181. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
  182. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
  183. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/package.json +0 -0
  184. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
  185. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
  186. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
  187. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/src/main.js +0 -0
  188. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
  189. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
  190. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
  191. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
  192. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
  193. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
  194. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
  195. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
  196. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
  197. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
  198. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
  199. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
  200. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
  201. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
  202. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
  203. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
  204. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
  205. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
  206. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/session/README.md +0 -0
  207. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/session/package.json +0 -0
  208. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/session/src/main.js +0 -0
  209. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/storage/README.md +0 -0
  210. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/storage/build.json +0 -0
  211. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/storage/package.json +0 -0
  212. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/storage/src/main.js +0 -0
  213. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/validator/README.md +0 -0
  214. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/validator/build.json +0 -0
  215. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/validator/package.json +0 -0
  216. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/validator/src/form-validator.js +0 -0
  217. /package/framework/{v0.5.4 → v0.5.5}/core/plugins/lib/validator/src/main.js +0 -0
  218. /package/framework/{v0.5.4 → v0.5.5}/core/router.js +0 -0
  219. /package/framework/{v0.5.4 → v0.5.5}/core/server.express.js +0 -0
  220. /package/framework/{v0.5.4 → v0.5.5}/core/status.codes +0 -0
  221. /package/framework/{v0.5.4 → v0.5.5}/core/template/_gitignore +0 -0
  222. /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle/config/app.json +0 -0
  223. /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  224. /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle/config/routing.json +0 -0
  225. /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle/config/settings.json +0 -0
  226. /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  227. /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle/config/templates.json +0 -0
  228. /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  229. /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  230. /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  231. /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  232. /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle/index.js +0 -0
  233. /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle/locales/en.json +0 -0
  234. /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  235. /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  236. /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  237. /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  238. /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  239. /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  240. /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
  241. /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle_public/readme.md +0 -0
  242. /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle_public/sw.js +0 -0
  243. /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  244. /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  245. /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  246. /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  247. /package/framework/{v0.5.4 → v0.5.5}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  248. /package/framework/{v0.5.4 → v0.5.5}/core/template/command/gina.bat.tpl +0 -0
  249. /package/framework/{v0.5.4 → v0.5.5}/core/template/command/gina.tpl +0 -0
  250. /package/framework/{v0.5.4 → v0.5.5}/core/template/conf/env.json +0 -0
  251. /package/framework/{v0.5.4 → v0.5.5}/core/template/conf/manifest.json +0 -0
  252. /package/framework/{v0.5.4 → v0.5.5}/core/template/conf/package.json +0 -0
  253. /package/framework/{v0.5.4 → v0.5.5}/core/template/conf/settings.json +0 -0
  254. /package/framework/{v0.5.4 → v0.5.5}/core/template/conf/statics.json +0 -0
  255. /package/framework/{v0.5.4 → v0.5.5}/core/template/conf/templates.json +0 -0
  256. /package/framework/{v0.5.4 → v0.5.5}/core/template/error/client/json/401.json +0 -0
  257. /package/framework/{v0.5.4 → v0.5.5}/core/template/error/client/json/403.json +0 -0
  258. /package/framework/{v0.5.4 → v0.5.5}/core/template/error/client/json/404.json +0 -0
  259. /package/framework/{v0.5.4 → v0.5.5}/core/template/error/server/html/50x.html +0 -0
  260. /package/framework/{v0.5.4 → v0.5.5}/core/template/error/server/json/500.json +0 -0
  261. /package/framework/{v0.5.4 → v0.5.5}/core/template/error/server/json/503.json +0 -0
  262. /package/framework/{v0.5.4 → v0.5.5}/core/template/extensions/logger/config.json +0 -0
  263. /package/framework/{v0.5.4 → v0.5.5}/helpers/console.js +0 -0
  264. /package/framework/{v0.5.4 → v0.5.5}/helpers/context.js +0 -0
  265. /package/framework/{v0.5.4 → v0.5.5}/helpers/data/LICENSE +0 -0
  266. /package/framework/{v0.5.4 → v0.5.5}/helpers/data/README.md +0 -0
  267. /package/framework/{v0.5.4 → v0.5.5}/helpers/data/package.json +0 -0
  268. /package/framework/{v0.5.4 → v0.5.5}/helpers/data/src/main.js +0 -0
  269. /package/framework/{v0.5.4 → v0.5.5}/helpers/dateFormat.js +0 -0
  270. /package/framework/{v0.5.4 → v0.5.5}/helpers/index.js +0 -0
  271. /package/framework/{v0.5.4 → v0.5.5}/helpers/json/LICENSE +0 -0
  272. /package/framework/{v0.5.4 → v0.5.5}/helpers/json/README.md +0 -0
  273. /package/framework/{v0.5.4 → v0.5.5}/helpers/json/package.json +0 -0
  274. /package/framework/{v0.5.4 → v0.5.5}/helpers/json/src/main.js +0 -0
  275. /package/framework/{v0.5.4 → v0.5.5}/helpers/path.js +0 -0
  276. /package/framework/{v0.5.4 → v0.5.5}/helpers/plugins/README.md +0 -0
  277. /package/framework/{v0.5.4 → v0.5.5}/helpers/plugins/package.json +0 -0
  278. /package/framework/{v0.5.4 → v0.5.5}/helpers/plugins/src/api-error.js +0 -0
  279. /package/framework/{v0.5.4 → v0.5.5}/helpers/plugins/src/main.js +0 -0
  280. /package/framework/{v0.5.4 → v0.5.5}/helpers/prototypes.js +0 -0
  281. /package/framework/{v0.5.4 → v0.5.5}/helpers/task.js +0 -0
  282. /package/framework/{v0.5.4 → v0.5.5}/helpers/text.js +0 -0
  283. /package/framework/{v0.5.4 → v0.5.5}/lib/admin/package.json +0 -0
  284. /package/framework/{v0.5.4 → v0.5.5}/lib/admin/src/main.js +0 -0
  285. /package/framework/{v0.5.4 → v0.5.5}/lib/archiver/README.md +0 -0
  286. /package/framework/{v0.5.4 → v0.5.5}/lib/archiver/build.json +0 -0
  287. /package/framework/{v0.5.4 → v0.5.5}/lib/archiver/package.json +0 -0
  288. /package/framework/{v0.5.4 → v0.5.5}/lib/archiver/src/dep/jszip.min.js +0 -0
  289. /package/framework/{v0.5.4 → v0.5.5}/lib/async/package.json +0 -0
  290. /package/framework/{v0.5.4 → v0.5.5}/lib/async/src/main.js +0 -0
  291. /package/framework/{v0.5.4 → v0.5.5}/lib/cache/README.md +0 -0
  292. /package/framework/{v0.5.4 → v0.5.5}/lib/cache/build.json +0 -0
  293. /package/framework/{v0.5.4 → v0.5.5}/lib/cache/package.json +0 -0
  294. /package/framework/{v0.5.4 → v0.5.5}/lib/cache/src/main.js +0 -0
  295. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/aliases.json +0 -0
  296. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/add.js +0 -0
  297. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/arguments.json +0 -0
  298. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/build.js +0 -0
  299. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/copy.js +0 -0
  300. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/cp.js +0 -0
  301. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/help.js +0 -0
  302. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/help.txt +0 -0
  303. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
  304. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/list.js +0 -0
  305. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/mcp-start.js +0 -0
  306. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/mcp.js +0 -0
  307. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/oas.js +0 -0
  308. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/openapi.js +0 -0
  309. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/remove.js +0 -0
  310. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/rename.js +0 -0
  311. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/restart.js +0 -0
  312. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/rm.js +0 -0
  313. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/bundle/stop.js +0 -0
  314. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/cache/stats.js +0 -0
  315. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/connector/add.js +0 -0
  316. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/connector/arguments.json +0 -0
  317. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/connector/help.js +0 -0
  318. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/connector/help.txt +0 -0
  319. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/connector/list.js +0 -0
  320. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/connector/migrate.js +0 -0
  321. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/connector/remove.js +0 -0
  322. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/connector/rm.js +0 -0
  323. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/env/add.js +0 -0
  324. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/env/get.js +0 -0
  325. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/env/help.js +0 -0
  326. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/env/help.txt +0 -0
  327. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/env/link-dev.js +0 -0
  328. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/env/list.js +0 -0
  329. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/env/remove.js +0 -0
  330. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/env/rm.js +0 -0
  331. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/env/set.js +0 -0
  332. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/env/unset.js +0 -0
  333. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/env/use.js +0 -0
  334. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/build.js +0 -0
  335. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/dot.js +0 -0
  336. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/get.js +0 -0
  337. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/help.js +0 -0
  338. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/link-node-modules.js +0 -0
  339. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/link.js +0 -0
  340. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/msg.json +0 -0
  341. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/open.js +0 -0
  342. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/restart.js +0 -0
  343. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/set.js +0 -0
  344. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/start.js +0 -0
  345. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/status.js +0 -0
  346. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/framework/stop.js +0 -0
  347. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/gina-dev.1.md +0 -0
  348. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/gina.1.md +0 -0
  349. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/i18n/add.js +0 -0
  350. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/i18n/arguments.json +0 -0
  351. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/i18n/export.js +0 -0
  352. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/i18n/help.js +0 -0
  353. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/i18n/help.txt +0 -0
  354. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/i18n/import.js +0 -0
  355. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/i18n/scan.js +0 -0
  356. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/index.js +0 -0
  357. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/inspector/help.js +0 -0
  358. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/inspector/help.txt +0 -0
  359. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/inspector/open.js +0 -0
  360. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/minion/arguments.json +0 -0
  361. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/minion/help.js +0 -0
  362. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/minion/help.txt +0 -0
  363. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/minion/kill.js +0 -0
  364. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/minion/list.js +0 -0
  365. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/msg.json +0 -0
  366. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/port/help.js +0 -0
  367. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/port/help.txt +0 -0
  368. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/port/inc/scan.js +0 -0
  369. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/port/list.js +0 -0
  370. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/port/reset.js +0 -0
  371. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/port/set.js +0 -0
  372. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/project/add.js +0 -0
  373. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/project/build.js +0 -0
  374. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/project/help.js +0 -0
  375. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/project/import.js +0 -0
  376. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/project/list.js +0 -0
  377. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/project/remove.js +0 -0
  378. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/project/rename.js +0 -0
  379. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/project/restart.js +0 -0
  380. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/project/rm.js +0 -0
  381. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/project/start.js +0 -0
  382. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/project/stop.js +0 -0
  383. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/protocol/arguments.json +0 -0
  384. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/protocol/help.js +0 -0
  385. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/protocol/help.txt +0 -0
  386. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/protocol/list.js +0 -0
  387. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/protocol/remove.js +0 -0
  388. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/protocol/set.js +0 -0
  389. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/scope/add.js +0 -0
  390. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/scope/help.js +0 -0
  391. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/scope/help.txt +0 -0
  392. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/scope/link-local.js +0 -0
  393. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/scope/link-production.js +0 -0
  394. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/scope/list.js +0 -0
  395. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/scope/remove.js +0 -0
  396. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/scope/rm.js +0 -0
  397. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/scope/use.js +0 -0
  398. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/secrets/arguments.json +0 -0
  399. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/secrets/check.js +0 -0
  400. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/secrets/help.js +0 -0
  401. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/secrets/help.txt +0 -0
  402. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/secrets/scan.js +0 -0
  403. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/service/help.js +0 -0
  404. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/service/help.txt +0 -0
  405. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/service/list.js +0 -0
  406. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/service/start.js +0 -0
  407. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd/view/add.js +0 -0
  408. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd-status-format/package.json +0 -0
  409. /package/framework/{v0.5.4 → v0.5.5}/lib/cmd-status-format/src/main.js +0 -0
  410. /package/framework/{v0.5.4 → v0.5.5}/lib/collection/README.md +0 -0
  411. /package/framework/{v0.5.4 → v0.5.5}/lib/collection/build.json +0 -0
  412. /package/framework/{v0.5.4 → v0.5.5}/lib/collection/package.json +0 -0
  413. /package/framework/{v0.5.4 → v0.5.5}/lib/collection/src/main.js +0 -0
  414. /package/framework/{v0.5.4 → v0.5.5}/lib/config.js +0 -0
  415. /package/framework/{v0.5.4 → v0.5.5}/lib/connector-registry/package.json +0 -0
  416. /package/framework/{v0.5.4 → v0.5.5}/lib/connector-registry/src/main.js +0 -0
  417. /package/framework/{v0.5.4 → v0.5.5}/lib/cron/README.md +0 -0
  418. /package/framework/{v0.5.4 → v0.5.5}/lib/cron/package.json +0 -0
  419. /package/framework/{v0.5.4 → v0.5.5}/lib/cron/src/main.js +0 -0
  420. /package/framework/{v0.5.4 → v0.5.5}/lib/domain/LICENSE +0 -0
  421. /package/framework/{v0.5.4 → v0.5.5}/lib/domain/README.md +0 -0
  422. /package/framework/{v0.5.4 → v0.5.5}/lib/domain/package.json +0 -0
  423. /package/framework/{v0.5.4 → v0.5.5}/lib/domain/src/main.js +0 -0
  424. /package/framework/{v0.5.4 → v0.5.5}/lib/generator/index.js +0 -0
  425. /package/framework/{v0.5.4 → v0.5.5}/lib/i18n/package.json +0 -0
  426. /package/framework/{v0.5.4 → v0.5.5}/lib/i18n/src/main.js +0 -0
  427. /package/framework/{v0.5.4 → v0.5.5}/lib/inherits/LICENSE +0 -0
  428. /package/framework/{v0.5.4 → v0.5.5}/lib/inherits/README.md +0 -0
  429. /package/framework/{v0.5.4 → v0.5.5}/lib/inherits/package.json +0 -0
  430. /package/framework/{v0.5.4 → v0.5.5}/lib/inherits/src/main.js +0 -0
  431. /package/framework/{v0.5.4 → v0.5.5}/lib/inspector-redact/package.json +0 -0
  432. /package/framework/{v0.5.4 → v0.5.5}/lib/inspector-redact/src/main.js +0 -0
  433. /package/framework/{v0.5.4 → v0.5.5}/lib/instrument/package.json +0 -0
  434. /package/framework/{v0.5.4 → v0.5.5}/lib/instrument/src/main.js +0 -0
  435. /package/framework/{v0.5.4 → v0.5.5}/lib/job/package.json +0 -0
  436. /package/framework/{v0.5.4 → v0.5.5}/lib/job/src/main.js +0 -0
  437. /package/framework/{v0.5.4 → v0.5.5}/lib/logger/README.md +0 -0
  438. /package/framework/{v0.5.4 → v0.5.5}/lib/logger/package.json +0 -0
  439. /package/framework/{v0.5.4 → v0.5.5}/lib/logger/src/containers/default/index.js +0 -0
  440. /package/framework/{v0.5.4 → v0.5.5}/lib/logger/src/containers/file/index.js +0 -0
  441. /package/framework/{v0.5.4 → v0.5.5}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  442. /package/framework/{v0.5.4 → v0.5.5}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  443. /package/framework/{v0.5.4 → v0.5.5}/lib/logger/src/containers/mq/index.js +0 -0
  444. /package/framework/{v0.5.4 → v0.5.5}/lib/logger/src/containers/mq/speaker.js +0 -0
  445. /package/framework/{v0.5.4 → v0.5.5}/lib/logger/src/helper.js +0 -0
  446. /package/framework/{v0.5.4 → v0.5.5}/lib/logger/src/main.js +0 -0
  447. /package/framework/{v0.5.4 → v0.5.5}/lib/math/index.js +0 -0
  448. /package/framework/{v0.5.4 → v0.5.5}/lib/mcp-dispatch/package.json +0 -0
  449. /package/framework/{v0.5.4 → v0.5.5}/lib/mcp-dispatch/src/main.js +0 -0
  450. /package/framework/{v0.5.4 → v0.5.5}/lib/mcp-http/package.json +0 -0
  451. /package/framework/{v0.5.4 → v0.5.5}/lib/mcp-http/src/main.js +0 -0
  452. /package/framework/{v0.5.4 → v0.5.5}/lib/mcp-server/package.json +0 -0
  453. /package/framework/{v0.5.4 → v0.5.5}/lib/mcp-server/src/main.js +0 -0
  454. /package/framework/{v0.5.4 → v0.5.5}/lib/merge/README.md +0 -0
  455. /package/framework/{v0.5.4 → v0.5.5}/lib/merge/package.json +0 -0
  456. /package/framework/{v0.5.4 → v0.5.5}/lib/merge/src/main.js +0 -0
  457. /package/framework/{v0.5.4 → v0.5.5}/lib/metrics/package.json +0 -0
  458. /package/framework/{v0.5.4 → v0.5.5}/lib/metrics/src/main.js +0 -0
  459. /package/framework/{v0.5.4 → v0.5.5}/lib/model.js +0 -0
  460. /package/framework/{v0.5.4 → v0.5.5}/lib/nunjucks-filters/README.md +0 -0
  461. /package/framework/{v0.5.4 → v0.5.5}/lib/nunjucks-filters/package.json +0 -0
  462. /package/framework/{v0.5.4 → v0.5.5}/lib/nunjucks-filters/src/main.js +0 -0
  463. /package/framework/{v0.5.4 → v0.5.5}/lib/nunjucks-resolver/package.json +0 -0
  464. /package/framework/{v0.5.4 → v0.5.5}/lib/nunjucks-resolver/src/main.js +0 -0
  465. /package/framework/{v0.5.4 → v0.5.5}/lib/routing/README.md +0 -0
  466. /package/framework/{v0.5.4 → v0.5.5}/lib/routing/build.json +0 -0
  467. /package/framework/{v0.5.4 → v0.5.5}/lib/routing/package.json +0 -0
  468. /package/framework/{v0.5.4 → v0.5.5}/lib/routing/src/main.js +0 -0
  469. /package/framework/{v0.5.4 → v0.5.5}/lib/routing/src/radix.js +0 -0
  470. /package/framework/{v0.5.4 → v0.5.5}/lib/routing-introspect/package.json +0 -0
  471. /package/framework/{v0.5.4 → v0.5.5}/lib/routing-introspect/src/main.js +0 -0
  472. /package/framework/{v0.5.4 → v0.5.5}/lib/secrets/package.json +0 -0
  473. /package/framework/{v0.5.4 → v0.5.5}/lib/secrets/src/backends/env.js +0 -0
  474. /package/framework/{v0.5.4 → v0.5.5}/lib/secrets/src/main.js +0 -0
  475. /package/framework/{v0.5.4 → v0.5.5}/lib/session-store.js +0 -0
  476. /package/framework/{v0.5.4 → v0.5.5}/lib/shell.js +0 -0
  477. /package/framework/{v0.5.4 → v0.5.5}/lib/state.js +0 -0
  478. /package/framework/{v0.5.4 → v0.5.5}/lib/swig-filters/README.md +0 -0
  479. /package/framework/{v0.5.4 → v0.5.5}/lib/swig-filters/package.json +0 -0
  480. /package/framework/{v0.5.4 → v0.5.5}/lib/swig-filters/src/main.js +0 -0
  481. /package/framework/{v0.5.4 → v0.5.5}/lib/swig-resolver/package.json +0 -0
  482. /package/framework/{v0.5.4 → v0.5.5}/lib/swig-resolver/src/main.js +0 -0
  483. /package/framework/{v0.5.4 → v0.5.5}/lib/template-loaders/package.json +0 -0
  484. /package/framework/{v0.5.4 → v0.5.5}/lib/template-loaders/src/loaders/http.js +0 -0
  485. /package/framework/{v0.5.4 → v0.5.5}/lib/template-loaders/src/loaders/memory.js +0 -0
  486. /package/framework/{v0.5.4 → v0.5.5}/lib/template-loaders/src/main.js +0 -0
  487. /package/framework/{v0.5.4 → v0.5.5}/lib/url/README.md +0 -0
  488. /package/framework/{v0.5.4 → v0.5.5}/lib/url/index.js +0 -0
  489. /package/framework/{v0.5.4 → v0.5.5}/lib/url/routing.json +0 -0
  490. /package/framework/{v0.5.4 → v0.5.5}/lib/uuid/package.json +0 -0
  491. /package/framework/{v0.5.4 → v0.5.5}/lib/uuid/src/main.js +0 -0
  492. /package/framework/{v0.5.4 → v0.5.5}/lib/validator.js +0 -0
  493. /package/framework/{v0.5.4 → v0.5.5}/lib/watcher/package.json +0 -0
  494. /package/framework/{v0.5.4 → v0.5.5}/lib/watcher/src/main.js +0 -0
  495. /package/framework/{v0.5.4 → v0.5.5}/lib/ws-framing/package.json +0 -0
  496. /package/framework/{v0.5.4 → v0.5.5}/lib/ws-framing/src/main.js +0 -0
  497. /package/framework/{v0.5.4 → v0.5.5}/lib/ws-session/package.json +0 -0
  498. /package/framework/{v0.5.4 → v0.5.5}/lib/ws-session/src/main.js +0 -0
@@ -210,14 +210,20 @@ function Config(opt, contextResetNeeded) {
210
210
  };
211
211
 
212
212
  } catch(err) {
213
- console.error(err.stack||err.message);
213
+ var _coreMsg = (err.stack||err.message);
214
+ console.error(_coreMsg);
215
+ // Guarantee the reason survives process.exit() on an async pipe (e.g. bin/gina-container).
216
+ try { fs.writeSync(2, _coreMsg + '\n'); } catch (_e) { /* best-effort */ }
214
217
  process.exit(1)
215
218
  }
216
219
 
217
220
  loadBundlesConfiguration( function(err, file, routing) {
218
221
 
219
222
  if (err) {
220
- console.error(err.stack||err.message);
223
+ var _bundlesMsg = (err.stack||err.message);
224
+ console.error(_bundlesMsg);
225
+ // Guarantee the reason survives process.exit() on an async pipe (e.g. bin/gina-container).
226
+ try { fs.writeSync(2, _bundlesMsg + '\n'); } catch (_e) { /* best-effort */ }
221
227
  setTimeout(() => {
222
228
  process.exit(1);
223
229
  }, 0);
@@ -361,8 +367,11 @@ function Config(opt, contextResetNeeded) {
361
367
  try {
362
368
  return self.envConf[bundle][env].server['coreConfiguration']
363
369
  } catch(err) {
364
- console.debug('Could not get server core configuration for <'+ bundle +'>:<'+ env +'>');
370
+ var _coreConfCtx = 'Could not get server core configuration for <'+ bundle +'>:<'+ env +'>';
371
+ console.debug(_coreConfCtx);
365
372
  console.error(err.stack||err.message);
373
+ // Guarantee the reason survives process.exit() on an async pipe (e.g. bin/gina-container).
374
+ try { fs.writeSync(2, _coreConfCtx + '\n' + (err.stack||err.message) + '\n'); } catch (_e) { /* best-effort */ }
366
375
  process.exit(1);
367
376
  }
368
377
  }
@@ -1029,6 +1038,8 @@ function Config(opt, contextResetNeeded) {
1029
1038
  appPort = portsReverse[app+'@'+self.projectName][env][ newContent[app][env].server.protocol ][ newContent[app][env].server.scheme ];
1030
1039
  } catch (err) {
1031
1040
  console.emerg('[CONFIG][ settings.server.protocol ] Protocol or scheme settings inconsistency found in `'+ app +'/config/settings`. To fix this, try to run `gina project:import @'+ self.projectName +' --path='+  projectConf.path +'`\n\r'+ err.stack);
1041
+ // Guarantee the reason survives process.exit() on an async pipe (e.g. bin/gina-container).
1042
+ try { fs.writeSync(2, '[CONFIG][ settings.server.protocol ] Protocol or scheme settings inconsistency for `'+ app +'` — run `gina project:import @'+ self.projectName +'`\n'+ (err.stack||err.message) + '\n'); } catch (_e) { /* best-effort */ }
1032
1043
  process.exit(1)
1033
1044
  }
1034
1045
  //I had to for this one...
@@ -1978,7 +1989,10 @@ function Config(opt, contextResetNeeded) {
1978
1989
  ) {
1979
1990
  let ruleName = ( !/\@/.test(rule) ) ? rule +'@'+ bundle : rule;
1980
1991
  err = new Error('['+ruleName+'] Bad routing syntax for `'+r+'` in requirements : must start with `/` or `validator::`');
1981
- console.emerg(err.stack||err.message);
1992
+ var _routeMsg = (err.stack||err.message);
1993
+ console.emerg(_routeMsg);
1994
+ // Guarantee the reason survives process.exit() on an async pipe (e.g. bin/gina-container).
1995
+ try { fs.writeSync(2, _routeMsg + '\n'); } catch (_e) { /* best-effort */ }
1982
1996
  process.exit(1);
1983
1997
  }
1984
1998
  }
@@ -2874,6 +2874,11 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
2874
2874
  },
2875
2875
  // Will try x3 (0, 1, 2). Hard ceiling is 10 (see retry handler) to bound timer accumulation under sustained failure.
2876
2876
  maxRetry : 2,
2877
+ // #B53 — when true, allow auto-retry of a non-safe method (POST/PUT/PATCH/DELETE) after
2878
+ // a post-send transient failure. Default false: only safe methods (GET/HEAD/OPTIONS/TRACE)
2879
+ // auto-retry, so a request the upstream already executed is never silently re-run. Opt in
2880
+ // per call only when the target endpoint is genuinely replay-safe. See isRetryableMethod().
2881
+ retryUnsafe : false,
2877
2882
  // Socket inactivity timeout — accepts "30s", "500ms", "1m" or a number (ms)
2878
2883
  requestTimeout : "10s",
2879
2884
  agent : false/**,
@@ -3358,6 +3363,37 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
3358
3363
  // });
3359
3364
  // };
3360
3365
 
3366
+ /**
3367
+ * #B53 — Idempotency guard for inter-bundle client retries.
3368
+ *
3369
+ * A transient failure can land AFTER the upstream bundle already executed its handler
3370
+ * (stream timeout, ECONNRESET, GOAWAY premature-close, proxy 502) — only the response is
3371
+ * lost, not the side effect. Auto-retrying then silently re-executes the request, so a
3372
+ * non-idempotent POST/PUT/PATCH/DELETE runs twice. Both client paths
3373
+ * (handleHTTP1ClientRequest / handleHTTP2ClientRequest) therefore re-send on a transient
3374
+ * failure only when replay is safe.
3375
+ *
3376
+ * Idempotency (PUT/DELETE) is a transport property, not a side-effect property — a PUT or
3377
+ * DELETE fronting a side-effecting handler is still unsafe to replay — so by default only
3378
+ * the HTTP "safe" methods (no side effects, idempotent) auto-retry. A caller that owns a
3379
+ * genuinely replay-safe non-safe endpoint opts in per-call with `retryUnsafe: true`.
3380
+ *
3381
+ * @inner
3382
+ * @param {string} method - HTTP method, any case (HTTP/2 `:method` is already upper-cased).
3383
+ * @param {boolean} [retryUnsafe] - When strictly `true`, allow re-sending any method.
3384
+ * @returns {boolean} `true` when the request may be safely re-sent on a transient failure.
3385
+ *
3386
+ * @example
3387
+ * isRetryableMethod('GET'); // → true (safe method)
3388
+ * isRetryableMethod('post'); // → false (non-idempotent, not opted in)
3389
+ * isRetryableMethod('POST', true); // → true (caller affirmed replay-safety)
3390
+ */
3391
+ var SAFE_HTTP_METHODS = { GET: true, HEAD: true, OPTIONS: true, TRACE: true };
3392
+ var isRetryableMethod = function(method, retryUnsafe) {
3393
+ if (retryUnsafe === true) { return true; }
3394
+ return SAFE_HTTP_METHODS[ String(method || '').toUpperCase() ] === true;
3395
+ };
3396
+
3361
3397
  var handleHTTP1ClientRequest = function(browser, options, callback, retryCount = 0) {
3362
3398
 
3363
3399
 
@@ -3502,7 +3538,11 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
3502
3538
  req.on('error', function onError(err) {
3503
3539
 
3504
3540
  // If conn is down (ECONNRESET, ETIMEDOUT),retry
3505
- if (retryCount < Math.min(options.maxRetry, 10)) {
3541
+ // #B53 but only re-send when replay is safe: a safe method, or a caller that opted
3542
+ // in via options.retryUnsafe. This handler also fires for post-send failures (the
3543
+ // requestTimeout below calls req.destroy() after the body is written), so an unguarded
3544
+ // retry would silently re-execute a non-idempotent request.
3545
+ if (retryCount < Math.min(options.maxRetry, 10) && isRetryableMethod(options.method, options.retryUnsafe)) {
3506
3546
  const delay = 500 * (retryCount + 1); // Délai progressif
3507
3547
  return setTimeout(() => handleHTTP1ClientRequest(browser, options, callback, retryCount + 1), delay);
3508
3548
  }
@@ -3979,7 +4019,7 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
3979
4019
  var _NON_HTTP_OPTS = new Set([
3980
4020
  '_body', '_comment', 'ca', 'hostname', 'host', 'port',
3981
4021
  'requestTimeout', 'keepAlive', 'maxSockets', 'keepAliveMsecs', 'maxFreeSockets',
3982
- 'rejectUnauthorized', 'maxRetry', 'agent', 'protocol', 'scheme',
4022
+ 'rejectUnauthorized', 'maxRetry', 'retryUnsafe', 'agent', 'protocol', 'scheme',
3983
4023
  'nameservers', 'settings', 'webroot', 'queryData', 'method', 'path'
3984
4024
  ]);
3985
4025
  var headerKeys = Object.keys(headers);
@@ -4059,7 +4099,8 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
4059
4099
  var _tIdx = self.serverInstance._http2Sessions.indexOf(sessKey);
4060
4100
  if (_tIdx !== -1) self.serverInstance._http2Sessions.splice(_tIdx, 1);
4061
4101
  if (!client.destroyed) client.destroy(); // no error arg — suppresses session 'error' event
4062
- if (retryCount < HTTP2_MAX_RETRIES) {
4102
+ // #B53 only re-send non-idempotent methods when the caller opted in (replay-safe).
4103
+ if (retryCount < HTTP2_MAX_RETRIES && isRetryableMethod(options[':method'], options.retryUnsafe)) {
4063
4104
  options.queryData = options._body;
4064
4105
  var _tNext = retryCount + 1;
4065
4106
  if (_tNext > 1) {
@@ -4099,7 +4140,7 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
4099
4140
 
4100
4141
  // If the session closed exactly when we sent the request (Race Condition)
4101
4142
  // Retry with a fresh connection (up to HTTP2_MAX_RETRIES, with backoff)
4102
- if (retryCount < HTTP2_MAX_RETRIES && (errorCode === 'ERR_HTTP2_STREAM_ERROR' || errorCode === 'ECONNRESET')) {
4143
+ if (retryCount < HTTP2_MAX_RETRIES && (errorCode === 'ERR_HTTP2_STREAM_ERROR' || errorCode === 'ECONNRESET') && isRetryableMethod(options[':method'], options.retryUnsafe)) {
4103
4144
  isFinished = true; // Mark current attempt as done
4104
4145
  cache.delete(sessKey);
4105
4146
  if (!client.destroyed) client.destroy();
@@ -4185,7 +4226,8 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
4185
4226
  if (isFinished) return;
4186
4227
  isFinished = true;
4187
4228
  console.warn('[HTTP2] Premature stream close on '+ options[':method'] +' '+ options[':path'] +' — GOAWAY / session reset (attempt '+ (retryCount + 1) +'/'+ (HTTP2_MAX_RETRIES + 1) +')');
4188
- if (retryCount < HTTP2_MAX_RETRIES) {
4229
+ // #B53 only re-send non-idempotent methods when the caller opted in (replay-safe).
4230
+ if (retryCount < HTTP2_MAX_RETRIES && isRetryableMethod(options[':method'], options.retryUnsafe)) {
4189
4231
  cache.delete(sessKey);
4190
4232
  var _cIdx = self.serverInstance._http2Sessions.indexOf(sessKey);
4191
4233
  if (_cIdx !== -1) self.serverInstance._http2Sessions.splice(_cIdx, 1);
@@ -4241,7 +4283,7 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
4241
4283
  // drop between nginx and the bundle — transient on OrbStack ARM64 and in
4242
4284
  // production after a keepalive expiry). Retry after a short delay to give
4243
4285
  // nginx time to reconnect to the bundle before surfacing the error to the caller.
4244
- if (httpStatus === 502 && retryCount < HTTP2_MAX_RETRIES) {
4286
+ if (httpStatus === 502 && retryCount < HTTP2_MAX_RETRIES && isRetryableMethod(options[':method'], options.retryUnsafe)) {
4245
4287
  var _502Next = retryCount + 1;
4246
4288
  console.warn('[HTTP2][RETRYING] 502 from '+ options[':authority'] + options[':path'] +' — retry '+ _502Next +'/'+ HTTP2_MAX_RETRIES +' in 2s');
4247
4289
  setTimeout(function onHttp2RetryAfter502() {
@@ -184,6 +184,48 @@ if (process.argv.length >= 3 /**&& /gina$/.test(process.argv[1])*/ ) {
184
184
  : _fwPath;
185
185
  require('module').Module._initPaths();
186
186
  }
187
+
188
+ // Bun reads NODE_PATH only at process start, and the Module._initPaths()
189
+ // call above is a callable no-op under it — so bare require('lib/<name>')
190
+ // from framework entities and controllers fails to resolve at request
191
+ // time. Re-implement NODE_PATH fallback semantics for Bun: when the
192
+ // default resolver cannot find a *bare* specifier, retry it against each
193
+ // NODE_PATH dir (the list now includes the framework path). isBun-gated,
194
+ // so Node keeps its native NODE_PATH / _initPaths resolution untouched
195
+ // (zero Node-side change — the shim is never installed under Node).
196
+ var _runtime = require(ctxObj.paths.gina.root + '/utils/runtime');
197
+ var _Module = require('module');
198
+ if ( _runtime.isBun() && !_Module._ginaBunResolvePatched ) {
199
+ _Module._ginaBunResolvePatched = true;
200
+ var _resolvePath = require('path');
201
+ var _ginaOrigResolve = _Module._resolveFilename;
202
+ var _ginaFallbackDirs = (process.env.NODE_PATH || '').split(_resolvePath.delimiter).filter(Boolean);
203
+ if ( _ginaFallbackDirs.indexOf(_fwPath) < 0 ) {
204
+ _ginaFallbackDirs.push(_fwPath);
205
+ }
206
+ _Module._resolveFilename = function (request, parent, isMain, options) {
207
+ try {
208
+ return _ginaOrigResolve.call(this, request, parent, isMain, options);
209
+ } catch (resolveErr) {
210
+ // Only bare specifiers fall back — never relative ('./' '../')
211
+ // or absolute ('/' '\' 'C:') requests.
212
+ if (
213
+ typeof request === 'string'
214
+ && request.charAt(0) !== '.'
215
+ && request.charAt(0) !== '/'
216
+ && request.charAt(0) !== '\\'
217
+ && !/^[A-Za-z]:/.test(request)
218
+ ) {
219
+ for (var _gi = 0; _gi < _ginaFallbackDirs.length; _gi++) {
220
+ try {
221
+ return _ginaOrigResolve.call(this, _resolvePath.join(_ginaFallbackDirs[_gi], request), parent, isMain, options);
222
+ } catch (fallbackErr) { /* try the next NODE_PATH dir */ }
223
+ }
224
+ }
225
+ throw resolveErr;
226
+ }
227
+ };
228
+ }
187
229
  }
188
230
 
189
231
  setContext('paths', ctxObj.paths);//And so on if you need to.
@@ -291,18 +333,42 @@ var env = (typeof(process.env.NODE_ENV) != 'undefined' && pr
291
333
  , scope = (typeof(process.env.NODE_SCOPE) != 'undefined' && process.env.NODE_SCOPE) ? process.env.NODE_SCOPE : projects[projectName]['def_scope']
292
334
  , isLocalScope = (scope === projects[projectName]['local_scope']) ? true : false
293
335
  , isProductionScope = (scope === projects[projectName]['production_scope']) ? true : false
294
- , port = reversePorts[process.env.NODE_BUNDLE +'@'+ process.env.NODE_PROJECT][env][projects[projectName]['def_protocol']][projects[projectName]['def_scheme']]
295
336
  , scheme = projects[projectName]['def_scheme']
296
337
  ;
297
338
 
339
+ // Guard the ports.reverse.json lookup: a desynced/corrupt manifest (a missing
340
+ // bundle@project / env / protocol / scheme key) otherwise throws a cryptic
341
+ // `TypeError: Cannot read properties of undefined` at module load (bundle exit 1,
342
+ // no actionable reason). Fail fast with a clear, pipe-flushed diagnostic instead.
343
+ var _bundleKey = process.env.NODE_BUNDLE +'@'+ process.env.NODE_PROJECT
344
+ , _defProto = projects[projectName]['def_protocol']
345
+ , _byEnv = reversePorts[_bundleKey] && reversePorts[_bundleKey][env]
346
+ , _byProto = _byEnv && _byEnv[_defProto]
347
+ , port = ( _byProto && typeof(_byProto[scheme]) != 'undefined' ) ? _byProto[scheme] : null
348
+ ;
349
+ if ( port == null ) {
350
+ var _portMsg = '[ FRAMEWORK ] could not resolve the listening port for [ '+ _bundleKey +' ] '
351
+ + '(env: '+ env +', protocol: '+ _defProto +', scheme: '+ scheme +') — check '
352
+ + GINA_HOMEDIR +'/ports.reverse.json';
353
+ console.emerg(_portMsg);
354
+ try { fs.writeSync(2, _portMsg + '\n'); } catch (_e) { /* best-effort */ }
355
+ process.exit(1);
356
+ }
357
+
298
358
  gna.env = process.env.NODE_ENV = env;
299
359
  gna.scope = process.env.NODE_SCOPE = scope;
300
360
  gna.os.isWin32 = process.env.isWin32 = isWin32;
301
361
  gna.isAborting = false;
302
362
  //Cacheless is also defined in the main config : Config::isCacheless().
303
- process.env.NODE_ENV_IS_DEV = (/^true$/i.test(isDev)) ? true : false;
304
- process.env.NODE_SCOPE_IS_LOCAL = (/^true$/i.test(isLocalScope)) ? true : false;
305
- process.env.NODE_SCOPE_IS_PRODUCTION = (/^true$/i.test(isProductionScope)) ? true : false;
363
+ // Stored as STRING literals, not booleans: Node coerces a non-string
364
+ // process.env assignment to a string, but Bun preserves the original type —
365
+ // so a boolean here makes the downstream readers throw under Bun
366
+ // (`process.env.NODE_ENV_IS_DEV.toLowerCase()`) or compare wrong
367
+ // (`process.env.NODE_ENV_IS_DEV == 'false'` is never true for a boolean).
368
+ // 'true'/'false' are byte-identical to Node's implicit coercion.
369
+ process.env.NODE_ENV_IS_DEV = (/^true$/i.test(isDev)) ? 'true' : 'false';
370
+ process.env.NODE_SCOPE_IS_LOCAL = (/^true$/i.test(isLocalScope)) ? 'true' : 'false';
371
+ process.env.NODE_SCOPE_IS_PRODUCTION = (/^true$/i.test(isProductionScope)) ? 'true' : 'false';
306
372
  process.env.NODE_PORT = parseInt(port);
307
373
  // Proxy check thru proxy.json [Optional]
308
374
  var proxyPathObj = new _(projects[projectName].path + '/proxy.json', true);
@@ -697,29 +697,138 @@ function ServerEngineClass(options) {
697
697
  * default refusal table above keeps answering 501 for websocket
698
698
  * streams when no consumer exists. With handlers registered, an
699
699
  * accepted websocket stream is matched on its `:path` pathname
700
- * (query string stripped): a hit is answered `:status 200` via
701
- * lib.wsSession.accept and handed to the handler as a live
702
- * session; a miss is refused with 404. No express middleware runs
700
+ * (query string stripped): an exact-path hit first, then (#H13
701
+ * slice 2) an ordered scan of `:param` patterns whose captured
702
+ * segments populate `request.params` (colon-stripped keys, the
703
+ * same shape an HTTP controller reads). A hit is answered
704
+ * `:status 200` via lib.wsSession.accept and handed to the handler
705
+ * as a live session; a miss is refused with 404. No express middleware runs
703
706
  * on the CONNECT path — authentication is the handler's concern
704
707
  * (it receives the full request for header/cookie inspection).
708
+ * Registering a path that already has a handler warns and overwrites
709
+ * (last-write-wins): a programmatic call overrides a routing.json
710
+ * `method:"ws"` declaration for the same path (declarations are
711
+ * registered at bundle bootstrap, before onInitialize).
712
+ *
713
+ * #H13 slice 3a — an optional 3rd argument carries per-route session
714
+ * options (maxPayload / protocol / closeTimeout) forwarded verbatim to
715
+ * lib.wsSession.accept; a routing.json `method:"ws"` route supplies them
716
+ * via `param.wsOptions`. Overwriting a path replaces handler AND options.
705
717
  */
706
718
  server._wsHandlers = {};
707
- server.onWebSocket = function(wsPath, wsHandler) {
719
+ // #H13 slice 3a — parallel exact-path → per-route options map. Kept
720
+ // separate from _wsHandlers so that stays a pure path→handler map (the
721
+ // collision guard tests the literal `_wsHandlers[wsPath]` shape).
722
+ server._wsHandlerOptions = {};
723
+ // #H13 slice 2 — ordered registry of `:param` patterns, scanned only
724
+ // on an exact-match miss. Each entry: { pattern, segments, handler }.
725
+ // First-registered wins among overlapping equal-length patterns —
726
+ // mirrors gina's HTTP router, which is first-match by declaration
727
+ // order (core/server.js routing loop breaks on the first matching
728
+ // route; there is no cross-route best-score selection). Keeping the
729
+ // same rule here means WS routing resolves consistently with HTTP.
730
+ server._wsParamHandlers = [];
731
+
732
+ // #H13 slice 2 — match a request pathname against the `:param`
733
+ // registry. Exact routes are resolved by the caller BEFORE this runs.
734
+ // Splits on '/' (keeping the leading '' from the leading slash, so
735
+ // pattern/request segments index-align, mirroring lib/routing). A
736
+ // strict segment-count gate, then per-segment: a literal must equal
737
+ // exactly; a `:name` segment captures any NON-EMPTY segment as
738
+ // `params[name]` (colon-stripped key + decodeURIComponent — the same
739
+ // shape an HTTP controller reads off req.params). Returns
740
+ // { handler, params } for the first matching pattern, else null.
741
+ server._wsMatchParam = function(pathname) {
742
+ var reqSegs = String(pathname || '').split('/');
743
+ for (var i = 0; i < server._wsParamHandlers.length; i++) {
744
+ var entry = server._wsParamHandlers[i];
745
+ if (entry.segments.length !== reqSegs.length) { continue; }
746
+ var params = {};
747
+ var ok = true;
748
+ for (var s = 0; s < entry.segments.length; s++) {
749
+ var pat = entry.segments[s];
750
+ if (pat.charAt(0) === ':') {
751
+ if (reqSegs[s] === '') { ok = false; break; } // reject empty captured segment
752
+ params[pat.substring(1)] = decodeURIComponent(reqSegs[s]);
753
+ } else if (pat !== reqSegs[s]) {
754
+ ok = false; break;
755
+ }
756
+ }
757
+ if (ok) { return { handler: entry.handler, params: params, options: entry.options }; }
758
+ }
759
+ return null;
760
+ };
761
+
762
+ server.onWebSocket = function(wsPath, wsHandler, wsOptions) {
708
763
  if (typeof wsPath !== 'string' || wsPath.length === 0 || typeof wsHandler !== 'function') {
709
764
  throw new TypeError('onWebSocket(path, handler) requires a non-empty path string and a handler function');
710
765
  }
711
- server._wsHandlers[wsPath] = wsHandler;
766
+ // #H13 slice 3b — capture, once, the bundle/env this server serves
767
+ // (a server serves one bundle) for session.query. The routing.json
768
+ // registrar (core/server.js) sets server._wsBundle/_wsEnv explicitly
769
+ // from self.appName/self.env before its first call here; a purely
770
+ // programmatic caller (onInitialize) falls back to getContext, which
771
+ // is correct at boot. Capturing at registration avoids the shared
772
+ // ctx.bundle stack-walk mutation hazard that would bite a lazy
773
+ // connect/message-time read on a long-lived interleaved session.
774
+ if (typeof server._wsBundle === 'undefined') {
775
+ server._wsBundle = (typeof getContext === 'function') ? getContext('bundle') : null;
776
+ server._wsEnv = (typeof getContext === 'function') ? getContext('env') : null;
777
+ }
778
+ // #H13 slice 2 — a path with a `:` segment is a param pattern
779
+ // (same placeholder convention as lib/routing's hasParams: /\:/).
780
+ if ( /\:/.test(wsPath) ) {
781
+ var _existing = -1;
782
+ for (var _p = 0; _p < server._wsParamHandlers.length; _p++) {
783
+ if (server._wsParamHandlers[_p].pattern === wsPath) { _existing = _p; break; }
784
+ }
785
+ if (_existing > -1) {
786
+ console.warn('[ SERVER ] onWebSocket: pattern `'+ wsPath +'` already has a handler — overwriting');
787
+ server._wsParamHandlers[_existing].handler = wsHandler;
788
+ server._wsParamHandlers[_existing].options = wsOptions || null;
789
+ } else {
790
+ server._wsParamHandlers.push({ pattern: wsPath, segments: wsPath.split('/'), handler: wsHandler, options: wsOptions || null });
791
+ }
792
+ } else {
793
+ if ( typeof server._wsHandlers[wsPath] === 'function' ) {
794
+ console.warn('[ SERVER ] onWebSocket: path `'+ wsPath +'` already has a handler — overwriting');
795
+ }
796
+ server._wsHandlers[wsPath] = wsHandler;
797
+ server._wsHandlerOptions[wsPath] = wsOptions || null;
798
+ }
712
799
  if (typeof server._extendedConnectHandler !== 'function') {
713
800
  server._extendedConnectHandler = function(request, response) {
714
801
  var _wsPathname = String(request.headers[':path'] || '').split('?')[0];
802
+ // Exact match wins (slice-1 precedence preserved).
715
803
  var _wsTarget = server._wsHandlers[_wsPathname];
804
+ var _wsParams = null;
805
+ // #H13 slice 3a — per-route session options resolved alongside
806
+ // the handler: an exact hit reads the exact options map; a
807
+ // param hit takes the matched entry's options below.
808
+ var _wsOpts = server._wsHandlerOptions[_wsPathname] || null;
809
+ // #H13 slice 2 — param fallback only on an exact miss.
810
+ if (typeof _wsTarget !== 'function' && server._wsParamHandlers.length) {
811
+ var _m = server._wsMatchParam(_wsPathname);
812
+ if (_m) { _wsTarget = _m.handler; _wsParams = _m.params; _wsOpts = _m.options || null; }
813
+ }
716
814
  if (typeof _wsTarget !== 'function') {
717
815
  // No handler registered for this pathname.
718
816
  response.writeHead(404);
719
817
  response.end();
720
818
  return;
721
819
  }
722
- var _wsSession = lib.wsSession.accept(request);
820
+ // Populate request.params (named keys, colon-stripped) so a
821
+ // channel handler reads the same shape an HTTP controller does.
822
+ request.params = _wsParams || {};
823
+ var _wsSession = lib.wsSession.accept(request, _wsOpts || undefined);
824
+ // #H13 slice 3b — give the channel handler a cross-bundle HTTP
825
+ // capability (session.query(options[, data]) → Promise), mirroring
826
+ // a controller's self.query(). Attached AFTER accept so
827
+ // lib/ws-session stays controller-free. The bundle/env this server
828
+ // serves were captured at registration (server._wsBundle/_wsEnv) —
829
+ // never resolved lazily here, where the shared getContext('bundle')
830
+ // is rewritten by every getConfig/getLib stack-walk.
831
+ _wsSession.query = lib.wsQuery.build(server, server._wsBundle, server._wsEnv);
723
832
  _wsTarget(_wsSession, request);
724
833
  };
725
834
  }
@@ -688,6 +688,80 @@ function Server(options) {
688
688
  process.env.TZ = options.conf[self.appName][self.env].content.settings.region.timeZone;
689
689
  }
690
690
 
691
+ // #H13 — register routing.json-declared WebSocket routes (`"method": "ws"`).
692
+ // Each such route names a connection-handler module via `param.wsHandler`,
693
+ // resolved under the bundle's `channels/` dir. We register through the
694
+ // engine's own `onWebSocket(path, handler)` (set up during `new Engine()`
695
+ // above): on an http/2 isaac bundle with `enableConnectProtocol` it wires
696
+ // the real dispatcher; otherwise it hits the warn-noop stub, so we never
697
+ // write a registry nothing reads. This runs BEFORE the `configured` emit
698
+ // (hence before the bundle's onInitialize), so a programmatic
699
+ // `app.onWebSocket()` in onInitialize overrides a declaration here.
700
+ // WS dispatch happens in the engine's extended-CONNECT handler — these
701
+ // routes never reach handle()/router.route (the `:4816` method filter +
702
+ // the method-keyed route cache keep a `ws` route from matching an HTTP
703
+ // request, and the radix-trie candidate is method-filtered in the loop).
704
+ var _wsRouting = serverOpt.routing || {};
705
+ var _wsRegistered = {};
706
+ var _wsUnsupportedWarned = false;
707
+ for (var _wsRule in _wsRouting) {
708
+ var _wsRoute = _wsRouting[_wsRule];
709
+ if ( typeof(_wsRoute) != 'object' || _wsRoute === null || !/^ws$/i.test(_wsRoute.method || '') ) {
710
+ continue;
711
+ }
712
+ if ( typeof(engine.instance.onWebSocket) != 'function' ) {
713
+ if ( !_wsUnsupportedWarned ) {
714
+ console.warn('[ SERVER ] WebSocket route(s) declared but the `'+ serverOpt.engine +'` engine has no WebSocket support (requires the isaac engine with http2Options.enableConnectProtocol = true)');
715
+ _wsUnsupportedWarned = true;
716
+ }
717
+ continue;
718
+ }
719
+ var _wsName = ( _wsRoute.param && typeof(_wsRoute.param.wsHandler) == 'string' && _wsRoute.param.wsHandler != '' )
720
+ ? _wsRoute.param.wsHandler
721
+ : null;
722
+ if ( !_wsName ) {
723
+ throw new Error('[ SERVER ] WebSocket route `'+ _wsRule +'` must declare `param.wsHandler` (the channels/<name> module to handle it).');
724
+ }
725
+ // #H13 slice 3a — optional per-route session options (maxPayload /
726
+ // protocol / closeTimeout), threaded to lib.wsSession.accept via
727
+ // onWebSocket. Present-but-not-an-object fails loudly at boot (mirrors
728
+ // the wsHandler fail-fast); absent → null (accept defaults apply).
729
+ if ( _wsRoute.param && typeof(_wsRoute.param.wsOptions) != 'undefined'
730
+ && ( typeof(_wsRoute.param.wsOptions) != 'object' || _wsRoute.param.wsOptions === null ) ) {
731
+ throw new Error('[ SERVER ] WebSocket route `'+ _wsRule +'`: `param.wsOptions` must be an object');
732
+ }
733
+ var _wsOptions = ( _wsRoute.param && typeof(_wsRoute.param.wsOptions) == 'object' && _wsRoute.param.wsOptions !== null )
734
+ ? _wsRoute.param.wsOptions
735
+ : null;
736
+ var _wsFile = _(self.conf[self.appName][self.env].bundlesPath + '/' + self.appName + '/channels/' + _wsName + '.js', true);
737
+ var _wsHandlerFn = null;
738
+ try {
739
+ _wsHandlerFn = require(_wsFile);
740
+ } catch (_wsErr) {
741
+ throw new Error('[ SERVER ] WebSocket route `'+ _wsRule +'`: channel module `channels/'+ _wsName +'.js` could not be loaded ('+ _wsFile +'):\n'+ _wsErr.message);
742
+ }
743
+ if ( typeof(_wsHandlerFn) != 'function' ) {
744
+ throw new Error('[ SERVER ] WebSocket route `'+ _wsRule +'`: channel module `channels/'+ _wsName +'.js` must export a function (session, request).');
745
+ }
746
+ // A route URL may be comma-separated (multi-url) — register each.
747
+ var _wsUrls = String(_wsRoute.url || '').split(',');
748
+ for (var _wsi = 0, _wsLen = _wsUrls.length; _wsi < _wsLen; ++_wsi) {
749
+ var _wsUrl = _wsUrls[_wsi].trim();
750
+ if ( !_wsUrl ) { continue; }
751
+ if ( _wsRegistered[_wsUrl] ) {
752
+ console.warn('[ SERVER ] WebSocket path `'+ _wsUrl +'` is declared by more than one `method:"ws"` route — last wins (`'+ _wsRule +'`)');
753
+ }
754
+ _wsRegistered[_wsUrl] = true;
755
+ // #H13 slice 3b — record the bundle/env this server serves (a server
756
+ // serves one bundle) so the dispatcher can build session.query. Set
757
+ // explicitly here (self.appName/self.env are guaranteed correct at
758
+ // boot) before onWebSocket, so its getContext fallback is skipped.
759
+ engine.instance._wsBundle = self.appName;
760
+ engine.instance._wsEnv = self.env;
761
+ engine.instance.onWebSocket(_wsUrl, _wsHandlerFn, _wsOptions);
762
+ }
763
+ }
764
+
691
765
  self.emit('configured', false, engine.instance, engine.middleware, self.conf[self.appName][self.env]);
692
766
 
693
767
  } catch (err) {
@@ -486,8 +486,117 @@ function Archiver() {
486
486
 
487
487
 
488
488
 
489
+ /**
490
+ * decompress
491
+ *
492
+ * Inverse of `compress()` — extracts a `.zip` archive into a target directory.
493
+ * Mirrors compress()'s completion contract: emits `archiver-decompress#complete`
494
+ * `(err, target)` on the singleton and returns an `{ onComplete: fn }` handle
495
+ * (a trailing callback is also accepted for `promisify`). Uses JSZip 3.x
496
+ * (`loadAsync` + per-entry `async('nodebuffer')`).
497
+ *
498
+ * @param {string} src - absolute path to the `.zip` archive
499
+ * @param {string} target - output directory (created if missing); entries are
500
+ * written at their archive-relative paths under it
501
+ * @param {object} [options] - reserved for future use
502
+ * @returns {{ onComplete: function }} completion handle
503
+ *
504
+ * @example
505
+ * lib.archiver.decompress('/dump/app.zip', '/srv/app/').onComplete(function (err, dir) {
506
+ * if (err) { return; }
507
+ * // dir now holds the extracted tree
508
+ * });
509
+ */
489
510
  this.decompress = function(src, target, options) {
490
511
 
512
+ var path = require('path');
513
+ var handle = {
514
+ onComplete: function onDecompressionCompleted(cb) {
515
+ self.once('archiver-decompress#complete', function (err, t) {
516
+ cb(err, t)
517
+ })
518
+ }
519
+ };
520
+
521
+ // Used for `promisify` — same trailing-callback contract as compress()
522
+ if ( typeof(arguments[arguments.length-1]) == 'function' ) {
523
+ var _pcb = arguments[arguments.length-1];
524
+ self.once('archiver-decompress#complete', function (err, t) {
525
+ return _pcb(err, t)
526
+ })
527
+ }
528
+
529
+ if ( !/\/$/.test(target) ) {
530
+ target += '/'
531
+ }
532
+ if ( !fs.existsSync(target) ) {
533
+ fs.mkdirSync(target, { recursive: true });
534
+ }
535
+ var targetAbs = path.resolve(target);
536
+
537
+ if ( !fs.existsSync(src) ) {
538
+ // defer so a synchronous error still reaches a listener attached
539
+ // via the returned handle's onComplete() on the same tick
540
+ process.nextTick(function () {
541
+ self.emit('archiver-decompress#complete', new Error('archive not found `'+ src +'`'), null);
542
+ });
543
+ return handle;
544
+ }
545
+
546
+ try {
547
+ var buf = fs.readFileSync(src);
548
+ JSZip.loadAsync(buf).then(function (zip) {
549
+
550
+ var entries = [];
551
+ zip.forEach(function (relPath, entry) {
552
+ entries.push({ relPath: relPath, entry: entry });
553
+ });
554
+
555
+ var i = 0;
556
+ var next = function () {
557
+ if ( i >= entries.length ) {
558
+ self.emit('archiver-decompress#complete', false, target);
559
+ return;
560
+ }
561
+ var it = entries[i++];
562
+ var dest = path.resolve(targetAbs, it.relPath);
563
+
564
+ // zip-slip guard: an entry must never escape the target dir
565
+ if ( dest !== targetAbs && dest.indexOf(targetAbs + path.sep) !== 0 ) {
566
+ self.emit('archiver-decompress#complete', new Error('unsafe entry path in archive: `'+ it.relPath +'`'), null);
567
+ return;
568
+ }
569
+
570
+ if ( it.entry.dir ) {
571
+ if ( !fs.existsSync(dest) ) {
572
+ fs.mkdirSync(dest, { recursive: true });
573
+ }
574
+ return next();
575
+ }
576
+
577
+ var parent = path.dirname(dest);
578
+ if ( !fs.existsSync(parent) ) {
579
+ fs.mkdirSync(parent, { recursive: true });
580
+ }
581
+ it.entry.async('nodebuffer').then(function (content) {
582
+ fs.writeFileSync(dest, content);
583
+ next();
584
+ }).catch(function (err) {
585
+ self.emit('archiver-decompress#complete', err, null);
586
+ });
587
+ };
588
+ next();
589
+
590
+ }).catch(function (err) {
591
+ self.emit('archiver-decompress#complete', err, null);
592
+ });
593
+ } catch (err) {
594
+ process.nextTick(function () {
595
+ self.emit('archiver-decompress#complete', err, null);
596
+ });
597
+ }
598
+
599
+ return handle;
491
600
  }
492
601
 
493
602
  this.compressFromStream = function(readStream, target, options) {
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @module gina/lib/cmd/bundle/man
3
+ * @description `gina bundle:man` — shows the bundle manual. No
4
+ * `gina-bundle.1.md` source exists yet, so the shared engine falls back to
5
+ * `lib/cmd/bundle/help.txt`. Thin re-export of
6
+ * {@link module:gina/lib/cmd/man-render}, which picks the group from
7
+ * `opt.task.topic`.
8
+ */
9
+ // alias
10
+ module.exports = require('../man-render');