gina 0.5.25 → 0.5.26

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 (549) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +22 -15
  3. package/ROADMAP.md +4 -3
  4. package/bin/cli +22 -1
  5. package/bin/cmd +11 -1
  6. package/bin/gina-init +1 -0
  7. package/framework/v0.5.26/VERSION +1 -0
  8. package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/js/gina.js +10 -6
  9. package/framework/{v0.5.25 → v0.5.26}/core/config.js +29 -5
  10. package/framework/{v0.5.25 → v0.5.26}/core/connectors/couchbase/index.js +48 -3
  11. package/framework/{v0.5.25 → v0.5.26}/core/controller/controller.render-json.js +4 -0
  12. package/framework/{v0.5.25 → v0.5.26}/core/controller/controller.render-nunjucks.js +4 -0
  13. package/framework/{v0.5.25 → v0.5.26}/core/controller/controller.render-swig.js +4 -0
  14. package/framework/{v0.5.25 → v0.5.26}/core/server.isaac.js +12 -0
  15. package/framework/{v0.5.25 → v0.5.26}/core/server.js +235 -1
  16. package/framework/{v0.5.25 → v0.5.26}/core/template/conf/settings.json +36 -0
  17. package/framework/{v0.5.25 → v0.5.26}/lib/authz-gate/src/main.js +169 -2
  18. package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/arguments.json +1 -0
  19. package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/help.txt +19 -6
  20. package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/mcp-start.js +47 -5
  21. package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/openapi.js +37 -4
  22. package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/init.js +28 -1
  23. package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/set.js +5 -0
  24. package/framework/{v0.5.25 → v0.5.26}/lib/connector-error/src/main.js +8 -4
  25. package/framework/{v0.5.25 → v0.5.26}/lib/logger/src/containers/mq/listener.js +32 -2
  26. package/framework/{v0.5.25 → v0.5.26}/lib/mcp-http/src/main.js +110 -11
  27. package/framework/{v0.5.25 → v0.5.26}/lib/merge/src/main.js +10 -6
  28. package/framework/{v0.5.25 → v0.5.26}/package.json +1 -1
  29. package/gna.js +4 -4
  30. package/llms.txt +10 -5
  31. package/package.json +3 -3
  32. package/resources/home/settings.json +1 -0
  33. package/schema/routing.json +20 -0
  34. package/schema/settings.json +13 -0
  35. package/utils/helper.js +1 -1
  36. package/framework/v0.5.25/VERSION +0 -1
  37. /package/framework/{v0.5.25 → v0.5.26}/AUTHORS +0 -0
  38. /package/framework/{v0.5.25 → v0.5.26}/LICENSE +0 -0
  39. /package/framework/{v0.5.25 → v0.5.26}/core/asset/html/nolayout.html +0 -0
  40. /package/framework/{v0.5.25 → v0.5.26}/core/asset/html/static.html +0 -0
  41. /package/framework/{v0.5.25 → v0.5.26}/core/asset/img/android-chrome-192x192.png +0 -0
  42. /package/framework/{v0.5.25 → v0.5.26}/core/asset/img/android-chrome-512x512.png +0 -0
  43. /package/framework/{v0.5.25 → v0.5.26}/core/asset/img/apple-touch-icon.png +0 -0
  44. /package/framework/{v0.5.25 → v0.5.26}/core/asset/img/favicon-16x16.png +0 -0
  45. /package/framework/{v0.5.25 → v0.5.26}/core/asset/img/favicon-32x32.png +0 -0
  46. /package/framework/{v0.5.25 → v0.5.26}/core/asset/img/favicon.ico +0 -0
  47. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/README.md +0 -0
  48. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  49. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  50. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  51. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  52. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  53. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  54. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
  55. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  56. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  57. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  58. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
  59. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
  60. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
  61. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  62. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -0
  63. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  64. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  65. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
  66. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  67. /package/framework/{v0.5.25 → v0.5.26}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  68. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/ai/index.js +0 -0
  69. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/ai/lib/connector.js +0 -0
  70. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/couchbase/lib/connector.js +0 -0
  71. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  72. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  73. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/couchbase/lib/n1ql.js +0 -0
  74. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/couchbase/lib/session-store.js +0 -0
  75. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  76. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  77. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/mongodb/index.js +0 -0
  78. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/mongodb/lib/connector.js +0 -0
  79. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/mongodb/lib/job-store.js +0 -0
  80. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
  81. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/mongodb/lib/session-store.js +0 -0
  82. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/mysql/index.js +0 -0
  83. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/mysql/lib/connector.js +0 -0
  84. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/postgresql/index.js +0 -0
  85. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/postgresql/lib/connector.js +0 -0
  86. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/redis/index.js +0 -0
  87. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/redis/lib/connector.js +0 -0
  88. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/redis/lib/job-store.js +0 -0
  89. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/redis/lib/render-cache-store.js +0 -0
  90. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/redis/lib/session-store.js +0 -0
  91. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/scylladb/index.js +0 -0
  92. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/scylladb/lib/connector.js +0 -0
  93. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/scylladb/lib/session-store.js +0 -0
  94. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/sql-parser.js +0 -0
  95. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/sqlite/index.js +0 -0
  96. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/sqlite/lib/connector.js +0 -0
  97. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/sqlite/lib/job-store.js +0 -0
  98. /package/framework/{v0.5.25 → v0.5.26}/core/connectors/sqlite/lib/session-store.js +0 -0
  99. /package/framework/{v0.5.25 → v0.5.26}/core/content.encoding +0 -0
  100. /package/framework/{v0.5.25 → v0.5.26}/core/controller/controller.framework.js +0 -0
  101. /package/framework/{v0.5.25 → v0.5.26}/core/controller/controller.js +0 -0
  102. /package/framework/{v0.5.25 → v0.5.26}/core/controller/controller.render-nunjucks-async.js +0 -0
  103. /package/framework/{v0.5.25 → v0.5.26}/core/controller/controller.render-stream.js +0 -0
  104. /package/framework/{v0.5.25 → v0.5.26}/core/controller/controller.render-swig-async.js +0 -0
  105. /package/framework/{v0.5.25 → v0.5.26}/core/controller/controller.render-v1.js +0 -0
  106. /package/framework/{v0.5.25 → v0.5.26}/core/controller/index.js +0 -0
  107. /package/framework/{v0.5.25 → v0.5.26}/core/controller/inspector-window-emit.js +0 -0
  108. /package/framework/{v0.5.25 → v0.5.26}/core/controller/release-banner.js +0 -0
  109. /package/framework/{v0.5.25 → v0.5.26}/core/dev/index.js +0 -0
  110. /package/framework/{v0.5.25 → v0.5.26}/core/dev/lib/class.js +0 -0
  111. /package/framework/{v0.5.25 → v0.5.26}/core/dev/lib/factory.js +0 -0
  112. /package/framework/{v0.5.25 → v0.5.26}/core/dev/lib/tools.js +0 -0
  113. /package/framework/{v0.5.25 → v0.5.26}/core/gna.js +0 -0
  114. /package/framework/{v0.5.25 → v0.5.26}/core/locales/README.md +0 -0
  115. /package/framework/{v0.5.25 → v0.5.26}/core/locales/currency.json +0 -0
  116. /package/framework/{v0.5.25 → v0.5.26}/core/locales/dist/language/en.json +0 -0
  117. /package/framework/{v0.5.25 → v0.5.26}/core/locales/dist/language/fr.json +0 -0
  118. /package/framework/{v0.5.25 → v0.5.26}/core/locales/dist/region/en.json +0 -0
  119. /package/framework/{v0.5.25 → v0.5.26}/core/locales/dist/region/fr.json +0 -0
  120. /package/framework/{v0.5.25 → v0.5.26}/core/locales/index.js +0 -0
  121. /package/framework/{v0.5.25 → v0.5.26}/core/mime.types +0 -0
  122. /package/framework/{v0.5.25 → v0.5.26}/core/model/entity.js +0 -0
  123. /package/framework/{v0.5.25 → v0.5.26}/core/model/index.js +0 -0
  124. /package/framework/{v0.5.25 → v0.5.26}/core/model/template/entityFactory.js +0 -0
  125. /package/framework/{v0.5.25 → v0.5.26}/core/model/template/index.js +0 -0
  126. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/README.md +0 -0
  127. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/index.js +0 -0
  128. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/csrf/README.md +0 -0
  129. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/csrf/package.json +0 -0
  130. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/csrf/src/main.js +0 -0
  131. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/README.md +0 -0
  132. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/coep/README.md +0 -0
  133. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/coep/package.json +0 -0
  134. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
  135. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/coop/README.md +0 -0
  136. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/coop/package.json +0 -0
  137. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
  138. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/corp/README.md +0 -0
  139. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/corp/package.json +0 -0
  140. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
  141. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/csp/README.md +0 -0
  142. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/csp/package.json +0 -0
  143. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
  144. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
  145. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
  146. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
  147. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/hsts/README.md +0 -0
  148. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/hsts/package.json +0 -0
  149. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
  150. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
  151. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
  152. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
  153. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/package.json +0 -0
  154. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
  155. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
  156. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
  157. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/src/main.js +0 -0
  158. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
  159. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
  160. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
  161. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
  162. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
  163. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
  164. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
  165. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
  166. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
  167. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
  168. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
  169. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
  170. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
  171. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
  172. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
  173. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
  174. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
  175. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
  176. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/session/README.md +0 -0
  177. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/session/package.json +0 -0
  178. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/session/src/main.js +0 -0
  179. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/storage/README.md +0 -0
  180. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/storage/build.json +0 -0
  181. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/storage/package.json +0 -0
  182. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/storage/src/main.js +0 -0
  183. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/validator/README.md +0 -0
  184. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/validator/build.json +0 -0
  185. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/validator/package.json +0 -0
  186. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/validator/src/form-validator.js +0 -0
  187. /package/framework/{v0.5.25 → v0.5.26}/core/plugins/lib/validator/src/main.js +0 -0
  188. /package/framework/{v0.5.25 → v0.5.26}/core/router.js +0 -0
  189. /package/framework/{v0.5.25 → v0.5.26}/core/server.express.js +0 -0
  190. /package/framework/{v0.5.25 → v0.5.26}/core/status.codes +0 -0
  191. /package/framework/{v0.5.25 → v0.5.26}/core/template/_gitignore +0 -0
  192. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle/config/app.json +0 -0
  193. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  194. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle/config/routing.json +0 -0
  195. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle/config/settings.json +0 -0
  196. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  197. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle/config/templates.json +0 -0
  198. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  199. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  200. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  201. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  202. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle/index.js +0 -0
  203. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle/locales/en.json +0 -0
  204. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  205. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  206. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  207. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  208. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  209. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_public/js/components/x-checklist.js +0 -0
  210. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  211. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
  212. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_public/readme.md +0 -0
  213. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_public/sw.js +0 -0
  214. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  215. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  216. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  217. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  218. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_templates/html/includes/x-checklist.html +0 -0
  219. /package/framework/{v0.5.25 → v0.5.26}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  220. /package/framework/{v0.5.25 → v0.5.26}/core/template/command/gina.bat.tpl +0 -0
  221. /package/framework/{v0.5.25 → v0.5.26}/core/template/command/gina.tpl +0 -0
  222. /package/framework/{v0.5.25 → v0.5.26}/core/template/conf/env.json +0 -0
  223. /package/framework/{v0.5.25 → v0.5.26}/core/template/conf/manifest.json +0 -0
  224. /package/framework/{v0.5.25 → v0.5.26}/core/template/conf/package.json +0 -0
  225. /package/framework/{v0.5.25 → v0.5.26}/core/template/conf/statics.json +0 -0
  226. /package/framework/{v0.5.25 → v0.5.26}/core/template/conf/templates.json +0 -0
  227. /package/framework/{v0.5.25 → v0.5.26}/core/template/error/client/json/401.json +0 -0
  228. /package/framework/{v0.5.25 → v0.5.26}/core/template/error/client/json/403.json +0 -0
  229. /package/framework/{v0.5.25 → v0.5.26}/core/template/error/client/json/404.json +0 -0
  230. /package/framework/{v0.5.25 → v0.5.26}/core/template/error/server/html/50x.html +0 -0
  231. /package/framework/{v0.5.25 → v0.5.26}/core/template/error/server/json/500.json +0 -0
  232. /package/framework/{v0.5.25 → v0.5.26}/core/template/error/server/json/503.json +0 -0
  233. /package/framework/{v0.5.25 → v0.5.26}/core/template/extensions/logger/config.json +0 -0
  234. /package/framework/{v0.5.25 → v0.5.26}/helpers/console.js +0 -0
  235. /package/framework/{v0.5.25 → v0.5.26}/helpers/context.js +0 -0
  236. /package/framework/{v0.5.25 → v0.5.26}/helpers/data/LICENSE +0 -0
  237. /package/framework/{v0.5.25 → v0.5.26}/helpers/data/README.md +0 -0
  238. /package/framework/{v0.5.25 → v0.5.26}/helpers/data/package.json +0 -0
  239. /package/framework/{v0.5.25 → v0.5.26}/helpers/data/src/main.js +0 -0
  240. /package/framework/{v0.5.25 → v0.5.26}/helpers/dateFormat.js +0 -0
  241. /package/framework/{v0.5.25 → v0.5.26}/helpers/index.js +0 -0
  242. /package/framework/{v0.5.25 → v0.5.26}/helpers/json/LICENSE +0 -0
  243. /package/framework/{v0.5.25 → v0.5.26}/helpers/json/README.md +0 -0
  244. /package/framework/{v0.5.25 → v0.5.26}/helpers/json/package.json +0 -0
  245. /package/framework/{v0.5.25 → v0.5.26}/helpers/json/src/main.js +0 -0
  246. /package/framework/{v0.5.25 → v0.5.26}/helpers/path.js +0 -0
  247. /package/framework/{v0.5.25 → v0.5.26}/helpers/plugins/README.md +0 -0
  248. /package/framework/{v0.5.25 → v0.5.26}/helpers/plugins/package.json +0 -0
  249. /package/framework/{v0.5.25 → v0.5.26}/helpers/plugins/src/api-error.js +0 -0
  250. /package/framework/{v0.5.25 → v0.5.26}/helpers/plugins/src/main.js +0 -0
  251. /package/framework/{v0.5.25 → v0.5.26}/helpers/prototypes.js +0 -0
  252. /package/framework/{v0.5.25 → v0.5.26}/helpers/task.js +0 -0
  253. /package/framework/{v0.5.25 → v0.5.26}/helpers/text.js +0 -0
  254. /package/framework/{v0.5.25 → v0.5.26}/lib/admin/package.json +0 -0
  255. /package/framework/{v0.5.25 → v0.5.26}/lib/admin/src/main.js +0 -0
  256. /package/framework/{v0.5.25 → v0.5.26}/lib/archiver/README.md +0 -0
  257. /package/framework/{v0.5.25 → v0.5.26}/lib/archiver/build.json +0 -0
  258. /package/framework/{v0.5.25 → v0.5.26}/lib/archiver/package.json +0 -0
  259. /package/framework/{v0.5.25 → v0.5.26}/lib/archiver/src/dep/jszip.min.js +0 -0
  260. /package/framework/{v0.5.25 → v0.5.26}/lib/archiver/src/main.js +0 -0
  261. /package/framework/{v0.5.25 → v0.5.26}/lib/async/package.json +0 -0
  262. /package/framework/{v0.5.25 → v0.5.26}/lib/async/src/main.js +0 -0
  263. /package/framework/{v0.5.25 → v0.5.26}/lib/audit/package.json +0 -0
  264. /package/framework/{v0.5.25 → v0.5.26}/lib/audit/src/main.js +0 -0
  265. /package/framework/{v0.5.25 → v0.5.26}/lib/audit-store.js +0 -0
  266. /package/framework/{v0.5.25 → v0.5.26}/lib/authz-gate/package.json +0 -0
  267. /package/framework/{v0.5.25 → v0.5.26}/lib/cache/README.md +0 -0
  268. /package/framework/{v0.5.25 → v0.5.26}/lib/cache/build.json +0 -0
  269. /package/framework/{v0.5.25 → v0.5.26}/lib/cache/package.json +0 -0
  270. /package/framework/{v0.5.25 → v0.5.26}/lib/cache/src/main.js +0 -0
  271. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/aliases.json +0 -0
  272. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/add.js +0 -0
  273. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/build.js +0 -0
  274. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/copy.js +0 -0
  275. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/cp.js +0 -0
  276. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/help.js +0 -0
  277. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
  278. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/list.js +0 -0
  279. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/man.js +0 -0
  280. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/mcp.js +0 -0
  281. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/oas.js +0 -0
  282. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/remove.js +0 -0
  283. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/rename.js +0 -0
  284. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/restart.js +0 -0
  285. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/rm.js +0 -0
  286. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/start.js +0 -0
  287. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/status.js +0 -0
  288. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/stop.js +0 -0
  289. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/bundle/types.js +0 -0
  290. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/cache/arguments.json +0 -0
  291. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/cache/clear.js +0 -0
  292. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/cache/help.txt +0 -0
  293. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/cache/stats.js +0 -0
  294. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/connector/add.js +0 -0
  295. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/connector/arguments.json +0 -0
  296. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/connector/help.js +0 -0
  297. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/connector/help.txt +0 -0
  298. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/connector/infer.js +0 -0
  299. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/connector/list.js +0 -0
  300. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/connector/migrate.js +0 -0
  301. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/connector/models.js +0 -0
  302. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/connector/remove.js +0 -0
  303. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/connector/rm.js +0 -0
  304. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/connector/test.js +0 -0
  305. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/container/arguments.json +0 -0
  306. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/container/help.js +0 -0
  307. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/container/help.txt +0 -0
  308. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/container/man.js +0 -0
  309. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/container/ps.js +0 -0
  310. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/container/stop.js +0 -0
  311. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/controller/add.js +0 -0
  312. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/controller/arguments.json +0 -0
  313. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/controller/help.txt +0 -0
  314. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/controller/inc/args.js +0 -0
  315. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/controller/inc/namespace.js +0 -0
  316. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/controller/inc/reference-rewrite.js +0 -0
  317. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/controller/inc/reference-scan.js +0 -0
  318. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/controller/inc/scaffold.js +0 -0
  319. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/controller/remove.js +0 -0
  320. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/controller/rename.js +0 -0
  321. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/controller/rm.js +0 -0
  322. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/env/add.js +0 -0
  323. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/env/get.js +0 -0
  324. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/env/help.js +0 -0
  325. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/env/help.txt +0 -0
  326. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/env/link-dev.js +0 -0
  327. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/env/list.js +0 -0
  328. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/env/remove.js +0 -0
  329. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/env/rm.js +0 -0
  330. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/env/set.js +0 -0
  331. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/env/unset.js +0 -0
  332. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/env/use.js +0 -0
  333. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/add.js +0 -0
  334. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/arguments.json +0 -0
  335. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/build.js +0 -0
  336. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/dot.js +0 -0
  337. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/get.js +0 -0
  338. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/help.js +0 -0
  339. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/help.txt +0 -0
  340. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/link-node-modules.js +0 -0
  341. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/link.js +0 -0
  342. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/list.js +0 -0
  343. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/man.js +0 -0
  344. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/msg.json +0 -0
  345. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/open.js +0 -0
  346. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/remove.js +0 -0
  347. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/reset.js +0 -0
  348. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/restart.js +0 -0
  349. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/start.js +0 -0
  350. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/status.js +0 -0
  351. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/stop.js +0 -0
  352. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/tail.js +0 -0
  353. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/update.js +0 -0
  354. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/framework/version.js +0 -0
  355. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/gina-dev.1.md +0 -0
  356. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/gina-framework.1.md +0 -0
  357. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/gina.1.md +0 -0
  358. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/helper.js +0 -0
  359. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/i18n/add.js +0 -0
  360. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/i18n/arguments.json +0 -0
  361. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/i18n/export.js +0 -0
  362. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/i18n/help.js +0 -0
  363. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/i18n/help.txt +0 -0
  364. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/i18n/import.js +0 -0
  365. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/i18n/scan.js +0 -0
  366. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/image/_host.js +0 -0
  367. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/image/arguments.json +0 -0
  368. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/image/build.js +0 -0
  369. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/image/help.js +0 -0
  370. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/image/help.txt +0 -0
  371. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/image/list.js +0 -0
  372. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/image/man.js +0 -0
  373. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/image/rm.js +0 -0
  374. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/image/run.js +0 -0
  375. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/index.js +0 -0
  376. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/inspector/help.js +0 -0
  377. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/inspector/help.txt +0 -0
  378. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/inspector/open.js +0 -0
  379. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/man-render.js +0 -0
  380. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/minion/arguments.json +0 -0
  381. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/minion/help.js +0 -0
  382. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/minion/help.txt +0 -0
  383. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/minion/kill.js +0 -0
  384. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/minion/list.js +0 -0
  385. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/msg.json +0 -0
  386. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/port/help.js +0 -0
  387. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/port/help.txt +0 -0
  388. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/port/inc/scan.js +0 -0
  389. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/port/list.js +0 -0
  390. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/port/reset.js +0 -0
  391. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/port/set.js +0 -0
  392. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/add.js +0 -0
  393. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/arguments.json +0 -0
  394. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/backup.js +0 -0
  395. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/build.js +0 -0
  396. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/help.js +0 -0
  397. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/help.txt +0 -0
  398. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/import.js +0 -0
  399. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/list.js +0 -0
  400. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/man.js +0 -0
  401. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/move.js +0 -0
  402. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/remove.js +0 -0
  403. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/rename.js +0 -0
  404. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/restart.js +0 -0
  405. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/restore.js +0 -0
  406. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/rm.js +0 -0
  407. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/start.js +0 -0
  408. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/status.js +0 -0
  409. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/project/stop.js +0 -0
  410. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/protocol/arguments.json +0 -0
  411. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/protocol/help.js +0 -0
  412. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/protocol/help.txt +0 -0
  413. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/protocol/list.js +0 -0
  414. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/protocol/remove.js +0 -0
  415. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/protocol/set.js +0 -0
  416. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/scope/add.js +0 -0
  417. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/scope/help.js +0 -0
  418. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/scope/help.txt +0 -0
  419. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/scope/link-local.js +0 -0
  420. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/scope/link-production.js +0 -0
  421. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/scope/list.js +0 -0
  422. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/scope/remove.js +0 -0
  423. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/scope/rm.js +0 -0
  424. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/scope/use.js +0 -0
  425. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/secrets/arguments.json +0 -0
  426. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/secrets/check.js +0 -0
  427. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/secrets/help.js +0 -0
  428. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/secrets/help.txt +0 -0
  429. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/secrets/scan.js +0 -0
  430. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/service/help.js +0 -0
  431. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/service/help.txt +0 -0
  432. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/service/list.js +0 -0
  433. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/service/man.js +0 -0
  434. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/service/start.js +0 -0
  435. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd/view/add.js +0 -0
  436. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd-status-format/package.json +0 -0
  437. /package/framework/{v0.5.25 → v0.5.26}/lib/cmd-status-format/src/main.js +0 -0
  438. /package/framework/{v0.5.25 → v0.5.26}/lib/collection/README.md +0 -0
  439. /package/framework/{v0.5.25 → v0.5.26}/lib/collection/build.json +0 -0
  440. /package/framework/{v0.5.25 → v0.5.26}/lib/collection/package.json +0 -0
  441. /package/framework/{v0.5.25 → v0.5.26}/lib/collection/src/main.js +0 -0
  442. /package/framework/{v0.5.25 → v0.5.26}/lib/config.js +0 -0
  443. /package/framework/{v0.5.25 → v0.5.26}/lib/connector-config/package.json +0 -0
  444. /package/framework/{v0.5.25 → v0.5.26}/lib/connector-config/src/main.js +0 -0
  445. /package/framework/{v0.5.25 → v0.5.26}/lib/connector-error/package.json +0 -0
  446. /package/framework/{v0.5.25 → v0.5.26}/lib/connector-registry/package.json +0 -0
  447. /package/framework/{v0.5.25 → v0.5.26}/lib/connector-registry/src/main.js +0 -0
  448. /package/framework/{v0.5.25 → v0.5.26}/lib/cron/README.md +0 -0
  449. /package/framework/{v0.5.25 → v0.5.26}/lib/cron/package.json +0 -0
  450. /package/framework/{v0.5.25 → v0.5.26}/lib/cron/src/main.js +0 -0
  451. /package/framework/{v0.5.25 → v0.5.26}/lib/domain/LICENSE +0 -0
  452. /package/framework/{v0.5.25 → v0.5.26}/lib/domain/README.md +0 -0
  453. /package/framework/{v0.5.25 → v0.5.26}/lib/domain/package.json +0 -0
  454. /package/framework/{v0.5.25 → v0.5.26}/lib/domain/src/main.js +0 -0
  455. /package/framework/{v0.5.25 → v0.5.26}/lib/dto/package.json +0 -0
  456. /package/framework/{v0.5.25 → v0.5.26}/lib/dto/src/main.js +0 -0
  457. /package/framework/{v0.5.25 → v0.5.26}/lib/dto-pipe/package.json +0 -0
  458. /package/framework/{v0.5.25 → v0.5.26}/lib/dto-pipe/src/main.js +0 -0
  459. /package/framework/{v0.5.25 → v0.5.26}/lib/dto-types/package.json +0 -0
  460. /package/framework/{v0.5.25 → v0.5.26}/lib/dto-types/src/main.js +0 -0
  461. /package/framework/{v0.5.25 → v0.5.26}/lib/generator/index.js +0 -0
  462. /package/framework/{v0.5.25 → v0.5.26}/lib/i18n/package.json +0 -0
  463. /package/framework/{v0.5.25 → v0.5.26}/lib/i18n/src/main.js +0 -0
  464. /package/framework/{v0.5.25 → v0.5.26}/lib/image-build/package.json +0 -0
  465. /package/framework/{v0.5.25 → v0.5.26}/lib/image-build/src/main.js +0 -0
  466. /package/framework/{v0.5.25 → v0.5.26}/lib/index.js +0 -0
  467. /package/framework/{v0.5.25 → v0.5.26}/lib/inherits/LICENSE +0 -0
  468. /package/framework/{v0.5.25 → v0.5.26}/lib/inherits/README.md +0 -0
  469. /package/framework/{v0.5.25 → v0.5.26}/lib/inherits/package.json +0 -0
  470. /package/framework/{v0.5.25 → v0.5.26}/lib/inherits/src/main.js +0 -0
  471. /package/framework/{v0.5.25 → v0.5.26}/lib/inspector-events/package.json +0 -0
  472. /package/framework/{v0.5.25 → v0.5.26}/lib/inspector-events/src/main.js +0 -0
  473. /package/framework/{v0.5.25 → v0.5.26}/lib/inspector-redact/package.json +0 -0
  474. /package/framework/{v0.5.25 → v0.5.26}/lib/inspector-redact/src/main.js +0 -0
  475. /package/framework/{v0.5.25 → v0.5.26}/lib/instrument/package.json +0 -0
  476. /package/framework/{v0.5.25 → v0.5.26}/lib/instrument/src/main.js +0 -0
  477. /package/framework/{v0.5.25 → v0.5.26}/lib/job/package.json +0 -0
  478. /package/framework/{v0.5.25 → v0.5.26}/lib/job/src/main.js +0 -0
  479. /package/framework/{v0.5.25 → v0.5.26}/lib/job-store.js +0 -0
  480. /package/framework/{v0.5.25 → v0.5.26}/lib/json-config-header/package.json +0 -0
  481. /package/framework/{v0.5.25 → v0.5.26}/lib/json-config-header/src/main.js +0 -0
  482. /package/framework/{v0.5.25 → v0.5.26}/lib/logger/README.md +0 -0
  483. /package/framework/{v0.5.25 → v0.5.26}/lib/logger/package.json +0 -0
  484. /package/framework/{v0.5.25 → v0.5.26}/lib/logger/src/containers/default/index.js +0 -0
  485. /package/framework/{v0.5.25 → v0.5.26}/lib/logger/src/containers/file/index.js +0 -0
  486. /package/framework/{v0.5.25 → v0.5.26}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  487. /package/framework/{v0.5.25 → v0.5.26}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  488. /package/framework/{v0.5.25 → v0.5.26}/lib/logger/src/containers/mq/index.js +0 -0
  489. /package/framework/{v0.5.25 → v0.5.26}/lib/logger/src/containers/mq/speaker.js +0 -0
  490. /package/framework/{v0.5.25 → v0.5.26}/lib/logger/src/helper.js +0 -0
  491. /package/framework/{v0.5.25 → v0.5.26}/lib/logger/src/main.js +0 -0
  492. /package/framework/{v0.5.25 → v0.5.26}/lib/math/index.js +0 -0
  493. /package/framework/{v0.5.25 → v0.5.26}/lib/mcp-dispatch/package.json +0 -0
  494. /package/framework/{v0.5.25 → v0.5.26}/lib/mcp-dispatch/src/main.js +0 -0
  495. /package/framework/{v0.5.25 → v0.5.26}/lib/mcp-http/package.json +0 -0
  496. /package/framework/{v0.5.25 → v0.5.26}/lib/mcp-server/package.json +0 -0
  497. /package/framework/{v0.5.25 → v0.5.26}/lib/mcp-server/src/main.js +0 -0
  498. /package/framework/{v0.5.25 → v0.5.26}/lib/merge/README.md +0 -0
  499. /package/framework/{v0.5.25 → v0.5.26}/lib/merge/package.json +0 -0
  500. /package/framework/{v0.5.25 → v0.5.26}/lib/metrics/package.json +0 -0
  501. /package/framework/{v0.5.25 → v0.5.26}/lib/metrics/src/main.js +0 -0
  502. /package/framework/{v0.5.25 → v0.5.26}/lib/model.js +0 -0
  503. /package/framework/{v0.5.25 → v0.5.26}/lib/nunjucks-filters/README.md +0 -0
  504. /package/framework/{v0.5.25 → v0.5.26}/lib/nunjucks-filters/package.json +0 -0
  505. /package/framework/{v0.5.25 → v0.5.26}/lib/nunjucks-filters/src/main.js +0 -0
  506. /package/framework/{v0.5.25 → v0.5.26}/lib/nunjucks-resolver/package.json +0 -0
  507. /package/framework/{v0.5.25 → v0.5.26}/lib/nunjucks-resolver/src/main.js +0 -0
  508. /package/framework/{v0.5.25 → v0.5.26}/lib/proc.js +0 -0
  509. /package/framework/{v0.5.25 → v0.5.26}/lib/release-watch/package.json +0 -0
  510. /package/framework/{v0.5.25 → v0.5.26}/lib/release-watch/src/main.js +0 -0
  511. /package/framework/{v0.5.25 → v0.5.26}/lib/render-cache/package.json +0 -0
  512. /package/framework/{v0.5.25 → v0.5.26}/lib/render-cache/src/main.js +0 -0
  513. /package/framework/{v0.5.25 → v0.5.26}/lib/render-cache-store.js +0 -0
  514. /package/framework/{v0.5.25 → v0.5.26}/lib/routing/README.md +0 -0
  515. /package/framework/{v0.5.25 → v0.5.26}/lib/routing/build.json +0 -0
  516. /package/framework/{v0.5.25 → v0.5.26}/lib/routing/package.json +0 -0
  517. /package/framework/{v0.5.25 → v0.5.26}/lib/routing/src/main.js +0 -0
  518. /package/framework/{v0.5.25 → v0.5.26}/lib/routing/src/radix.js +0 -0
  519. /package/framework/{v0.5.25 → v0.5.26}/lib/routing-introspect/package.json +0 -0
  520. /package/framework/{v0.5.25 → v0.5.26}/lib/routing-introspect/src/main.js +0 -0
  521. /package/framework/{v0.5.25 → v0.5.26}/lib/secrets/package.json +0 -0
  522. /package/framework/{v0.5.25 → v0.5.26}/lib/secrets/src/backends/env.js +0 -0
  523. /package/framework/{v0.5.25 → v0.5.26}/lib/secrets/src/main.js +0 -0
  524. /package/framework/{v0.5.25 → v0.5.26}/lib/session-store.js +0 -0
  525. /package/framework/{v0.5.25 → v0.5.26}/lib/shell.js +0 -0
  526. /package/framework/{v0.5.25 → v0.5.26}/lib/state.js +0 -0
  527. /package/framework/{v0.5.25 → v0.5.26}/lib/swig-filters/README.md +0 -0
  528. /package/framework/{v0.5.25 → v0.5.26}/lib/swig-filters/package.json +0 -0
  529. /package/framework/{v0.5.25 → v0.5.26}/lib/swig-filters/src/main.js +0 -0
  530. /package/framework/{v0.5.25 → v0.5.26}/lib/swig-resolver/package.json +0 -0
  531. /package/framework/{v0.5.25 → v0.5.26}/lib/swig-resolver/src/main.js +0 -0
  532. /package/framework/{v0.5.25 → v0.5.26}/lib/template-loaders/package.json +0 -0
  533. /package/framework/{v0.5.25 → v0.5.26}/lib/template-loaders/src/loaders/http.js +0 -0
  534. /package/framework/{v0.5.25 → v0.5.26}/lib/template-loaders/src/loaders/memory.js +0 -0
  535. /package/framework/{v0.5.25 → v0.5.26}/lib/template-loaders/src/main.js +0 -0
  536. /package/framework/{v0.5.25 → v0.5.26}/lib/url/README.md +0 -0
  537. /package/framework/{v0.5.25 → v0.5.26}/lib/url/index.js +0 -0
  538. /package/framework/{v0.5.25 → v0.5.26}/lib/url/routing.json +0 -0
  539. /package/framework/{v0.5.25 → v0.5.26}/lib/uuid/package.json +0 -0
  540. /package/framework/{v0.5.25 → v0.5.26}/lib/uuid/src/main.js +0 -0
  541. /package/framework/{v0.5.25 → v0.5.26}/lib/validator.js +0 -0
  542. /package/framework/{v0.5.25 → v0.5.26}/lib/watcher/package.json +0 -0
  543. /package/framework/{v0.5.25 → v0.5.26}/lib/watcher/src/main.js +0 -0
  544. /package/framework/{v0.5.25 → v0.5.26}/lib/ws-framing/package.json +0 -0
  545. /package/framework/{v0.5.25 → v0.5.26}/lib/ws-framing/src/main.js +0 -0
  546. /package/framework/{v0.5.25 → v0.5.26}/lib/ws-query/package.json +0 -0
  547. /package/framework/{v0.5.25 → v0.5.26}/lib/ws-query/src/main.js +0 -0
  548. /package/framework/{v0.5.25 → v0.5.26}/lib/ws-session/package.json +0 -0
  549. /package/framework/{v0.5.25 → v0.5.26}/lib/ws-session/src/main.js +0 -0
@@ -237,6 +237,7 @@ function MCPStart(opt, cmd) {
237
237
  var port = resolveHttpPort(mcpDoc);
238
238
  var authToken = resolveAuthToken(mcpDoc);
239
239
  var allowedOrigins = resolveAllowedOrigins(mcpDoc);
240
+ var allowInsecure = resolveAllowInsecure(mcpDoc);
240
241
 
241
242
  httpTransport = mcpHttp.createHttpTransport({
242
243
  mcpServer: server,
@@ -244,13 +245,16 @@ function MCPStart(opt, cmd) {
244
245
  port: port,
245
246
  authToken: authToken,
246
247
  allowedOrigins: allowedOrigins,
248
+ allowInsecure: allowInsecure,
247
249
  onError: function(err) {
248
250
  console.error('[ '+ bundle +' ][mcp] HTTP transport: ' + (err && err.message || err));
249
251
  }
250
252
  });
251
253
 
252
254
  httpTransport.start().then(function(info) {
253
- var authNote = authToken ? ' (bearer auth: enabled)' : '';
255
+ var authNote = authToken
256
+ ? ' (bearer auth: enabled)'
257
+ : (allowInsecure ? ' (bearer auth: none — allowInsecure asserted)' : '');
254
258
  console.info('[ '+ bundle +' ][mcp] MCP server listening on http://'+ info.host +':'+ info.port + authNote +'. Dispatch target: '+ baseUrl +' (timeout: '+ timeoutMs +' ms, maxInFlight: '+ maxInFlight +'). '+ mcpDoc.tools.length +' tool'+ (mcpDoc.tools.length === 1 ? '' : 's') +' exposed.');
255
259
  }, function(err) {
256
260
  return end( new Error('Failed to start HTTP transport on '+ host +':'+ port +': '+ (err && err.message || err)) );
@@ -360,9 +364,15 @@ function MCPStart(opt, cmd) {
360
364
  * Resolves the HTTP bind host. Precedence:
361
365
  * 1. `--http-host=<host>` CLI flag
362
366
  * 2. `mcp.json > server > httpHost`
363
- * 3. `process.env.GINA_HOST_V4` (set by bin/cli from
364
- * `~/.gina/<shortVersion>/settings.json > host_v4`)
365
- * 4. `'127.0.0.1'` ultimate fallback
367
+ * 3. `process.env.GINA_HOST_V4` — INERT under the CLI. `filterArgs()`
368
+ * moves every GINA_* key into `process.gina` and deletes it from
369
+ * `process.env`, so this read is always undefined there.
370
+ * Deliberately NOT converted to `getEnvVar` the way the auth-token
371
+ * tier was: `host_v4` is the address clients CONNECT to (commonly a
372
+ * LAN address), never a bind address — reviving this tier would move
373
+ * the default bind OFF loopback and expose the transport. The correct
374
+ * replacement is `bind_host` / `GINA_BIND_HOST`, tracked separately.
375
+ * 4. `'127.0.0.1'` — in practice the effective default, per (3).
366
376
  *
367
377
  * @private
368
378
  * @param {object} mcpDoc
@@ -429,12 +439,44 @@ function MCPStart(opt, cmd) {
429
439
  if (mcpDoc && mcpDoc.server && typeof(mcpDoc.server.authToken) === 'string' && mcpDoc.server.authToken) {
430
440
  return mcpDoc.server.authToken;
431
441
  }
432
- var env = process.env.GINA_MCP_AUTH_TOKEN;
442
+ // `filterArgs()` (bin/cli) moves every GINA_* key OUT of `process.env`
443
+ // into `process.gina` and deletes the original, so a bare
444
+ // `process.env.GINA_MCP_AUTH_TOKEN` read is always undefined under the
445
+ // CLI — the documented env path silently yielded NO token, leaving the
446
+ // transport unauthenticated. `getEnvVar` is the supported reader; the
447
+ // direct read stays as the fallback for embedders that never ran the sweep.
448
+ var env = (typeof(getEnvVar) === 'function' && getEnvVar('GINA_MCP_AUTH_TOKEN'))
449
+ || process.env.GINA_MCP_AUTH_TOKEN;
433
450
  if (typeof(env) === 'string' && env) return env;
434
451
  return null;
435
452
  };
436
453
 
437
454
 
455
+ /**
456
+ * Resolves the insecure-transport waiver. Precedence:
457
+ * 1. `--allow-insecure` CLI flag
458
+ * 2. `mcp.json > server > allowInsecure` (strict boolean)
459
+ * 3. `false`
460
+ *
461
+ * Only meaningful when no bearer token is configured: it tells the
462
+ * transport that a non-loopback bind (or a wildcard Origin allowlist) is
463
+ * fronted by something else — a mesh, a NetworkPolicy, or an
464
+ * authenticating reverse proxy — rather than genuinely open.
465
+ *
466
+ * @private
467
+ * @param {object} mcpDoc
468
+ * @returns {boolean}
469
+ */
470
+ var resolveAllowInsecure = function(mcpDoc) {
471
+ var cli = self.params && self.params['allow-insecure'];
472
+ if (cli === true || cli === 'true') return true;
473
+ if (mcpDoc && mcpDoc.server && mcpDoc.server.allowInsecure === true) {
474
+ return true;
475
+ }
476
+ return false;
477
+ };
478
+
479
+
438
480
  /**
439
481
  * Resolves the CORS `Origin` allowlist. Precedence:
440
482
  * 1. `--cors-origin=<list>` CLI flag (comma-separated; use `*` to disable)
@@ -198,11 +198,37 @@ function OpenAPI(opt, cmd) {
198
198
  };
199
199
 
200
200
 
201
+ /**
202
+ * #COMPLY10 — reads `auth.requireAuthByDefault`, the deny-by-default mode.
203
+ *
204
+ * The published spec has to agree with the runtime, and under this mode an
205
+ * UN-annotated route is gated. Without reading it here the spec would declare
206
+ * those routes unauthenticated while every call to them answers 401 — a
207
+ * published contract that lies about its own security, which is worse than
208
+ * publishing none.
209
+ *
210
+ * Strict `=== true`, matching the boot lint: a truthy string does not enable
211
+ * the mode at runtime, so it must not enable it in the spec either.
212
+ *
213
+ * @private
214
+ * @param {object|null} settings - Parsed settings.json (may be null)
215
+ * @returns {boolean} True when un-annotated routes are gated by default
216
+ */
217
+ var hasRequireAuthByDefault = function(settings) {
218
+ if ( !settings || typeof(settings.auth) != 'object' || settings.auth === null ) {
219
+ return false;
220
+ }
221
+ return ( settings.auth.requireAuthByDefault === true );
222
+ };
223
+
224
+
201
225
  /**
202
226
  * Applies the authorization contract to an operation when its route is
203
227
  * gated. A route is gated exactly when the runtime authz gate would act:
204
228
  * `param.requireAuth === true`, a non-empty `param.roles` array, or a
205
- * non-empty `param.policy` string (roles/policy imply requireAuth).
229
+ * non-empty `param.policy` string (roles/policy imply requireAuth) — or,
230
+ * under #COMPLY10 deny-by-default, when the route declares none of those and
231
+ * is not marked `param.public: true`.
206
232
  *
207
233
  * Emits the observable contract only: a `401` response on every gated
208
234
  * route (+ a `403` when roles/policy add authorization beyond
@@ -216,12 +242,18 @@ function OpenAPI(opt, cmd) {
216
242
  * @param {object} operation - The OpenAPI operation object (mutated in place)
217
243
  * @param {object} param - The route's `param` block (`route.param || {}`)
218
244
  * @param {boolean} machineAuth - True when the `bearerAuth` scheme is emitted
245
+ * @param {boolean} defaultDeny - True when `auth.requireAuthByDefault` is on (#COMPLY10)
219
246
  * @returns {undefined}
220
247
  */
221
- var applyAuthContract = function(operation, param, machineAuth) {
248
+ var applyAuthContract = function(operation, param, machineAuth, defaultDeny) {
222
249
  var hasRoles = ( Array.isArray(param.roles) && param.roles.length > 0 );
223
250
  var hasPolicy = ( typeof(param.policy) == 'string' && param.policy !== '' );
224
- var isGated = ( param.requireAuth === true || hasRoles || hasPolicy );
251
+ // #COMPLY10 — under deny-by-default an un-annotated route is gated unless it
252
+ // is explicitly `public`, so the spec must treat it as gated too. Mirrors the
253
+ // gate's own precedence (lib/authz-gate): `public` only ever exempts a route
254
+ // that declares no explicit key, so it can never un-gate an annotated one.
255
+ var byDefault = ( defaultDeny === true && param.public !== true );
256
+ var isGated = ( param.requireAuth === true || hasRoles || hasPolicy || byDefault );
225
257
 
226
258
  if ( !isGated ) return;
227
259
 
@@ -285,6 +317,7 @@ function OpenAPI(opt, cmd) {
285
317
  // bundle's spec gains no components block. The scheme matches the wire's
286
318
  // own advertisement — the machine 401 challenges with
287
319
  // `WWW-Authenticate: Bearer`.
320
+ var defaultDeny = hasRequireAuthByDefault(settings);
288
321
  var machineAuth = hasMachineAuth(settings);
289
322
  if (machineAuth) {
290
323
  spec.components = {
@@ -332,7 +365,7 @@ function OpenAPI(opt, cmd) {
332
365
  var operation = buildOperation(routeName, route, urlInfo.params, namespace, methods.length > 1, method, srcPath);
333
366
 
334
367
  // Authorization contract for gated routes
335
- applyAuthContract(operation, route.param || {}, machineAuth);
368
+ applyAuthContract(operation, route.param || {}, machineAuth, defaultDeny);
336
369
 
337
370
  spec.paths[oaPath][method] = operation;
338
371
  }
@@ -153,8 +153,24 @@ function Initialize(opt) {
153
153
  */
154
154
  var run = function(opt, cmd) {
155
155
  opt.task = checkForAliases(opt.task);
156
+
157
+ // The resolved topic/action pair becomes the `require()` path below, and
158
+ // for an online command it is supplied by the caller over the framework
159
+ // socket. Constrain both segments to the shipped command namespace so a
160
+ // name can only ever resolve INSIDE `lib/cmd/`. Every command group
161
+ // directory and action file gina ships matches this pattern, including
162
+ // the synthetic `framework:-V` / `framework:--version` forms; anything
163
+ // carrying a path separator or a `..` segment does not.
164
+ var isSafeCmdSegment = function (segment) {
165
+ return /^[A-Za-z0-9_-]+$/.test( String(segment) );
166
+ };
167
+ var isKnownNamespace = isSafeCmdSegment(opt.task.topic) && isSafeCmdSegment(opt.task.action);
168
+
156
169
  var filename ='/cmd/' + opt.task.topic + '/' + opt.task.action + '.js'
157
- var path = getPath('gina').lib + filename;
170
+ // A segment outside that namespace resolves to '' — which never exists —
171
+ // so it falls into the same "not a valid command" branch as an unknown
172
+ // action below, and can never reach require().
173
+ var path = isKnownNamespace ? getPath('gina').lib + filename : '';
158
174
 
159
175
  // Unknown command → print a clean, actionable message instead of a raw
160
176
  // `Cannot find module` stack. `bin/cli` already rejects an unknown GROUP
@@ -183,6 +199,13 @@ function Initialize(opt) {
183
199
  if (opt.client) {
184
200
  opt.client.write(message + '\n');
185
201
  }
202
+
203
+ // Online runs inside the long-lived daemon serving every client, so
204
+ // exiting here would drop the control plane. End this client instead.
205
+ if ( opt.isOnlineCommand ) {
206
+ if (opt.client) { opt.client.end(); }
207
+ return;
208
+ }
186
209
  process.exit(1);
187
210
  return;
188
211
  }
@@ -666,6 +689,7 @@ function Initialize(opt) {
666
689
  'debug_port' : 'GINA_DEBUG_PORT',
667
690
  'mq_port' : 'GINA_MQ_PORT',
668
691
  'host_v4' : 'GINA_HOST_V4',
692
+ 'bind_host' : 'GINA_BIND_HOST',
669
693
  'hostname' : 'GINA_HOSTNAME',
670
694
  'logdir' : 'GINA_LOGDIR',
671
695
  'tmpdir' : 'GINA_TMPDIR',
@@ -764,6 +788,9 @@ function Initialize(opt) {
764
788
  'port' : getEnvVar('GINA_PORT') || 8124, // TODO - scan for the next available port
765
789
  'debug_port' : getEnvVar('GINA_DEBUG_PORT') || process.debugPort || 9339,
766
790
  'host_v4' : getEnvVar('GINA_HOST_V4') || '127.0.0.1',
791
+ // Bind address for the framework control sockets — loopback by
792
+ // default; widen deliberately to expose them beyond this host.
793
+ 'bind_host' : getEnvVar('GINA_BIND_HOST') || '127.0.0.1',
767
794
  'mq_port' : getEnvVar('GINA_MQ_PORT') || 8125,
768
795
  'hostname' : getEnvVar('GINA_HOSTNAME') || 'localhost',
769
796
  'user' : process.env.USER,
@@ -108,6 +108,11 @@ function Set(opt){
108
108
  setKeyVal('host_v4', v);
109
109
  break;
110
110
 
111
+ case '--bind_host':
112
+ case '--bind-host':
113
+ setKeyVal('bind_host', v);
114
+ break;
115
+
111
116
  case '--iso_short':
112
117
  case '--iso-short':
113
118
  setKeyVal('iso_short', v);
@@ -145,10 +145,14 @@ var TRANSIENT_N1QL_CODE = {
145
145
  // honest signal for a retryable DML failure such as a CAS mismatch.
146
146
  //
147
147
  // These CODE entries are load-bearing on the connector path even where the
148
- // SDK types the error: the couchbase connector's #B153 handlers forward a
149
- // server-enveloped failure as a synthesized `new Error(first_error_message)`
150
- // carrying only `cause` — `err.name` is 'Error' there, so TRANSIENT_NAME can
151
- // never fire and this table is the sole classifier. On the raw SDK shape a
148
+ // SDK types the error: whenever the N1QL `cause` envelope carries server
149
+ // TEXT, the couchbase connector's #B153 handlers forward that failure as a
150
+ // synthesized `new Error(first_error_message)` carrying only `cause` —
151
+ // `err.name` is 'Error' there, so TRANSIENT_NAME cannot fire and this table
152
+ // is the sole classifier. (Only where there IS text: since the #B153
153
+ // residual fix an EMPTY envelope message is raw-forwarded instead, so a
154
+ // typed client-side timeout keeps its class name and the name rule catches
155
+ // it first — that is the whole point of the residual fix.) On the raw SDK shape a
152
156
  // server-side 1080 arrives typed (SDK 4.x `document_query.cxx` maps 1080 ->
153
157
  // unambiguous_timeout -> UnambiguousTimeoutError) and the name rule catches
154
158
  // it first — the 1080 entry is the belt for the envelope shape. 12008 has NO
@@ -149,9 +149,26 @@ function MQListener(opt, cb) {
149
149
  sessions[sessionId].write( JSON.stringify(payload) +'\r\n');
150
150
  }
151
151
 
152
+ /**
153
+ * Start the MQ listener that speakers, `gina tail` and the file container
154
+ * connect to.
155
+ *
156
+ * @inner
157
+ * @param {object} opt - listener options
158
+ * @param {number} opt.port - TCP port to listen on
159
+ * @param {string} [opt.hostV4='127.0.0.1'] - bind address. NOTE the key
160
+ * name: a caller passing `host` leaves this undefined, and an
161
+ * undefined host makes Node bind every interface. Defaults to
162
+ * loopback so an omitted key can never widen the bind.
163
+ * @param {function} cb - called once listening, or with an error
164
+ * @returns {void}
165
+ */
152
166
  function startMQListener(opt, cb) {
153
167
  var port = opt.port;
154
- var host = opt.hostV4;
168
+ // Default to loopback when the caller omits the key, matching every
169
+ // sibling in this subsystem (speaker.js, tail.js, file/index.js) and
170
+ // ensuring an omitted option can never widen the bind to all interfaces.
171
+ var host = opt.hostV4 || '127.0.0.1';
155
172
  var server = net.createServer( function(conn) {//'connection' listener
156
173
 
157
174
  conn.sessionId = uuid();
@@ -211,7 +228,20 @@ function MQListener(opt, cb) {
211
228
  i++;
212
229
  let payload = payloads[i];
213
230
  if ( /^\{/.test(payload) && /\}$/.test(payload)) {
214
- let pl = JSON.parse(payload);
231
+ // The brace test only proves the payload LOOKS like
232
+ // JSON. An unguarded parse of anything else throws
233
+ // from inside this 'data' handler, which surfaces as
234
+ // an uncaughtException and drops the process via
235
+ // proc.js's SIGTERM path — so a single malformed
236
+ // frame would end the listener for every speaker.
237
+ // Skip the frame instead, mirroring bin/cmd's guard.
238
+ let pl = null;
239
+ try {
240
+ pl = JSON.parse(payload);
241
+ } catch (parseErr) {
242
+ console.warn('[MQListener] ignoring malformed payload');
243
+ continue;
244
+ }
215
245
 
216
246
 
217
247
  // mostly after client that acknowledeged sessionId
@@ -13,6 +13,8 @@
13
13
  * - Validate the `Origin` header against an allowlist (DNS rebinding
14
14
  * mitigation per MCP spec §Security).
15
15
  * - Enforce a static bearer token when `authToken` is configured.
16
+ * - Refuse to start, token-less, once an ambient protection has been removed
17
+ * (non-loopback bind, or a wildcard Origin allowlist) unless `allowInsecure`.
16
18
  * - Emit full CORS response headers (`access-control-allow-origin` +
17
19
  * `vary: Origin`, or `*` when wildcard allowlist is in effect).
18
20
  *
@@ -36,6 +38,41 @@ var DEFAULT_MAX_BODY_BYTES = 1024 * 1024;
36
38
  var BEARER_REALM = 'MCP';
37
39
 
38
40
 
41
+ /**
42
+ * True only when `h` is unambiguously a loopback bind address, i.e. when
43
+ * binding it cannot make the transport reachable from another host.
44
+ *
45
+ * Deliberately fail-closed: anything this cannot positively recognise as
46
+ * loopback (a hostname, `0.0.0.0`, `::`, a LAN address) is treated as exposed,
47
+ * because guessing wrong in that direction is the expensive mistake.
48
+ *
49
+ * Recognised: `localhost`, `::1` (bracketed or bare), the whole `127.0.0.0/8`
50
+ * block, and IPv4-mapped forms such as `::ffff:127.0.0.1`.
51
+ *
52
+ * @param {string} h - a bind host as handed to `server.listen()`.
53
+ * @returns {boolean}
54
+ * @inner
55
+ * @private
56
+ */
57
+ function isLoopbackBind(h) {
58
+ if (typeof(h) !== 'string') return false;
59
+ var v = h.trim().toLowerCase();
60
+ if (v.charAt(0) === '[' && v.charAt(v.length - 1) === ']') {
61
+ v = v.substring(1, v.length - 1);
62
+ }
63
+ if (v === 'localhost' || v === '::1') return true;
64
+ if (v.indexOf('::ffff:') === 0) {
65
+ v = v.substring(7); // IPv4-mapped IPv6 — fall through to the v4 test
66
+ }
67
+ var m = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/.exec(v);
68
+ if (!m) return false;
69
+ for (var i = 1; i <= 4; ++i) {
70
+ if (Number(m[i]) > 255) return false;
71
+ }
72
+ return Number(m[1]) === 127;
73
+ }
74
+
75
+
39
76
  /**
40
77
  * Creates an HTTP transport bound to an mcp-server instance. Returns a
41
78
  * controller with `start()`, `stop()`, and `address()`.
@@ -47,9 +84,19 @@ var BEARER_REALM = 'MCP';
47
84
  * @param {number} [opts.maxBodyBytes] - Cap on POST body size
48
85
  * @param {string} [opts.authToken] - If set, `Authorization: Bearer <token>`
49
86
  * is required on every non-OPTIONS request.
50
- * Constant-time compared. When omitted,
51
- * no auth is enforced (the network bind
52
- * policy IS the security boundary).
87
+ * Compared in constant time, sha256-hashed
88
+ * on both sides. When omitted the transport
89
+ * leans on its ambient protections (loopback
90
+ * bind + Origin allowlist) and REFUSES to
91
+ * start if either has been deliberately
92
+ * removed — see `opts.allowInsecure`.
93
+ * @param {boolean} [opts.allowInsecure] - Strict boolean. Set `true` to run
94
+ * token-less even with an ambient protection
95
+ * removed (non-loopback bind, or a wildcard
96
+ * Origin allowlist). Assert this only when
97
+ * access is restricted upstream — a service
98
+ * mesh, a NetworkPolicy, or an
99
+ * authenticating reverse proxy.
53
100
  * @param {string[]} [opts.allowedOrigins] - Additional origins to accept beyond the
54
101
  * built-in loopback allowlist
55
102
  * (`http(s)://localhost`, `http(s)://127.0.0.1`,
@@ -87,8 +134,17 @@ function createHttpTransport(opts) {
87
134
  var authToken = (typeof(opts.authToken) === 'string' && opts.authToken.length) ? opts.authToken : null;
88
135
  var extraOrigins = Array.isArray(opts.allowedOrigins) ? opts.allowedOrigins.slice() : [];
89
136
  var originWildcard = (extraOrigins.indexOf('*') !== -1);
137
+ var allowInsecure = (opts.allowInsecure === true);
90
138
  var onError = (typeof(opts.onError) === 'function') ? opts.onError : function() {};
91
139
 
140
+ // Digest the configured token ONCE, here, rather than per request: the
141
+ // compare in `isAuthed` then runs over two fixed-length (32-byte) buffers,
142
+ // so it can neither throw nor leak the token's length. Mirrors the
143
+ // boot-precomputed key hashes in `lib/authz-gate` (`verifyMachineToken`).
144
+ var authTokenHash = authToken
145
+ ? crypto.createHash('sha256').update(authToken, 'utf8').digest()
146
+ : null;
147
+
92
148
  var httpServer = null;
93
149
 
94
150
 
@@ -133,9 +189,13 @@ function createHttpTransport(opts) {
133
189
 
134
190
  /**
135
191
  * True when the request carries a valid bearer (or no token is configured).
136
- * Constant-time compares the presented token to the configured one.
137
- * Length mismatch short-circuits to false WITHOUT calling
138
- * `crypto.timingSafeEqual` — that API throws on length mismatch.
192
+ *
193
+ * Both sides are sha256-hashed before the constant-time compare, so the two
194
+ * buffers are always 32 bytes. That removes the length short-circuit this
195
+ * used to need — comparing the raw tokens meant returning early on a length
196
+ * mismatch (`timingSafeEqual` throws on unequal lengths), which leaked the
197
+ * configured token's length through response timing. The try/catch is kept
198
+ * as the house idiom even though two same-length digests cannot throw.
139
199
  *
140
200
  * @private
141
201
  */
@@ -144,15 +204,40 @@ function createHttpTransport(opts) {
144
204
  var header = req.headers['authorization'] || '';
145
205
  var m = /^Bearer\s+(.+)$/i.exec(header);
146
206
  if (!m) return false;
147
- var presented = m[1].trim();
148
- var expected = Buffer.from(authToken, 'utf8');
149
- var actual = Buffer.from(presented, 'utf8');
150
- if (expected.length !== actual.length) return false;
151
- try { return crypto.timingSafeEqual(expected, actual); }
207
+ var presented = m[1].trim();
208
+ var presentedHash = crypto.createHash('sha256').update(presented, 'utf8').digest();
209
+ try { return crypto.timingSafeEqual(presentedHash, authTokenHash); }
152
210
  catch (e) { return false; }
153
211
  }
154
212
 
155
213
 
214
+ /**
215
+ * Describes the ambient protection the operator has removed, when running
216
+ * without a bearer token — or `null` when the transport is adequately
217
+ * protected (or `allowInsecure` waives the requirement).
218
+ *
219
+ * Two protections make a token-less transport defensible, and losing EITHER
220
+ * is enough to need one:
221
+ * - the loopback bind, which keeps other hosts out entirely;
222
+ * - the Origin allowlist, which is the only thing standing between a
223
+ * loopback-bound server and a DNS-rebinding attack driven from any web
224
+ * page (the bind does not help there — the browser is already local).
225
+ *
226
+ * @returns {string|null} the reason, phrased for an operator-facing error.
227
+ * @private
228
+ */
229
+ function describeExposure() {
230
+ if (authToken || allowInsecure) return null;
231
+ if (!isLoopbackBind(host)) {
232
+ return 'it is bound to the non-loopback address `'+ host +'`';
233
+ }
234
+ if (originWildcard) {
235
+ return 'the Origin allowlist is disabled (`allowedOrigins: ["*"]`)';
236
+ }
237
+ return null;
238
+ }
239
+
240
+
156
241
  /**
157
242
  * Merges CORS response headers into a base header bag. Safe to call even
158
243
  * when there is no `Origin` on the request — returns the base bag unchanged
@@ -510,6 +595,12 @@ function createHttpTransport(opts) {
510
595
  * resolved { host, port, family } — `port` is the OS-assigned port when
511
596
  * `opts.port` was 0.
512
597
  *
598
+ * Also rejects, BEFORE binding, when the transport would be exposed without
599
+ * a bearer token (see `describeExposure`). Refusing here rather than
600
+ * answering 401 per request is the framework's house answer for a security
601
+ * control that would otherwise sit silently inert: nothing ever listens, so
602
+ * there is no window in which an unauthenticated port is reachable.
603
+ *
513
604
  * @returns {Promise<{host: string, port: number, family: string}>}
514
605
  */
515
606
  function start() {
@@ -517,6 +608,14 @@ function createHttpTransport(opts) {
517
608
  if (httpServer) {
518
609
  return reject(new Error('start: transport already started'));
519
610
  }
611
+ var exposure = describeExposure();
612
+ if (exposure) {
613
+ return reject(new Error(
614
+ 'start: refusing to listen without a bearer token because '+ exposure +'. '
615
+ + 'Configure a token, or set `allowInsecure` to assert that access is '
616
+ + 'restricted upstream (service mesh, NetworkPolicy, authenticating proxy).'
617
+ ));
618
+ }
520
619
  var server = http.createServer(handleHttpRequest);
521
620
  var onListenError = function(err) { reject(err); };
522
621
  server.once('error', onListenError);
@@ -5,13 +5,15 @@
5
5
  * Works in Node.js (CommonJS) and browser (AMD / GFF) contexts.
6
6
  *
7
7
  * - Objects are merged recursively.
8
- * - Arrays and primitives from `source` overwrite `target` (unless `override=false`).
9
- * - Pass `true` as the last argument to force overwrite of existing keys.
8
+ * - Missing keys are always filled from `source`; on a CONFLICTING key the
9
+ * `target` value is preserved by default.
10
+ * - Pass `true` as the last argument (`override`) to make `source` win instead.
10
11
  *
11
12
  * @example
12
13
  * var merge = require('lib/merge');
13
14
  * var result = merge({ a: 1 }, { b: 2 }); // { a: 1, b: 2 }
14
- * merge({ a: 1 }, { a: 9 }, false); // { a: 1 } — target wins when override=false
15
+ * merge({ a: 1 }, { a: 9 }); // { a: 1 } — default: target wins on conflicts
16
+ * merge({ a: 1 }, { a: 9 }, true); // { a: 9 } — override: source wins
15
17
  */
16
18
 
17
19
  /**
@@ -37,13 +39,15 @@ function Merge() {
37
39
  *
38
40
  * @param {object|Array} target - Target (base) object or array
39
41
  * @param {object|Array} source - Source object or array to merge into target
40
- * @param {boolean} [override=true] - When `false`, existing target keys are preserved
42
+ * @param {boolean} [override=false] - Pass `true` to let `source` overwrite existing target keys; by default they are preserved
41
43
  * @returns {object|Array} Merged result (mutates and returns `target`)
42
44
  *
43
45
  * @example
44
46
  * merge({ a: 1 }, { b: 2 }) // { a: 1, b: 2 }
45
- * merge({ a: 1 }, { a: 9 }, false) // { a: 1 }
46
- * merge([1, 2], [3, 4]) // [3, 4]
47
+ * merge({ a: 1 }, { a: 9 }) // { a: 1 } — default: target wins
48
+ * merge({ a: 1 }, { a: 9 }, true) // { a: 9 }
49
+ * merge([1, 2], [3, 4]) // [1, 2, 3, 4]
50
+ * merge([1, 2], [3, 4], true) // [3, 4]
47
51
  */
48
52
  var browse = function (_target, _source) {
49
53
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gina-framework",
3
- "version": "0.5.25",
3
+ "version": "0.5.26",
4
4
  "dependencies": {
5
5
  "@rhinostone/busboy": "^1.6.1",
6
6
  "@rhinostone/swig": "^2.7.2",
package/gna.js CHANGED
@@ -15,14 +15,14 @@
15
15
  'use strict';
16
16
 
17
17
  // Framework core — the main gna module (lifecycle hooks, lib, etc.)
18
- var _gna = require('./framework/v0.5.25/core/gna');
18
+ var _gna = require('./framework/v0.5.26/core/gna');
19
19
 
20
20
  // SuperController and EntitySuper — loaded from their source modules
21
- var SuperController = require('./framework/v0.5.25/core/controller');
22
- var EntitySuper = require('./framework/v0.5.25/core/model/entity');
21
+ var SuperController = require('./framework/v0.5.26/core/controller');
22
+ var EntitySuper = require('./framework/v0.5.26/core/model/entity');
23
23
 
24
24
  // uuid — from the lib registry
25
- var uuid = require('./framework/v0.5.25/lib/uuid');
25
+ var uuid = require('./framework/v0.5.26/lib/uuid');
26
26
 
27
27
  module.exports = {
28
28