gina 0.5.5-alpha.1 → 0.5.6-alpha.1

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.6-alpha.1/VERSION +1 -0
  7. package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/asset/plugin/dist/vendor/gina/js/gina.js +85 -30
  8. package/framework/v0.5.6-alpha.1/core/asset/plugin/dist/vendor/gina/js/gina.min.js +573 -0
  9. package/framework/v0.5.6-alpha.1/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  10. package/framework/v0.5.6-alpha.1/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  11. package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/config.js +18 -4
  12. package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/controller/controller.js +48 -6
  13. package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/gna.js +70 -4
  14. package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/server.isaac.js +115 -6
  15. package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/server.js +74 -0
  16. package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/archiver/src/main.js +109 -0
  17. package/framework/v0.5.6-alpha.1/lib/cmd/bundle/man.js +10 -0
  18. package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/bundle/start.js +17 -3
  19. package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/bundle/status.js +22 -10
  20. package/framework/v0.5.6-alpha.1/lib/cmd/framework/add.js +498 -0
  21. package/framework/v0.5.6-alpha.1/lib/cmd/framework/arguments.json +13 -0
  22. package/framework/v0.5.6-alpha.1/lib/cmd/framework/help.txt +62 -0
  23. package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/framework/init.js +52 -10
  24. package/framework/v0.5.6-alpha.1/lib/cmd/framework/list.js +352 -0
  25. package/framework/v0.5.6-alpha.1/lib/cmd/framework/man.js +9 -0
  26. package/framework/v0.5.6-alpha.1/lib/cmd/framework/remove.js +411 -0
  27. package/framework/v0.5.6-alpha.1/lib/cmd/framework/reset.js +206 -0
  28. package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/framework/tail.js +9 -1
  29. package/framework/v0.5.6-alpha.1/lib/cmd/framework/update.js +477 -0
  30. package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/framework/version.js +12 -1
  31. package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/gina-framework.1.md +10 -1
  32. package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/helper.js +4 -2
  33. package/framework/v0.5.6-alpha.1/lib/cmd/man-render.js +144 -0
  34. package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/project/arguments.json +2 -0
  35. package/framework/v0.5.6-alpha.1/lib/cmd/project/backup.js +228 -0
  36. package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/project/help.txt +18 -8
  37. package/framework/v0.5.6-alpha.1/lib/cmd/project/man.js +10 -0
  38. package/framework/v0.5.6-alpha.1/lib/cmd/project/move.js +215 -0
  39. package/framework/v0.5.6-alpha.1/lib/cmd/project/restore.js +221 -0
  40. package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/project/status.js +24 -12
  41. package/framework/v0.5.6-alpha.1/lib/cmd/service/man.js +10 -0
  42. package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/index.js +8 -0
  43. package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/logger/src/containers/mq/listener.js +6 -1
  44. package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/proc.js +7 -0
  45. package/framework/v0.5.6-alpha.1/lib/ws-query/package.json +10 -0
  46. package/framework/v0.5.6-alpha.1/lib/ws-query/src/main.js +145 -0
  47. package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/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.5-alpha.1/VERSION +0 -1
  57. package/framework/v0.5.5-alpha.1/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -572
  58. package/framework/v0.5.5-alpha.1/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  59. package/framework/v0.5.5-alpha.1/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  60. package/framework/v0.5.5-alpha.1/lib/cmd/framework/arguments.json +0 -7
  61. package/framework/v0.5.5-alpha.1/lib/cmd/framework/help.txt +0 -36
  62. package/framework/v0.5.5-alpha.1/lib/cmd/framework/update.js +0 -0
  63. package/framework/v0.5.5-alpha.1/lib/cmd/project/move.js +0 -0
  64. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/AUTHORS +0 -0
  65. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/LICENSE +0 -0
  66. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/asset/html/nolayout.html +0 -0
  67. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/asset/html/static.html +0 -0
  68. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/asset/img/android-chrome-192x192.png +0 -0
  69. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/asset/img/android-chrome-512x512.png +0 -0
  70. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/asset/img/apple-touch-icon.png +0 -0
  71. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/asset/img/favicon-16x16.png +0 -0
  72. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/asset/img/favicon-32x32.png +0 -0
  73. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/asset/img/favicon.ico +0 -0
  74. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/asset/plugin/README.md +0 -0
  75. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  76. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  77. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  78. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  79. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  80. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  81. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
  82. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  83. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  84. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  85. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
  86. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
  87. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
  88. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  89. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
  90. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  91. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  92. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/connectors/ai/index.js +0 -0
  93. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/connectors/ai/lib/connector.js +0 -0
  94. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/connectors/couchbase/index.js +0 -0
  95. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/connectors/couchbase/lib/connector.js +0 -0
  96. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  97. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  98. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/connectors/couchbase/lib/n1ql.js +0 -0
  99. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/connectors/couchbase/lib/session-store.js +0 -0
  100. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  101. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  102. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/connectors/mongodb/index.js +0 -0
  103. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/connectors/mongodb/lib/connector.js +0 -0
  104. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
  105. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/connectors/mongodb/lib/session-store.js +0 -0
  106. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/connectors/mysql/index.js +0 -0
  107. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/connectors/mysql/lib/connector.js +0 -0
  108. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/connectors/postgresql/index.js +0 -0
  109. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/connectors/postgresql/lib/connector.js +0 -0
  110. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/connectors/redis/index.js +0 -0
  111. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/connectors/redis/lib/session-store.js +0 -0
  112. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/connectors/scylladb/index.js +0 -0
  113. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/connectors/scylladb/lib/connector.js +0 -0
  114. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/connectors/scylladb/lib/session-store.js +0 -0
  115. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/connectors/sql-parser.js +0 -0
  116. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/connectors/sqlite/index.js +0 -0
  117. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/connectors/sqlite/lib/connector.js +0 -0
  118. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/connectors/sqlite/lib/session-store.js +0 -0
  119. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/content.encoding +0 -0
  120. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/controller/controller.framework.js +0 -0
  121. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/controller/controller.render-json.js +0 -0
  122. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/controller/controller.render-nunjucks-async.js +0 -0
  123. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/controller/controller.render-nunjucks.js +0 -0
  124. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/controller/controller.render-stream.js +0 -0
  125. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/controller/controller.render-swig-async.js +0 -0
  126. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/controller/controller.render-swig.js +0 -0
  127. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/controller/controller.render-v1.js +0 -0
  128. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/controller/index.js +0 -0
  129. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/controller/inspector-window-emit.js +0 -0
  130. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/deps/busboy-1.6.0/LICENSE +0 -0
  131. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/deps/busboy-1.6.0/README.md +0 -0
  132. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/deps/busboy-1.6.0/lib/index.js +0 -0
  133. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/deps/busboy-1.6.0/lib/types/multipart.js +0 -0
  134. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/deps/busboy-1.6.0/lib/types/urlencoded.js +0 -0
  135. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/deps/busboy-1.6.0/lib/utils.js +0 -0
  136. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/deps/busboy-1.6.0/package.json +0 -0
  137. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/deps/streamsearch-1.1.0/LICENSE +0 -0
  138. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/deps/streamsearch-1.1.0/lib/sbmh.js +0 -0
  139. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/deps/streamsearch-1.1.0/package.json +0 -0
  140. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/dev/index.js +0 -0
  141. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/dev/lib/class.js +0 -0
  142. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/dev/lib/factory.js +0 -0
  143. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/dev/lib/tools.js +0 -0
  144. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/locales/README.md +0 -0
  145. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/locales/currency.json +0 -0
  146. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/locales/dist/language/en.json +0 -0
  147. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/locales/dist/language/fr.json +0 -0
  148. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/locales/dist/region/en.json +0 -0
  149. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/locales/dist/region/fr.json +0 -0
  150. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/locales/index.js +0 -0
  151. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/mime.types +0 -0
  152. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/model/entity.js +0 -0
  153. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/model/index.js +0 -0
  154. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/model/template/entityFactory.js +0 -0
  155. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/model/template/index.js +0 -0
  156. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/README.md +0 -0
  157. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/index.js +0 -0
  158. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/csrf/README.md +0 -0
  159. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/csrf/package.json +0 -0
  160. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/csrf/src/main.js +0 -0
  161. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/README.md +0 -0
  162. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/coep/README.md +0 -0
  163. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/coep/package.json +0 -0
  164. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
  165. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/coop/README.md +0 -0
  166. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/coop/package.json +0 -0
  167. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
  168. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/corp/README.md +0 -0
  169. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/corp/package.json +0 -0
  170. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
  171. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/csp/README.md +0 -0
  172. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/csp/package.json +0 -0
  173. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
  174. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
  175. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
  176. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
  177. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/hsts/README.md +0 -0
  178. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/hsts/package.json +0 -0
  179. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
  180. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
  181. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
  182. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
  183. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/package.json +0 -0
  184. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
  185. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
  186. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
  187. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/src/main.js +0 -0
  188. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
  189. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
  190. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
  191. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
  192. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
  193. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
  194. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
  195. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
  196. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
  197. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
  198. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
  199. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
  200. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
  201. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
  202. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
  203. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
  204. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
  205. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
  206. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/session/README.md +0 -0
  207. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/session/package.json +0 -0
  208. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/session/src/main.js +0 -0
  209. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/storage/README.md +0 -0
  210. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/storage/build.json +0 -0
  211. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/storage/package.json +0 -0
  212. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/storage/src/main.js +0 -0
  213. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/validator/README.md +0 -0
  214. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/validator/build.json +0 -0
  215. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/validator/package.json +0 -0
  216. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/validator/src/form-validator.js +0 -0
  217. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/plugins/lib/validator/src/main.js +0 -0
  218. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/router.js +0 -0
  219. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/server.express.js +0 -0
  220. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/status.codes +0 -0
  221. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/_gitignore +0 -0
  222. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/boilerplate/bundle/config/app.json +0 -0
  223. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  224. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/boilerplate/bundle/config/routing.json +0 -0
  225. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/boilerplate/bundle/config/settings.json +0 -0
  226. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  227. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/boilerplate/bundle/config/templates.json +0 -0
  228. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  229. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  230. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  231. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  232. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/boilerplate/bundle/index.js +0 -0
  233. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/boilerplate/bundle/locales/en.json +0 -0
  234. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  235. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  236. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  237. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  238. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  239. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  240. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
  241. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/boilerplate/bundle_public/readme.md +0 -0
  242. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/boilerplate/bundle_public/sw.js +0 -0
  243. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  244. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  245. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  246. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  247. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  248. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/command/gina.bat.tpl +0 -0
  249. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/command/gina.tpl +0 -0
  250. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/conf/env.json +0 -0
  251. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/conf/manifest.json +0 -0
  252. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/conf/package.json +0 -0
  253. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/conf/settings.json +0 -0
  254. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/conf/statics.json +0 -0
  255. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/conf/templates.json +0 -0
  256. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/error/client/json/401.json +0 -0
  257. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/error/client/json/403.json +0 -0
  258. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/error/client/json/404.json +0 -0
  259. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/error/server/html/50x.html +0 -0
  260. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/error/server/json/500.json +0 -0
  261. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/error/server/json/503.json +0 -0
  262. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/core/template/extensions/logger/config.json +0 -0
  263. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/helpers/console.js +0 -0
  264. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/helpers/context.js +0 -0
  265. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/helpers/data/LICENSE +0 -0
  266. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/helpers/data/README.md +0 -0
  267. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/helpers/data/package.json +0 -0
  268. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/helpers/data/src/main.js +0 -0
  269. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/helpers/dateFormat.js +0 -0
  270. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/helpers/index.js +0 -0
  271. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/helpers/json/LICENSE +0 -0
  272. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/helpers/json/README.md +0 -0
  273. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/helpers/json/package.json +0 -0
  274. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/helpers/json/src/main.js +0 -0
  275. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/helpers/path.js +0 -0
  276. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/helpers/plugins/README.md +0 -0
  277. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/helpers/plugins/package.json +0 -0
  278. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/helpers/plugins/src/api-error.js +0 -0
  279. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/helpers/plugins/src/main.js +0 -0
  280. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/helpers/prototypes.js +0 -0
  281. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/helpers/task.js +0 -0
  282. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/helpers/text.js +0 -0
  283. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/admin/package.json +0 -0
  284. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/admin/src/main.js +0 -0
  285. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/archiver/README.md +0 -0
  286. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/archiver/build.json +0 -0
  287. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/archiver/package.json +0 -0
  288. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/archiver/src/dep/jszip.min.js +0 -0
  289. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/async/package.json +0 -0
  290. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/async/src/main.js +0 -0
  291. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cache/README.md +0 -0
  292. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cache/build.json +0 -0
  293. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cache/package.json +0 -0
  294. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cache/src/main.js +0 -0
  295. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/aliases.json +0 -0
  296. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/bundle/add.js +0 -0
  297. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/bundle/arguments.json +0 -0
  298. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/bundle/build.js +0 -0
  299. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/bundle/copy.js +0 -0
  300. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/bundle/cp.js +0 -0
  301. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/bundle/help.js +0 -0
  302. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/bundle/help.txt +0 -0
  303. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
  304. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/bundle/list.js +0 -0
  305. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/bundle/mcp-start.js +0 -0
  306. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/bundle/mcp.js +0 -0
  307. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/bundle/oas.js +0 -0
  308. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/bundle/openapi.js +0 -0
  309. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/bundle/remove.js +0 -0
  310. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/bundle/rename.js +0 -0
  311. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/bundle/restart.js +0 -0
  312. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/bundle/rm.js +0 -0
  313. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/bundle/stop.js +0 -0
  314. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/cache/stats.js +0 -0
  315. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/connector/add.js +0 -0
  316. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/connector/arguments.json +0 -0
  317. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/connector/help.js +0 -0
  318. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/connector/help.txt +0 -0
  319. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/connector/list.js +0 -0
  320. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/connector/migrate.js +0 -0
  321. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/connector/remove.js +0 -0
  322. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/connector/rm.js +0 -0
  323. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/env/add.js +0 -0
  324. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/env/get.js +0 -0
  325. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/env/help.js +0 -0
  326. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/env/help.txt +0 -0
  327. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/env/link-dev.js +0 -0
  328. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/env/list.js +0 -0
  329. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/env/remove.js +0 -0
  330. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/env/rm.js +0 -0
  331. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/env/set.js +0 -0
  332. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/env/unset.js +0 -0
  333. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/env/use.js +0 -0
  334. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/framework/build.js +0 -0
  335. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/framework/dot.js +0 -0
  336. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/framework/get.js +0 -0
  337. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/framework/help.js +0 -0
  338. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/framework/link-node-modules.js +0 -0
  339. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/framework/link.js +0 -0
  340. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/framework/msg.json +0 -0
  341. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/framework/open.js +0 -0
  342. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/framework/restart.js +0 -0
  343. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/framework/set.js +0 -0
  344. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/framework/start.js +0 -0
  345. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/framework/status.js +0 -0
  346. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/framework/stop.js +0 -0
  347. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/gina-dev.1.md +0 -0
  348. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/gina.1.md +0 -0
  349. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/i18n/add.js +0 -0
  350. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/i18n/arguments.json +0 -0
  351. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/i18n/export.js +0 -0
  352. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/i18n/help.js +0 -0
  353. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/i18n/help.txt +0 -0
  354. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/i18n/import.js +0 -0
  355. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/i18n/scan.js +0 -0
  356. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/index.js +0 -0
  357. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/inspector/help.js +0 -0
  358. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/inspector/help.txt +0 -0
  359. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/inspector/open.js +0 -0
  360. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/minion/arguments.json +0 -0
  361. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/minion/help.js +0 -0
  362. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/minion/help.txt +0 -0
  363. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/minion/kill.js +0 -0
  364. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/minion/list.js +0 -0
  365. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/msg.json +0 -0
  366. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/port/help.js +0 -0
  367. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/port/help.txt +0 -0
  368. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/port/inc/scan.js +0 -0
  369. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/port/list.js +0 -0
  370. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/port/reset.js +0 -0
  371. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/port/set.js +0 -0
  372. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/project/add.js +0 -0
  373. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/project/build.js +0 -0
  374. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/project/help.js +0 -0
  375. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/project/import.js +0 -0
  376. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/project/list.js +0 -0
  377. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/project/remove.js +0 -0
  378. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/project/rename.js +0 -0
  379. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/project/restart.js +0 -0
  380. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/project/rm.js +0 -0
  381. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/project/start.js +0 -0
  382. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/project/stop.js +0 -0
  383. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/protocol/arguments.json +0 -0
  384. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/protocol/help.js +0 -0
  385. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/protocol/help.txt +0 -0
  386. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/protocol/list.js +0 -0
  387. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/protocol/remove.js +0 -0
  388. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/protocol/set.js +0 -0
  389. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/scope/add.js +0 -0
  390. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/scope/help.js +0 -0
  391. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/scope/help.txt +0 -0
  392. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/scope/link-local.js +0 -0
  393. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/scope/link-production.js +0 -0
  394. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/scope/list.js +0 -0
  395. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/scope/remove.js +0 -0
  396. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/scope/rm.js +0 -0
  397. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/scope/use.js +0 -0
  398. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/secrets/arguments.json +0 -0
  399. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/secrets/check.js +0 -0
  400. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/secrets/help.js +0 -0
  401. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/secrets/help.txt +0 -0
  402. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/secrets/scan.js +0 -0
  403. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/service/help.js +0 -0
  404. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/service/help.txt +0 -0
  405. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/service/list.js +0 -0
  406. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/service/start.js +0 -0
  407. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd/view/add.js +0 -0
  408. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd-status-format/package.json +0 -0
  409. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cmd-status-format/src/main.js +0 -0
  410. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/collection/README.md +0 -0
  411. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/collection/build.json +0 -0
  412. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/collection/package.json +0 -0
  413. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/collection/src/main.js +0 -0
  414. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/config.js +0 -0
  415. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/connector-registry/package.json +0 -0
  416. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/connector-registry/src/main.js +0 -0
  417. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cron/README.md +0 -0
  418. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cron/package.json +0 -0
  419. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/cron/src/main.js +0 -0
  420. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/domain/LICENSE +0 -0
  421. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/domain/README.md +0 -0
  422. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/domain/package.json +0 -0
  423. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/domain/src/main.js +0 -0
  424. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/generator/index.js +0 -0
  425. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/i18n/package.json +0 -0
  426. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/i18n/src/main.js +0 -0
  427. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/inherits/LICENSE +0 -0
  428. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/inherits/README.md +0 -0
  429. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/inherits/package.json +0 -0
  430. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/inherits/src/main.js +0 -0
  431. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/inspector-redact/package.json +0 -0
  432. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/inspector-redact/src/main.js +0 -0
  433. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/instrument/package.json +0 -0
  434. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/instrument/src/main.js +0 -0
  435. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/job/package.json +0 -0
  436. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/job/src/main.js +0 -0
  437. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/logger/README.md +0 -0
  438. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/logger/package.json +0 -0
  439. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/logger/src/containers/default/index.js +0 -0
  440. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/logger/src/containers/file/index.js +0 -0
  441. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  442. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  443. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/logger/src/containers/mq/index.js +0 -0
  444. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/logger/src/containers/mq/speaker.js +0 -0
  445. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/logger/src/helper.js +0 -0
  446. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/logger/src/main.js +0 -0
  447. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/math/index.js +0 -0
  448. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/mcp-dispatch/package.json +0 -0
  449. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/mcp-dispatch/src/main.js +0 -0
  450. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/mcp-http/package.json +0 -0
  451. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/mcp-http/src/main.js +0 -0
  452. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/mcp-server/package.json +0 -0
  453. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/mcp-server/src/main.js +0 -0
  454. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/merge/README.md +0 -0
  455. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/merge/package.json +0 -0
  456. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/merge/src/main.js +0 -0
  457. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/metrics/package.json +0 -0
  458. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/metrics/src/main.js +0 -0
  459. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/model.js +0 -0
  460. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/nunjucks-filters/README.md +0 -0
  461. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/nunjucks-filters/package.json +0 -0
  462. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/nunjucks-filters/src/main.js +0 -0
  463. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/nunjucks-resolver/package.json +0 -0
  464. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/nunjucks-resolver/src/main.js +0 -0
  465. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/routing/README.md +0 -0
  466. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/routing/build.json +0 -0
  467. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/routing/package.json +0 -0
  468. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/routing/src/main.js +0 -0
  469. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/routing/src/radix.js +0 -0
  470. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/routing-introspect/package.json +0 -0
  471. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/routing-introspect/src/main.js +0 -0
  472. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/secrets/package.json +0 -0
  473. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/secrets/src/backends/env.js +0 -0
  474. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/secrets/src/main.js +0 -0
  475. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/session-store.js +0 -0
  476. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/shell.js +0 -0
  477. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/state.js +0 -0
  478. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/swig-filters/README.md +0 -0
  479. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/swig-filters/package.json +0 -0
  480. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/swig-filters/src/main.js +0 -0
  481. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/swig-resolver/package.json +0 -0
  482. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/swig-resolver/src/main.js +0 -0
  483. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/template-loaders/package.json +0 -0
  484. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/template-loaders/src/loaders/http.js +0 -0
  485. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/template-loaders/src/loaders/memory.js +0 -0
  486. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/template-loaders/src/main.js +0 -0
  487. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/url/README.md +0 -0
  488. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/url/index.js +0 -0
  489. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/url/routing.json +0 -0
  490. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/uuid/package.json +0 -0
  491. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/uuid/src/main.js +0 -0
  492. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/validator.js +0 -0
  493. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/watcher/package.json +0 -0
  494. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/watcher/src/main.js +0 -0
  495. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/ws-framing/package.json +0 -0
  496. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/ws-framing/src/main.js +0 -0
  497. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/ws-session/package.json +0 -0
  498. /package/framework/{v0.5.5-alpha.1 → v0.5.6-alpha.1}/lib/ws-session/src/main.js +0 -0
package/CHANGELOG.md CHANGED
@@ -6,6 +6,32 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
6
6
  and is generated by [Changie](https://github.com/miniscruff/changie).
7
7
 
8
8
 
9
+ ## 0.5.5 - 2026-06-22
10
+ ### Added
11
+ * Added gina project:move to relocate a project source tree to a new filesystem path. The project name, its home directory, the port matrix, and its bundles are preserved (only the registry path is updated). It refuses while any bundle in the project is running, refuses a cross-filesystem target (pointing you to project:import), and reverses the move on failure.
12
+ * Added gina project:backup to archive a project source tree into a timestamped .zip. node_modules is excluded and symlinks are skipped (so the framework link is not followed); the archive is written to --out (default: the current directory). The command is read-only — it never changes the source tree or the registry. --with-password is recognised but refused for now, because archive encryption is not yet implemented.
13
+ * Added gina project:restore to rebuild a project from a project:backup .zip. It extracts the source tree to --to and re-registers the project (registry entry, ports, and the gina symlink) so it is immediately startable; node_modules is not in the backup, so run npm install afterwards. It refuses to overwrite an already-registered name or a non-empty target unless --force is given. This also implements lib/archiver decompress() (the inverse of compress(), via JSZip) with a guard against archive entries escaping the target.
14
+ * Added gina framework:update to reconcile the local ~/.gina state files (main.json def_framework and the frameworks list, plus the per-version settings.json) to the installed framework version. It runs as a dry run by default; pass --fix to apply, --to-version=<v> to target a specific version, or --format=json for machine-readable output. A strict-semver guard never regresses the recorded version, and the per-version metadata maps stay owned by framework:init. This automates the post-merge state check that previously had to be performed by hand.
15
+ * Added gina framework:man, project:man, bundle:man and service:man to show inline CLI manual pages in the terminal. Each renders the group ronn .1.md page (substituting the version and copyright year) when one exists (framework today), otherwise it falls back to that group help.txt. Runtime-rendered with no build step and no markdown or man dependency.
16
+ * gina now runs on the Bun runtime. Install with `bun add -g gina`; `engine.bun` declares the supported range (`>= 1.2`), and a CI Bun smoke validates a clean install, bundle boot, and HTTP 200 response under Bun on every push to develop and master.
17
+ * Added `gina framework:reset` (shorthand `gina reset`) — a runtime, package-manager-agnostic factory reset that clears `~/.gina` (settings, project registry, env config, port allocations) so it rebuilds to defaults on the next command. Complements `npm install -g gina@latest --reset` (which only runs inside the npm install lifecycle) and gives Bun users a factory reset, since Bun blocks install scripts. Refuses while the daemon or bundles are running, unless `--force`.
18
+ * Added `gina framework:add <version>` to install a published framework version side-by-side, so a bundle can pin it via `--gina-version` or manifest `gina_version`. Downloads the version from npm, installs its dependencies, archives it under `~/.gina/archives/framework`, symlinks it into the active install, and registers it — without ever changing the default version. Supports `--force`, `--dry-run`, and `--format=json`.
19
+ * Added `gina framework:list` to show the framework versions known to an install — the active version, side-by-side symlinked versions, and archived copies — with `--all` for the full registry and `--format=json` for machine-readable output.
20
+ * Added `gina framework:remove` to remove a side-by-side installed framework version: it unlinks the symlink from the active install, deletes the archived copy, and deregisters it from main.json. Refuses to remove the active default or the real shipped version; `--force` overrides only a bundle pin, `--dry-run` previews, `--format=json` for machine output.
21
+ * `project:status` and `bundle:status` `--format=json` now include a `framework` field (the framework version each project/bundle resolves to — the per-project `projects.json` pin, falling back to the global default) and a `gina_version` field (the per-bundle `manifest.json` override, `null` when unset).
22
+ * Declare WebSocket-over-HTTP/2 routes in routing.json: a route with method "ws" and param.wsHandler "<name>" auto-registers the connection handler at bundle/channels/<name>.js at bundle start, with no programmatic app.onWebSocket() call needed. Matches an exact path or a :param pattern (e.g. url "/live/:room" matches /live/foo and exposes the captured value to the handler as request.params.room; exact paths always take precedence). Optional per-route session options (maxPayload, protocol, closeTimeout) are declared via param.wsOptions and applied when the connection is accepted. The handler receives (session, request) and can use the framework lib registry and the ORM (getModel) directly. Requires the isaac engine with http2Options.enableConnectProtocol set to true.
23
+ * WebSocket channel handlers can now make cross-bundle HTTP calls: session.query(options[, data]) returns a Promise (with an optional trailing callback), mirroring a controller's self.query(). A handler resolves another bundle by hostname (e.g. "api@project/dev") and gets back the parsed response, reusing the running server's warm HTTP/2 session cache. Works for both routing.json-declared (method "ws") and programmatic (app.onWebSocket) channels. Same-bundle data access via getModel already worked; this adds the inter-bundle HTTP leg getModel cannot do. Requires the isaac engine with http2Options.enableConnectProtocol set to true.
24
+ ### Fixed
25
+ * Inter-bundle requests made with `self.query()` no longer silently re-execute a non-idempotent request (POST/PUT/PATCH/DELETE) when a transient failure — a stream timeout, connection reset, GOAWAY/premature stream close, or an upstream 502 — occurs after the request was already sent. Auto-retries on both the HTTP/2 and HTTP/1 client paths are now gated on HTTP-method idempotency: only safe methods (GET, HEAD, OPTIONS, TRACE) are retried by default, so a request the upstream already processed is never re-run behind a lost response. A caller whose endpoint is genuinely safe to replay can opt a non-safe method back in per request with `retryUnsafe: true`.
26
+ * Fixed `gina bundle:start` failing to reinstall a project's node_modules under the Bun runtime: the arch/platform reinstall now runs `bun install` (instead of a hardcoded `npm install`) and performs the framework relink through the active runtime, so a bundle starts on a Bun-only image that ships no node or npm binary.
27
+ * Popin/dialog triggers no longer fire two identical GET requests on a single click. The hover/focus preload warmed for a `data-gina-popin-url` (legacy) or `data-gina-dialog-src` trigger is now reused by the click — even while the preload is still in flight — instead of racing a second identical request; `preOpen` popins keep their instant loading skeleton.
28
+ * `framework:init` now determines run-dir pidfile liveness with `process.kill` instead of shelling out to `ps`, so running bundles are no longer misreported as stopped — and their pidfiles wrongly pruned — on minimal images that do not ship the `ps` utility. The pid is also parsed and trimmed so a trailing newline cannot break the check.
29
+ * Fixed a stable release shipping the prior alpha version in `framework/v<version>/package.json` (the published tarball sub-manifest): the version-prepare step now rewrites that `version` field to the cut version when it renames the framework directory, matching the alpha-cut path.
30
+ * Completed the boot-path diagnostic flush so a bundle that aborts during boot — a config read/parse failure, a server core-configuration or port/protocol inconsistency, a bad routing requirement, or any uncaught exception — now writes its reason synchronously to stderr before exiting; the cause survives piped or containerised stdio instead of being truncated to an empty log under load. Also added a clear, actionable error when the listening port cannot be resolved from ports.reverse.json, replacing a cryptic TypeError at boot.
31
+ ### Security
32
+ * Bumped the ws dependency floor to ^8.21.0 to resolve a WebSocket memory-exhaustion denial-of-service advisory (GHSA-96hv-2xvq-fx4p) affecting ws versions below 8.21.0.
33
+ * Hardened the framework log-tail auto-restart path (`gina tail --follow`): bundle/project identifiers parsed from log output are now rejected when they contain path separators or `..` traversal (confining the saved-argv lookup to the tmp directory), and the saved start command is re-executed with execFileSync (no shell) instead of execSync, as defense-in-depth against command injection via crafted log content.
34
+
9
35
  ## 0.5.4 - 2026-06-19
10
36
  ### Added
11
37
  * Added a `--ignore-ports` flag to `gina bundle:add`: pass a comma-separated list of port numbers (e.g. `--ignore-ports=3000,3001`) to exclude them from the availability scan when creating or importing a bundle, on top of the already-assigned ports and the reserved 4100-4199 range that are skipped automatically. Composable with `--start-port-from`.
package/README.md CHANGED
@@ -28,28 +28,28 @@ Node.js MVC framework with built-in HTTP/2, multi-bundle architecture, and scope
28
28
  | Hot reload | WatcherService evicts `require.cache` only on file change — zero per-request overhead in dev |
29
29
  | K8s ready | `gina-container`, `gina-init`, SIGTERM drain, JSON stdout logging |
30
30
  | Dependency injection | Mockable connectors and config for unit testing |
31
+ | Runtime | Node.js 22–26, or **Bun** (`bun add -g gina`) — install + boot validated end-to-end by a CI Bun smoke |
31
32
 
32
33
  ## Quick start
33
34
 
34
35
  ```bash
35
- npm install -g gina@latest --prefix=~/.npm-global
36
+ npm install -g gina@latest --prefix=~/.npm-global # or, on the Bun runtime: bun add -g gina
36
37
  gina project:add @myproject --path=$(pwd)/myproject
37
38
  gina bundle:add api @myproject
38
39
  gina bundle:start api @myproject
39
40
  open https://localhost:3100
40
41
  ```
41
42
 
42
- ## What's in 0.5.4
43
-
44
- - **Node.js 26 support.** The supported range now includes Node 26 `engine.node` is `>= 22 <27`, the full test suite passes on 26.3.0, and Node 26 is part of the CI matrix.
45
- - **Form-validation rule fixes (server + client).** `isFloat` now accepts string float values such as `"1.5"`, so server-side validation of form and urlencoded input (always strings) no longer rejects valid floats whole numbers still fail. `isDate` validates non-ISO masks like `dd/mm/yyyy` (a slash mask with a day past 12 is no longer mis-read as US `MM/DD`) and now returns the field object, so it chains: `field.isDate(mask).isRequired()`.
46
- - **Quieter live form validation.** While a field is being edited only the soft warning border shows; the error message is revealed once the field is committed (on blur or submit).
47
- - **File uploads honour their configured directory and limits.** Multipart uploads now write to the configured `upload.tmpPath` (or a per-group `path`), creating the directory if missing, instead of always using the OS temp dir. `upload.maxFields` (a global per-request file-count cap) is now enforced, and `upload.maxFieldsSize` honours its unit suffix (`B`/`KB`/`MB`/`GB`; a bare number is read as MB). **Security:** a file uploaded to an unconfigured group is now rejected with HTTP 400 instead of streaming through unchecked, closing a bypass of a group's `allowedExtensions` / `isMultipleAllowed` limits. **Back-compat:** the `untagged` default now sets `isMultipleAllowed: true`, and a non-MB `maxFieldsSize` suffix now means what it says — see the [migration guide](https://gina.io/docs/migration) if your bundle configures uploads.
48
- - **Dev-mode heap fixes.** Two retention paths that could push a long-running dev bundle toward an out-of-memory crash under sustained traffic are closed: the hot-reload path no longer accumulates dead module references for five core libraries (now loaded once, like the logger / job / state singletons), and the HTTP/2 `self.query()` client releases a settled stream at every non-retry outcome instead of retaining the per-request controller and its config clone. Production was never affected by either.
49
- - **Tighter per-request config isolation.** The router now deep-clones only the routing table a matched request mutates, sharing the large immutable remainder by reference removing a concurrency heap high-water-mark proportional to config size. Relatedly, `getRouteByUrl` no longer mutates the shared route config in place, so a `:placeholder` route can't leak one request's resolved values (path / namespace / file / title) into later requests for the same route.
50
- - **Dev Inspector reliability.** The data tabs now reliably track the page that opened the Inspector a per-tab channel survives `Cross-Origin-Opener-Policy: same-origin` severing `window.opener`. The Swig render path isolates per-request query/flow capture (concurrent requests no longer cross data); `/_gina/logs` and `/_gina/indexes` resolve the right bundle in reverse-proxy multi-bundle setups; and the SPA is hardened against a corrupted localStorage fold-state and an unescaped form-data label. Dev tooling only.
51
- - **Express-engine admin-endpoint parity.** The default (Express) engine now serves `/_gina/info` and `/_gina/cache/stats` with the same always-on, loopback-only, IP-allowlisted behaviour as the Isaac engine (they previously 404'd there).
52
- - **`gina bundle:add --ignore-ports`.** Exclude specific ports from the availability scan when creating or importing a bundle (e.g. `--ignore-ports=3000,3001`); composable with `--start-port-from`.
43
+ ## What's in 0.5.5
44
+
45
+ - **WebSocket routes in `routing.json`.** Declare a WebSocket-over-HTTP/2 endpoint with `"method": "ws"` and a `param.wsHandler` pointing at a `channels/<name>.js` handler auto-registered at bundle start, no `app.onWebSocket()` call needed. Routes support `:param` path segments and per-route `param.wsOptions` (`maxPayload` / `protocol` / `closeTimeout`).
46
+ - **Cross-bundle calls from a channel handler.** A WebSocket handler can now call another bundle over HTTP with `session.query()`the same warm-HTTP/2-session call a controller makes with `self.query()`.
47
+ - **Framework versions side-by-side.** `gina framework:add <version>` installs a published framework version alongside the active one so a bundle can pin it via `--gina-version`; `framework:list` / `framework:remove` / `framework:update` / `framework:reset` round out the set.
48
+ - **Project lifecycle CLI.** `gina project:move --to=<path>` relocates a project's source tree (and its registry entry); `project:backup` / `project:restore` archive a project to a `.zip` and rebuild it.
49
+ - **Inline CLI man pages.** `gina framework:man` (and `project:man` / `bundle:man` / `service:man`) renders a command group's manual page in the terminal.
50
+ - **Bun is now a supported runtime.** Install with `bun add -g gina`; the install + boot path is validated end-to-end by a CI Bun smoke.
51
+ - **Idempotent HTTP/2 client retries.** Inter-bundle `self.query()` now auto-retries only HTTP safe methods on a transient transport failure, so a `POST` / `PUT` / `PATCH` / `DELETE` the upstream already executed is no longer silently replayed; opt a non-safe call back in with `retryUnsafe: true`.
52
+ - **Security.** A WebSocket denial-of-service fix via an `ws` dependency override (reached through `engine.io`), plus log-tail restart hardening.
53
53
 
54
54
  See the full [Changelog](./CHANGELOG.md) and [Roadmap](./ROADMAP.md).
55
55
 
package/ROADMAP.md CHANGED
@@ -29,7 +29,8 @@ This roadmap covers planned features, architectural improvements, new connectors
29
29
  | **Q2 2026** | `0.5.2` ✅ | Patch: released-response crash family completed across the remaining synchronous controller surface — `renderJSON()` / `redirect()` / `store()` / `push()` / `renderStream()` / request-method + form-rule helpers no longer kill the bundle when called on an already-released response · exhausted HTTP/2 502 retries surface a typed `BAD_GATEWAY` error instead of being consumed as success |
30
30
  | **Q2 2026** | `0.5.3` ✅ | Patch: released-response crash family finished — late `throwError(status, error)` (2- and 3-argument forms) and the HTML render delegates (swig / nunjucks + async variants) no longer crash or emit unhandled rejections when invoked on an already-released response · atomic `~/.gina` state-file writes (concurrent multi-bundle / multi-container boot can't read a torn file) · framework command-socket hardened against malformed / fragmented payloads · framework socket port no longer corrupted by a bundle's `--port` · synchronous boot-failure diagnostics under piped stdout/stderr · storage `_id` collision hardening · `gina port:set --force` |
31
31
  | **Q2 2026** | `0.5.4` ✅ | Node.js 26 support (engine `>= 22 <27`, CI matrix) · FormValidator fixes (`isFloat` accepts string floats · `isDate` non-ISO masks + rule chaining) · quieter live form validation (error message revealed on blur) · file-upload fixes (honour `tmpPath` / per-group `path` · enforce `maxFields` + `maxFieldsSize` unit suffix · **Security**: reject uploads to an unconfigured group, closing an `allowedExtensions` / `isMultipleAllowed` bypass) · two dev-mode heap fixes (hot-reload lib-eviction leak · HTTP/2 `self.query()` settled-stream retention) · tighter per-request config isolation (narrowed router clone · `getRouteByUrl` shared-config mutation) · dev Inspector reliability (per-tab channel under COOP · Swig render-race isolation · multi-bundle proxy log/index routing · SPA hardening) · Express-engine `/_gina/info` + `/_gina/cache/stats` parity · `bundle:add --ignore-ports` |
32
- | **Q1 2027** | `0.5.x` | HTTP/2 priorities (blocked on Node scheduler hooks) · CLI Tier 3 (project:move, framework:update, backup/restore, man pages) · Beemaster admin + visual translation editor |
32
+ | **Q2 2026** | `0.5.5` | WebSocket routes in `routing.json` (`method: "ws"` + `param.wsHandler` → `channels/<name>.js`, `:param` paths, per-route `param.wsOptions`) · cross-bundle `session.query()` from WebSocket channel handlers · framework version side-by-side CLI (`framework:add` / `framework:list` / `framework:remove` / `framework:update` / `framework:reset`) · `project:move` / `project:backup` / `project:restore` · inline CLI man pages (`framework:man` / `project:man` / `bundle:man` / `service:man`) · Bun promoted to a supported, CI-gated runtime · idempotent HTTP/2 client retries (safe-method gating + per-call `retryUnsafe` opt-in) · **Security**: WebSocket-DoS dependency hardening (`ws` override) · `tail` restart hardening |
33
+ | **Q1 2027** | `0.5.x` | HTTP/2 priorities (blocked on Node scheduler hooks) · Beemaster admin + visual translation editor |
33
34
  | **Q3 2027** | `1.0.0` | First stable release — Windows alpha compatibility is a hard gate |
34
35
 
35
36
  ---
@@ -78,10 +79,14 @@ Stub commands confirmed in source — handler files exist but are empty or comme
78
79
 
79
80
  | Status | Feature | Version | Target |
80
81
  | --- | --- | --- | --- |
81
- | 📋 | **`project:move`** — Relocate a project's source directory and update all `~/.gina/` registry entries to the new path. Handler is 0 lines. | `0.5.x` | Q1 2027 |
82
- | 📋 | **`framework:update`** — Self-update the installed Gina framework to the latest (or a specified) version without reinstalling via npm. Handler is 0 lines. | `0.5.x` | Q1 2027 |
83
- | 📋 | **`project:backup` / `project:restore`** Archive a project's source, config, and data to a tarball (`backup`), and restore from it (`restore`). Documented in `project/help.txt` as support-only. No handler files exist. | `0.5.x` | Q1 2027 |
84
- | 📋 | **`framework:man` / `project:man` / `bundle:man`**Inline CLI manual pages. Mentioned in `framework/help.txt` but no handler files exist for any group. | `0.5.x` | Q1 2027 |
82
+ | | **`project:move`** — Relocate a project's source directory (atomic `renameSync`) and rewrite the `~/.gina/` registry `path`. Refuses while a bundle is running or across filesystems; `--to=/new/path`. | `0.5.5-alpha.2` | 2026-06-19 |
83
+ | | **`framework:update`** — Reconcile the `~/.gina/` state files (`main.json` `def_framework` + `frameworks` list, `<short>/settings.json`) to the installed framework version. Dry-run by default; `--fix` to apply, `--to-version` to target a specific version, `--format=json`. Automates the post-merge state check with a strict-semver never-regress guard. npm self-update is a planned follow-up — use `npm i -g gina@latest` meanwhile. | `0.5.5-alpha.2` | 2026-06-20 |
84
+ | | **`framework:add`** — Install a published framework version side-by-side so a bundle can pin it via `--gina-version` / manifest `gina_version`. Downloads from npm, installs the tree's own deps, archives it under `~/.gina/archives/framework`, symlinks it into the active install, and registers it in `main.json` `frameworks[<short>]` never changing the default version. `--dry-run` / `--force` / `--format=json`. | `0.5.5-alpha.2` | 2026-06-21 |
85
+ | | **`framework:list`** List the framework versions known to this install the active version, side-by-side symlinked versions, and archived copies — by reconciling the install dirs, the `~/.gina/archives/framework` copies, and the `main.json` `frameworks` registry into one view. `--all` also includes versions registered but not on disk; `--format=json`. Read-only. | `0.5.5-alpha.2` | 2026-06-21 |
86
+ | ✅ | **`framework:remove`** — Remove a side-by-side version: deregister it from `main.json` `frameworks[<short>]`, unlink its symlink, and delete its archived copy — the inverse of `framework:add`. Refuses to remove the active default (`def_framework`) or the real shipped dir (neither `--force`-overridable); `--force` overrides only a bundle pin. `--dry-run` / `--format=json`. | `0.5.5-alpha.2` | 2026-06-21 |
87
+ | ✅ | **`framework:reset`** — Factory reset: clears `~/.gina` (settings, project registry, env config, port allocations) so the framework rebuilds to clean defaults on the next command — the runtime, package-manager-agnostic equivalent of a fresh install (works identically on Node and Bun, unlike the npm install-flag form). Project source files are never touched. Refuses while the daemon or any bundle is running (`framework:init`'s `process.kill`-based pidfile prune keeps the guard reliable even on `ps`-less images); `--force` overrides. Shorthand: `gina reset`. | `0.5.5-alpha.2` | 2026-06-21 |
88
+ | ✅ | **`project:backup` / `project:restore`** — Archive a project's source tree to a `.zip` (`backup`, symlinks skipped), and rebuild + re-register a project from a backup `.zip` so it is immediately startable (`restore`). | `0.5.5-alpha.2` | 2026-06-19 |
89
+ | ✅ | **`framework:man` / `project:man` / `bundle:man` / `service:man`** — Inline CLI manual pages. Runtime-renders the group's ronn `.1.md` (substituting `{version}`/`{year}`) when it exists (`framework` today), else falls back to that group's `help.txt`. No build step or markdown/man dependency. | `0.5.5-alpha.2` | 2026-06-20 |
85
90
 
86
91
  ---
87
92
 
@@ -292,7 +297,7 @@ A cold audit of the Couchbase connector identified two critical security vulnera
292
297
  | ✅ | **Trailer support** — `stream.sendTrailers()` + `waitForTrailers: true` | `0.4.0` | 2026-05-22 | Opt-in HTTP/2 response trailers via `self.sendTrailers(fields)`. The render pipeline sets `waitForTrailers` and emits the trailing headers after the body (in the `wantTrailers` event), across all render delegates. Activated only when a controller calls `self.sendTrailers(fields)`; HTTP/1.1 and the no-trailers path are unchanged. For gRPC-style streaming (`grpc-status`) and content-integrity (`Digest`) use cases. |
293
298
  | ✅ | **Alt-Svc header** — advertise HTTP/3 availability | `0.4.2` | 2026-06-02 | Set `Alt-Svc: h3=":443"; ma=86400` response header to advertise HTTP/3 (QUIC) availability via a QUIC-capable reverse proxy (nginx, Caddy, Cloudflare). Gina does not need to implement QUIC — just announce it. Opt-in via `settings.server.json`. Native HTTP/3 is out of scope: Node.js has no stable QUIC API, and the standard deployment topology (Gina → proxy → client) already delivers HTTP/3 at the edge. |
294
299
  | 📋 | **RFC 9218 Extensible Priorities** — read `Priority: u=N, i` request header | `0.5.x` | Q1 2027 | Use the RFC 9218 priority header to order response writes for multiplexed API clients. Low value for typical HTML page loads; high value for parallel API requests with declared urgency. |
295
- | ✅ | **WebSocket over HTTP/2** (RFC 8441 extended CONNECT) — opt-in via `http2Options.enableConnectProtocol` (default off; https and cleartext h2c HTTP/2 bundles). From `onInitialize`, `app.onWebSocket(path, handler)` registers per-path WebSocket handlers; accepted streams arrive as full sessions backed by a built-in dependency-free RFC 6455 codec (auto-pong, timed close handshake, UTF-8 + close-code validation, payload/fragment DoS caps, backpressure passthrough, graceful shutdown drain). Unknown paths are refused with 404, plain CONNECT keeps its 405, and default-off deployments are byte-identical. | `0.4.7` | 2026-06-11 |
300
+ | ✅ | **WebSocket over HTTP/2** (RFC 8441 extended CONNECT) — opt-in via `http2Options.enableConnectProtocol` (default off; https and cleartext h2c HTTP/2 bundles). From `onInitialize`, `app.onWebSocket(path, handler)` registers per-path WebSocket handlers; accepted streams arrive as full sessions backed by a built-in dependency-free RFC 6455 codec (auto-pong, timed close handshake, UTF-8 + close-code validation, payload/fragment DoS caps, backpressure passthrough, graceful shutdown drain). Unknown paths are refused with 404, plain CONNECT keeps its 405, and default-off deployments are byte-identical. **Extended in `0.5.5`:** endpoints are declarable in `routing.json` (`method: "ws"` + `param.wsHandler` → `channels/<name>.js`, `:param` paths, per-route `param.wsOptions`), and handlers can call other bundles over HTTP with `session.query()`. | `0.4.7` | 2026-06-11 |
296
301
 
297
302
  ---
298
303
 
package/bin/cli-debug CHANGED
@@ -11,6 +11,7 @@ const {exec} = require('child_process');
11
11
  const {execSync} = require('child_process');
12
12
  const {spawn} = require('child_process');
13
13
  const os = require('os');
14
+ var runtime = require(__dirname + '/../utils/runtime.js');
14
15
 
15
16
  var isWin32 = function() {
16
17
  return (os.platform() == 'win32') ? true : false;
@@ -61,7 +62,12 @@ debugPort = (debugPort != null) ? '--inspect-brk=0.0.0.0:'+debugPort : '--inspec
61
62
  // console.debug('\r\nDebugger attached.');
62
63
  console.log('\nYou should now start debug on port #'+ settings.debug_port +' before doing anything else ...');
63
64
 
64
- var nodeBin = execSync('which node').toString().trim();
65
+ // Under Bun, `which node` resolves nothing (a Bun image ships no node) — spawn
66
+ // the running Bun binary instead. Under Node this is the byte-identical
67
+ // `which node` result (runtimeBinary() returns its fallback verbatim).
68
+ var nodeBin = runtime.isBun()
69
+ ? runtime.runtimeBinary()
70
+ : runtime.runtimeBinary(execSync('which node').toString().trim());
65
71
  var cliBin = __dirname + '/cli';
66
72
 
67
73
  argv.splice(0, 0, debugPort);
package/bin/gina CHANGED
@@ -29,13 +29,20 @@
29
29
  var fs = require('fs');
30
30
  const {spawn} = require('child_process');
31
31
  const {execSync} = require('child_process');
32
+ var runtime = require(__dirname + '/../utils/runtime.js');
32
33
 
33
34
  var restartPid = null;
34
35
 
35
36
  function runAsSubProcess() {
36
37
 
37
38
  var argv = Array.from(process.argv);
38
- var nodeBin = execSync('which node').toString().trim();
39
+ // Under Bun, `which node` resolves nothing (a Bun image ships no node) — spawn
40
+ // the running Bun binary instead so the daemon child inherits the runtime.
41
+ // Under Node this is the byte-identical `which node` result: isBun() is false,
42
+ // so runtimeBinary() returns its fallback verbatim (zero Node delta).
43
+ var nodeBin = runtime.isBun()
44
+ ? runtime.runtimeBinary()
45
+ : runtime.runtimeBinary(execSync('which node').toString().trim());
39
46
  var cliBin = __dirname + '/cli';
40
47
  var fakeDaemonPid = '--fake-daemon-pid='+ process.pid;
41
48
 
@@ -189,7 +196,13 @@ function runCMD() {
189
196
 
190
197
  process.env.NODE_BUNDLE = process.argv[3];
191
198
  process.env.NODE_PROJECT = process.argv[4];
192
- process.env.NODE_PROJECT = process.env.NODE_PROJECT.replace(/\@/, '');
199
+ // Bun-safety: under Node, assigning an absent argv to an env var coerces to
200
+ // the string 'undefined' (so .replace works); under Bun it stays real
201
+ // undefined and .replace throws. Guard the call so Node behaviour is
202
+ // unchanged (on Node the value is always a string here).
203
+ if ( typeof process.env.NODE_PROJECT === 'string' ) {
204
+ process.env.NODE_PROJECT = process.env.NODE_PROJECT.replace(/\@/, '');
205
+ }
193
206
 
194
207
  if (
195
208
  /(bundle\:start|bundle\:restart)/.test(process.argv[2])
@@ -200,7 +213,12 @@ function runCMD() {
200
213
  var tmpPath = getTmpDir();
201
214
  var argFilename = tmpPath +'/'+ process.env.NODE_BUNDLE +'@'+ process.env.NODE_PROJECT +'.argv';
202
215
 
203
- process.env.NODE_ARGV = process.argv.slice();
216
+ // Bun-safety: Node coerces an array assigned to an env var to a comma-
217
+ // joined string; Bun leaves it a real array (object), so the writeFileSync
218
+ // below throws "data must be string/Buffer". String(array) reproduces
219
+ // Node's comma-join exactly (zero Node delta) and matches the comma->space
220
+ // read in getBundleStartingArgv() (utils/helper.js).
221
+ process.env.NODE_ARGV = String(process.argv.slice());
204
222
  if (/bundle\:restart/.test(process.argv[2])) {
205
223
  process.env.NODE_ARGV = process.env.NODE_ARGV.replace('bundle:restart', 'bundle:start');
206
224
  }
@@ -208,7 +226,10 @@ function runCMD() {
208
226
  try {
209
227
  fs.writeFileSync(argFilename, process.env.NODE_ARGV );
210
228
  } catch (err) {
211
- console.emerg(err);
229
+ // bin/gina's `console` is the global console (no lib.logger here), which
230
+ // has no `.emerg` on either runtime; emerg would itself throw. (This
231
+ // catch is unreachable on Node, where the write above never throws.)
232
+ console.error(err);
212
233
  }
213
234
  help = null;
214
235
  tmpPath = null;
@@ -0,0 +1 @@
1
+ 0.5.6-alpha.1
@@ -17517,6 +17517,10 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
17517
17517
  * @type {object}
17518
17518
  */
17519
17519
  var preloadCache = {};
17520
+ // preloadWaiters[url] = [fn, ...] — callbacks parked by a click that adopted an
17521
+ // in-flight preload; preloadFetch fires them with the body (or null on failure) so a
17522
+ // click reuses the prefetch instead of issuing a second identical GET (#B54).
17523
+ var preloadWaiters = {};
17520
17524
 
17521
17525
  /** @inner @type {object} warn-once registry, keyed by deprecated attribute name */
17522
17526
  var _deprecationWarned = {};
@@ -18032,10 +18036,16 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
18032
18036
  xhrPreload.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
18033
18037
  xhrPreload.onreadystatechange = function () {
18034
18038
  if ( xhrPreload.readyState == 4 ) {
18039
+ // #B54 — wake any click that adopted this in-flight preload instead of
18040
+ // firing its own duplicate GET (see consumePreload).
18041
+ var _waiters = preloadWaiters[url] || [];
18042
+ delete preloadWaiters[url];
18035
18043
  if ( /^2/.test(xhrPreload.status) ) {
18036
18044
  preloadCache[url] = xhrPreload.responseText;
18045
+ for ( var _w = 0; _w < _waiters.length; ++_w ) { _waiters[_w](xhrPreload.responseText); }
18037
18046
  } else {
18038
18047
  delete preloadCache[url];
18048
+ for ( var _wf = 0; _wf < _waiters.length; ++_wf ) { _waiters[_wf](null); }
18039
18049
  }
18040
18050
  }
18041
18051
  };
@@ -18087,17 +18097,47 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
18087
18097
  }
18088
18098
 
18089
18099
  /**
18090
- * consumePreload — if a warmed preload for `url` is cached, apply it to the popin
18091
- * (deleting the cache entry) and return `true`; else `false` so the caller falls
18092
- * back to a click-time XHR. A `null` entry is in-flight (reserved, not ready).
18100
+ * consumePreload — reuse a hover/focus preload for `url` instead of firing a second
18101
+ * identical GET on click (#B54):
18102
+ * - ready (cached body) -> apply it now; return true.
18103
+ * - in-flight (null slot) -> park a waiter that applies the body when the
18104
+ * preload resolves (or runs `onMiss` if it failed);
18105
+ * return true (handled — caller must NOT also load).
18106
+ * - never warmed (undefined) -> return false so the caller loads itself.
18093
18107
  *
18094
18108
  * @inner
18109
+ * @param {string} url - the resolved popin URL.
18110
+ * @param {object} $popin - the registered popin.
18111
+ * @param {function} [onMiss] - the caller's click-time load, run only if an adopted
18112
+ * in-flight preload ends up failing.
18113
+ * @returns {boolean} true if the preload was (or will be) consumed.
18095
18114
  */
18096
- function consumePreload(url, $popin) {
18097
- if ( preloadCache[url] == null ) {
18115
+ function consumePreload(url, $popin, onMiss) {
18116
+ var slot = preloadCache[url];
18117
+ if ( typeof(slot) == 'undefined' ) {
18098
18118
  return false;
18099
18119
  }
18100
- var body = preloadCache[url];
18120
+ if ( slot === null ) {
18121
+ // In-flight: adopt the running preload rather than fire a second GET.
18122
+ // A preOpen popin still gets its instant born-modal skeleton now; the
18123
+ // adopted preload swaps in the real content on arrival — matching the
18124
+ // popinLoad preOpen flow this consume path bypasses (#B54).
18125
+ if ( $popin && $popin.options && $popin.options.preOpen ) {
18126
+ showLoadingShell($popin, ensurePopinDialog($popin));
18127
+ }
18128
+ if ( typeof(preloadWaiters[url]) == 'undefined' ) {
18129
+ preloadWaiters[url] = [];
18130
+ }
18131
+ preloadWaiters[url].push(function (body) {
18132
+ if ( body == null ) {
18133
+ if ( typeof(onMiss) == 'function' ) { onMiss(); }
18134
+ } else {
18135
+ handleLoadedBody(body, $popin, ensurePopinDialog($popin));
18136
+ }
18137
+ });
18138
+ return true;
18139
+ }
18140
+ var body = slot;
18101
18141
  delete preloadCache[url];
18102
18142
  var $el = ensurePopinDialog($popin);
18103
18143
  handleLoadedBody(body, $popin, $el);
@@ -18261,12 +18301,13 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
18261
18301
  });
18262
18302
  }
18263
18303
 
18264
- // Consume a warmed preload if present; else fall through to a click-time XHR.
18265
- if ( consumePreload(descriptor.src, existing) ) {
18304
+ // Consume a warmed OR in-flight preload; else fall through to a click-time XHR.
18305
+ var loadOptions = merge({ isSynchrone: false, withCredentials: false }, existing.options);
18306
+ var onMiss = function () { popinLoad(name, descriptor.src, loadOptions); };
18307
+ if ( consumePreload(descriptor.src, existing, onMiss) ) {
18266
18308
  return;
18267
18309
  }
18268
- var loadOptions = merge({ isSynchrone: false, withCredentials: false }, existing.options);
18269
- popinLoad(name, descriptor.src, loadOptions);
18310
+ onMiss();
18270
18311
  } else {
18271
18312
  openInPageDialog(descriptor, $trigger);
18272
18313
  }
@@ -18374,23 +18415,6 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
18374
18415
  // console.debug("[POPIN CLICK #3]", $popin.openTrigger, " VS ", e.currentTarget.id);
18375
18416
  $popin.openTrigger = e.currentTarget.id || e.currentTarget.getAttribute('id');
18376
18417
 
18377
- var fired = false;
18378
- addListener(gina, $popin.target, 'loaded.'+$popin.id, function(e) {
18379
- e.preventDefault();
18380
-
18381
- // console.debug('Popin loaded: true, fired: '+ fired + ', $popin.isOpen: '+ $popin.isOpen);
18382
-
18383
- if (!fired) {
18384
- fired = true;
18385
- console.debug('active popin should be ', $popin.id);
18386
- gina.popin.activePopinId = $popin.id;
18387
- popinBind(e, $popin);
18388
- if (!$popin.isOpen) {
18389
- popinOpen($popin.name);
18390
- }
18391
- }
18392
- });
18393
-
18394
18418
  // loading & binding popin
18395
18419
  // Non-Preflighted requests
18396
18420
  var options = {
@@ -18402,7 +18426,38 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
18402
18426
  if (!url) {
18403
18427
  throw new Error('Popin `url` not defined, please check value for `data-gina-popin-url`');
18404
18428
  }
18405
- popinLoad($popin.name, url, options);
18429
+
18430
+ // The click-time load: registers the loaded.<id> listener that
18431
+ // injects + opens, then issues the XHR. Wrapped so a consumed
18432
+ // preload can skip it (#B54), and an adopted-but-failed preload
18433
+ // can fall back to it.
18434
+ var doLoad = function() {
18435
+ var fired = false;
18436
+ addListener(gina, $popin.target, 'loaded.'+$popin.id, function(e) {
18437
+ e.preventDefault();
18438
+
18439
+ // console.debug('Popin loaded: true, fired: '+ fired + ', $popin.isOpen: '+ $popin.isOpen);
18440
+
18441
+ if (!fired) {
18442
+ fired = true;
18443
+ console.debug('active popin should be ', $popin.id);
18444
+ gina.popin.activePopinId = $popin.id;
18445
+ popinBind(e, $popin);
18446
+ if (!$popin.isOpen) {
18447
+ popinOpen($popin.name);
18448
+ }
18449
+ }
18450
+ });
18451
+ popinLoad($popin.name, url, options);
18452
+ };
18453
+
18454
+ // #B54 — reuse a hover/focus preload (warmed OR in-flight) for the
18455
+ // same URL instead of firing a second identical GET. Mirrors the
18456
+ // new data-gina-dialog path (openFromTrigger).
18457
+ if ( consumePreload(url, $popin, doLoad) ) {
18458
+ return;
18459
+ }
18460
+ doLoad();
18406
18461
  });
18407
18462
 
18408
18463
 
@@ -19003,9 +19058,9 @@ define('gina/popin', [ 'require', 'lib/domain', 'lib/merge', 'utils/events' ], f
19003
19058
  *
19004
19059
  * @example
19005
19060
  * // gina default skeleton:
19006
- * new PopinHandler({ name: 'form', preOpen: true });
19061
+ * new Popin({ name: 'form', preOpen: true });
19007
19062
  * // consumer markup (delete your own pre-open observer, keep your look):
19008
- * new PopinHandler({ name: 'form', preOpen: true, loadingShell: '<div class="my-skel">…</div>' });
19063
+ * new Popin({ name: 'form', preOpen: true, loadingShell: '<div class="my-skel">…</div>' });
19009
19064
  */
19010
19065
  function showLoadingShell($popin, $el) {
19011
19066
  // Opt-in only — off unless the popin was registered with `preOpen: true`.