gina 0.6.19 → 0.6.20

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 +12 -0
  2. package/README.md +18 -22
  3. package/ROADMAP.md +1 -0
  4. package/framework/v0.6.20/VERSION +1 -0
  5. package/framework/{v0.6.19 → v0.6.20}/core/asset/plugin/dist/vendor/gina/js/gina.js +49 -6
  6. package/framework/{v0.6.19 → v0.6.20}/core/asset/plugin/dist/vendor/gina/js/gina.min.js +270 -270
  7. package/framework/v0.6.20/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  8. package/framework/v0.6.20/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  9. package/framework/{v0.6.19 → v0.6.20}/core/model/entity.js +139 -12
  10. package/framework/{v0.6.19 → v0.6.20}/lib/merge/src/main.js +49 -6
  11. package/framework/{v0.6.19 → v0.6.20}/package.json +1 -1
  12. package/gna.js +4 -4
  13. package/llms.txt +2 -2
  14. package/package.json +3 -3
  15. package/schema/settings.json +16 -0
  16. package/framework/v0.6.19/VERSION +0 -1
  17. package/framework/v0.6.19/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  18. package/framework/v0.6.19/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  19. /package/framework/{v0.6.19 → v0.6.20}/AUTHORS +0 -0
  20. /package/framework/{v0.6.19 → v0.6.20}/LICENSE +0 -0
  21. /package/framework/{v0.6.19 → v0.6.20}/core/asset/html/nolayout.html +0 -0
  22. /package/framework/{v0.6.19 → v0.6.20}/core/asset/html/static.html +0 -0
  23. /package/framework/{v0.6.19 → v0.6.20}/core/asset/img/android-chrome-192x192.png +0 -0
  24. /package/framework/{v0.6.19 → v0.6.20}/core/asset/img/android-chrome-512x512.png +0 -0
  25. /package/framework/{v0.6.19 → v0.6.20}/core/asset/img/apple-touch-icon.png +0 -0
  26. /package/framework/{v0.6.19 → v0.6.20}/core/asset/img/favicon-16x16.png +0 -0
  27. /package/framework/{v0.6.19 → v0.6.20}/core/asset/img/favicon-32x32.png +0 -0
  28. /package/framework/{v0.6.19 → v0.6.20}/core/asset/img/favicon.ico +0 -0
  29. /package/framework/{v0.6.19 → v0.6.20}/core/asset/plugin/README.md +0 -0
  30. /package/framework/{v0.6.19 → v0.6.20}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  31. /package/framework/{v0.6.19 → v0.6.20}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  32. /package/framework/{v0.6.19 → v0.6.20}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  33. /package/framework/{v0.6.19 → v0.6.20}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  34. /package/framework/{v0.6.19 → v0.6.20}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  35. /package/framework/{v0.6.19 → v0.6.20}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  36. /package/framework/{v0.6.19 → v0.6.20}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
  37. /package/framework/{v0.6.19 → v0.6.20}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  38. /package/framework/{v0.6.19 → v0.6.20}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  39. /package/framework/{v0.6.19 → v0.6.20}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  40. /package/framework/{v0.6.19 → v0.6.20}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
  41. /package/framework/{v0.6.19 → v0.6.20}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
  42. /package/framework/{v0.6.19 → v0.6.20}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
  43. /package/framework/{v0.6.19 → v0.6.20}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  44. /package/framework/{v0.6.19 → v0.6.20}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
  45. /package/framework/{v0.6.19 → v0.6.20}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  46. /package/framework/{v0.6.19 → v0.6.20}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  47. /package/framework/{v0.6.19 → v0.6.20}/core/config.js +0 -0
  48. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/ai/index.js +0 -0
  49. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/ai/lib/connector.js +0 -0
  50. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/couchbase/index.js +0 -0
  51. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/couchbase/lib/connector.js +0 -0
  52. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  53. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  54. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/couchbase/lib/n1ql.js +0 -0
  55. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/couchbase/lib/session-store.js +0 -0
  56. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  57. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  58. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/couchbase/lib/storage-store.js +0 -0
  59. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/duckdb/index.js +0 -0
  60. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/duckdb/lib/connector.js +0 -0
  61. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/mongodb/index.js +0 -0
  62. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/mongodb/lib/connector.js +0 -0
  63. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/mongodb/lib/job-store.js +0 -0
  64. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
  65. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/mongodb/lib/session-store.js +0 -0
  66. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/mysql/index.js +0 -0
  67. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/mysql/lib/connector.js +0 -0
  68. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/param-redact.js +0 -0
  69. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/postgresql/index.js +0 -0
  70. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/postgresql/lib/connector.js +0 -0
  71. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/redis/index.js +0 -0
  72. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/redis/lib/connector.js +0 -0
  73. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/redis/lib/job-store.js +0 -0
  74. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/redis/lib/kv-store.js +0 -0
  75. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/redis/lib/render-cache-store.js +0 -0
  76. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/redis/lib/session-store.js +0 -0
  77. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/scylladb/index.js +0 -0
  78. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/scylladb/lib/connector.js +0 -0
  79. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/scylladb/lib/session-store.js +0 -0
  80. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/settle-once.js +0 -0
  81. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/sql-parser.js +0 -0
  82. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/sqlite/index.js +0 -0
  83. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/sqlite/lib/connector.js +0 -0
  84. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/sqlite/lib/job-store.js +0 -0
  85. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/sqlite/lib/kv-store.js +0 -0
  86. /package/framework/{v0.6.19 → v0.6.20}/core/connectors/sqlite/lib/session-store.js +0 -0
  87. /package/framework/{v0.6.19 → v0.6.20}/core/content.encoding +0 -0
  88. /package/framework/{v0.6.19 → v0.6.20}/core/controller/controller.framework.js +0 -0
  89. /package/framework/{v0.6.19 → v0.6.20}/core/controller/controller.js +0 -0
  90. /package/framework/{v0.6.19 → v0.6.20}/core/controller/controller.render-json.js +0 -0
  91. /package/framework/{v0.6.19 → v0.6.20}/core/controller/controller.render-nunjucks-async.js +0 -0
  92. /package/framework/{v0.6.19 → v0.6.20}/core/controller/controller.render-nunjucks.js +0 -0
  93. /package/framework/{v0.6.19 → v0.6.20}/core/controller/controller.render-stream.js +0 -0
  94. /package/framework/{v0.6.19 → v0.6.20}/core/controller/controller.render-swig-async.js +0 -0
  95. /package/framework/{v0.6.19 → v0.6.20}/core/controller/controller.render-swig.js +0 -0
  96. /package/framework/{v0.6.19 → v0.6.20}/core/controller/controller.render-v1.js +0 -0
  97. /package/framework/{v0.6.19 → v0.6.20}/core/controller/index.js +0 -0
  98. /package/framework/{v0.6.19 → v0.6.20}/core/controller/inspector-window-emit.js +0 -0
  99. /package/framework/{v0.6.19 → v0.6.20}/core/controller/release-banner.js +0 -0
  100. /package/framework/{v0.6.19 → v0.6.20}/core/dev/index.js +0 -0
  101. /package/framework/{v0.6.19 → v0.6.20}/core/dev/lib/class.js +0 -0
  102. /package/framework/{v0.6.19 → v0.6.20}/core/dev/lib/factory.js +0 -0
  103. /package/framework/{v0.6.19 → v0.6.20}/core/dev/lib/tools.js +0 -0
  104. /package/framework/{v0.6.19 → v0.6.20}/core/gna.js +0 -0
  105. /package/framework/{v0.6.19 → v0.6.20}/core/locales/README.md +0 -0
  106. /package/framework/{v0.6.19 → v0.6.20}/core/locales/currency.json +0 -0
  107. /package/framework/{v0.6.19 → v0.6.20}/core/locales/dist/language/en.json +0 -0
  108. /package/framework/{v0.6.19 → v0.6.20}/core/locales/dist/language/fr.json +0 -0
  109. /package/framework/{v0.6.19 → v0.6.20}/core/locales/dist/region/en.json +0 -0
  110. /package/framework/{v0.6.19 → v0.6.20}/core/locales/dist/region/fr.json +0 -0
  111. /package/framework/{v0.6.19 → v0.6.20}/core/locales/index.js +0 -0
  112. /package/framework/{v0.6.19 → v0.6.20}/core/mime.types +0 -0
  113. /package/framework/{v0.6.19 → v0.6.20}/core/model/index.js +0 -0
  114. /package/framework/{v0.6.19 → v0.6.20}/core/model/template/entityFactory.js +0 -0
  115. /package/framework/{v0.6.19 → v0.6.20}/core/model/template/index.js +0 -0
  116. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/README.md +0 -0
  117. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/index.js +0 -0
  118. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/csrf/README.md +0 -0
  119. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/csrf/package.json +0 -0
  120. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/csrf/src/main.js +0 -0
  121. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/README.md +0 -0
  122. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/coep/README.md +0 -0
  123. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/coep/package.json +0 -0
  124. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
  125. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/coop/README.md +0 -0
  126. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/coop/package.json +0 -0
  127. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
  128. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/corp/README.md +0 -0
  129. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/corp/package.json +0 -0
  130. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
  131. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/csp/README.md +0 -0
  132. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/csp/package.json +0 -0
  133. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
  134. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
  135. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
  136. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
  137. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/hsts/README.md +0 -0
  138. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/hsts/package.json +0 -0
  139. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
  140. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
  141. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
  142. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
  143. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/package.json +0 -0
  144. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
  145. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
  146. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
  147. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/src/main.js +0 -0
  148. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
  149. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
  150. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
  151. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
  152. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
  153. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
  154. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
  155. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
  156. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
  157. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
  158. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
  159. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
  160. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
  161. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
  162. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
  163. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
  164. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
  165. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
  166. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/session/README.md +0 -0
  167. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/session/package.json +0 -0
  168. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/session/src/main.js +0 -0
  169. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/storage/README.md +0 -0
  170. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/storage/build.json +0 -0
  171. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/storage/package.json +0 -0
  172. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/storage/src/main.js +0 -0
  173. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/validator/README.md +0 -0
  174. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/validator/build.json +0 -0
  175. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/validator/package.json +0 -0
  176. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/validator/src/form-validator.js +0 -0
  177. /package/framework/{v0.6.19 → v0.6.20}/core/plugins/lib/validator/src/main.js +0 -0
  178. /package/framework/{v0.6.19 → v0.6.20}/core/router.js +0 -0
  179. /package/framework/{v0.6.19 → v0.6.20}/core/server.express.js +0 -0
  180. /package/framework/{v0.6.19 → v0.6.20}/core/server.isaac.js +0 -0
  181. /package/framework/{v0.6.19 → v0.6.20}/core/server.js +0 -0
  182. /package/framework/{v0.6.19 → v0.6.20}/core/status.codes +0 -0
  183. /package/framework/{v0.6.19 → v0.6.20}/core/template/_gitignore +0 -0
  184. /package/framework/{v0.6.19 → v0.6.20}/core/template/boilerplate/bundle/config/app.json +0 -0
  185. /package/framework/{v0.6.19 → v0.6.20}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  186. /package/framework/{v0.6.19 → v0.6.20}/core/template/boilerplate/bundle/config/routing.json +0 -0
  187. /package/framework/{v0.6.19 → v0.6.20}/core/template/boilerplate/bundle/config/settings.json +0 -0
  188. /package/framework/{v0.6.19 → v0.6.20}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  189. /package/framework/{v0.6.19 → v0.6.20}/core/template/boilerplate/bundle/config/templates.json +0 -0
  190. /package/framework/{v0.6.19 → v0.6.20}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  191. /package/framework/{v0.6.19 → v0.6.20}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  192. /package/framework/{v0.6.19 → v0.6.20}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  193. /package/framework/{v0.6.19 → v0.6.20}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  194. /package/framework/{v0.6.19 → v0.6.20}/core/template/boilerplate/bundle/index.js +0 -0
  195. /package/framework/{v0.6.19 → v0.6.20}/core/template/boilerplate/bundle/locales/en.json +0 -0
  196. /package/framework/{v0.6.19 → v0.6.20}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  197. /package/framework/{v0.6.19 → v0.6.20}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  198. /package/framework/{v0.6.19 → v0.6.20}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  199. /package/framework/{v0.6.19 → v0.6.20}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  200. /package/framework/{v0.6.19 → v0.6.20}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  201. /package/framework/{v0.6.19 → v0.6.20}/core/template/boilerplate/bundle_public/js/components/x-checklist.js +0 -0
  202. /package/framework/{v0.6.19 → v0.6.20}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  203. /package/framework/{v0.6.19 → v0.6.20}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
  204. /package/framework/{v0.6.19 → v0.6.20}/core/template/boilerplate/bundle_public/readme.md +0 -0
  205. /package/framework/{v0.6.19 → v0.6.20}/core/template/boilerplate/bundle_public/sw.js +0 -0
  206. /package/framework/{v0.6.19 → v0.6.20}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  207. /package/framework/{v0.6.19 → v0.6.20}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  208. /package/framework/{v0.6.19 → v0.6.20}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  209. /package/framework/{v0.6.19 → v0.6.20}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  210. /package/framework/{v0.6.19 → v0.6.20}/core/template/boilerplate/bundle_templates/html/includes/x-checklist.html +0 -0
  211. /package/framework/{v0.6.19 → v0.6.20}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  212. /package/framework/{v0.6.19 → v0.6.20}/core/template/command/gina.bat.tpl +0 -0
  213. /package/framework/{v0.6.19 → v0.6.20}/core/template/command/gina.tpl +0 -0
  214. /package/framework/{v0.6.19 → v0.6.20}/core/template/conf/env.json +0 -0
  215. /package/framework/{v0.6.19 → v0.6.20}/core/template/conf/manifest.json +0 -0
  216. /package/framework/{v0.6.19 → v0.6.20}/core/template/conf/package.json +0 -0
  217. /package/framework/{v0.6.19 → v0.6.20}/core/template/conf/settings.json +0 -0
  218. /package/framework/{v0.6.19 → v0.6.20}/core/template/conf/statics.json +0 -0
  219. /package/framework/{v0.6.19 → v0.6.20}/core/template/conf/templates.json +0 -0
  220. /package/framework/{v0.6.19 → v0.6.20}/core/template/error/client/json/401.json +0 -0
  221. /package/framework/{v0.6.19 → v0.6.20}/core/template/error/client/json/403.json +0 -0
  222. /package/framework/{v0.6.19 → v0.6.20}/core/template/error/client/json/404.json +0 -0
  223. /package/framework/{v0.6.19 → v0.6.20}/core/template/error/server/html/50x.html +0 -0
  224. /package/framework/{v0.6.19 → v0.6.20}/core/template/error/server/json/500.json +0 -0
  225. /package/framework/{v0.6.19 → v0.6.20}/core/template/error/server/json/503.json +0 -0
  226. /package/framework/{v0.6.19 → v0.6.20}/core/template/extensions/logger/config.json +0 -0
  227. /package/framework/{v0.6.19 → v0.6.20}/helpers/console.js +0 -0
  228. /package/framework/{v0.6.19 → v0.6.20}/helpers/context.js +0 -0
  229. /package/framework/{v0.6.19 → v0.6.20}/helpers/data/LICENSE +0 -0
  230. /package/framework/{v0.6.19 → v0.6.20}/helpers/data/README.md +0 -0
  231. /package/framework/{v0.6.19 → v0.6.20}/helpers/data/package.json +0 -0
  232. /package/framework/{v0.6.19 → v0.6.20}/helpers/data/src/main.js +0 -0
  233. /package/framework/{v0.6.19 → v0.6.20}/helpers/dateFormat.js +0 -0
  234. /package/framework/{v0.6.19 → v0.6.20}/helpers/index.js +0 -0
  235. /package/framework/{v0.6.19 → v0.6.20}/helpers/json/LICENSE +0 -0
  236. /package/framework/{v0.6.19 → v0.6.20}/helpers/json/README.md +0 -0
  237. /package/framework/{v0.6.19 → v0.6.20}/helpers/json/package.json +0 -0
  238. /package/framework/{v0.6.19 → v0.6.20}/helpers/json/src/main.js +0 -0
  239. /package/framework/{v0.6.19 → v0.6.20}/helpers/path.js +0 -0
  240. /package/framework/{v0.6.19 → v0.6.20}/helpers/plugins/README.md +0 -0
  241. /package/framework/{v0.6.19 → v0.6.20}/helpers/plugins/package.json +0 -0
  242. /package/framework/{v0.6.19 → v0.6.20}/helpers/plugins/src/api-error.js +0 -0
  243. /package/framework/{v0.6.19 → v0.6.20}/helpers/plugins/src/main.js +0 -0
  244. /package/framework/{v0.6.19 → v0.6.20}/helpers/prototypes.js +0 -0
  245. /package/framework/{v0.6.19 → v0.6.20}/helpers/task.js +0 -0
  246. /package/framework/{v0.6.19 → v0.6.20}/helpers/text.js +0 -0
  247. /package/framework/{v0.6.19 → v0.6.20}/lib/admin/package.json +0 -0
  248. /package/framework/{v0.6.19 → v0.6.20}/lib/admin/src/main.js +0 -0
  249. /package/framework/{v0.6.19 → v0.6.20}/lib/archiver/README.md +0 -0
  250. /package/framework/{v0.6.19 → v0.6.20}/lib/archiver/build.json +0 -0
  251. /package/framework/{v0.6.19 → v0.6.20}/lib/archiver/package.json +0 -0
  252. /package/framework/{v0.6.19 → v0.6.20}/lib/archiver/src/dep/jszip.min.js +0 -0
  253. /package/framework/{v0.6.19 → v0.6.20}/lib/archiver/src/main.js +0 -0
  254. /package/framework/{v0.6.19 → v0.6.20}/lib/async/package.json +0 -0
  255. /package/framework/{v0.6.19 → v0.6.20}/lib/async/src/main.js +0 -0
  256. /package/framework/{v0.6.19 → v0.6.20}/lib/audit/package.json +0 -0
  257. /package/framework/{v0.6.19 → v0.6.20}/lib/audit/src/main.js +0 -0
  258. /package/framework/{v0.6.19 → v0.6.20}/lib/audit-store.js +0 -0
  259. /package/framework/{v0.6.19 → v0.6.20}/lib/authn/package.json +0 -0
  260. /package/framework/{v0.6.19 → v0.6.20}/lib/authn/src/lockout.js +0 -0
  261. /package/framework/{v0.6.19 → v0.6.20}/lib/authn/src/main.js +0 -0
  262. /package/framework/{v0.6.19 → v0.6.20}/lib/authn/src/totp.js +0 -0
  263. /package/framework/{v0.6.19 → v0.6.20}/lib/authz-gate/package.json +0 -0
  264. /package/framework/{v0.6.19 → v0.6.20}/lib/authz-gate/src/main.js +0 -0
  265. /package/framework/{v0.6.19 → v0.6.20}/lib/cache/README.md +0 -0
  266. /package/framework/{v0.6.19 → v0.6.20}/lib/cache/build.json +0 -0
  267. /package/framework/{v0.6.19 → v0.6.20}/lib/cache/package.json +0 -0
  268. /package/framework/{v0.6.19 → v0.6.20}/lib/cache/src/main.js +0 -0
  269. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/aliases.json +0 -0
  270. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/audit/arguments.json +0 -0
  271. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/audit/help.txt +0 -0
  272. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/audit/verify.js +0 -0
  273. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/bundle/add.js +0 -0
  274. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/bundle/arguments.json +0 -0
  275. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/bundle/build.js +0 -0
  276. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/bundle/copy.js +0 -0
  277. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/bundle/cp.js +0 -0
  278. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/bundle/help.js +0 -0
  279. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/bundle/help.txt +0 -0
  280. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
  281. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/bundle/list.js +0 -0
  282. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/bundle/man.js +0 -0
  283. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/bundle/mcp-start.js +0 -0
  284. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/bundle/mcp.js +0 -0
  285. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/bundle/oas.js +0 -0
  286. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/bundle/openapi.js +0 -0
  287. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/bundle/remove.js +0 -0
  288. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/bundle/rename.js +0 -0
  289. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/bundle/restart.js +0 -0
  290. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/bundle/rm.js +0 -0
  291. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/bundle/start.js +0 -0
  292. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/bundle/status.js +0 -0
  293. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/bundle/stop.js +0 -0
  294. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/bundle/types.js +0 -0
  295. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/cache/arguments.json +0 -0
  296. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/cache/clear.js +0 -0
  297. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/cache/help.txt +0 -0
  298. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/cache/stats.js +0 -0
  299. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/connector/add.js +0 -0
  300. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/connector/arguments.json +0 -0
  301. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/connector/help.js +0 -0
  302. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/connector/help.txt +0 -0
  303. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/connector/infer.js +0 -0
  304. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/connector/list.js +0 -0
  305. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/connector/migrate.js +0 -0
  306. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/connector/models.js +0 -0
  307. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/connector/remove.js +0 -0
  308. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/connector/rm.js +0 -0
  309. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/connector/test.js +0 -0
  310. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/container/arguments.json +0 -0
  311. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/container/help.js +0 -0
  312. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/container/help.txt +0 -0
  313. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/container/man.js +0 -0
  314. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/container/ps.js +0 -0
  315. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/container/stop.js +0 -0
  316. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/controller/add.js +0 -0
  317. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/controller/arguments.json +0 -0
  318. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/controller/help.txt +0 -0
  319. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/controller/inc/args.js +0 -0
  320. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/controller/inc/namespace.js +0 -0
  321. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/controller/inc/reference-rewrite.js +0 -0
  322. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/controller/inc/reference-scan.js +0 -0
  323. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/controller/inc/scaffold.js +0 -0
  324. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/controller/remove.js +0 -0
  325. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/controller/rename.js +0 -0
  326. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/controller/rm.js +0 -0
  327. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/env/add.js +0 -0
  328. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/env/get.js +0 -0
  329. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/env/help.js +0 -0
  330. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/env/help.txt +0 -0
  331. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/env/link-dev.js +0 -0
  332. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/env/list.js +0 -0
  333. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/env/remove.js +0 -0
  334. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/env/rm.js +0 -0
  335. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/env/set.js +0 -0
  336. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/env/unset.js +0 -0
  337. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/env/use.js +0 -0
  338. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/framework/add.js +0 -0
  339. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/framework/arguments.json +0 -0
  340. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/framework/build.js +0 -0
  341. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/framework/dot.js +0 -0
  342. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/framework/get.js +0 -0
  343. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/framework/help.js +0 -0
  344. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/framework/help.txt +0 -0
  345. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/framework/init.js +0 -0
  346. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/framework/link-node-modules.js +0 -0
  347. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/framework/link.js +0 -0
  348. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/framework/list.js +0 -0
  349. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/framework/man.js +0 -0
  350. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/framework/msg.json +0 -0
  351. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/framework/open.js +0 -0
  352. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/framework/remove.js +0 -0
  353. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/framework/reset.js +0 -0
  354. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/framework/restart.js +0 -0
  355. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/framework/set.js +0 -0
  356. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/framework/start.js +0 -0
  357. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/framework/status.js +0 -0
  358. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/framework/stop.js +0 -0
  359. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/framework/tail.js +0 -0
  360. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/framework/update.js +0 -0
  361. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/framework/version.js +0 -0
  362. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/gina-dev.1.md +0 -0
  363. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/gina-framework.1.md +0 -0
  364. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/gina.1.md +0 -0
  365. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/helper.js +0 -0
  366. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/i18n/add.js +0 -0
  367. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/i18n/arguments.json +0 -0
  368. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/i18n/export.js +0 -0
  369. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/i18n/help.js +0 -0
  370. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/i18n/help.txt +0 -0
  371. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/i18n/import.js +0 -0
  372. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/i18n/scan.js +0 -0
  373. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/image/_host.js +0 -0
  374. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/image/arguments.json +0 -0
  375. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/image/build.js +0 -0
  376. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/image/help.js +0 -0
  377. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/image/help.txt +0 -0
  378. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/image/list.js +0 -0
  379. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/image/man.js +0 -0
  380. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/image/rm.js +0 -0
  381. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/image/run.js +0 -0
  382. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/index.js +0 -0
  383. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/inspector/help.js +0 -0
  384. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/inspector/help.txt +0 -0
  385. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/inspector/open.js +0 -0
  386. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/man-render.js +0 -0
  387. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/minion/arguments.json +0 -0
  388. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/minion/help.js +0 -0
  389. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/minion/help.txt +0 -0
  390. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/minion/kill.js +0 -0
  391. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/minion/list.js +0 -0
  392. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/msg.json +0 -0
  393. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/port/help.js +0 -0
  394. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/port/help.txt +0 -0
  395. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/port/inc/scan.js +0 -0
  396. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/port/list.js +0 -0
  397. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/port/reset.js +0 -0
  398. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/port/set.js +0 -0
  399. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/project/add.js +0 -0
  400. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/project/arguments.json +0 -0
  401. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/project/backup.js +0 -0
  402. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/project/build.js +0 -0
  403. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/project/help.js +0 -0
  404. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/project/help.txt +0 -0
  405. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/project/import.js +0 -0
  406. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/project/list.js +0 -0
  407. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/project/man.js +0 -0
  408. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/project/move.js +0 -0
  409. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/project/remove.js +0 -0
  410. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/project/rename.js +0 -0
  411. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/project/restart.js +0 -0
  412. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/project/restore.js +0 -0
  413. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/project/rm.js +0 -0
  414. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/project/start.js +0 -0
  415. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/project/status.js +0 -0
  416. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/project/stop.js +0 -0
  417. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/protocol/arguments.json +0 -0
  418. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/protocol/help.js +0 -0
  419. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/protocol/help.txt +0 -0
  420. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/protocol/list.js +0 -0
  421. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/protocol/remove.js +0 -0
  422. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/protocol/set.js +0 -0
  423. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/scope/add.js +0 -0
  424. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/scope/help.js +0 -0
  425. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/scope/help.txt +0 -0
  426. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/scope/link-local.js +0 -0
  427. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/scope/link-production.js +0 -0
  428. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/scope/list.js +0 -0
  429. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/scope/remove.js +0 -0
  430. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/scope/rm.js +0 -0
  431. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/scope/use.js +0 -0
  432. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/secrets/arguments.json +0 -0
  433. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/secrets/check.js +0 -0
  434. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/secrets/help.js +0 -0
  435. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/secrets/help.txt +0 -0
  436. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/secrets/scan.js +0 -0
  437. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/service/help.js +0 -0
  438. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/service/help.txt +0 -0
  439. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/service/list.js +0 -0
  440. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/service/man.js +0 -0
  441. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/service/start.js +0 -0
  442. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/storage/arguments.json +0 -0
  443. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/storage/gc.js +0 -0
  444. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/storage/help.txt +0 -0
  445. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/storage/stats.js +0 -0
  446. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/storage/verify.js +0 -0
  447. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd/view/add.js +0 -0
  448. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd-status-format/package.json +0 -0
  449. /package/framework/{v0.6.19 → v0.6.20}/lib/cmd-status-format/src/main.js +0 -0
  450. /package/framework/{v0.6.19 → v0.6.20}/lib/collection/README.md +0 -0
  451. /package/framework/{v0.6.19 → v0.6.20}/lib/collection/build.json +0 -0
  452. /package/framework/{v0.6.19 → v0.6.20}/lib/collection/package.json +0 -0
  453. /package/framework/{v0.6.19 → v0.6.20}/lib/collection/src/main.js +0 -0
  454. /package/framework/{v0.6.19 → v0.6.20}/lib/config.js +0 -0
  455. /package/framework/{v0.6.19 → v0.6.20}/lib/connector-config/package.json +0 -0
  456. /package/framework/{v0.6.19 → v0.6.20}/lib/connector-config/src/main.js +0 -0
  457. /package/framework/{v0.6.19 → v0.6.20}/lib/connector-error/package.json +0 -0
  458. /package/framework/{v0.6.19 → v0.6.20}/lib/connector-error/src/main.js +0 -0
  459. /package/framework/{v0.6.19 → v0.6.20}/lib/connector-registry/package.json +0 -0
  460. /package/framework/{v0.6.19 → v0.6.20}/lib/connector-registry/src/main.js +0 -0
  461. /package/framework/{v0.6.19 → v0.6.20}/lib/cron/README.md +0 -0
  462. /package/framework/{v0.6.19 → v0.6.20}/lib/cron/package.json +0 -0
  463. /package/framework/{v0.6.19 → v0.6.20}/lib/cron/src/main.js +0 -0
  464. /package/framework/{v0.6.19 → v0.6.20}/lib/domain/LICENSE +0 -0
  465. /package/framework/{v0.6.19 → v0.6.20}/lib/domain/README.md +0 -0
  466. /package/framework/{v0.6.19 → v0.6.20}/lib/domain/package.json +0 -0
  467. /package/framework/{v0.6.19 → v0.6.20}/lib/domain/src/main.js +0 -0
  468. /package/framework/{v0.6.19 → v0.6.20}/lib/dto/package.json +0 -0
  469. /package/framework/{v0.6.19 → v0.6.20}/lib/dto/src/main.js +0 -0
  470. /package/framework/{v0.6.19 → v0.6.20}/lib/dto-pipe/package.json +0 -0
  471. /package/framework/{v0.6.19 → v0.6.20}/lib/dto-pipe/src/main.js +0 -0
  472. /package/framework/{v0.6.19 → v0.6.20}/lib/dto-types/package.json +0 -0
  473. /package/framework/{v0.6.19 → v0.6.20}/lib/dto-types/src/main.js +0 -0
  474. /package/framework/{v0.6.19 → v0.6.20}/lib/generator/index.js +0 -0
  475. /package/framework/{v0.6.19 → v0.6.20}/lib/i18n/package.json +0 -0
  476. /package/framework/{v0.6.19 → v0.6.20}/lib/i18n/src/main.js +0 -0
  477. /package/framework/{v0.6.19 → v0.6.20}/lib/image-build/package.json +0 -0
  478. /package/framework/{v0.6.19 → v0.6.20}/lib/image-build/src/main.js +0 -0
  479. /package/framework/{v0.6.19 → v0.6.20}/lib/index.js +0 -0
  480. /package/framework/{v0.6.19 → v0.6.20}/lib/inherits/LICENSE +0 -0
  481. /package/framework/{v0.6.19 → v0.6.20}/lib/inherits/README.md +0 -0
  482. /package/framework/{v0.6.19 → v0.6.20}/lib/inherits/package.json +0 -0
  483. /package/framework/{v0.6.19 → v0.6.20}/lib/inherits/src/main.js +0 -0
  484. /package/framework/{v0.6.19 → v0.6.20}/lib/inspector-events/package.json +0 -0
  485. /package/framework/{v0.6.19 → v0.6.20}/lib/inspector-events/src/main.js +0 -0
  486. /package/framework/{v0.6.19 → v0.6.20}/lib/inspector-redact/package.json +0 -0
  487. /package/framework/{v0.6.19 → v0.6.20}/lib/inspector-redact/src/main.js +0 -0
  488. /package/framework/{v0.6.19 → v0.6.20}/lib/instrument/package.json +0 -0
  489. /package/framework/{v0.6.19 → v0.6.20}/lib/instrument/src/main.js +0 -0
  490. /package/framework/{v0.6.19 → v0.6.20}/lib/job/package.json +0 -0
  491. /package/framework/{v0.6.19 → v0.6.20}/lib/job/src/main.js +0 -0
  492. /package/framework/{v0.6.19 → v0.6.20}/lib/job-store.js +0 -0
  493. /package/framework/{v0.6.19 → v0.6.20}/lib/json-config-header/package.json +0 -0
  494. /package/framework/{v0.6.19 → v0.6.20}/lib/json-config-header/src/main.js +0 -0
  495. /package/framework/{v0.6.19 → v0.6.20}/lib/kv/package.json +0 -0
  496. /package/framework/{v0.6.19 → v0.6.20}/lib/kv/src/main.js +0 -0
  497. /package/framework/{v0.6.19 → v0.6.20}/lib/kv-store.js +0 -0
  498. /package/framework/{v0.6.19 → v0.6.20}/lib/loading-state/package.json +0 -0
  499. /package/framework/{v0.6.19 → v0.6.20}/lib/loading-state/src/main.js +0 -0
  500. /package/framework/{v0.6.19 → v0.6.20}/lib/logger/README.md +0 -0
  501. /package/framework/{v0.6.19 → v0.6.20}/lib/logger/package.json +0 -0
  502. /package/framework/{v0.6.19 → v0.6.20}/lib/logger/src/containers/default/index.js +0 -0
  503. /package/framework/{v0.6.19 → v0.6.20}/lib/logger/src/containers/file/index.js +0 -0
  504. /package/framework/{v0.6.19 → v0.6.20}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  505. /package/framework/{v0.6.19 → v0.6.20}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  506. /package/framework/{v0.6.19 → v0.6.20}/lib/logger/src/containers/mq/index.js +0 -0
  507. /package/framework/{v0.6.19 → v0.6.20}/lib/logger/src/containers/mq/listener.js +0 -0
  508. /package/framework/{v0.6.19 → v0.6.20}/lib/logger/src/containers/mq/speaker.js +0 -0
  509. /package/framework/{v0.6.19 → v0.6.20}/lib/logger/src/helper.js +0 -0
  510. /package/framework/{v0.6.19 → v0.6.20}/lib/logger/src/main.js +0 -0
  511. /package/framework/{v0.6.19 → v0.6.20}/lib/logger/src/redact.js +0 -0
  512. /package/framework/{v0.6.19 → v0.6.20}/lib/maintenance/package.json +0 -0
  513. /package/framework/{v0.6.19 → v0.6.20}/lib/maintenance/src/main.js +0 -0
  514. /package/framework/{v0.6.19 → v0.6.20}/lib/math/index.js +0 -0
  515. /package/framework/{v0.6.19 → v0.6.20}/lib/mcp-dispatch/package.json +0 -0
  516. /package/framework/{v0.6.19 → v0.6.20}/lib/mcp-dispatch/src/main.js +0 -0
  517. /package/framework/{v0.6.19 → v0.6.20}/lib/mcp-http/package.json +0 -0
  518. /package/framework/{v0.6.19 → v0.6.20}/lib/mcp-http/src/main.js +0 -0
  519. /package/framework/{v0.6.19 → v0.6.20}/lib/mcp-server/package.json +0 -0
  520. /package/framework/{v0.6.19 → v0.6.20}/lib/mcp-server/src/main.js +0 -0
  521. /package/framework/{v0.6.19 → v0.6.20}/lib/merge/README.md +0 -0
  522. /package/framework/{v0.6.19 → v0.6.20}/lib/merge/package.json +0 -0
  523. /package/framework/{v0.6.19 → v0.6.20}/lib/metrics/package.json +0 -0
  524. /package/framework/{v0.6.19 → v0.6.20}/lib/metrics/src/main.js +0 -0
  525. /package/framework/{v0.6.19 → v0.6.20}/lib/model.js +0 -0
  526. /package/framework/{v0.6.19 → v0.6.20}/lib/net-locality/package.json +0 -0
  527. /package/framework/{v0.6.19 → v0.6.20}/lib/net-locality/src/main.js +0 -0
  528. /package/framework/{v0.6.19 → v0.6.20}/lib/nunjucks-filters/README.md +0 -0
  529. /package/framework/{v0.6.19 → v0.6.20}/lib/nunjucks-filters/package.json +0 -0
  530. /package/framework/{v0.6.19 → v0.6.20}/lib/nunjucks-filters/src/main.js +0 -0
  531. /package/framework/{v0.6.19 → v0.6.20}/lib/nunjucks-resolver/package.json +0 -0
  532. /package/framework/{v0.6.19 → v0.6.20}/lib/nunjucks-resolver/src/main.js +0 -0
  533. /package/framework/{v0.6.19 → v0.6.20}/lib/proc.js +0 -0
  534. /package/framework/{v0.6.19 → v0.6.20}/lib/push/package.json +0 -0
  535. /package/framework/{v0.6.19 → v0.6.20}/lib/push/src/main.js +0 -0
  536. /package/framework/{v0.6.19 → v0.6.20}/lib/rate-limit/package.json +0 -0
  537. /package/framework/{v0.6.19 → v0.6.20}/lib/rate-limit/src/main.js +0 -0
  538. /package/framework/{v0.6.19 → v0.6.20}/lib/release-watch/package.json +0 -0
  539. /package/framework/{v0.6.19 → v0.6.20}/lib/release-watch/src/main.js +0 -0
  540. /package/framework/{v0.6.19 → v0.6.20}/lib/render-cache/package.json +0 -0
  541. /package/framework/{v0.6.19 → v0.6.20}/lib/render-cache/src/main.js +0 -0
  542. /package/framework/{v0.6.19 → v0.6.20}/lib/render-cache-store.js +0 -0
  543. /package/framework/{v0.6.19 → v0.6.20}/lib/routing/README.md +0 -0
  544. /package/framework/{v0.6.19 → v0.6.20}/lib/routing/build.json +0 -0
  545. /package/framework/{v0.6.19 → v0.6.20}/lib/routing/package.json +0 -0
  546. /package/framework/{v0.6.19 → v0.6.20}/lib/routing/src/main.js +0 -0
  547. /package/framework/{v0.6.19 → v0.6.20}/lib/routing/src/radix.js +0 -0
  548. /package/framework/{v0.6.19 → v0.6.20}/lib/routing-introspect/package.json +0 -0
  549. /package/framework/{v0.6.19 → v0.6.20}/lib/routing-introspect/src/main.js +0 -0
  550. /package/framework/{v0.6.19 → v0.6.20}/lib/secrets/package.json +0 -0
  551. /package/framework/{v0.6.19 → v0.6.20}/lib/secrets/src/backends/env.js +0 -0
  552. /package/framework/{v0.6.19 → v0.6.20}/lib/secrets/src/backends/exec.js +0 -0
  553. /package/framework/{v0.6.19 → v0.6.20}/lib/secrets/src/backends/file.js +0 -0
  554. /package/framework/{v0.6.19 → v0.6.20}/lib/secrets/src/declaration.js +0 -0
  555. /package/framework/{v0.6.19 → v0.6.20}/lib/secrets/src/env-file.js +0 -0
  556. /package/framework/{v0.6.19 → v0.6.20}/lib/secrets/src/main.js +0 -0
  557. /package/framework/{v0.6.19 → v0.6.20}/lib/secrets/src/sources.js +0 -0
  558. /package/framework/{v0.6.19 → v0.6.20}/lib/session-store.js +0 -0
  559. /package/framework/{v0.6.19 → v0.6.20}/lib/shell.js +0 -0
  560. /package/framework/{v0.6.19 → v0.6.20}/lib/sqlite-driver.js +0 -0
  561. /package/framework/{v0.6.19 → v0.6.20}/lib/state.js +0 -0
  562. /package/framework/{v0.6.19 → v0.6.20}/lib/storage/package.json +0 -0
  563. /package/framework/{v0.6.19 → v0.6.20}/lib/storage/src/local-cas.js +0 -0
  564. /package/framework/{v0.6.19 → v0.6.20}/lib/storage/src/local-stream.js +0 -0
  565. /package/framework/{v0.6.19 → v0.6.20}/lib/storage/src/local.js +0 -0
  566. /package/framework/{v0.6.19 → v0.6.20}/lib/storage/src/main.js +0 -0
  567. /package/framework/{v0.6.19 → v0.6.20}/lib/storage/src/meta-store.js +0 -0
  568. /package/framework/{v0.6.19 → v0.6.20}/lib/storage/src/s3.js +0 -0
  569. /package/framework/{v0.6.19 → v0.6.20}/lib/storage/src/util.js +0 -0
  570. /package/framework/{v0.6.19 → v0.6.20}/lib/storage-store.js +0 -0
  571. /package/framework/{v0.6.19 → v0.6.20}/lib/swig-filters/README.md +0 -0
  572. /package/framework/{v0.6.19 → v0.6.20}/lib/swig-filters/package.json +0 -0
  573. /package/framework/{v0.6.19 → v0.6.20}/lib/swig-filters/src/main.js +0 -0
  574. /package/framework/{v0.6.19 → v0.6.20}/lib/swig-resolver/package.json +0 -0
  575. /package/framework/{v0.6.19 → v0.6.20}/lib/swig-resolver/src/main.js +0 -0
  576. /package/framework/{v0.6.19 → v0.6.20}/lib/template-loaders/package.json +0 -0
  577. /package/framework/{v0.6.19 → v0.6.20}/lib/template-loaders/src/loaders/http.js +0 -0
  578. /package/framework/{v0.6.19 → v0.6.20}/lib/template-loaders/src/loaders/memory.js +0 -0
  579. /package/framework/{v0.6.19 → v0.6.20}/lib/template-loaders/src/main.js +0 -0
  580. /package/framework/{v0.6.19 → v0.6.20}/lib/url/README.md +0 -0
  581. /package/framework/{v0.6.19 → v0.6.20}/lib/url/index.js +0 -0
  582. /package/framework/{v0.6.19 → v0.6.20}/lib/url/routing.json +0 -0
  583. /package/framework/{v0.6.19 → v0.6.20}/lib/uuid/package.json +0 -0
  584. /package/framework/{v0.6.19 → v0.6.20}/lib/uuid/src/main.js +0 -0
  585. /package/framework/{v0.6.19 → v0.6.20}/lib/validator.js +0 -0
  586. /package/framework/{v0.6.19 → v0.6.20}/lib/watcher/package.json +0 -0
  587. /package/framework/{v0.6.19 → v0.6.20}/lib/watcher/src/main.js +0 -0
  588. /package/framework/{v0.6.19 → v0.6.20}/lib/ws-framing/package.json +0 -0
  589. /package/framework/{v0.6.19 → v0.6.20}/lib/ws-framing/src/main.js +0 -0
  590. /package/framework/{v0.6.19 → v0.6.20}/lib/ws-query/package.json +0 -0
  591. /package/framework/{v0.6.19 → v0.6.20}/lib/ws-query/src/main.js +0 -0
  592. /package/framework/{v0.6.19 → v0.6.20}/lib/ws-session/package.json +0 -0
  593. /package/framework/{v0.6.19 → v0.6.20}/lib/ws-session/src/main.js +0 -0
package/CHANGELOG.md CHANGED
@@ -6,6 +6,18 @@ 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.20 - 2026-08-30
10
+
11
+ > **Pickup: restart your bundles AND rebuild them** (`gina bundle:build`). The browser bundle changed —
12
+ > `gina.min.js` differs from `0.6.19` (`gina.min.css` and `gina.onload.min.js` are unchanged), owed to the
13
+ > two `merge()` fixes below; `lib/merge` ships in the client bundle. The security fix is server-side and a
14
+ > restart alone picks it up. `0.6.20` is a patch — the `shortVersion` stays `0.6`, so there is no settings reset.
15
+ ### Fixed
16
+ * `merge()` no longer throws `TypeError: Cannot create property 'id' on string` when a target array that repeats a primitive (`['v2', 'v2']`) is merged with an array of objects. The object-fill branch tested for a free index on the DEDUPED copy of the target and then wrote into the real one, whose index still held the string (or `null`), so a configuration overlay hitting that shape killed the boot instead of merging. An occupied index is now left alone — as it already was for an object landing on one — and the merge completes (#B437).
17
+ * `merge()` no longer duplicates a number the target already holds at a different index (`merge([9, 1], [1])` gave `[9, 1, 1]`; `{ ports: [8080, 8124] }` merged with `{ ports: [8124] }` gave `[8080, 8124, 8124]`), and a nested array is merged once per level instead of twice, so `[1, 2]` + `[3, 4]` one level down is `[1, 2, 3, 4]` rather than `[1, 2, 3, 4, 3, 4]` and merging the same source a second time is a no-op. The rule that lets a source repeat a number (`[25]` + `[25, 25]` still gives `[25, 25]`) now compares counts instead of positions. An array shared by both sides below the top level is also left untouched, closing a residual of the 0.6.19 source-mutation fix (#B436).
18
+ ### Security
19
+ * #B440 — concurrent calls to a JS-defined, emit-style entity method are now paired to the call each completion came from, on both call forms (`await entity.method()` and `util.promisify(entity.method)`). One call that never signalled completion — it neither emitted its `<shortName>#<method>` trigger nor returned a Promise that settled, typically because something threw inside an asynchronous callback before the `emit` (swallowed as an unhandled rejection) — used to leave its pending slot at the head of that method's arrival-order queue forever: from then on every caller received the NEXT caller's record and the last one hung, every later caller hung when calls did not overlap, and each further lost completion made it one caller worse. Where the method reads a user-scoped or ownership-bearing record, a check performed on the returned row could pass for the wrong principal — a confidentiality and authorization concern, not only a correctness one, and the same shape as the 0.6.19 Couchbase fix. The trigger is data-dependent (an unexpected record shape), not load-dependent: invisible in a load test, present in any long-lived process. Every call now runs inside its own async context; a completion is matched to that context whatever the completion order (which also closes the documented out-of-order residual of the 0.6.11 fix), a completion for a call that already settled is dropped rather than handed to the next caller, and a completion that reaches the entity outside every call's context (a native driver calling back from a loop started at boot) still pairs in arrival order and now logs `DISPATCH:NO_CONTEXT` at debug level. The promisify form also chains on a Promise returned by the method — it used to discard it, so a Promise-returning method was only safe on the entity-context form. New opt-in `settings.json > model.emitTimeout` (ms) bounds a call that never completes: it rejects with an Error naming the trigger and a warn line is logged; absent or 0 keeps the previous behaviour, where that call — and now only that call — stays pending. Server-side only — pickup is a bundle restart, no re-bake.
20
+
9
21
  ## 0.6.19 - 2026-08-28
10
22
  ### Fixed
11
23
  * #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.
package/README.md CHANGED
@@ -62,35 +62,31 @@ 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.19
65
+ ## What's in 0.6.20
66
66
 
67
67
  > **Restart your bundles AND rebuild them.** This release changes the browser
68
- > bundle: `gina.min.js` differs from `0.6.18` (`gina.min.css` and
68
+ > bundle: `gina.min.js` differs from `0.6.19` (`gina.min.css` and
69
69
  > `gina.onload.min.js` are unchanged). A restart alone updates the server half
70
70
  > only — each bundle bakes its own copy of the client assets, so the `merge()`
71
- > fix below would not reach a browser at all.
71
+ > fixes below would not reach a browser at all. The security fix is server-side
72
+ > and a restart is enough for it; the rebuild is owed to `lib/merge`.
72
73
 
73
- > **No settings reset.** `0.6.19` is a patch — the `shortVersion` stays `0.6`, so
74
+ > **No settings reset.** `0.6.20` is a patch — the `shortVersion` stays `0.6`, so
74
75
  > your `~/.gina/0.6/settings.json` is untouched. (`0.6.0` was the reset.)
75
76
 
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.
77
+ **One security fix, and two `merge()` defects closed.** Concurrent calls to an
78
+ emit-style entity method are now paired to the call each completion came from, so
79
+ a single call that never signals completion can no longer desynchronise every
80
+ caller that follows it the same confidentiality shape as the `0.6.19` Couchbase
81
+ fix, reached by a different route. Alongside it, `merge()` stops duplicating
82
+ values a target already holds and stops throwing on a mixed array shape that
83
+ could kill a boot. **One change may require action** the new
84
+ `model.emitTimeout` is opt-in and off by default, so nothing changes unless you
85
+ set it; details in the [migration guide](https://gina.io/docs/migration).
86
+
87
+ - **Security — concurrent entity calls no longer receive each other's records (#B440).** Both call forms (`await entity.method()` and `util.promisify(entity.method)`) paired completions to callers by arrival order, with no call identity. One call that never signalled completion — it neither emitted its `<shortName>#<method>` trigger nor returned a Promise that settled, typically because something threw inside an asynchronous callback before the `emit` and was swallowed as an unhandled rejection — left its pending slot at the head of that method's queue forever: from then on every caller received the *next* caller's record and the last one hung, every later caller hung outright when calls did not overlap, and each further lost completion made it one caller worse. Where the method reads a user-scoped or ownership-bearing record, a check performed on the returned row could pass for the wrong principal — a confidentiality and authorization concern, not only a correctness one. The trigger is **data-dependent** (an unexpected record shape), not load-dependent: invisible in a load test, present in any long-lived process. Every call now runs inside its own async context and a completion is matched to that context whatever the completion order — which also closes the documented out-of-order residual of the `0.6.11` fix. A completion for a call that already settled is dropped rather than handed to the next caller, and a completion reaching the entity outside every call's context (a native driver calling back from a loop started at boot) still pairs in arrival order and now logs `DISPATCH:NO_CONTEXT` at debug level. The `promisify` form also chains on a Promise returned by the method — it used to discard it, so a Promise-returning method was only safe on the entity-context form. **New opt-in** `settings.json > model.emitTimeout` (ms) bounds a call that never completes: it rejects with an Error naming the trigger and logs a warning; absent or `0` keeps the previous behaviour, where that call — and now only that call — stays pending. Server-side only.
88
+ - **Fixed`merge()` no longer duplicates a number the target already holds (#B436).** `merge([9, 1], [1])` gave `[9, 1, 1]`, and `{ ports: [8080, 8124] }` merged with `{ ports: [8124] }` gave `[8080, 8124, 8124]`. A nested array is also merged once per level instead of twice, so `[1, 2]` + `[3, 4]` one level down is `[1, 2, 3, 4]` rather than `[1, 2, 3, 4, 3, 4]`, and merging the same source a second time is now a no-op. The rule that lets a source legitimately repeat a number (`[25]` + `[25, 25]` still gives `[25, 25]`) now compares counts instead of positions. An array shared by both sides below the top level is left untouched, closing a residual of the `0.6.19` source-mutation fix.
89
+ - **Fixed`merge()` no longer throws on a mixed array shape (#B437).** Merging a target array that repeats a primitive (`['v2', 'v2']`) with an array of objects raised `TypeError: Cannot create property 'id' on string`: the object-fill branch tested for a free index on the *deduped* copy of the target and then wrote into the real one, whose index still held the string (or `null`). A configuration overlay hitting that shape killed the boot instead of merging. An occupied index is now left alone as it already was for an object landing on oneand the merge completes.
94
90
 
95
91
  ## Documentation
96
92
 
package/ROADMAP.md CHANGED
@@ -71,6 +71,7 @@ This roadmap covers planned features, architectural improvements, new connectors
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
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). |
74
+ | **Q4 2026** | `0.6.20` ✅ | **Security**: concurrent calls to an emit-style entity method are now paired to the call each completion came from. Both call forms (`await entity.method()` and `util.promisify(entity.method)`) paired by arrival order with no call identity, so one call that never signalled completion — it neither emitted its trigger nor returned a Promise that settled, typically because something threw inside an asynchronous callback and was swallowed as an unhandled rejection — left its slot at the head of that method's queue forever: every caller after it received the *next* caller's record, the last one hung, and each further lost completion made it one caller worse. Where the method reads a user-scoped or ownership-bearing record, a check performed on the returned row could pass for the wrong principal. The trigger is data-dependent, not load-dependent — invisible in a load test, present in any long-lived process. Every call now runs inside its own async context, a completion for an already-settled call is dropped rather than handed to the next caller, one reaching the entity outside every call's context still pairs in arrival order and logs `DISPATCH:NO_CONTEXT` at debug level, and the `promisify` form chains on a Promise the method returns instead of discarding it. New opt-in `settings.json > model.emitTimeout` (ms) bounds a call that never completes. **Fixed**: `merge()` no longer duplicates a number the target already holds at a different index, and merges a nested array once per level instead of twice. **Fixed**: `merge()` no longer throws `TypeError: Cannot create property 'id' on string` when a target array that repeats a primitive is merged with an array of objects — a configuration overlay hitting that shape killed the boot. Restart **and** rebuild your bundles (the browser bundle changed — `gina.min.js` differs from `0.6.19`; `gina.min.css` and `gina.onload.min.js` are unchanged). |
74
75
  | **Q1 2027** | `0.6.x` | HTTP/2 priorities (blocked on Node scheduler hooks) · Beemaster admin + visual translation editor |
75
76
  | **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`) |
76
77
  | **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.20
@@ -2157,6 +2157,12 @@ define("requireLib", function(){});
2157
2157
  * - Missing keys are always filled from `source`; on a CONFLICTING key the
2158
2158
  * `target` value is preserved by default.
2159
2159
  * - Pass `true` as the last argument (`override`) to make `source` win instead.
2160
+ * - Arrays of primitives merge as an ordered union: the target's elements first,
2161
+ * then every source element the result lacks. A number the source repeats more
2162
+ * often than the result is topped up to the source's count (`[25]` + `[25,25]`
2163
+ * gives `[25,25]`), a value already present is never pushed again, and merging
2164
+ * the same source a second time is a no-op (#B436). A nested array is merged
2165
+ * once per level.
2160
2166
  *
2161
2167
  * @example
2162
2168
  * var merge = require('lib/merge');
@@ -2199,6 +2205,7 @@ function Merge() {
2199
2205
  * merge([1, 2], [3, 4]) // [1, 2, 3, 4]
2200
2206
  * merge([1, 2], [3, 4], true) // [3, 4]
2201
2207
  * merge({ a: [null, 'x'] }, { a: [null, 'x'] }) // { a: [null, 'x'] } — null elements are preserved (#B226)
2208
+ * merge({ ports: [8080, 8124] }, { ports: [8124] }) // { ports: [8080, 8124] } — a value already present is not pushed again (#B436)
2202
2209
  */
2203
2210
  var browse = function (_target, _source) {
2204
2211
 
@@ -2354,7 +2361,12 @@ function Merge() {
2354
2361
  } else {
2355
2362
  clone[ prop ] = copy[ prop ] // don't override existing
2356
2363
  }
2357
- } else if ( Array.isArray(copy[ prop ]) && Array.isArray(clone[ prop ]) ) {
2364
+ } else if ( createMode && Array.isArray(copy[ prop ]) && Array.isArray(clone[ prop ]) ) {
2365
+ // #B436 — createMode has no recursion below, so this is its one
2366
+ // pass; on an existing level the `browse(clone, copy)` recursion
2367
+ // that follows merges this array itself, and merging it here too
2368
+ // walked every nested array twice (and replaced an array SHARED
2369
+ // by both sides with a deduped copy, past the #B428 identity guard)
2358
2370
  clone[ prop ] = mergeArray(copy[ prop ], clone[ prop ], override);
2359
2371
  }
2360
2372
  }
@@ -2426,6 +2438,19 @@ function Merge() {
2426
2438
  * validator rule `"setFlash": [null, "message"]` on the client-side
2427
2439
  * rules path.
2428
2440
  *
2441
+ * An OBJECT element of `options` fills a HOLE of `target` (an index the
2442
+ * target lacks) by copying its keys; an occupied index — an existing
2443
+ * object, a primitive or `null` — is never written into. That guard is
2444
+ * #B437: the hole test runs on the deduped rebuild, whose indexes shift
2445
+ * against a target carrying duplicate primitives, so the key write used to
2446
+ * reach a string or null and throw, killing the whole merge.
2447
+ *
2448
+ * Primitive elements form an ordered union — the target's first, then every
2449
+ * source element the result lacks. A `number` the source carries more often
2450
+ * than the result so far is pushed again, up to the source's count (#B436):
2451
+ * the comparison is by COUNT, so a number already present at another index
2452
+ * is never duplicated and merging the same source twice is a no-op.
2453
+ *
2429
2454
  * @inner
2430
2455
  * @private
2431
2456
  * @param {Array} options - Source array (merged INTO target)
@@ -2638,10 +2663,18 @@ function Merge() {
2638
2663
  if (typeof (newTarget[a]) == 'undefined')
2639
2664
  newTarget[a] = {};
2640
2665
 
2641
-
2642
- for (let k in options[a]) {
2643
- if (!newTarget[a].hasOwnProperty(k)) {
2644
- newTarget[a][k] = options[a][k]
2666
+ // #B437 — the hole test above ran on the DEDUPED rebuild; after
2667
+ // the rebind `newTarget = target` the same index can hold a
2668
+ // primitive or null on the real target (a target carrying
2669
+ // duplicate primitives is SHORTER once deduped), and writing
2670
+ // keys into a string / null threw a TypeError that killed the
2671
+ // whole merge. An occupied slot is not a hole: skip it, as the
2672
+ // chain below already does for an object at an occupied index.
2673
+ if (newTarget[a] !== null && typeof(newTarget[a]) == 'object') {
2674
+ for (let k in options[a]) {
2675
+ if (!newTarget[a].hasOwnProperty(k)) {
2676
+ newTarget[a][k] = options[a][k]
2677
+ }
2645
2678
  }
2646
2679
  }
2647
2680
 
@@ -2655,7 +2688,17 @@ function Merge() {
2655
2688
  // ok but not if @ same position
2656
2689
  //&& options[a] !== newTarget[a]
2657
2690
  ) {
2658
- if (options[a] !== newTarget[a]) {
2691
+ // #B436 top up by COUNT, never by index. The source may carry a
2692
+ // repeated number the target has fewer copies of (a = [25];
2693
+ // b = [25,25] must give [25,25]), but the old test compared POSITIONS,
2694
+ // so a number already present at a different index was pushed again
2695
+ // ([9,1] + [1] gave [9,1,1]) and the merge was not idempotent — the
2696
+ // second pass a nested level used to take doubled every number.
2697
+ // was: if (options[a] !== newTarget[a]) { newTarget.push(options[a]); continue }
2698
+ var _seenInSource = 0, _seenInTarget = 0, _o = 0;
2699
+ for (; _o <= a; ++_o) { if (options[_o] === options[a]) ++_seenInSource; }
2700
+ for (_o = 0; _o < newTarget.length; ++_o) { if (newTarget[_o] === options[a]) ++_seenInTarget; }
2701
+ if (_seenInSource > _seenInTarget) {
2659
2702
  newTarget.push(options[a]);
2660
2703
  continue
2661
2704
  }