gina 0.6.18 → 0.6.19

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 (593) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +22 -17
  3. package/ROADMAP.md +1 -0
  4. package/framework/v0.6.19/VERSION +1 -0
  5. package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/js/gina.js +13 -1
  6. package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/js/gina.min.js +319 -319
  7. package/framework/v0.6.19/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  8. package/framework/v0.6.19/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  9. package/framework/{v0.6.18 → v0.6.19}/core/config.js +34 -0
  10. package/framework/{v0.6.18 → v0.6.19}/core/connectors/couchbase/index.js +307 -245
  11. package/framework/{v0.6.18 → v0.6.19}/core/connectors/couchbase/lib/session-store.v3.js +8 -0
  12. package/framework/{v0.6.18 → v0.6.19}/core/connectors/couchbase/lib/session-store.v4.js +8 -0
  13. package/framework/{v0.6.18 → v0.6.19}/core/connectors/couchbase/lib/storage-store.js +16 -32
  14. package/framework/{v0.6.18 → v0.6.19}/core/connectors/mongodb/index.js +10 -5
  15. package/framework/{v0.6.18 → v0.6.19}/core/connectors/mongodb/lib/connector.js +9 -0
  16. package/framework/{v0.6.18 → v0.6.19}/core/connectors/mongodb/lib/job-store.js +10 -0
  17. package/framework/{v0.6.18 → v0.6.19}/core/connectors/mongodb/lib/session-store.js +11 -0
  18. package/framework/{v0.6.18 → v0.6.19}/core/connectors/redis/lib/session-store.js +8 -0
  19. package/framework/{v0.6.18 → v0.6.19}/core/connectors/scylladb/index.js +5 -2
  20. package/framework/{v0.6.18 → v0.6.19}/core/connectors/scylladb/lib/connector.js +9 -0
  21. package/framework/{v0.6.18 → v0.6.19}/core/connectors/scylladb/lib/session-store.js +11 -0
  22. package/framework/v0.6.19/core/connectors/settle-once.js +148 -0
  23. package/framework/{v0.6.18 → v0.6.19}/core/connectors/sqlite/index.js +6 -2
  24. package/framework/{v0.6.18 → v0.6.19}/core/connectors/sqlite/lib/job-store.js +10 -0
  25. package/framework/{v0.6.18 → v0.6.19}/core/connectors/sqlite/lib/session-store.js +8 -0
  26. package/framework/{v0.6.18 → v0.6.19}/core/controller/controller.render-json.js +5 -0
  27. package/framework/{v0.6.18 → v0.6.19}/core/controller/controller.render-nunjucks-async.js +5 -0
  28. package/framework/{v0.6.18 → v0.6.19}/core/controller/controller.render-nunjucks.js +5 -0
  29. package/framework/{v0.6.18 → v0.6.19}/core/controller/controller.render-swig-async.js +5 -0
  30. package/framework/{v0.6.18 → v0.6.19}/core/controller/controller.render-swig.js +5 -0
  31. package/framework/{v0.6.18 → v0.6.19}/core/controller/controller.render-v1.js +6 -0
  32. package/framework/{v0.6.18 → v0.6.19}/core/gna.js +9 -0
  33. package/framework/{v0.6.18 → v0.6.19}/core/server.isaac.js +9 -0
  34. package/framework/{v0.6.18 → v0.6.19}/core/server.js +9 -0
  35. package/framework/{v0.6.18 → v0.6.19}/core/template/conf/settings.json +30 -0
  36. package/framework/{v0.6.18 → v0.6.19}/lib/logger/src/main.js +145 -3
  37. package/framework/v0.6.19/lib/logger/src/redact.js +391 -0
  38. package/framework/{v0.6.18 → v0.6.19}/lib/merge/src/main.js +13 -1
  39. package/framework/{v0.6.18 → v0.6.19}/lib/secrets/src/main.js +56 -0
  40. package/framework/{v0.6.18 → v0.6.19}/package.json +1 -1
  41. package/gna.js +4 -4
  42. package/llms.txt +3 -3
  43. package/package.json +3 -3
  44. package/schema/settings.json +50 -0
  45. package/framework/v0.6.18/VERSION +0 -1
  46. package/framework/v0.6.18/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  47. package/framework/v0.6.18/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  48. /package/framework/{v0.6.18 → v0.6.19}/AUTHORS +0 -0
  49. /package/framework/{v0.6.18 → v0.6.19}/LICENSE +0 -0
  50. /package/framework/{v0.6.18 → v0.6.19}/core/asset/html/nolayout.html +0 -0
  51. /package/framework/{v0.6.18 → v0.6.19}/core/asset/html/static.html +0 -0
  52. /package/framework/{v0.6.18 → v0.6.19}/core/asset/img/android-chrome-192x192.png +0 -0
  53. /package/framework/{v0.6.18 → v0.6.19}/core/asset/img/android-chrome-512x512.png +0 -0
  54. /package/framework/{v0.6.18 → v0.6.19}/core/asset/img/apple-touch-icon.png +0 -0
  55. /package/framework/{v0.6.18 → v0.6.19}/core/asset/img/favicon-16x16.png +0 -0
  56. /package/framework/{v0.6.18 → v0.6.19}/core/asset/img/favicon-32x32.png +0 -0
  57. /package/framework/{v0.6.18 → v0.6.19}/core/asset/img/favicon.ico +0 -0
  58. /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/README.md +0 -0
  59. /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  60. /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  61. /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  62. /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  63. /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  64. /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  65. /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
  66. /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  67. /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  68. /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  69. /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
  70. /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
  71. /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
  72. /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  73. /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
  74. /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  75. /package/framework/{v0.6.18 → v0.6.19}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  76. /package/framework/{v0.6.18 → v0.6.19}/core/connectors/ai/index.js +0 -0
  77. /package/framework/{v0.6.18 → v0.6.19}/core/connectors/ai/lib/connector.js +0 -0
  78. /package/framework/{v0.6.18 → v0.6.19}/core/connectors/couchbase/lib/connector.js +0 -0
  79. /package/framework/{v0.6.18 → v0.6.19}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  80. /package/framework/{v0.6.18 → v0.6.19}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  81. /package/framework/{v0.6.18 → v0.6.19}/core/connectors/couchbase/lib/n1ql.js +0 -0
  82. /package/framework/{v0.6.18 → v0.6.19}/core/connectors/couchbase/lib/session-store.js +0 -0
  83. /package/framework/{v0.6.18 → v0.6.19}/core/connectors/duckdb/index.js +0 -0
  84. /package/framework/{v0.6.18 → v0.6.19}/core/connectors/duckdb/lib/connector.js +0 -0
  85. /package/framework/{v0.6.18 → v0.6.19}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
  86. /package/framework/{v0.6.18 → v0.6.19}/core/connectors/mysql/index.js +0 -0
  87. /package/framework/{v0.6.18 → v0.6.19}/core/connectors/mysql/lib/connector.js +0 -0
  88. /package/framework/{v0.6.18 → v0.6.19}/core/connectors/param-redact.js +0 -0
  89. /package/framework/{v0.6.18 → v0.6.19}/core/connectors/postgresql/index.js +0 -0
  90. /package/framework/{v0.6.18 → v0.6.19}/core/connectors/postgresql/lib/connector.js +0 -0
  91. /package/framework/{v0.6.18 → v0.6.19}/core/connectors/redis/index.js +0 -0
  92. /package/framework/{v0.6.18 → v0.6.19}/core/connectors/redis/lib/connector.js +0 -0
  93. /package/framework/{v0.6.18 → v0.6.19}/core/connectors/redis/lib/job-store.js +0 -0
  94. /package/framework/{v0.6.18 → v0.6.19}/core/connectors/redis/lib/kv-store.js +0 -0
  95. /package/framework/{v0.6.18 → v0.6.19}/core/connectors/redis/lib/render-cache-store.js +0 -0
  96. /package/framework/{v0.6.18 → v0.6.19}/core/connectors/sql-parser.js +0 -0
  97. /package/framework/{v0.6.18 → v0.6.19}/core/connectors/sqlite/lib/connector.js +0 -0
  98. /package/framework/{v0.6.18 → v0.6.19}/core/connectors/sqlite/lib/kv-store.js +0 -0
  99. /package/framework/{v0.6.18 → v0.6.19}/core/content.encoding +0 -0
  100. /package/framework/{v0.6.18 → v0.6.19}/core/controller/controller.framework.js +0 -0
  101. /package/framework/{v0.6.18 → v0.6.19}/core/controller/controller.js +0 -0
  102. /package/framework/{v0.6.18 → v0.6.19}/core/controller/controller.render-stream.js +0 -0
  103. /package/framework/{v0.6.18 → v0.6.19}/core/controller/index.js +0 -0
  104. /package/framework/{v0.6.18 → v0.6.19}/core/controller/inspector-window-emit.js +0 -0
  105. /package/framework/{v0.6.18 → v0.6.19}/core/controller/release-banner.js +0 -0
  106. /package/framework/{v0.6.18 → v0.6.19}/core/dev/index.js +0 -0
  107. /package/framework/{v0.6.18 → v0.6.19}/core/dev/lib/class.js +0 -0
  108. /package/framework/{v0.6.18 → v0.6.19}/core/dev/lib/factory.js +0 -0
  109. /package/framework/{v0.6.18 → v0.6.19}/core/dev/lib/tools.js +0 -0
  110. /package/framework/{v0.6.18 → v0.6.19}/core/locales/README.md +0 -0
  111. /package/framework/{v0.6.18 → v0.6.19}/core/locales/currency.json +0 -0
  112. /package/framework/{v0.6.18 → v0.6.19}/core/locales/dist/language/en.json +0 -0
  113. /package/framework/{v0.6.18 → v0.6.19}/core/locales/dist/language/fr.json +0 -0
  114. /package/framework/{v0.6.18 → v0.6.19}/core/locales/dist/region/en.json +0 -0
  115. /package/framework/{v0.6.18 → v0.6.19}/core/locales/dist/region/fr.json +0 -0
  116. /package/framework/{v0.6.18 → v0.6.19}/core/locales/index.js +0 -0
  117. /package/framework/{v0.6.18 → v0.6.19}/core/mime.types +0 -0
  118. /package/framework/{v0.6.18 → v0.6.19}/core/model/entity.js +0 -0
  119. /package/framework/{v0.6.18 → v0.6.19}/core/model/index.js +0 -0
  120. /package/framework/{v0.6.18 → v0.6.19}/core/model/template/entityFactory.js +0 -0
  121. /package/framework/{v0.6.18 → v0.6.19}/core/model/template/index.js +0 -0
  122. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/README.md +0 -0
  123. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/index.js +0 -0
  124. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/csrf/README.md +0 -0
  125. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/csrf/package.json +0 -0
  126. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/csrf/src/main.js +0 -0
  127. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/README.md +0 -0
  128. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/coep/README.md +0 -0
  129. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/coep/package.json +0 -0
  130. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
  131. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/coop/README.md +0 -0
  132. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/coop/package.json +0 -0
  133. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
  134. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/corp/README.md +0 -0
  135. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/corp/package.json +0 -0
  136. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
  137. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/csp/README.md +0 -0
  138. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/csp/package.json +0 -0
  139. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
  140. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
  141. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
  142. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
  143. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/hsts/README.md +0 -0
  144. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/hsts/package.json +0 -0
  145. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
  146. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
  147. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
  148. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
  149. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/package.json +0 -0
  150. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
  151. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
  152. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
  153. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/src/main.js +0 -0
  154. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
  155. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
  156. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
  157. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
  158. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
  159. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
  160. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
  161. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
  162. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
  163. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
  164. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
  165. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
  166. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
  167. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
  168. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
  169. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
  170. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
  171. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
  172. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/session/README.md +0 -0
  173. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/session/package.json +0 -0
  174. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/session/src/main.js +0 -0
  175. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/storage/README.md +0 -0
  176. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/storage/build.json +0 -0
  177. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/storage/package.json +0 -0
  178. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/storage/src/main.js +0 -0
  179. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/validator/README.md +0 -0
  180. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/validator/build.json +0 -0
  181. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/validator/package.json +0 -0
  182. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/validator/src/form-validator.js +0 -0
  183. /package/framework/{v0.6.18 → v0.6.19}/core/plugins/lib/validator/src/main.js +0 -0
  184. /package/framework/{v0.6.18 → v0.6.19}/core/router.js +0 -0
  185. /package/framework/{v0.6.18 → v0.6.19}/core/server.express.js +0 -0
  186. /package/framework/{v0.6.18 → v0.6.19}/core/status.codes +0 -0
  187. /package/framework/{v0.6.18 → v0.6.19}/core/template/_gitignore +0 -0
  188. /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle/config/app.json +0 -0
  189. /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  190. /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle/config/routing.json +0 -0
  191. /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle/config/settings.json +0 -0
  192. /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  193. /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle/config/templates.json +0 -0
  194. /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  195. /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  196. /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  197. /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  198. /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle/index.js +0 -0
  199. /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle/locales/en.json +0 -0
  200. /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  201. /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  202. /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  203. /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  204. /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  205. /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_public/js/components/x-checklist.js +0 -0
  206. /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  207. /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
  208. /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_public/readme.md +0 -0
  209. /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_public/sw.js +0 -0
  210. /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  211. /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  212. /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  213. /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  214. /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_templates/html/includes/x-checklist.html +0 -0
  215. /package/framework/{v0.6.18 → v0.6.19}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  216. /package/framework/{v0.6.18 → v0.6.19}/core/template/command/gina.bat.tpl +0 -0
  217. /package/framework/{v0.6.18 → v0.6.19}/core/template/command/gina.tpl +0 -0
  218. /package/framework/{v0.6.18 → v0.6.19}/core/template/conf/env.json +0 -0
  219. /package/framework/{v0.6.18 → v0.6.19}/core/template/conf/manifest.json +0 -0
  220. /package/framework/{v0.6.18 → v0.6.19}/core/template/conf/package.json +0 -0
  221. /package/framework/{v0.6.18 → v0.6.19}/core/template/conf/statics.json +0 -0
  222. /package/framework/{v0.6.18 → v0.6.19}/core/template/conf/templates.json +0 -0
  223. /package/framework/{v0.6.18 → v0.6.19}/core/template/error/client/json/401.json +0 -0
  224. /package/framework/{v0.6.18 → v0.6.19}/core/template/error/client/json/403.json +0 -0
  225. /package/framework/{v0.6.18 → v0.6.19}/core/template/error/client/json/404.json +0 -0
  226. /package/framework/{v0.6.18 → v0.6.19}/core/template/error/server/html/50x.html +0 -0
  227. /package/framework/{v0.6.18 → v0.6.19}/core/template/error/server/json/500.json +0 -0
  228. /package/framework/{v0.6.18 → v0.6.19}/core/template/error/server/json/503.json +0 -0
  229. /package/framework/{v0.6.18 → v0.6.19}/core/template/extensions/logger/config.json +0 -0
  230. /package/framework/{v0.6.18 → v0.6.19}/helpers/console.js +0 -0
  231. /package/framework/{v0.6.18 → v0.6.19}/helpers/context.js +0 -0
  232. /package/framework/{v0.6.18 → v0.6.19}/helpers/data/LICENSE +0 -0
  233. /package/framework/{v0.6.18 → v0.6.19}/helpers/data/README.md +0 -0
  234. /package/framework/{v0.6.18 → v0.6.19}/helpers/data/package.json +0 -0
  235. /package/framework/{v0.6.18 → v0.6.19}/helpers/data/src/main.js +0 -0
  236. /package/framework/{v0.6.18 → v0.6.19}/helpers/dateFormat.js +0 -0
  237. /package/framework/{v0.6.18 → v0.6.19}/helpers/index.js +0 -0
  238. /package/framework/{v0.6.18 → v0.6.19}/helpers/json/LICENSE +0 -0
  239. /package/framework/{v0.6.18 → v0.6.19}/helpers/json/README.md +0 -0
  240. /package/framework/{v0.6.18 → v0.6.19}/helpers/json/package.json +0 -0
  241. /package/framework/{v0.6.18 → v0.6.19}/helpers/json/src/main.js +0 -0
  242. /package/framework/{v0.6.18 → v0.6.19}/helpers/path.js +0 -0
  243. /package/framework/{v0.6.18 → v0.6.19}/helpers/plugins/README.md +0 -0
  244. /package/framework/{v0.6.18 → v0.6.19}/helpers/plugins/package.json +0 -0
  245. /package/framework/{v0.6.18 → v0.6.19}/helpers/plugins/src/api-error.js +0 -0
  246. /package/framework/{v0.6.18 → v0.6.19}/helpers/plugins/src/main.js +0 -0
  247. /package/framework/{v0.6.18 → v0.6.19}/helpers/prototypes.js +0 -0
  248. /package/framework/{v0.6.18 → v0.6.19}/helpers/task.js +0 -0
  249. /package/framework/{v0.6.18 → v0.6.19}/helpers/text.js +0 -0
  250. /package/framework/{v0.6.18 → v0.6.19}/lib/admin/package.json +0 -0
  251. /package/framework/{v0.6.18 → v0.6.19}/lib/admin/src/main.js +0 -0
  252. /package/framework/{v0.6.18 → v0.6.19}/lib/archiver/README.md +0 -0
  253. /package/framework/{v0.6.18 → v0.6.19}/lib/archiver/build.json +0 -0
  254. /package/framework/{v0.6.18 → v0.6.19}/lib/archiver/package.json +0 -0
  255. /package/framework/{v0.6.18 → v0.6.19}/lib/archiver/src/dep/jszip.min.js +0 -0
  256. /package/framework/{v0.6.18 → v0.6.19}/lib/archiver/src/main.js +0 -0
  257. /package/framework/{v0.6.18 → v0.6.19}/lib/async/package.json +0 -0
  258. /package/framework/{v0.6.18 → v0.6.19}/lib/async/src/main.js +0 -0
  259. /package/framework/{v0.6.18 → v0.6.19}/lib/audit/package.json +0 -0
  260. /package/framework/{v0.6.18 → v0.6.19}/lib/audit/src/main.js +0 -0
  261. /package/framework/{v0.6.18 → v0.6.19}/lib/audit-store.js +0 -0
  262. /package/framework/{v0.6.18 → v0.6.19}/lib/authn/package.json +0 -0
  263. /package/framework/{v0.6.18 → v0.6.19}/lib/authn/src/lockout.js +0 -0
  264. /package/framework/{v0.6.18 → v0.6.19}/lib/authn/src/main.js +0 -0
  265. /package/framework/{v0.6.18 → v0.6.19}/lib/authn/src/totp.js +0 -0
  266. /package/framework/{v0.6.18 → v0.6.19}/lib/authz-gate/package.json +0 -0
  267. /package/framework/{v0.6.18 → v0.6.19}/lib/authz-gate/src/main.js +0 -0
  268. /package/framework/{v0.6.18 → v0.6.19}/lib/cache/README.md +0 -0
  269. /package/framework/{v0.6.18 → v0.6.19}/lib/cache/build.json +0 -0
  270. /package/framework/{v0.6.18 → v0.6.19}/lib/cache/package.json +0 -0
  271. /package/framework/{v0.6.18 → v0.6.19}/lib/cache/src/main.js +0 -0
  272. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/aliases.json +0 -0
  273. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/audit/arguments.json +0 -0
  274. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/audit/help.txt +0 -0
  275. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/audit/verify.js +0 -0
  276. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/add.js +0 -0
  277. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/arguments.json +0 -0
  278. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/build.js +0 -0
  279. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/copy.js +0 -0
  280. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/cp.js +0 -0
  281. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/help.js +0 -0
  282. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/help.txt +0 -0
  283. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
  284. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/list.js +0 -0
  285. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/man.js +0 -0
  286. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/mcp-start.js +0 -0
  287. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/mcp.js +0 -0
  288. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/oas.js +0 -0
  289. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/openapi.js +0 -0
  290. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/remove.js +0 -0
  291. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/rename.js +0 -0
  292. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/restart.js +0 -0
  293. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/rm.js +0 -0
  294. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/start.js +0 -0
  295. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/status.js +0 -0
  296. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/stop.js +0 -0
  297. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/bundle/types.js +0 -0
  298. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/cache/arguments.json +0 -0
  299. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/cache/clear.js +0 -0
  300. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/cache/help.txt +0 -0
  301. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/cache/stats.js +0 -0
  302. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/connector/add.js +0 -0
  303. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/connector/arguments.json +0 -0
  304. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/connector/help.js +0 -0
  305. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/connector/help.txt +0 -0
  306. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/connector/infer.js +0 -0
  307. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/connector/list.js +0 -0
  308. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/connector/migrate.js +0 -0
  309. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/connector/models.js +0 -0
  310. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/connector/remove.js +0 -0
  311. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/connector/rm.js +0 -0
  312. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/connector/test.js +0 -0
  313. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/container/arguments.json +0 -0
  314. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/container/help.js +0 -0
  315. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/container/help.txt +0 -0
  316. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/container/man.js +0 -0
  317. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/container/ps.js +0 -0
  318. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/container/stop.js +0 -0
  319. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/controller/add.js +0 -0
  320. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/controller/arguments.json +0 -0
  321. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/controller/help.txt +0 -0
  322. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/controller/inc/args.js +0 -0
  323. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/controller/inc/namespace.js +0 -0
  324. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/controller/inc/reference-rewrite.js +0 -0
  325. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/controller/inc/reference-scan.js +0 -0
  326. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/controller/inc/scaffold.js +0 -0
  327. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/controller/remove.js +0 -0
  328. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/controller/rename.js +0 -0
  329. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/controller/rm.js +0 -0
  330. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/env/add.js +0 -0
  331. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/env/get.js +0 -0
  332. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/env/help.js +0 -0
  333. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/env/help.txt +0 -0
  334. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/env/link-dev.js +0 -0
  335. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/env/list.js +0 -0
  336. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/env/remove.js +0 -0
  337. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/env/rm.js +0 -0
  338. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/env/set.js +0 -0
  339. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/env/unset.js +0 -0
  340. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/env/use.js +0 -0
  341. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/add.js +0 -0
  342. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/arguments.json +0 -0
  343. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/build.js +0 -0
  344. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/dot.js +0 -0
  345. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/get.js +0 -0
  346. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/help.js +0 -0
  347. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/help.txt +0 -0
  348. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/init.js +0 -0
  349. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/link-node-modules.js +0 -0
  350. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/link.js +0 -0
  351. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/list.js +0 -0
  352. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/man.js +0 -0
  353. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/msg.json +0 -0
  354. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/open.js +0 -0
  355. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/remove.js +0 -0
  356. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/reset.js +0 -0
  357. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/restart.js +0 -0
  358. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/set.js +0 -0
  359. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/start.js +0 -0
  360. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/status.js +0 -0
  361. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/stop.js +0 -0
  362. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/tail.js +0 -0
  363. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/update.js +0 -0
  364. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/framework/version.js +0 -0
  365. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/gina-dev.1.md +0 -0
  366. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/gina-framework.1.md +0 -0
  367. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/gina.1.md +0 -0
  368. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/helper.js +0 -0
  369. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/i18n/add.js +0 -0
  370. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/i18n/arguments.json +0 -0
  371. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/i18n/export.js +0 -0
  372. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/i18n/help.js +0 -0
  373. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/i18n/help.txt +0 -0
  374. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/i18n/import.js +0 -0
  375. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/i18n/scan.js +0 -0
  376. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/image/_host.js +0 -0
  377. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/image/arguments.json +0 -0
  378. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/image/build.js +0 -0
  379. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/image/help.js +0 -0
  380. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/image/help.txt +0 -0
  381. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/image/list.js +0 -0
  382. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/image/man.js +0 -0
  383. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/image/rm.js +0 -0
  384. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/image/run.js +0 -0
  385. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/index.js +0 -0
  386. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/inspector/help.js +0 -0
  387. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/inspector/help.txt +0 -0
  388. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/inspector/open.js +0 -0
  389. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/man-render.js +0 -0
  390. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/minion/arguments.json +0 -0
  391. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/minion/help.js +0 -0
  392. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/minion/help.txt +0 -0
  393. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/minion/kill.js +0 -0
  394. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/minion/list.js +0 -0
  395. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/msg.json +0 -0
  396. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/port/help.js +0 -0
  397. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/port/help.txt +0 -0
  398. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/port/inc/scan.js +0 -0
  399. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/port/list.js +0 -0
  400. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/port/reset.js +0 -0
  401. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/port/set.js +0 -0
  402. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/add.js +0 -0
  403. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/arguments.json +0 -0
  404. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/backup.js +0 -0
  405. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/build.js +0 -0
  406. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/help.js +0 -0
  407. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/help.txt +0 -0
  408. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/import.js +0 -0
  409. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/list.js +0 -0
  410. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/man.js +0 -0
  411. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/move.js +0 -0
  412. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/remove.js +0 -0
  413. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/rename.js +0 -0
  414. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/restart.js +0 -0
  415. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/restore.js +0 -0
  416. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/rm.js +0 -0
  417. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/start.js +0 -0
  418. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/status.js +0 -0
  419. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/project/stop.js +0 -0
  420. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/protocol/arguments.json +0 -0
  421. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/protocol/help.js +0 -0
  422. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/protocol/help.txt +0 -0
  423. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/protocol/list.js +0 -0
  424. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/protocol/remove.js +0 -0
  425. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/protocol/set.js +0 -0
  426. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/scope/add.js +0 -0
  427. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/scope/help.js +0 -0
  428. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/scope/help.txt +0 -0
  429. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/scope/link-local.js +0 -0
  430. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/scope/link-production.js +0 -0
  431. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/scope/list.js +0 -0
  432. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/scope/remove.js +0 -0
  433. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/scope/rm.js +0 -0
  434. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/scope/use.js +0 -0
  435. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/secrets/arguments.json +0 -0
  436. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/secrets/check.js +0 -0
  437. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/secrets/help.js +0 -0
  438. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/secrets/help.txt +0 -0
  439. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/secrets/scan.js +0 -0
  440. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/service/help.js +0 -0
  441. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/service/help.txt +0 -0
  442. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/service/list.js +0 -0
  443. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/service/man.js +0 -0
  444. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/service/start.js +0 -0
  445. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/storage/arguments.json +0 -0
  446. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/storage/gc.js +0 -0
  447. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/storage/help.txt +0 -0
  448. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/storage/stats.js +0 -0
  449. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/storage/verify.js +0 -0
  450. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd/view/add.js +0 -0
  451. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd-status-format/package.json +0 -0
  452. /package/framework/{v0.6.18 → v0.6.19}/lib/cmd-status-format/src/main.js +0 -0
  453. /package/framework/{v0.6.18 → v0.6.19}/lib/collection/README.md +0 -0
  454. /package/framework/{v0.6.18 → v0.6.19}/lib/collection/build.json +0 -0
  455. /package/framework/{v0.6.18 → v0.6.19}/lib/collection/package.json +0 -0
  456. /package/framework/{v0.6.18 → v0.6.19}/lib/collection/src/main.js +0 -0
  457. /package/framework/{v0.6.18 → v0.6.19}/lib/config.js +0 -0
  458. /package/framework/{v0.6.18 → v0.6.19}/lib/connector-config/package.json +0 -0
  459. /package/framework/{v0.6.18 → v0.6.19}/lib/connector-config/src/main.js +0 -0
  460. /package/framework/{v0.6.18 → v0.6.19}/lib/connector-error/package.json +0 -0
  461. /package/framework/{v0.6.18 → v0.6.19}/lib/connector-error/src/main.js +0 -0
  462. /package/framework/{v0.6.18 → v0.6.19}/lib/connector-registry/package.json +0 -0
  463. /package/framework/{v0.6.18 → v0.6.19}/lib/connector-registry/src/main.js +0 -0
  464. /package/framework/{v0.6.18 → v0.6.19}/lib/cron/README.md +0 -0
  465. /package/framework/{v0.6.18 → v0.6.19}/lib/cron/package.json +0 -0
  466. /package/framework/{v0.6.18 → v0.6.19}/lib/cron/src/main.js +0 -0
  467. /package/framework/{v0.6.18 → v0.6.19}/lib/domain/LICENSE +0 -0
  468. /package/framework/{v0.6.18 → v0.6.19}/lib/domain/README.md +0 -0
  469. /package/framework/{v0.6.18 → v0.6.19}/lib/domain/package.json +0 -0
  470. /package/framework/{v0.6.18 → v0.6.19}/lib/domain/src/main.js +0 -0
  471. /package/framework/{v0.6.18 → v0.6.19}/lib/dto/package.json +0 -0
  472. /package/framework/{v0.6.18 → v0.6.19}/lib/dto/src/main.js +0 -0
  473. /package/framework/{v0.6.18 → v0.6.19}/lib/dto-pipe/package.json +0 -0
  474. /package/framework/{v0.6.18 → v0.6.19}/lib/dto-pipe/src/main.js +0 -0
  475. /package/framework/{v0.6.18 → v0.6.19}/lib/dto-types/package.json +0 -0
  476. /package/framework/{v0.6.18 → v0.6.19}/lib/dto-types/src/main.js +0 -0
  477. /package/framework/{v0.6.18 → v0.6.19}/lib/generator/index.js +0 -0
  478. /package/framework/{v0.6.18 → v0.6.19}/lib/i18n/package.json +0 -0
  479. /package/framework/{v0.6.18 → v0.6.19}/lib/i18n/src/main.js +0 -0
  480. /package/framework/{v0.6.18 → v0.6.19}/lib/image-build/package.json +0 -0
  481. /package/framework/{v0.6.18 → v0.6.19}/lib/image-build/src/main.js +0 -0
  482. /package/framework/{v0.6.18 → v0.6.19}/lib/index.js +0 -0
  483. /package/framework/{v0.6.18 → v0.6.19}/lib/inherits/LICENSE +0 -0
  484. /package/framework/{v0.6.18 → v0.6.19}/lib/inherits/README.md +0 -0
  485. /package/framework/{v0.6.18 → v0.6.19}/lib/inherits/package.json +0 -0
  486. /package/framework/{v0.6.18 → v0.6.19}/lib/inherits/src/main.js +0 -0
  487. /package/framework/{v0.6.18 → v0.6.19}/lib/inspector-events/package.json +0 -0
  488. /package/framework/{v0.6.18 → v0.6.19}/lib/inspector-events/src/main.js +0 -0
  489. /package/framework/{v0.6.18 → v0.6.19}/lib/inspector-redact/package.json +0 -0
  490. /package/framework/{v0.6.18 → v0.6.19}/lib/inspector-redact/src/main.js +0 -0
  491. /package/framework/{v0.6.18 → v0.6.19}/lib/instrument/package.json +0 -0
  492. /package/framework/{v0.6.18 → v0.6.19}/lib/instrument/src/main.js +0 -0
  493. /package/framework/{v0.6.18 → v0.6.19}/lib/job/package.json +0 -0
  494. /package/framework/{v0.6.18 → v0.6.19}/lib/job/src/main.js +0 -0
  495. /package/framework/{v0.6.18 → v0.6.19}/lib/job-store.js +0 -0
  496. /package/framework/{v0.6.18 → v0.6.19}/lib/json-config-header/package.json +0 -0
  497. /package/framework/{v0.6.18 → v0.6.19}/lib/json-config-header/src/main.js +0 -0
  498. /package/framework/{v0.6.18 → v0.6.19}/lib/kv/package.json +0 -0
  499. /package/framework/{v0.6.18 → v0.6.19}/lib/kv/src/main.js +0 -0
  500. /package/framework/{v0.6.18 → v0.6.19}/lib/kv-store.js +0 -0
  501. /package/framework/{v0.6.18 → v0.6.19}/lib/loading-state/package.json +0 -0
  502. /package/framework/{v0.6.18 → v0.6.19}/lib/loading-state/src/main.js +0 -0
  503. /package/framework/{v0.6.18 → v0.6.19}/lib/logger/README.md +0 -0
  504. /package/framework/{v0.6.18 → v0.6.19}/lib/logger/package.json +0 -0
  505. /package/framework/{v0.6.18 → v0.6.19}/lib/logger/src/containers/default/index.js +0 -0
  506. /package/framework/{v0.6.18 → v0.6.19}/lib/logger/src/containers/file/index.js +0 -0
  507. /package/framework/{v0.6.18 → v0.6.19}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  508. /package/framework/{v0.6.18 → v0.6.19}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  509. /package/framework/{v0.6.18 → v0.6.19}/lib/logger/src/containers/mq/index.js +0 -0
  510. /package/framework/{v0.6.18 → v0.6.19}/lib/logger/src/containers/mq/listener.js +0 -0
  511. /package/framework/{v0.6.18 → v0.6.19}/lib/logger/src/containers/mq/speaker.js +0 -0
  512. /package/framework/{v0.6.18 → v0.6.19}/lib/logger/src/helper.js +0 -0
  513. /package/framework/{v0.6.18 → v0.6.19}/lib/maintenance/package.json +0 -0
  514. /package/framework/{v0.6.18 → v0.6.19}/lib/maintenance/src/main.js +0 -0
  515. /package/framework/{v0.6.18 → v0.6.19}/lib/math/index.js +0 -0
  516. /package/framework/{v0.6.18 → v0.6.19}/lib/mcp-dispatch/package.json +0 -0
  517. /package/framework/{v0.6.18 → v0.6.19}/lib/mcp-dispatch/src/main.js +0 -0
  518. /package/framework/{v0.6.18 → v0.6.19}/lib/mcp-http/package.json +0 -0
  519. /package/framework/{v0.6.18 → v0.6.19}/lib/mcp-http/src/main.js +0 -0
  520. /package/framework/{v0.6.18 → v0.6.19}/lib/mcp-server/package.json +0 -0
  521. /package/framework/{v0.6.18 → v0.6.19}/lib/mcp-server/src/main.js +0 -0
  522. /package/framework/{v0.6.18 → v0.6.19}/lib/merge/README.md +0 -0
  523. /package/framework/{v0.6.18 → v0.6.19}/lib/merge/package.json +0 -0
  524. /package/framework/{v0.6.18 → v0.6.19}/lib/metrics/package.json +0 -0
  525. /package/framework/{v0.6.18 → v0.6.19}/lib/metrics/src/main.js +0 -0
  526. /package/framework/{v0.6.18 → v0.6.19}/lib/model.js +0 -0
  527. /package/framework/{v0.6.18 → v0.6.19}/lib/net-locality/package.json +0 -0
  528. /package/framework/{v0.6.18 → v0.6.19}/lib/net-locality/src/main.js +0 -0
  529. /package/framework/{v0.6.18 → v0.6.19}/lib/nunjucks-filters/README.md +0 -0
  530. /package/framework/{v0.6.18 → v0.6.19}/lib/nunjucks-filters/package.json +0 -0
  531. /package/framework/{v0.6.18 → v0.6.19}/lib/nunjucks-filters/src/main.js +0 -0
  532. /package/framework/{v0.6.18 → v0.6.19}/lib/nunjucks-resolver/package.json +0 -0
  533. /package/framework/{v0.6.18 → v0.6.19}/lib/nunjucks-resolver/src/main.js +0 -0
  534. /package/framework/{v0.6.18 → v0.6.19}/lib/proc.js +0 -0
  535. /package/framework/{v0.6.18 → v0.6.19}/lib/push/package.json +0 -0
  536. /package/framework/{v0.6.18 → v0.6.19}/lib/push/src/main.js +0 -0
  537. /package/framework/{v0.6.18 → v0.6.19}/lib/rate-limit/package.json +0 -0
  538. /package/framework/{v0.6.18 → v0.6.19}/lib/rate-limit/src/main.js +0 -0
  539. /package/framework/{v0.6.18 → v0.6.19}/lib/release-watch/package.json +0 -0
  540. /package/framework/{v0.6.18 → v0.6.19}/lib/release-watch/src/main.js +0 -0
  541. /package/framework/{v0.6.18 → v0.6.19}/lib/render-cache/package.json +0 -0
  542. /package/framework/{v0.6.18 → v0.6.19}/lib/render-cache/src/main.js +0 -0
  543. /package/framework/{v0.6.18 → v0.6.19}/lib/render-cache-store.js +0 -0
  544. /package/framework/{v0.6.18 → v0.6.19}/lib/routing/README.md +0 -0
  545. /package/framework/{v0.6.18 → v0.6.19}/lib/routing/build.json +0 -0
  546. /package/framework/{v0.6.18 → v0.6.19}/lib/routing/package.json +0 -0
  547. /package/framework/{v0.6.18 → v0.6.19}/lib/routing/src/main.js +0 -0
  548. /package/framework/{v0.6.18 → v0.6.19}/lib/routing/src/radix.js +0 -0
  549. /package/framework/{v0.6.18 → v0.6.19}/lib/routing-introspect/package.json +0 -0
  550. /package/framework/{v0.6.18 → v0.6.19}/lib/routing-introspect/src/main.js +0 -0
  551. /package/framework/{v0.6.18 → v0.6.19}/lib/secrets/package.json +0 -0
  552. /package/framework/{v0.6.18 → v0.6.19}/lib/secrets/src/backends/env.js +0 -0
  553. /package/framework/{v0.6.18 → v0.6.19}/lib/secrets/src/backends/exec.js +0 -0
  554. /package/framework/{v0.6.18 → v0.6.19}/lib/secrets/src/backends/file.js +0 -0
  555. /package/framework/{v0.6.18 → v0.6.19}/lib/secrets/src/declaration.js +0 -0
  556. /package/framework/{v0.6.18 → v0.6.19}/lib/secrets/src/env-file.js +0 -0
  557. /package/framework/{v0.6.18 → v0.6.19}/lib/secrets/src/sources.js +0 -0
  558. /package/framework/{v0.6.18 → v0.6.19}/lib/session-store.js +0 -0
  559. /package/framework/{v0.6.18 → v0.6.19}/lib/shell.js +0 -0
  560. /package/framework/{v0.6.18 → v0.6.19}/lib/sqlite-driver.js +0 -0
  561. /package/framework/{v0.6.18 → v0.6.19}/lib/state.js +0 -0
  562. /package/framework/{v0.6.18 → v0.6.19}/lib/storage/package.json +0 -0
  563. /package/framework/{v0.6.18 → v0.6.19}/lib/storage/src/local-cas.js +0 -0
  564. /package/framework/{v0.6.18 → v0.6.19}/lib/storage/src/local-stream.js +0 -0
  565. /package/framework/{v0.6.18 → v0.6.19}/lib/storage/src/local.js +0 -0
  566. /package/framework/{v0.6.18 → v0.6.19}/lib/storage/src/main.js +0 -0
  567. /package/framework/{v0.6.18 → v0.6.19}/lib/storage/src/meta-store.js +0 -0
  568. /package/framework/{v0.6.18 → v0.6.19}/lib/storage/src/s3.js +0 -0
  569. /package/framework/{v0.6.18 → v0.6.19}/lib/storage/src/util.js +0 -0
  570. /package/framework/{v0.6.18 → v0.6.19}/lib/storage-store.js +0 -0
  571. /package/framework/{v0.6.18 → v0.6.19}/lib/swig-filters/README.md +0 -0
  572. /package/framework/{v0.6.18 → v0.6.19}/lib/swig-filters/package.json +0 -0
  573. /package/framework/{v0.6.18 → v0.6.19}/lib/swig-filters/src/main.js +0 -0
  574. /package/framework/{v0.6.18 → v0.6.19}/lib/swig-resolver/package.json +0 -0
  575. /package/framework/{v0.6.18 → v0.6.19}/lib/swig-resolver/src/main.js +0 -0
  576. /package/framework/{v0.6.18 → v0.6.19}/lib/template-loaders/package.json +0 -0
  577. /package/framework/{v0.6.18 → v0.6.19}/lib/template-loaders/src/loaders/http.js +0 -0
  578. /package/framework/{v0.6.18 → v0.6.19}/lib/template-loaders/src/loaders/memory.js +0 -0
  579. /package/framework/{v0.6.18 → v0.6.19}/lib/template-loaders/src/main.js +0 -0
  580. /package/framework/{v0.6.18 → v0.6.19}/lib/url/README.md +0 -0
  581. /package/framework/{v0.6.18 → v0.6.19}/lib/url/index.js +0 -0
  582. /package/framework/{v0.6.18 → v0.6.19}/lib/url/routing.json +0 -0
  583. /package/framework/{v0.6.18 → v0.6.19}/lib/uuid/package.json +0 -0
  584. /package/framework/{v0.6.18 → v0.6.19}/lib/uuid/src/main.js +0 -0
  585. /package/framework/{v0.6.18 → v0.6.19}/lib/validator.js +0 -0
  586. /package/framework/{v0.6.18 → v0.6.19}/lib/watcher/package.json +0 -0
  587. /package/framework/{v0.6.18 → v0.6.19}/lib/watcher/src/main.js +0 -0
  588. /package/framework/{v0.6.18 → v0.6.19}/lib/ws-framing/package.json +0 -0
  589. /package/framework/{v0.6.18 → v0.6.19}/lib/ws-framing/src/main.js +0 -0
  590. /package/framework/{v0.6.18 → v0.6.19}/lib/ws-query/package.json +0 -0
  591. /package/framework/{v0.6.18 → v0.6.19}/lib/ws-query/src/main.js +0 -0
  592. /package/framework/{v0.6.18 → v0.6.19}/lib/ws-session/package.json +0 -0
  593. /package/framework/{v0.6.18 → v0.6.19}/lib/ws-session/src/main.js +0 -0
package/CHANGELOG.md CHANGED
@@ -6,6 +6,17 @@ 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.6.19 - 2026-08-28
10
+ ### Fixed
11
+ * #B431 — a failed couchbase query no longer settles its caller twice. Each dispatch chained `.catch(onError).then(onResult)` sequentially; a `.catch()` handler that returns normally RESOLVES the promise it produces, so the trailing `.then()` ran on every error with no result payload and delivered a second, bogus empty success. Measured: one failed query invoked an explicit trailing callback twice — first with the real error, then with `(false, null, {})` — so the canonical `if (err) { return next(err); } render(data);` shape ran BOTH branches, erroring the request and then rendering an empty result. On the `await` / `.onComplete()` path the second settlement was swallowed because a promise settles once, which is why this went unnoticed; it was still the reason a failed query emitted its trigger three times instead of once. `bulkInsert` shared the root cause with a different symptom: its result handler dereferenced the absent payload, so every failed bulk insert logged a spurious `TypeError: Cannot read properties of undefined (reading 'rows')`. All three dispatch sites now use the two-argument `.then(onResult, onError)` form, making the handlers mutually exclusive branches, and `bulkInsert` guards its payload the way the query path already did. Server-side only — pickup is a bundle restart, no re-bake.
12
+ * #B430 — a couchbase entity callback that throws is no longer invoked a second time with the same payload. The delivery path wrapped the callback in a `try`, and its `catch` branch called the very same callback again with the identical arguments — so a callback whose own body threw ran twice, and a deterministic throw was logged only after the second pass, while a one-off throw silently got a second run over the same data. The throw is now reported with the query trigger for context and the callback is never re-entered. Affects the explicit trailing-callback form. Server-side only — pickup is a bundle restart, no re-bake.
13
+ * #B432 — an entity query callback is no longer invoked twice when the callback itself throws. The sqlite, mongodb and scylladb connectors delivered a result by calling your callback inside a `try` (sqlite, whose driver is synchronous) or inside a `.then()` followed by a trailing `.catch()` (mongodb, scylladb). Application callbacks throw for ordinary reasons that have nothing to do with the query — a template error, a null dereference in a handler — and that exception landed in the very error path the connector had set up for driver failures, which called the same callback a SECOND time. The consequences are worse than a duplicate: the second call arrives with an Error, so the canonical `if (err) { return next(err); } render(data);` shape runs BOTH branches for one query, and the error it reports is the caller's own exception dressed up as a database failure — so the misleading message points at the connector rather than at the handler that actually threw. On mongodb a second, narrower path had the same shape: a pipeline file whose `op` is not one of the recognised operations reaches an unknown-op branch that settles inside a `try` whose `catch` settled again, and nothing validates `op` against the recognised list at load time, so any typo installs the method and reaches it at query time. Every settle now runs through one per-call guard that delivers at most once and reports a callback exception (tagged with the query trigger) instead of replaying it; a native Promise resolver was never affected, because a promise settles once. Not affected, measured: mysql, postgresql, duckdb and the AI connector. The same shape was present in the session stores, where the callback belongs to express-session: every store method (couchbase v3 and v4, mongodb, redis, scylladb, sqlite) now wraps its callback in the same guard at entry, so a throwing session callback can no longer be re-invoked by the method's own error path. The async-job stores (mongodb and sqlite) are guarded the same way, and there the misdelivery read as a data problem: a callback that threw while the SQLite store was handing a record back came home to the caller as `could not parse job record`, blaming the stored data for the handler's own exception. The mongodb and scylladb connectors carried the shape on their connection-ready path, and there it was worse than a duplicate: the ready handler is the model layer's boot continuation, so an exception thrown downstream at boot — while your models load, for instance — rejected the connect chain, whose error path re-invoked the handler with a fabricated `Connection failed: <that exception's own message>`; the fault was reported as a database connection failure, and the connector registry then cached that fabricated failure, with no connection, for the life of the process. The handler is now invoked once and its exception is reported under the connector's name; a real connection failure still arrives as `Connection failed`. The sqlite connector's Inspector index listener carried the same shape and is guarded for consistency (its caller has no throwing path today). The couchbase storage store already guarded its nine verbs with a local helper, so it never double-delivered — but that helper let a throwing callback's exception vanish: on six verbs it was lost outright, and on the three that run a query (`stats`, `listZeroRefs`, `listKeys`) the store logged it as its own failure (`stats failed: <your message>`). It now uses the shared guard, so the exception is reported once under the verb's name and is never attributed to the store. Server-side only — pickup is a bundle restart, no re-bake.
14
+ * An `Error` passed to a log method now renders with its message, stack, own properties and `cause` chain (#B434). Both stdout writers routed any object argument through an enumerable-properties walk, and an Error's `message` and `stack` are non-enumerable — so `console.error(err)` printed `{}` (or only the enumerable extras, such as `{"code": "ETIMEDOUT"}`), silently dropping the one thing the line was written to report. Errors — including ones minted in another realm — now render the way Node's own console does, at the top level, nested inside a logged object or array, and on the raw `console.log` path alike; the rendered message still passes through log redaction. Every non-Error argument renders exactly as before, and passing `err.stack` as a string keeps working unchanged.
15
+ * `merge()` no longer rewrites the object it was given (#B428). When a source subtree was merged into an existing target level that lacked its key, the subtree was referenced and then walked again as if it were being merged into itself: every array inside the caller's object was replaced by a copy at every depth, and an array of primitives silently lost its duplicates — a per-call cost proportional to the value, and a contract violation for any code that expected `merge` to leave its source alone. A subtree that is the same object on both sides is now skipped (merging a value into itself is identity), so a grafted source keeps its arrays and its duplicates and the result references it. Merging two different values is unchanged, as is the shallow copy built when the key is absent at the root. `lib/merge` is part of the browser bundle, so rebuild your bundles as well as restarting them; no other action is required.
16
+ ### Security
17
+ * #B429 — concurrent calls to the same couchbase entity method no longer cross-deliver results. The completion trigger (`N1QL:<entity>#<method>`) carried no call identity, and the entity it was emitted on is a process-wide singleton, so the Promise / `await` / `.onComplete()` path settled from a shared listener. Node fires every listener registered for one emit, so the FIRST query to finish woke every in-flight caller of that method with its own payload and removed their listeners — a broadcast, not a queue. Two concurrent reads with different arguments could each receive the other's rows; a third caller could receive an error belonging to a different call; and a single response could blend rows originating from two callers. This is a confidentiality and authorization concern, not only a correctness one: where the method reads a user-scoped or ownership-bearing record, one request could be answered with another request's row, so a check performed on the returned row could pass for the wrong principal. Measured on the real connector, both directions: a call keyed on one id resolving with a different id's row before the fix, and its own row after. Note the exposure was NOT limited to out-of-order completion — cross-delivery occurred even when the queries finished in the order they were started, so the guidance that the emit pattern is safe for in-order completion did not hold for this connector (that documentation is corrected in the same release). The explicit trailing-callback form (`entity.method(args, function (err, data) {})`, including `util.promisify`) was never affected: it already settled from its own per-call closure. Every path now settles that way, exactly once per call, and the trigger is emitted purely as an observability signal for the Inspector — which, as a side effect, now also sees direct-callback completions it previously missed. `bulkInsert` carried the same defect on its own dispatch and is fixed with it. Couchbase only: the cross-delivery described here needs a shared emitter, which no other connector uses. (A DIFFERENT defect in the same family — a callback being invoked a second time when it throws — does affect other connectors and is fixed separately in this release; see #B432.) Server-side only — pickup is a bundle restart, no re-bake.
18
+ * Credentials carried in a request URL no longer reach the logs in plaintext (#B433). The HTTP access line — and 45 sibling sites across both engines, every render delegate and the CSRF filter — log the URL as received, so a password-reset token, a signed download link or a one-time invite was written to stdout verbatim, with no seam to redact it. Every log message is now redacted BEFORE it is rendered and dispatched, at the logger's single pre-render point, so stdout, `gina tail`, the file transport and the Inspector all receive the same masked line and a JSON-mode line cannot be corrupted. Configured per bundle in `settings.json > log.redact` and ON by default: a built-in set masks JSON Web Tokens, URL userinfo passwords, `Bearer`/`Basic` credentials, named credential query keys (`token`, `access_token`, `api_key`, `secret`, `password`, `signature`, `otp`, …, keeping the key and masking the value) and api-key style headers — measured at zero false positives over 433k real log lines and about a microsecond per line; every value the secrets resolver substituted for a `${secret:KEY}` placeholder is masked verbatim wherever it appears; and `patterns` takes your own rules (a regex source string, or `{pattern, flags, replacement}`), always applied with the `g` flag. A bare long-hex path segment is deliberately not a default — a content-address key and an opaque credential look the same — so add `(?<![0-9a-f])[0-9a-f]{64}(?![0-9a-f])` yourself when your credentials take that shape (anchored on the character class — a leading `\b` never fires against a prefixed segment such as `key_<hex>`). An unknown key, a non-boolean flag or an invalid / empty-matching pattern refuses the boot, because a rule dropped silently would be a leak. Behaviour change: masked values now appear in logs where the raw value used to; set `log.redact.enabled` to `false` to opt out. Restart your bundles to pick it up — and rebuild them too, since this release also changes the browser bundle (see the `merge()` fix). Also new: `lib.secrets.getResolvedValues(conf)` and `console.setRedaction(block, options)`.
19
+
9
20
  ## 0.6.18 - 2026-08-27
10
21
  ### Fixed
11
22
  * A field validated by a `query` (live-check) rule no longer gets the wrong verdict when its value contains a `+` — the common case being an email plus-address such as `alias+tag@example.com`. The live-check body is JSON, but the request was labelled `application/x-www-form-urlencoded`, so the server correctly url-decoded it before parsing and turned every `+` into a space; the mangled body was still valid JSON, so nothing errored and the endpoint answered 200 with an answer computed from a corrupted value. Because a `query` rule also gates the submit trigger, an affected visitor could not submit the form at all — a hard lockout on sign-in and password-recovery forms rather than a warning. The request now sends `application/json` when the body is JSON, matching what the form-submit and file-removal paths already did. An explicit per-rule `headers` override still wins, so a rule that already declares its own `Content-Type` is unchanged. Note that live-check bodies are no longer URL-decoded at all, so `%XX` sequences reach your action verbatim; field values are sent raw, so this only affects a bundle that relied on the decode.
package/README.md CHANGED
@@ -62,30 +62,35 @@ open https://localhost:3100
62
62
 
63
63
  > **npm 12+** blocks install scripts by default, and gina's post-install bootstraps `~/.gina` and the framework dependencies. Install with `npm install -g gina@latest --allow-scripts=gina`, or allow it once for all global installs with `npm config set allow-scripts=gina --location=user`. (Not needed on npm ≤ 11.)
64
64
 
65
- ## What's in 0.6.18
65
+ ## What's in 0.6.19
66
66
 
67
67
  > **Restart your bundles AND rebuild them.** This release changes the browser
68
- > bundle: `gina.min.js` differs from `0.6.17` (`gina.min.css` and
68
+ > bundle: `gina.min.js` differs from `0.6.18` (`gina.min.css` and
69
69
  > `gina.onload.min.js` are unchanged). A restart alone updates the server half
70
- > only — each bundle bakes its own copy of the client assets, so the validator
70
+ > only — each bundle bakes its own copy of the client assets, so the `merge()`
71
71
  > fix below would not reach a browser at all.
72
72
 
73
- > **No settings reset.** `0.6.18` is a patch — the `shortVersion` stays `0.6`, so
73
+ > **No settings reset.** `0.6.19` is a patch — the `shortVersion` stays `0.6`, so
74
74
  > your `~/.gina/0.6/settings.json` is untouched. (`0.6.0` was the reset.)
75
75
 
76
- **A form-validation lockout, and a per-request cost paid by every render.** The
77
- headline is a correctness fix with an availability consequence: a field validated
78
- by a `query` (live-check) rule got the wrong verdict whenever its value contained
79
- a `+` an email plus-address being the common case — and because a `query` rule
80
- also gates the submit trigger, an affected visitor could not submit the form at
81
- all. Alongside it, the dotted-path data setter behind every render no longer
82
- deep-merges its way through the render tree, which also ends a silent mutation of
83
- the per-process forms catalog. **One behaviour change needs your attention** if a
84
- bundle relied on live-check bodies being URL-decoded details in the
85
- [migration guide](https://gina.io/docs/migration).
86
-
87
- - **Fixed — a `query` rule no longer mis-validates a value containing `+` (#B425).** The live-check body is JSON, but the request was labelled `application/x-www-form-urlencoded`, so the server correctly url-decoded it before parsing and turned every `+` into a space. The mangled body was still valid JSON, so nothing errored the endpoint answered `200` with a verdict computed from a corrupted value. Because a `query` rule also gates the submit trigger, the common case of an email plus-address such as `alias+tag@example.com` was a hard lockout on sign-in and password-recovery forms rather than a warning. The request now sends `application/json` when the body is JSON, matching what the form-submit and file-removal paths already did. An explicit per-rule `headers` override still wins, so a rule that already declares its own `Content-Type` is unchanged. **Action required only if you relied on the decode:** live-check bodies are no longer URL-decoded at all, so `%XX` sequences reach your action verbatim, and field values are sent raw.
88
- - **Fixedthe render data setter no longer walks and rewrites the shared forms catalog on every request (#P39).** The dotted-path setter behind every render (`page.view.*`, `page.environment.*`, `page.forms`, …) used to build the path as a JSON string, parse it, and deep-merge the result into the render data and that merge recursed into every object value it grafted, re-merging each array inside it with itself and writing the copies back into the caller's object. For a bundle with a real forms catalog that was roughly 0.4 to 1.5 ms of CPU per request *and* a silent mutation of the per-process catalog, whose arrays were swapped for equal copies on every render. A first write is now stored by reference without being walked, missing intermediates are created directly, and only a genuine collision goes through the merge so the value semantics are unchanged (first write wins; an object written onto an object leaf still deep-fills), the catalog is never touched, and the 59 primitive writes of a render cost about a fifth of what they did (66.6 14.8 µs). One deliberate difference: writing an array onto an existing array leaf now merges the two once instead of twice, where the old path produced duplicate elements; no framework route writes an array-bearing path twice.
76
+ **Two security fixes, and a family of connector callback defects closed.** Log
77
+ redaction is now built in and on by default, so a credential carried in a request
78
+ URL no longer reaches stdout in plaintext; and concurrent calls to the same
79
+ Couchbase entity method no longer cross-deliver each other's results. Around
80
+ them, every connector's callback delivery was audited: a callback that throws is
81
+ no longer invoked a second time, a failed Couchbase query no longer settles its
82
+ caller twice, a logged `Error` keeps its message and stack, and `merge()` no
83
+ longer rewrites the object it was given. **Two changes may require action**
84
+ log redaction for every project, the Couchbase change only if you use that
85
+ connector — details in the [migration guide](https://gina.io/docs/migration).
86
+
87
+ - **Securitycredentials in a request URL no longer reach the logs (#B433).** The HTTP access line and 45 sibling sites across both engines, every render delegate and the CSRF filter logged the URL as received, so a password-reset token, a signed download link or a one-time invite was written to stdout verbatim with no seam to redact it. Every log message is now redacted before it is rendered and dispatched, at the logger's single pre-render point, so stdout, `gina tail`, the file transport and the Inspector all receive the same masked line. Configured per bundle in `settings.json > log.redact` and **on by default**: a built-in set masks JSON Web Tokens, URL userinfo passwords, `Bearer`/`Basic` credentials, named credential query keys (`token`, `access_token`, `api_key`, `secret`, `password`, `signature`, `otp`, …, keeping the key and masking the value) and api-key style headers; every value the secrets resolver substituted for a `${secret:KEY}` placeholder is masked verbatim; and `patterns` takes your own rules. A bare long-hex path segment is deliberately not a default — add `(?<![0-9a-f])[0-9a-f]{64}(?![0-9a-f])` yourself when your credentials take that shape. **Behaviour change:** masked values now appear in logs where the raw value used to; set `log.redact.enabled` to `false` to opt out. Also new: `console.setRedaction(block, options)` and `lib.secrets.getResolvedValues(conf)`.
88
+ - **Securityconcurrent Couchbase entity reads no longer cross-deliver results (#B429).** The completion trigger carried no call identity and was emitted on a process-wide singleton, so the first query to finish woke every in-flight caller of that method with its own payload: two concurrent reads with different arguments could each receive the other's rows, a third caller could receive an error belonging to a different call, and a single response could blend rows from two callers a confidentiality and authorization concern where the method reads a user-scoped record, not only a correctness one. Every call now settles from its own identity. **Action required only if you use the Couchbase connector** see the migration guide.
89
+ - **Fixed — a Couchbase callback that throws is no longer invoked twice (#B430).** The delivery path wrapped the callback in a `try` whose `catch` called the same callback again with identical arguments. The throw is now reported with the query trigger for context and the callback is never re-entered.
90
+ - **Fixed — a failed Couchbase query no longer settles its caller twice (#B431).** Each dispatch chained `.catch(onError).then(onResult)` sequentially, so every error was followed by a bogus empty success — the canonical `if (err) { return next(err); } render(data);` shape ran both branches. Failed `bulkInsert` calls also logged a spurious `TypeError`; that is gone.
91
+ - **Fixed — an entity query callback is no longer invoked twice when the callback itself throws (#B432).** The sqlite, mongodb and scylladb connectors delivered results inside a `try` or a `.then()` whose error path called the same callback a second time with the caller's own exception dressed up as a database failure. A throwing callback is now logged once, as `[ <label> ] callback exception:`, and never re-entered.
92
+ - **Fixed — a logged `Error` object keeps its message, stack, own properties and `cause` chain (#B434).** Both log writers walked enumerable properties only, so `console.error(err)` rendered `{}` (or just `{"code": …}`). Errors now render the way Node's own console does — directly, among other arguments, nested inside a logged object, and on `console.log` alike — and the rendered message still goes through redaction. Passing `err.stack` as a string keeps working unchanged.
93
+ - **Fixed — `merge()` no longer rewrites the object it was given (#B428).** A source subtree merged into an existing target level that lacked its key was referenced and then walked again as if merged into itself: every array inside the caller's object was replaced by a copy at every depth, and an array of primitives silently lost its duplicates. A subtree that is the same object on both sides is now skipped, so a grafted source keeps its arrays and duplicates and the result references it. Merging two different values is unchanged. `lib/merge` is part of the browser bundle — hence the rebuild.
89
94
 
90
95
  ## Documentation
91
96
 
package/ROADMAP.md CHANGED
@@ -70,6 +70,7 @@ This roadmap covers planned features, architectural improvements, new connectors
70
70
  | **Q4 2026** | `0.6.16` ✅ | **Security**: concurrent uploads of the same filename no longer corrupt one another — the multipart parser wrote every incoming file to `<upload dir>/<the filename the client sent>` with nothing in the path distinguishing one part or one request from another, so two uploads sharing a filename opened two write streams on a single path and interleaved their bytes into one hybrid matching neither upload, while the framework reported success to both callers; measured on a live bundle before the fix, twelve concurrent uploads of one filename left ONE corrupted file where twelve intact ones were sent, and a single request carrying two same-named parts produced one file mixing both. The parse runs before routing and before any middleware, so reaching it needed neither authentication nor a valid route — a POST to an unknown url answers 404 to the client and still writes the file to disk — and no application configuration could avoid it; uploads now stage under a server-generated random name, 32 hex characters plus a `.part` suffix, as multer and formidable have always done, which also keeps client-controlled bytes off the filesystem and cannot overflow the operating system filename limit (ACTION REQUIRED only where your own code derives a display name or a public URL from the basename of `req.files[].path`: read `req.files[].originalFilename` instead, which is unchanged and is still the name `self.store()` publishes the file under). **Fixed**: the documented fluent `store(target).onComplete(cb)` form works again — `store()` was accidentally declared `async`, so the deliberate `{ onComplete }` facade came back wrapped in a Promise carrying no `onComplete`, leaving the upload guide's first worked example dead code on every stable from `0.6.0` through `0.6.15`; the body contains no `await` and nothing anywhere awaits the call, so dropping the keyword changed no behaviour, the facade returns synchronously as documented, the three-argument callback form is byte-unchanged, and the TypeScript declaration now describes the fluent return shape instead of `Promise<void>`. The page whisper no longer exports the forms mocks group — the RFC5987-encoded `page.environment.forms` export shipped the entire bundle forms catalog into every page in every environment, mocks included, while the routing exports one line above it were deliberately stubbed to `{}` for page weight; mocks are now excluded in every environment rather than outside development only, deliberately, since an env-divergent `gina.forms` shape is the works-in-dev-fails-in-prod class, and rules, custom validators and every server-side surface keep the complete catalog (ACTION REQUIRED only for client code that read `gina.forms.mocks`, which the framework's own client bundle never consumed). And the link API names its error when the anchor has left the DOM: there is no deregistration path, so a registration outlives its element and a page that re-renders its anchors after binding dereferenced the null lookup and threw a bare TypeError — it now throws a named error identifying the link id, the url and the cause, detected beside the unregistered-url guard before the supersede step so it no longer aborts a request already in flight nor invalidates that request's response handling. Pickup: restart **and** rebuild your bundles (the browser bundle changed — `gina.min.js` differs from `0.6.15`; `gina.min.css` and `gina.onload.min.js` are unchanged). |
71
71
  | **Q4 2026** | `0.6.17` ✅ | **Fixed**: a route whose URL structurally matches but whose `requirements` reject the request no longer drops the connection once the route cache is warm — the cache is keyed on method and pathname with the query string stripped before dispatch, so every query variant of one pathname shares a single entry, and the warm path re-evaluated the requirements on each hit and then discarded the verdict, force-matching a request that had just been rejected and dispatching it with no routing description, which closed the connection with no HTTP response at all — no status and no body; the warm path now honours the verdict, treating a rejecting or throwing evaluation as a cache miss that falls through to the routing scan and answers correctly (404 when nothing matches, the sibling rule when one does, or a 500 naming the rule when a `validator::` requirement throws, which was previously also a dropped connection), while the cache entry is kept so the variants the requirements accept stay warm. **Fixed**: the `toFloat`, `set` and `format` validator rules are context-safe — all three are documented rules that threw on every server-side call, with `toFloat` opening by reading the live DOM element unguarded so server-side rule sets could not coerce a float at all (it now reads the live value only when one is reachable and otherwise uses the submitted value, which on the server is the raw value, and a missing comma in the same statement that leaked `isFloatingWithCommas` as an implicit global into every page is fixed with it), `set` now assigning the field value in both contexts while reflecting it onto the DOM element only in the browser where an element exists, and `format` — which already worked in both contexts when chained after `isDate`, as its documentation shows — now reporting a non-`Date` value as a named rule-authoring error pointing at the missing `isDate` instead of the opaque `val.format is not a function`. **Fixed**: a bundle declaring a redirect route no longer floods its log with `source[host] is undefined` warnings — redirect rules are deliberately excluded from the per-rule host and hostname defaulting so those keys are absent on them, but the per-request routing copy assigned them unconditionally, creating properties holding `undefined` on a clone kept for the lifetime of the process, so every later no-arg `getConfig()` emitted one `host` and one `hostname` warning per redirect rule indefinitely, measured by a consumer at roughly three quarters of that log line's total volume and drowning the genuine warnings it exists to surface; the copy is now existence-guarded, so an absent key stays absent and rules that do carry a host are copied exactly as before, which removes log noise rather than a functional defect, and only template and view routes reach it so API-only bundles were never affected. Pickup: restart **and** rebuild your bundles (the browser bundle changed — `gina.min.js` differs from `0.6.16`; `gina.min.css` and `gina.onload.min.js` are unchanged). |
72
72
  | **Q4 2026** | `0.6.18` ✅ | **Fixed**: a field validated by a `query` (live-check) rule no longer gets the wrong verdict when its value contains a `+` — the live-check body is JSON but the request was labelled `application/x-www-form-urlencoded`, so the server url-decoded it before parsing and turned every `+` into a space; the mangled body was still valid JSON, so the endpoint answered 200 with a verdict computed from a corrupted value, and because a `query` rule also gates the submit trigger the common case of an email plus-address was a hard lockout on sign-in and password-recovery forms rather than a warning. Live-check bodies are no longer URL-decoded at all, so `%XX` sequences reach your action verbatim. **Fixed**: the dotted-path render data setter no longer walks and rewrites the shared forms catalog on every request — a first write is now stored by reference instead of being deep-merged through the render tree, ending both a per-request CPU cost and a silent mutation of the per-process catalog. Restart **and** rebuild your bundles (the browser bundle changed — `gina.min.js` differs from `0.6.17`; `gina.min.css` and `gina.onload.min.js` are unchanged). |
73
+ | **Q4 2026** | `0.6.19` ✅ | **Security**: credentials carried in a request URL no longer reach the logs — every log message is redacted at the logger's single pre-render point before any sink renders it; configured per bundle in `settings.json > log.redact`, on by default with a built-in credential set, your own `patterns`, and every `${secret:KEY}` value masked verbatim. **Security**: concurrent calls to the same Couchbase entity method no longer cross-deliver results — the completion trigger carried no call identity, so the first query to finish woke every in-flight caller with its own payload. **Fixed**: a connector callback that throws is no longer invoked a second time, and a failed Couchbase query no longer settles its caller twice. **Fixed**: a logged `Error` keeps its message, stack, own properties and `cause` chain. **Fixed**: `merge()` no longer rewrites the object it was given. Restart **and** rebuild your bundles (the browser bundle changed — `gina.min.js` differs from `0.6.18`; `gina.min.css` and `gina.onload.min.js` are unchanged). |
73
74
  | **Q1 2027** | `0.6.x` | HTTP/2 priorities (blocked on Node scheduler hooks) · Beemaster admin + visual translation editor |
74
75
  | **2027** | `0.7.0` | Performance — remaining measure-gated candidates: multipart & WebSocket fast paths, render/log cleanups, SIMD scanner (the render-path deep-clone & id-mint reduction shipped early in `0.6.2` with a measured 4.4× render-throughput gain; the profiling baseline itself also shipped in `0.6.2`) |
75
76
  | **2027** | `0.8.0` | Financial-messaging foundations — XML request/response handling · pluggable message-schema validation · IBAN/BIC validation rules · money & ISO 4217 minor-unit utilities · idempotency keys · sequence primitive · OAuth2 client-credentials egress |
@@ -0,0 +1 @@
1
+ 0.6.19
@@ -2189,7 +2189,8 @@ function Merge() {
2189
2189
  * @param {object|Array} target - Target (base) object or array
2190
2190
  * @param {object|Array} source - Source object or array to merge into target
2191
2191
  * @param {boolean} [override=false] - Pass `true` to let `source` overwrite existing target keys; by default they are preserved
2192
- * @returns {object|Array} Merged result (mutates and returns `target`)
2192
+ * @returns {object|Array} Merged result (mutates and returns `target`; never
2193
+ * rewrites `source` — a subtree the target lacks is referenced, not walked, #B428)
2193
2194
  *
2194
2195
  * @example
2195
2196
  * merge({ a: 1 }, { b: 2 }) // { a: 1, b: 2 }
@@ -2287,6 +2288,17 @@ function Merge() {
2287
2288
  if (target === copy) {
2288
2289
  continue
2289
2290
  }
2291
+ // #B428 — a value merged into ITSELF is identity: skip it.
2292
+ // A key the target lacks is grafted by reference below
2293
+ // (`clone[ prop ] = copy[ prop ]`), then the recursion
2294
+ // `browse(clone, copy)` met that graft with src === copy and
2295
+ // merged every array inside it with itself, writing the
2296
+ // copies back INTO the caller's object (identity churn +
2297
+ // silent primitive dedupe). Object/array references only —
2298
+ // equal primitives keep the original path.
2299
+ if (copy !== null && typeof(copy) == 'object' && src === copy) {
2300
+ continue
2301
+ }
2290
2302
 
2291
2303
  // Recurse if we're merging plain objects or arrays
2292
2304
  if (