gina 0.6.20 → 0.6.21

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 +6 -0
  2. package/README.md +18 -20
  3. package/ROADMAP.md +1 -0
  4. package/framework/v0.6.21/VERSION +1 -0
  5. package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/js/gina.js +101 -10
  6. package/framework/v0.6.21/core/asset/plugin/dist/vendor/gina/js/gina.min.js +653 -0
  7. package/framework/v0.6.21/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  8. package/framework/v0.6.21/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  9. package/framework/{v0.6.20 → v0.6.21}/core/model/entity.js +1 -1
  10. package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/validator/src/main.js +15 -2
  11. package/framework/{v0.6.20 → v0.6.21}/lib/merge/src/main.js +24 -0
  12. package/framework/{v0.6.20 → v0.6.21}/lib/routing/src/main.js +56 -8
  13. package/framework/{v0.6.20 → v0.6.21}/package.json +1 -1
  14. package/gna.js +4 -4
  15. package/llms.txt +3 -1
  16. package/package.json +4 -4
  17. package/framework/v0.6.20/VERSION +0 -1
  18. package/framework/v0.6.20/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -652
  19. package/framework/v0.6.20/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  20. package/framework/v0.6.20/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  21. /package/framework/{v0.6.20 → v0.6.21}/AUTHORS +0 -0
  22. /package/framework/{v0.6.20 → v0.6.21}/LICENSE +0 -0
  23. /package/framework/{v0.6.20 → v0.6.21}/core/asset/html/nolayout.html +0 -0
  24. /package/framework/{v0.6.20 → v0.6.21}/core/asset/html/static.html +0 -0
  25. /package/framework/{v0.6.20 → v0.6.21}/core/asset/img/android-chrome-192x192.png +0 -0
  26. /package/framework/{v0.6.20 → v0.6.21}/core/asset/img/android-chrome-512x512.png +0 -0
  27. /package/framework/{v0.6.20 → v0.6.21}/core/asset/img/apple-touch-icon.png +0 -0
  28. /package/framework/{v0.6.20 → v0.6.21}/core/asset/img/favicon-16x16.png +0 -0
  29. /package/framework/{v0.6.20 → v0.6.21}/core/asset/img/favicon-32x32.png +0 -0
  30. /package/framework/{v0.6.20 → v0.6.21}/core/asset/img/favicon.ico +0 -0
  31. /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/README.md +0 -0
  32. /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  33. /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  34. /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  35. /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  36. /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  37. /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  38. /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
  39. /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  40. /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  41. /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  42. /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
  43. /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
  44. /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
  45. /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  46. /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
  47. /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  48. /package/framework/{v0.6.20 → v0.6.21}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  49. /package/framework/{v0.6.20 → v0.6.21}/core/config.js +0 -0
  50. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/ai/index.js +0 -0
  51. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/ai/lib/connector.js +0 -0
  52. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/couchbase/index.js +0 -0
  53. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/couchbase/lib/connector.js +0 -0
  54. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  55. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  56. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/couchbase/lib/n1ql.js +0 -0
  57. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/couchbase/lib/session-store.js +0 -0
  58. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  59. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  60. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/couchbase/lib/storage-store.js +0 -0
  61. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/duckdb/index.js +0 -0
  62. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/duckdb/lib/connector.js +0 -0
  63. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/mongodb/index.js +0 -0
  64. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/mongodb/lib/connector.js +0 -0
  65. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/mongodb/lib/job-store.js +0 -0
  66. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
  67. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/mongodb/lib/session-store.js +0 -0
  68. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/mysql/index.js +0 -0
  69. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/mysql/lib/connector.js +0 -0
  70. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/param-redact.js +0 -0
  71. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/postgresql/index.js +0 -0
  72. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/postgresql/lib/connector.js +0 -0
  73. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/redis/index.js +0 -0
  74. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/redis/lib/connector.js +0 -0
  75. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/redis/lib/job-store.js +0 -0
  76. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/redis/lib/kv-store.js +0 -0
  77. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/redis/lib/render-cache-store.js +0 -0
  78. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/redis/lib/session-store.js +0 -0
  79. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/scylladb/index.js +0 -0
  80. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/scylladb/lib/connector.js +0 -0
  81. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/scylladb/lib/session-store.js +0 -0
  82. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/settle-once.js +0 -0
  83. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/sql-parser.js +0 -0
  84. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/sqlite/index.js +0 -0
  85. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/sqlite/lib/connector.js +0 -0
  86. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/sqlite/lib/job-store.js +0 -0
  87. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/sqlite/lib/kv-store.js +0 -0
  88. /package/framework/{v0.6.20 → v0.6.21}/core/connectors/sqlite/lib/session-store.js +0 -0
  89. /package/framework/{v0.6.20 → v0.6.21}/core/content.encoding +0 -0
  90. /package/framework/{v0.6.20 → v0.6.21}/core/controller/controller.framework.js +0 -0
  91. /package/framework/{v0.6.20 → v0.6.21}/core/controller/controller.js +0 -0
  92. /package/framework/{v0.6.20 → v0.6.21}/core/controller/controller.render-json.js +0 -0
  93. /package/framework/{v0.6.20 → v0.6.21}/core/controller/controller.render-nunjucks-async.js +0 -0
  94. /package/framework/{v0.6.20 → v0.6.21}/core/controller/controller.render-nunjucks.js +0 -0
  95. /package/framework/{v0.6.20 → v0.6.21}/core/controller/controller.render-stream.js +0 -0
  96. /package/framework/{v0.6.20 → v0.6.21}/core/controller/controller.render-swig-async.js +0 -0
  97. /package/framework/{v0.6.20 → v0.6.21}/core/controller/controller.render-swig.js +0 -0
  98. /package/framework/{v0.6.20 → v0.6.21}/core/controller/controller.render-v1.js +0 -0
  99. /package/framework/{v0.6.20 → v0.6.21}/core/controller/index.js +0 -0
  100. /package/framework/{v0.6.20 → v0.6.21}/core/controller/inspector-window-emit.js +0 -0
  101. /package/framework/{v0.6.20 → v0.6.21}/core/controller/release-banner.js +0 -0
  102. /package/framework/{v0.6.20 → v0.6.21}/core/dev/index.js +0 -0
  103. /package/framework/{v0.6.20 → v0.6.21}/core/dev/lib/class.js +0 -0
  104. /package/framework/{v0.6.20 → v0.6.21}/core/dev/lib/factory.js +0 -0
  105. /package/framework/{v0.6.20 → v0.6.21}/core/dev/lib/tools.js +0 -0
  106. /package/framework/{v0.6.20 → v0.6.21}/core/gna.js +0 -0
  107. /package/framework/{v0.6.20 → v0.6.21}/core/locales/README.md +0 -0
  108. /package/framework/{v0.6.20 → v0.6.21}/core/locales/currency.json +0 -0
  109. /package/framework/{v0.6.20 → v0.6.21}/core/locales/dist/language/en.json +0 -0
  110. /package/framework/{v0.6.20 → v0.6.21}/core/locales/dist/language/fr.json +0 -0
  111. /package/framework/{v0.6.20 → v0.6.21}/core/locales/dist/region/en.json +0 -0
  112. /package/framework/{v0.6.20 → v0.6.21}/core/locales/dist/region/fr.json +0 -0
  113. /package/framework/{v0.6.20 → v0.6.21}/core/locales/index.js +0 -0
  114. /package/framework/{v0.6.20 → v0.6.21}/core/mime.types +0 -0
  115. /package/framework/{v0.6.20 → v0.6.21}/core/model/index.js +0 -0
  116. /package/framework/{v0.6.20 → v0.6.21}/core/model/template/entityFactory.js +0 -0
  117. /package/framework/{v0.6.20 → v0.6.21}/core/model/template/index.js +0 -0
  118. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/README.md +0 -0
  119. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/index.js +0 -0
  120. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/csrf/README.md +0 -0
  121. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/csrf/package.json +0 -0
  122. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/csrf/src/main.js +0 -0
  123. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/README.md +0 -0
  124. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/coep/README.md +0 -0
  125. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/coep/package.json +0 -0
  126. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
  127. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/coop/README.md +0 -0
  128. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/coop/package.json +0 -0
  129. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
  130. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/corp/README.md +0 -0
  131. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/corp/package.json +0 -0
  132. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
  133. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/csp/README.md +0 -0
  134. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/csp/package.json +0 -0
  135. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
  136. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
  137. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
  138. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
  139. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/hsts/README.md +0 -0
  140. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/hsts/package.json +0 -0
  141. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
  142. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
  143. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
  144. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
  145. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/package.json +0 -0
  146. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
  147. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
  148. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
  149. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/src/main.js +0 -0
  150. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
  151. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
  152. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
  153. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
  154. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
  155. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
  156. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
  157. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
  158. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
  159. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
  160. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
  161. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
  162. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
  163. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
  164. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
  165. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
  166. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
  167. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
  168. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/session/README.md +0 -0
  169. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/session/package.json +0 -0
  170. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/session/src/main.js +0 -0
  171. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/storage/README.md +0 -0
  172. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/storage/build.json +0 -0
  173. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/storage/package.json +0 -0
  174. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/storage/src/main.js +0 -0
  175. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/validator/README.md +0 -0
  176. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/validator/build.json +0 -0
  177. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/validator/package.json +0 -0
  178. /package/framework/{v0.6.20 → v0.6.21}/core/plugins/lib/validator/src/form-validator.js +0 -0
  179. /package/framework/{v0.6.20 → v0.6.21}/core/router.js +0 -0
  180. /package/framework/{v0.6.20 → v0.6.21}/core/server.express.js +0 -0
  181. /package/framework/{v0.6.20 → v0.6.21}/core/server.isaac.js +0 -0
  182. /package/framework/{v0.6.20 → v0.6.21}/core/server.js +0 -0
  183. /package/framework/{v0.6.20 → v0.6.21}/core/status.codes +0 -0
  184. /package/framework/{v0.6.20 → v0.6.21}/core/template/_gitignore +0 -0
  185. /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle/config/app.json +0 -0
  186. /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  187. /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle/config/routing.json +0 -0
  188. /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle/config/settings.json +0 -0
  189. /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  190. /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle/config/templates.json +0 -0
  191. /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  192. /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  193. /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  194. /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  195. /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle/index.js +0 -0
  196. /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle/locales/en.json +0 -0
  197. /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  198. /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  199. /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  200. /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  201. /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  202. /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_public/js/components/x-checklist.js +0 -0
  203. /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  204. /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
  205. /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_public/readme.md +0 -0
  206. /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_public/sw.js +0 -0
  207. /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  208. /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  209. /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  210. /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  211. /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_templates/html/includes/x-checklist.html +0 -0
  212. /package/framework/{v0.6.20 → v0.6.21}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  213. /package/framework/{v0.6.20 → v0.6.21}/core/template/command/gina.bat.tpl +0 -0
  214. /package/framework/{v0.6.20 → v0.6.21}/core/template/command/gina.tpl +0 -0
  215. /package/framework/{v0.6.20 → v0.6.21}/core/template/conf/env.json +0 -0
  216. /package/framework/{v0.6.20 → v0.6.21}/core/template/conf/manifest.json +0 -0
  217. /package/framework/{v0.6.20 → v0.6.21}/core/template/conf/package.json +0 -0
  218. /package/framework/{v0.6.20 → v0.6.21}/core/template/conf/settings.json +0 -0
  219. /package/framework/{v0.6.20 → v0.6.21}/core/template/conf/statics.json +0 -0
  220. /package/framework/{v0.6.20 → v0.6.21}/core/template/conf/templates.json +0 -0
  221. /package/framework/{v0.6.20 → v0.6.21}/core/template/error/client/json/401.json +0 -0
  222. /package/framework/{v0.6.20 → v0.6.21}/core/template/error/client/json/403.json +0 -0
  223. /package/framework/{v0.6.20 → v0.6.21}/core/template/error/client/json/404.json +0 -0
  224. /package/framework/{v0.6.20 → v0.6.21}/core/template/error/server/html/50x.html +0 -0
  225. /package/framework/{v0.6.20 → v0.6.21}/core/template/error/server/json/500.json +0 -0
  226. /package/framework/{v0.6.20 → v0.6.21}/core/template/error/server/json/503.json +0 -0
  227. /package/framework/{v0.6.20 → v0.6.21}/core/template/extensions/logger/config.json +0 -0
  228. /package/framework/{v0.6.20 → v0.6.21}/helpers/console.js +0 -0
  229. /package/framework/{v0.6.20 → v0.6.21}/helpers/context.js +0 -0
  230. /package/framework/{v0.6.20 → v0.6.21}/helpers/data/LICENSE +0 -0
  231. /package/framework/{v0.6.20 → v0.6.21}/helpers/data/README.md +0 -0
  232. /package/framework/{v0.6.20 → v0.6.21}/helpers/data/package.json +0 -0
  233. /package/framework/{v0.6.20 → v0.6.21}/helpers/data/src/main.js +0 -0
  234. /package/framework/{v0.6.20 → v0.6.21}/helpers/dateFormat.js +0 -0
  235. /package/framework/{v0.6.20 → v0.6.21}/helpers/index.js +0 -0
  236. /package/framework/{v0.6.20 → v0.6.21}/helpers/json/LICENSE +0 -0
  237. /package/framework/{v0.6.20 → v0.6.21}/helpers/json/README.md +0 -0
  238. /package/framework/{v0.6.20 → v0.6.21}/helpers/json/package.json +0 -0
  239. /package/framework/{v0.6.20 → v0.6.21}/helpers/json/src/main.js +0 -0
  240. /package/framework/{v0.6.20 → v0.6.21}/helpers/path.js +0 -0
  241. /package/framework/{v0.6.20 → v0.6.21}/helpers/plugins/README.md +0 -0
  242. /package/framework/{v0.6.20 → v0.6.21}/helpers/plugins/package.json +0 -0
  243. /package/framework/{v0.6.20 → v0.6.21}/helpers/plugins/src/api-error.js +0 -0
  244. /package/framework/{v0.6.20 → v0.6.21}/helpers/plugins/src/main.js +0 -0
  245. /package/framework/{v0.6.20 → v0.6.21}/helpers/prototypes.js +0 -0
  246. /package/framework/{v0.6.20 → v0.6.21}/helpers/task.js +0 -0
  247. /package/framework/{v0.6.20 → v0.6.21}/helpers/text.js +0 -0
  248. /package/framework/{v0.6.20 → v0.6.21}/lib/admin/package.json +0 -0
  249. /package/framework/{v0.6.20 → v0.6.21}/lib/admin/src/main.js +0 -0
  250. /package/framework/{v0.6.20 → v0.6.21}/lib/archiver/README.md +0 -0
  251. /package/framework/{v0.6.20 → v0.6.21}/lib/archiver/build.json +0 -0
  252. /package/framework/{v0.6.20 → v0.6.21}/lib/archiver/package.json +0 -0
  253. /package/framework/{v0.6.20 → v0.6.21}/lib/archiver/src/dep/jszip.min.js +0 -0
  254. /package/framework/{v0.6.20 → v0.6.21}/lib/archiver/src/main.js +0 -0
  255. /package/framework/{v0.6.20 → v0.6.21}/lib/async/package.json +0 -0
  256. /package/framework/{v0.6.20 → v0.6.21}/lib/async/src/main.js +0 -0
  257. /package/framework/{v0.6.20 → v0.6.21}/lib/audit/package.json +0 -0
  258. /package/framework/{v0.6.20 → v0.6.21}/lib/audit/src/main.js +0 -0
  259. /package/framework/{v0.6.20 → v0.6.21}/lib/audit-store.js +0 -0
  260. /package/framework/{v0.6.20 → v0.6.21}/lib/authn/package.json +0 -0
  261. /package/framework/{v0.6.20 → v0.6.21}/lib/authn/src/lockout.js +0 -0
  262. /package/framework/{v0.6.20 → v0.6.21}/lib/authn/src/main.js +0 -0
  263. /package/framework/{v0.6.20 → v0.6.21}/lib/authn/src/totp.js +0 -0
  264. /package/framework/{v0.6.20 → v0.6.21}/lib/authz-gate/package.json +0 -0
  265. /package/framework/{v0.6.20 → v0.6.21}/lib/authz-gate/src/main.js +0 -0
  266. /package/framework/{v0.6.20 → v0.6.21}/lib/cache/README.md +0 -0
  267. /package/framework/{v0.6.20 → v0.6.21}/lib/cache/build.json +0 -0
  268. /package/framework/{v0.6.20 → v0.6.21}/lib/cache/package.json +0 -0
  269. /package/framework/{v0.6.20 → v0.6.21}/lib/cache/src/main.js +0 -0
  270. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/aliases.json +0 -0
  271. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/audit/arguments.json +0 -0
  272. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/audit/help.txt +0 -0
  273. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/audit/verify.js +0 -0
  274. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/add.js +0 -0
  275. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/arguments.json +0 -0
  276. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/build.js +0 -0
  277. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/copy.js +0 -0
  278. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/cp.js +0 -0
  279. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/help.js +0 -0
  280. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/help.txt +0 -0
  281. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
  282. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/list.js +0 -0
  283. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/man.js +0 -0
  284. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/mcp-start.js +0 -0
  285. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/mcp.js +0 -0
  286. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/oas.js +0 -0
  287. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/openapi.js +0 -0
  288. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/remove.js +0 -0
  289. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/rename.js +0 -0
  290. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/restart.js +0 -0
  291. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/rm.js +0 -0
  292. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/start.js +0 -0
  293. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/status.js +0 -0
  294. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/stop.js +0 -0
  295. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/bundle/types.js +0 -0
  296. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/cache/arguments.json +0 -0
  297. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/cache/clear.js +0 -0
  298. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/cache/help.txt +0 -0
  299. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/cache/stats.js +0 -0
  300. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/connector/add.js +0 -0
  301. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/connector/arguments.json +0 -0
  302. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/connector/help.js +0 -0
  303. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/connector/help.txt +0 -0
  304. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/connector/infer.js +0 -0
  305. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/connector/list.js +0 -0
  306. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/connector/migrate.js +0 -0
  307. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/connector/models.js +0 -0
  308. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/connector/remove.js +0 -0
  309. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/connector/rm.js +0 -0
  310. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/connector/test.js +0 -0
  311. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/container/arguments.json +0 -0
  312. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/container/help.js +0 -0
  313. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/container/help.txt +0 -0
  314. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/container/man.js +0 -0
  315. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/container/ps.js +0 -0
  316. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/container/stop.js +0 -0
  317. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/controller/add.js +0 -0
  318. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/controller/arguments.json +0 -0
  319. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/controller/help.txt +0 -0
  320. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/controller/inc/args.js +0 -0
  321. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/controller/inc/namespace.js +0 -0
  322. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/controller/inc/reference-rewrite.js +0 -0
  323. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/controller/inc/reference-scan.js +0 -0
  324. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/controller/inc/scaffold.js +0 -0
  325. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/controller/remove.js +0 -0
  326. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/controller/rename.js +0 -0
  327. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/controller/rm.js +0 -0
  328. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/env/add.js +0 -0
  329. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/env/get.js +0 -0
  330. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/env/help.js +0 -0
  331. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/env/help.txt +0 -0
  332. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/env/link-dev.js +0 -0
  333. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/env/list.js +0 -0
  334. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/env/remove.js +0 -0
  335. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/env/rm.js +0 -0
  336. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/env/set.js +0 -0
  337. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/env/unset.js +0 -0
  338. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/env/use.js +0 -0
  339. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/add.js +0 -0
  340. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/arguments.json +0 -0
  341. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/build.js +0 -0
  342. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/dot.js +0 -0
  343. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/get.js +0 -0
  344. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/help.js +0 -0
  345. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/help.txt +0 -0
  346. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/init.js +0 -0
  347. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/link-node-modules.js +0 -0
  348. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/link.js +0 -0
  349. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/list.js +0 -0
  350. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/man.js +0 -0
  351. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/msg.json +0 -0
  352. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/open.js +0 -0
  353. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/remove.js +0 -0
  354. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/reset.js +0 -0
  355. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/restart.js +0 -0
  356. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/set.js +0 -0
  357. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/start.js +0 -0
  358. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/status.js +0 -0
  359. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/stop.js +0 -0
  360. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/tail.js +0 -0
  361. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/update.js +0 -0
  362. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/framework/version.js +0 -0
  363. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/gina-dev.1.md +0 -0
  364. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/gina-framework.1.md +0 -0
  365. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/gina.1.md +0 -0
  366. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/helper.js +0 -0
  367. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/i18n/add.js +0 -0
  368. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/i18n/arguments.json +0 -0
  369. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/i18n/export.js +0 -0
  370. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/i18n/help.js +0 -0
  371. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/i18n/help.txt +0 -0
  372. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/i18n/import.js +0 -0
  373. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/i18n/scan.js +0 -0
  374. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/image/_host.js +0 -0
  375. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/image/arguments.json +0 -0
  376. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/image/build.js +0 -0
  377. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/image/help.js +0 -0
  378. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/image/help.txt +0 -0
  379. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/image/list.js +0 -0
  380. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/image/man.js +0 -0
  381. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/image/rm.js +0 -0
  382. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/image/run.js +0 -0
  383. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/index.js +0 -0
  384. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/inspector/help.js +0 -0
  385. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/inspector/help.txt +0 -0
  386. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/inspector/open.js +0 -0
  387. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/man-render.js +0 -0
  388. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/minion/arguments.json +0 -0
  389. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/minion/help.js +0 -0
  390. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/minion/help.txt +0 -0
  391. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/minion/kill.js +0 -0
  392. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/minion/list.js +0 -0
  393. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/msg.json +0 -0
  394. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/port/help.js +0 -0
  395. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/port/help.txt +0 -0
  396. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/port/inc/scan.js +0 -0
  397. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/port/list.js +0 -0
  398. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/port/reset.js +0 -0
  399. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/port/set.js +0 -0
  400. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/add.js +0 -0
  401. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/arguments.json +0 -0
  402. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/backup.js +0 -0
  403. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/build.js +0 -0
  404. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/help.js +0 -0
  405. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/help.txt +0 -0
  406. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/import.js +0 -0
  407. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/list.js +0 -0
  408. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/man.js +0 -0
  409. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/move.js +0 -0
  410. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/remove.js +0 -0
  411. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/rename.js +0 -0
  412. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/restart.js +0 -0
  413. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/restore.js +0 -0
  414. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/rm.js +0 -0
  415. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/start.js +0 -0
  416. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/status.js +0 -0
  417. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/project/stop.js +0 -0
  418. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/protocol/arguments.json +0 -0
  419. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/protocol/help.js +0 -0
  420. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/protocol/help.txt +0 -0
  421. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/protocol/list.js +0 -0
  422. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/protocol/remove.js +0 -0
  423. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/protocol/set.js +0 -0
  424. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/scope/add.js +0 -0
  425. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/scope/help.js +0 -0
  426. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/scope/help.txt +0 -0
  427. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/scope/link-local.js +0 -0
  428. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/scope/link-production.js +0 -0
  429. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/scope/list.js +0 -0
  430. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/scope/remove.js +0 -0
  431. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/scope/rm.js +0 -0
  432. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/scope/use.js +0 -0
  433. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/secrets/arguments.json +0 -0
  434. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/secrets/check.js +0 -0
  435. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/secrets/help.js +0 -0
  436. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/secrets/help.txt +0 -0
  437. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/secrets/scan.js +0 -0
  438. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/service/help.js +0 -0
  439. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/service/help.txt +0 -0
  440. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/service/list.js +0 -0
  441. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/service/man.js +0 -0
  442. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/service/start.js +0 -0
  443. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/storage/arguments.json +0 -0
  444. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/storage/gc.js +0 -0
  445. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/storage/help.txt +0 -0
  446. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/storage/stats.js +0 -0
  447. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/storage/verify.js +0 -0
  448. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd/view/add.js +0 -0
  449. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd-status-format/package.json +0 -0
  450. /package/framework/{v0.6.20 → v0.6.21}/lib/cmd-status-format/src/main.js +0 -0
  451. /package/framework/{v0.6.20 → v0.6.21}/lib/collection/README.md +0 -0
  452. /package/framework/{v0.6.20 → v0.6.21}/lib/collection/build.json +0 -0
  453. /package/framework/{v0.6.20 → v0.6.21}/lib/collection/package.json +0 -0
  454. /package/framework/{v0.6.20 → v0.6.21}/lib/collection/src/main.js +0 -0
  455. /package/framework/{v0.6.20 → v0.6.21}/lib/config.js +0 -0
  456. /package/framework/{v0.6.20 → v0.6.21}/lib/connector-config/package.json +0 -0
  457. /package/framework/{v0.6.20 → v0.6.21}/lib/connector-config/src/main.js +0 -0
  458. /package/framework/{v0.6.20 → v0.6.21}/lib/connector-error/package.json +0 -0
  459. /package/framework/{v0.6.20 → v0.6.21}/lib/connector-error/src/main.js +0 -0
  460. /package/framework/{v0.6.20 → v0.6.21}/lib/connector-registry/package.json +0 -0
  461. /package/framework/{v0.6.20 → v0.6.21}/lib/connector-registry/src/main.js +0 -0
  462. /package/framework/{v0.6.20 → v0.6.21}/lib/cron/README.md +0 -0
  463. /package/framework/{v0.6.20 → v0.6.21}/lib/cron/package.json +0 -0
  464. /package/framework/{v0.6.20 → v0.6.21}/lib/cron/src/main.js +0 -0
  465. /package/framework/{v0.6.20 → v0.6.21}/lib/domain/LICENSE +0 -0
  466. /package/framework/{v0.6.20 → v0.6.21}/lib/domain/README.md +0 -0
  467. /package/framework/{v0.6.20 → v0.6.21}/lib/domain/package.json +0 -0
  468. /package/framework/{v0.6.20 → v0.6.21}/lib/domain/src/main.js +0 -0
  469. /package/framework/{v0.6.20 → v0.6.21}/lib/dto/package.json +0 -0
  470. /package/framework/{v0.6.20 → v0.6.21}/lib/dto/src/main.js +0 -0
  471. /package/framework/{v0.6.20 → v0.6.21}/lib/dto-pipe/package.json +0 -0
  472. /package/framework/{v0.6.20 → v0.6.21}/lib/dto-pipe/src/main.js +0 -0
  473. /package/framework/{v0.6.20 → v0.6.21}/lib/dto-types/package.json +0 -0
  474. /package/framework/{v0.6.20 → v0.6.21}/lib/dto-types/src/main.js +0 -0
  475. /package/framework/{v0.6.20 → v0.6.21}/lib/generator/index.js +0 -0
  476. /package/framework/{v0.6.20 → v0.6.21}/lib/i18n/package.json +0 -0
  477. /package/framework/{v0.6.20 → v0.6.21}/lib/i18n/src/main.js +0 -0
  478. /package/framework/{v0.6.20 → v0.6.21}/lib/image-build/package.json +0 -0
  479. /package/framework/{v0.6.20 → v0.6.21}/lib/image-build/src/main.js +0 -0
  480. /package/framework/{v0.6.20 → v0.6.21}/lib/index.js +0 -0
  481. /package/framework/{v0.6.20 → v0.6.21}/lib/inherits/LICENSE +0 -0
  482. /package/framework/{v0.6.20 → v0.6.21}/lib/inherits/README.md +0 -0
  483. /package/framework/{v0.6.20 → v0.6.21}/lib/inherits/package.json +0 -0
  484. /package/framework/{v0.6.20 → v0.6.21}/lib/inherits/src/main.js +0 -0
  485. /package/framework/{v0.6.20 → v0.6.21}/lib/inspector-events/package.json +0 -0
  486. /package/framework/{v0.6.20 → v0.6.21}/lib/inspector-events/src/main.js +0 -0
  487. /package/framework/{v0.6.20 → v0.6.21}/lib/inspector-redact/package.json +0 -0
  488. /package/framework/{v0.6.20 → v0.6.21}/lib/inspector-redact/src/main.js +0 -0
  489. /package/framework/{v0.6.20 → v0.6.21}/lib/instrument/package.json +0 -0
  490. /package/framework/{v0.6.20 → v0.6.21}/lib/instrument/src/main.js +0 -0
  491. /package/framework/{v0.6.20 → v0.6.21}/lib/job/package.json +0 -0
  492. /package/framework/{v0.6.20 → v0.6.21}/lib/job/src/main.js +0 -0
  493. /package/framework/{v0.6.20 → v0.6.21}/lib/job-store.js +0 -0
  494. /package/framework/{v0.6.20 → v0.6.21}/lib/json-config-header/package.json +0 -0
  495. /package/framework/{v0.6.20 → v0.6.21}/lib/json-config-header/src/main.js +0 -0
  496. /package/framework/{v0.6.20 → v0.6.21}/lib/kv/package.json +0 -0
  497. /package/framework/{v0.6.20 → v0.6.21}/lib/kv/src/main.js +0 -0
  498. /package/framework/{v0.6.20 → v0.6.21}/lib/kv-store.js +0 -0
  499. /package/framework/{v0.6.20 → v0.6.21}/lib/loading-state/package.json +0 -0
  500. /package/framework/{v0.6.20 → v0.6.21}/lib/loading-state/src/main.js +0 -0
  501. /package/framework/{v0.6.20 → v0.6.21}/lib/logger/README.md +0 -0
  502. /package/framework/{v0.6.20 → v0.6.21}/lib/logger/package.json +0 -0
  503. /package/framework/{v0.6.20 → v0.6.21}/lib/logger/src/containers/default/index.js +0 -0
  504. /package/framework/{v0.6.20 → v0.6.21}/lib/logger/src/containers/file/index.js +0 -0
  505. /package/framework/{v0.6.20 → v0.6.21}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  506. /package/framework/{v0.6.20 → v0.6.21}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  507. /package/framework/{v0.6.20 → v0.6.21}/lib/logger/src/containers/mq/index.js +0 -0
  508. /package/framework/{v0.6.20 → v0.6.21}/lib/logger/src/containers/mq/listener.js +0 -0
  509. /package/framework/{v0.6.20 → v0.6.21}/lib/logger/src/containers/mq/speaker.js +0 -0
  510. /package/framework/{v0.6.20 → v0.6.21}/lib/logger/src/helper.js +0 -0
  511. /package/framework/{v0.6.20 → v0.6.21}/lib/logger/src/main.js +0 -0
  512. /package/framework/{v0.6.20 → v0.6.21}/lib/logger/src/redact.js +0 -0
  513. /package/framework/{v0.6.20 → v0.6.21}/lib/maintenance/package.json +0 -0
  514. /package/framework/{v0.6.20 → v0.6.21}/lib/maintenance/src/main.js +0 -0
  515. /package/framework/{v0.6.20 → v0.6.21}/lib/math/index.js +0 -0
  516. /package/framework/{v0.6.20 → v0.6.21}/lib/mcp-dispatch/package.json +0 -0
  517. /package/framework/{v0.6.20 → v0.6.21}/lib/mcp-dispatch/src/main.js +0 -0
  518. /package/framework/{v0.6.20 → v0.6.21}/lib/mcp-http/package.json +0 -0
  519. /package/framework/{v0.6.20 → v0.6.21}/lib/mcp-http/src/main.js +0 -0
  520. /package/framework/{v0.6.20 → v0.6.21}/lib/mcp-server/package.json +0 -0
  521. /package/framework/{v0.6.20 → v0.6.21}/lib/mcp-server/src/main.js +0 -0
  522. /package/framework/{v0.6.20 → v0.6.21}/lib/merge/README.md +0 -0
  523. /package/framework/{v0.6.20 → v0.6.21}/lib/merge/package.json +0 -0
  524. /package/framework/{v0.6.20 → v0.6.21}/lib/metrics/package.json +0 -0
  525. /package/framework/{v0.6.20 → v0.6.21}/lib/metrics/src/main.js +0 -0
  526. /package/framework/{v0.6.20 → v0.6.21}/lib/model.js +0 -0
  527. /package/framework/{v0.6.20 → v0.6.21}/lib/net-locality/package.json +0 -0
  528. /package/framework/{v0.6.20 → v0.6.21}/lib/net-locality/src/main.js +0 -0
  529. /package/framework/{v0.6.20 → v0.6.21}/lib/nunjucks-filters/README.md +0 -0
  530. /package/framework/{v0.6.20 → v0.6.21}/lib/nunjucks-filters/package.json +0 -0
  531. /package/framework/{v0.6.20 → v0.6.21}/lib/nunjucks-filters/src/main.js +0 -0
  532. /package/framework/{v0.6.20 → v0.6.21}/lib/nunjucks-resolver/package.json +0 -0
  533. /package/framework/{v0.6.20 → v0.6.21}/lib/nunjucks-resolver/src/main.js +0 -0
  534. /package/framework/{v0.6.20 → v0.6.21}/lib/proc.js +0 -0
  535. /package/framework/{v0.6.20 → v0.6.21}/lib/push/package.json +0 -0
  536. /package/framework/{v0.6.20 → v0.6.21}/lib/push/src/main.js +0 -0
  537. /package/framework/{v0.6.20 → v0.6.21}/lib/rate-limit/package.json +0 -0
  538. /package/framework/{v0.6.20 → v0.6.21}/lib/rate-limit/src/main.js +0 -0
  539. /package/framework/{v0.6.20 → v0.6.21}/lib/release-watch/package.json +0 -0
  540. /package/framework/{v0.6.20 → v0.6.21}/lib/release-watch/src/main.js +0 -0
  541. /package/framework/{v0.6.20 → v0.6.21}/lib/render-cache/package.json +0 -0
  542. /package/framework/{v0.6.20 → v0.6.21}/lib/render-cache/src/main.js +0 -0
  543. /package/framework/{v0.6.20 → v0.6.21}/lib/render-cache-store.js +0 -0
  544. /package/framework/{v0.6.20 → v0.6.21}/lib/routing/README.md +0 -0
  545. /package/framework/{v0.6.20 → v0.6.21}/lib/routing/build.json +0 -0
  546. /package/framework/{v0.6.20 → v0.6.21}/lib/routing/package.json +0 -0
  547. /package/framework/{v0.6.20 → v0.6.21}/lib/routing/src/radix.js +0 -0
  548. /package/framework/{v0.6.20 → v0.6.21}/lib/routing-introspect/package.json +0 -0
  549. /package/framework/{v0.6.20 → v0.6.21}/lib/routing-introspect/src/main.js +0 -0
  550. /package/framework/{v0.6.20 → v0.6.21}/lib/secrets/package.json +0 -0
  551. /package/framework/{v0.6.20 → v0.6.21}/lib/secrets/src/backends/env.js +0 -0
  552. /package/framework/{v0.6.20 → v0.6.21}/lib/secrets/src/backends/exec.js +0 -0
  553. /package/framework/{v0.6.20 → v0.6.21}/lib/secrets/src/backends/file.js +0 -0
  554. /package/framework/{v0.6.20 → v0.6.21}/lib/secrets/src/declaration.js +0 -0
  555. /package/framework/{v0.6.20 → v0.6.21}/lib/secrets/src/env-file.js +0 -0
  556. /package/framework/{v0.6.20 → v0.6.21}/lib/secrets/src/main.js +0 -0
  557. /package/framework/{v0.6.20 → v0.6.21}/lib/secrets/src/sources.js +0 -0
  558. /package/framework/{v0.6.20 → v0.6.21}/lib/session-store.js +0 -0
  559. /package/framework/{v0.6.20 → v0.6.21}/lib/shell.js +0 -0
  560. /package/framework/{v0.6.20 → v0.6.21}/lib/sqlite-driver.js +0 -0
  561. /package/framework/{v0.6.20 → v0.6.21}/lib/state.js +0 -0
  562. /package/framework/{v0.6.20 → v0.6.21}/lib/storage/package.json +0 -0
  563. /package/framework/{v0.6.20 → v0.6.21}/lib/storage/src/local-cas.js +0 -0
  564. /package/framework/{v0.6.20 → v0.6.21}/lib/storage/src/local-stream.js +0 -0
  565. /package/framework/{v0.6.20 → v0.6.21}/lib/storage/src/local.js +0 -0
  566. /package/framework/{v0.6.20 → v0.6.21}/lib/storage/src/main.js +0 -0
  567. /package/framework/{v0.6.20 → v0.6.21}/lib/storage/src/meta-store.js +0 -0
  568. /package/framework/{v0.6.20 → v0.6.21}/lib/storage/src/s3.js +0 -0
  569. /package/framework/{v0.6.20 → v0.6.21}/lib/storage/src/util.js +0 -0
  570. /package/framework/{v0.6.20 → v0.6.21}/lib/storage-store.js +0 -0
  571. /package/framework/{v0.6.20 → v0.6.21}/lib/swig-filters/README.md +0 -0
  572. /package/framework/{v0.6.20 → v0.6.21}/lib/swig-filters/package.json +0 -0
  573. /package/framework/{v0.6.20 → v0.6.21}/lib/swig-filters/src/main.js +0 -0
  574. /package/framework/{v0.6.20 → v0.6.21}/lib/swig-resolver/package.json +0 -0
  575. /package/framework/{v0.6.20 → v0.6.21}/lib/swig-resolver/src/main.js +0 -0
  576. /package/framework/{v0.6.20 → v0.6.21}/lib/template-loaders/package.json +0 -0
  577. /package/framework/{v0.6.20 → v0.6.21}/lib/template-loaders/src/loaders/http.js +0 -0
  578. /package/framework/{v0.6.20 → v0.6.21}/lib/template-loaders/src/loaders/memory.js +0 -0
  579. /package/framework/{v0.6.20 → v0.6.21}/lib/template-loaders/src/main.js +0 -0
  580. /package/framework/{v0.6.20 → v0.6.21}/lib/url/README.md +0 -0
  581. /package/framework/{v0.6.20 → v0.6.21}/lib/url/index.js +0 -0
  582. /package/framework/{v0.6.20 → v0.6.21}/lib/url/routing.json +0 -0
  583. /package/framework/{v0.6.20 → v0.6.21}/lib/uuid/package.json +0 -0
  584. /package/framework/{v0.6.20 → v0.6.21}/lib/uuid/src/main.js +0 -0
  585. /package/framework/{v0.6.20 → v0.6.21}/lib/validator.js +0 -0
  586. /package/framework/{v0.6.20 → v0.6.21}/lib/watcher/package.json +0 -0
  587. /package/framework/{v0.6.20 → v0.6.21}/lib/watcher/src/main.js +0 -0
  588. /package/framework/{v0.6.20 → v0.6.21}/lib/ws-framing/package.json +0 -0
  589. /package/framework/{v0.6.20 → v0.6.21}/lib/ws-framing/src/main.js +0 -0
  590. /package/framework/{v0.6.20 → v0.6.21}/lib/ws-query/package.json +0 -0
  591. /package/framework/{v0.6.20 → v0.6.21}/lib/ws-query/src/main.js +0 -0
  592. /package/framework/{v0.6.20 → v0.6.21}/lib/ws-session/package.json +0 -0
  593. /package/framework/{v0.6.20 → v0.6.21}/lib/ws-session/src/main.js +0 -0
package/CHANGELOG.md CHANGED
@@ -6,6 +6,12 @@ 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.21 - 2026-08-30
10
+ ### Fixed
11
+ * #B442 - `route.request()` now settles its callback exactly once on every outcome, and an outbound request that fails can no longer take the bundle down. The `ClientRequest` returned by `http(s).get` was discarded, so nothing could attach an `error` listener to it: a dial failure whose code is carved out of the process-level handler left the caller waiting forever with nothing logged, while a code that is not carved out (`ETIMEDOUT`, `EHOSTUNREACH`, `ENETUNREACH`) escalated to an uncaughtException and terminated the bundle. A response stream that died mid-body behaved the same way for a different reason: the error was assigned to a local and delivery waited on an `end` event that never arrives. All four exit paths now run through a single-settle latch, so the callback receives an ordinary error argument - the shape consuming code already handles - and can never be invoked twice. `options.timeout` is honoured for the first time: it reached `http(s).get` and Node emitted `timeout` without destroying the socket, and the request object was unreachable, so the option silently did nothing; on expiry the request is now destroyed and the callback settles with an Error carrying `code` set to `ETIMEDOUT`. A request sent without a callback logs a warning on a dial failure instead of throwing. The browser bundle carries `lib/routing`, so pickup is a bundle restart AND a re-bake.
12
+ * #B443 - merge() no longer throws when an id-keyed array carries a null element. typeof null is object, so a null element passed every typeof test and the next property access dereferenced it: seven shapes threw a TypeError across five distinct sites in the array merger - both collection entry guards null-checked only the source operand (a null FIRST target element threw inside the guard itself), both id-roster loops dereferenced every element (a null at any LATER index threw after the guard had passed), the override walk dereferenced both operands per step, and the per-element collection tests null-checked only the target side. Because every configuration overlay and collection merge travels through this lib, any such shape was a whole-merge kill. A null element now behaves like an element with no key: it matches nothing, blocks nothing and contributes nothing, and every previously-working shape is pinned byte-identical by the regression suite. This closes the read-side residual of the 0.6.20 fix, which had guarded the write side only. The browser bundle carries the array merger, so pickup is a bundle restart AND a re-bake.
13
+ * #B444 - on Safari, modifier chords work again in validated fields carrying a suppressed autocomplete: paste (Cmd+V), select-all, copy, cut and undo were ALL dead on any live-checked field with autocomplete set to off or false, and the failure was silent in every direction - nothing was inserted, no paste or beforeinput event was dispatched anywhere on the page, and typing kept working, so the page author had no signal pointing at the framework. The cause was one layer above the Safari typing interception: the form-level keydown proxy cancelled the NATIVE keydown unconditionally before re-dispatching its namespaced synthetic event, and preventDefault on a native keydown suppresses the browser editing command itself - so the interception handler deliberately letting chords through changed nothing. The proxy now dispatches first and cancels the native keydown only when the handler prevented the synthetic event, which the interception already does on the paths it re-implements and already does not on chords - typing interception, caret integrity and autofill suppression are unchanged, verified on a real WebKit engine alongside the restored chords. `triggerEvent` now returns the event it dispatched so a proxy can read that decision; existing callers ignore the return value. Chromium-family browsers were never affected (the interception is gated to real-Safari user agents). The browser bundle carries both changed files, so pickup is a bundle restart AND a re-bake.
14
+
9
15
  ## 0.6.20 - 2026-08-30
10
16
 
11
17
  > **Pickup: restart your bundles AND rebuild them** (`gina bundle:build`). The browser bundle changed —
package/README.md CHANGED
@@ -62,31 +62,29 @@ 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.20
65
+ ## What's in 0.6.21
66
66
 
67
67
  > **Restart your bundles AND rebuild them.** This release changes the browser
68
- > bundle: `gina.min.js` differs from `0.6.19` (`gina.min.css` and
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 `merge()`
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`.
68
+ > bundle: all three fixes below ship in `gina.min.js`. A restart alone updates
69
+ > the server half only each bundle bakes its own copy of the client assets,
70
+ > so a restart without `gina bundle:build` leaves the browser running the old
71
+ > code.
73
72
 
74
- > **No settings reset.** `0.6.20` is a patch — the `shortVersion` stays `0.6`, so
73
+ > **No settings reset.** `0.6.21` is a patch — the `shortVersion` stays `0.6`, so
75
74
  > your `~/.gina/0.6/settings.json` is untouched. (`0.6.0` was the reset.)
76
75
 
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
- - **Securityconcurrent 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 one — and the merge completes.
76
+ **Three availability and correctness fixes, two of them reported from the
77
+ field.** An outbound request that failed could hang its caller forever or take
78
+ the bundle down; `merge()` threw on a null array element; and on Safari, every
79
+ modifier chord paste, select-all, copy, cut, undo was dead in validated
80
+ fields that suppress autocomplete. **One change may require action**
81
+ `options.timeout` on an outbound request was accepted but inert, and now
82
+ actually aborts the request; details in the
83
+ [migration guide](https://gina.io/docs/migration).
84
+
85
+ - **Fixed — an outbound `route.request()` now settles its callback on every outcome (#B442).** The request object returned by `http(s).get` was discarded, so nothing could attach an `error` listener to it, and a failed outbound call took one of two paths — neither reaching your callback. When the failure code was one the process-level handler tolerates (`ECONNREFUSED`, `ECONNRESET`, `EPIPE`) the process survived and the callback was simply never invoked: no error, no log line, and in anything serialized (a worker at concurrency 1, a queue processor) a permanent stall with nothing to diagnose it by. When the code was not one of those (`ETIMEDOUT`, `EHOSTUNREACH`, `ENETUNREACH` — a peer that stops answering, a route that goes away) the unhandled `error` became an `uncaughtException` and the bundle was terminated. A response stream dying mid-body behaved like the first case for a different reason: the error was recorded and delivery waited on an `end` event a broken stream never emits. All exit paths now run through a single-settle latch, so the callback is invoked **exactly once** on every outcome and can never be invoked twice. **Action if you already set `options.timeout`:** it previously did nothing — it reached `http(s).get`, but Node only *emits* a `timeout` event and never destroys the socket, and the request object was unreachable. It is now honoured: on expiry the request is destroyed and the callback settles with an `Error` carrying `code === 'ETIMEDOUT'`. Re-check the value against your slowest legitimate response before upgrading, or remove the option to keep the previous unbounded behaviour. A request sent without a callback now warns on a dial failure instead of throwing.
86
+ - **Fixed`merge()` no longer throws on a null array element (#B443).** An id-keyed array carrying a `null` raised `TypeError: Cannot read properties of null` from deep inside the mergeon either operand, at any index. `typeof null` is `'object'`, so a null element passed every type test and the next property access dereferenced it; seven distinct shapes threw, across the collection entry guards, the id-roster loops, the override walk and the per-element tests. Since every configuration overlay travels through this code, any such shape was a whole-merge kill. A null element is now treated as an element with no key: it matches nothing, blocks nothing and contributes nothing. Shapes that previously worked are unchanged the regression suite pins them byte-identical. This closes the read side of the family whose write side shipped in `0.6.20`.
87
+ - **Fixed — Safari: modifier chords work again in validated fields with a suppressed autocomplete (#B444).** On Safari, a live-checked field carrying `autocomplete="off"` (or `"false"`) could not be pasted into and select-all, copy, cut and undo were equally dead. Nothing was inserted, **no `paste` or `beforeinput` event was dispatched anywhere on the page**, and typing kept working, so nothing pointed at the framework. The form-level keydown proxy was cancelling the native keydown before the Safari typing interception could decide anything, and `preventDefault` on a native keydown suppresses the browser's editing command itself. The proxy now defers that decision to the interception, which deliberately lets modifier chords run natively. Typing interception, caret integrity and autofill suppression on those fields are unchanged; Chromium-family browsers were never affected.
90
88
 
91
89
  ## Documentation
92
90
 
package/ROADMAP.md CHANGED
@@ -72,6 +72,7 @@ This roadmap covers planned features, architectural improvements, new connectors
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
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). |
75
+ | **Q4 2026** | `0.6.21` ✅ | **Fixed**: an outbound `route.request()` now settles its callback on every outcome — the request object was discarded, so nothing could attach an `error` listener, and a dial failure either never invoked the callback at all (a permanent stall for anything serialized, with nothing logged) or reached `uncaughtException` and terminated the bundle; a response stream dying mid-body waited on an `end` event it would never emit. `options.timeout` was accepted but inert — Node only emits a `timeout` event and never destroys the socket — and is now honoured, so a value set in the belief that it capped the call will begin aborting requests at that budget. **Fixed**: `merge()` no longer throws `TypeError: Cannot read properties of null` on an id-keyed array carrying a `null` element, on either operand at any index — the read-side counterpart of the write-side fix that shipped in `0.6.20`. **Fixed**: on Safari, modifier chords (paste, select-all, copy, cut, undo) work again in live-checked fields carrying `autocomplete="off"` — the form-level keydown proxy cancelled the native keydown before the typing interception could decide anything, and `preventDefault` on a native keydown suppresses the browser's editing command itself, so no `paste` event was dispatched anywhere; Chromium-family browsers were never affected. Restart **and** rebuild your bundles (the browser bundle changed — all three fixes ship in `gina.min.js`). |
75
76
  | **Q1 2027** | `0.6.x` | HTTP/2 priorities (blocked on Node scheduler hooks) · Beemaster admin + visual translation editor |
76
77
  | **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`) |
77
78
  | **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.21
@@ -2475,11 +2475,16 @@ function Merge() {
2475
2475
  && options[0] != null
2476
2476
  && typeof(options[0][keyComparison]) != 'undefined'
2477
2477
  && typeof(target[0]) == 'object'
2478
+ // #B443 - typeof passes for a null first element; mirror the
2479
+ // options-side check two lines above or the next line dereferences it
2480
+ && target[0] != null
2478
2481
  && typeof(target[0][keyComparison]) != 'undefined'
2479
2482
  ) {
2480
2483
 
2481
2484
  newTarget = (Array.isArray(target)) ? Array.from(target) : JSON.clone(target);
2482
2485
  for (var nt = 0, ntLen = newTarget.length; nt < ntLen; ++nt) {
2486
+ // #B443 - a null (or hole) at a later index has no key to contribute
2487
+ if (newTarget[nt] == null) { continue; }
2483
2488
  newTargetIds.push(newTarget[nt][keyComparison]);
2484
2489
  }
2485
2490
 
@@ -2489,6 +2494,10 @@ function Merge() {
2489
2494
  aLen = _options.length;
2490
2495
  for (var n = next || 0, nLen = target.length; n < nLen; ++n) {
2491
2496
 
2497
+ // #B443 - a null target element has no key: it can match nothing,
2498
+ // so it neither blocks nor contributes; skip the comparison slot
2499
+ if (target[n] == null) { continue; }
2500
+
2492
2501
  // if (newTargetIds.indexOf(target[n][keyComparison]) == -1) {
2493
2502
  // newTargetIds.push(target[n][keyComparison]);
2494
2503
 
@@ -2499,6 +2508,10 @@ function Merge() {
2499
2508
  label:
2500
2509
  for (a = a || 0; a < aLen; ++a) {
2501
2510
 
2511
+ // #B443 - same disposition for a null source element: no key,
2512
+ // nothing to push, advance the cursor past it
2513
+ if (_options[a] == null) { continue; }
2514
+
2502
2515
  if (_options[a][keyComparison] === target[n][keyComparison] ) {
2503
2516
 
2504
2517
  if (newTargetIds.indexOf(_options[a][keyComparison]) > -1) {
@@ -2582,6 +2595,9 @@ function Merge() {
2582
2595
  && options[0] != null
2583
2596
  && typeof(options[0][keyComparison]) != 'undefined'
2584
2597
  && typeof(target[0]) == 'object'
2598
+ // #B443 - typeof passes for a null first element; mirror the
2599
+ // options-side check two lines above or the next line dereferences it
2600
+ && target[0] != null
2585
2601
  && typeof(target[0][keyComparison]) != 'undefined'
2586
2602
  ) {
2587
2603
 
@@ -2592,11 +2608,17 @@ function Merge() {
2592
2608
  i = 0;
2593
2609
  a = 0; aLen = newTarget.length;
2594
2610
  for (; a < aLen; ++a) {
2611
+ // #B443 - a null (or hole) at a later index has no key to contribute
2612
+ if (newTarget[a] == null) { continue; }
2595
2613
  newTargetIds.push(newTarget[a][keyComparison]);
2596
2614
  }
2597
2615
  a = 0;
2598
2616
  for (; a < aLen; ++a) {
2599
2617
 
2618
+ // #B443 - a null slot on the rebuilt target has no key; both arms
2619
+ // of the comparison below dereference it
2620
+ if (newTarget[a] == null) { continue; }
2621
+
2600
2622
  end:
2601
2623
  for (var n = next || 0, nLen = _options.length; n < nLen; ++n) {
2602
2624
 
@@ -2710,6 +2732,7 @@ function Merge() {
2710
2732
  && !/null/i.test(target[a])
2711
2733
  && typeof (target[a][keyComparison]) != 'undefined'
2712
2734
  && typeof (options[a]) != 'undefined'
2735
+ && options[a] != null
2713
2736
  && typeof (options[a][keyComparison]) != 'undefined'
2714
2737
  && target[a][keyComparison] == options[a][keyComparison]
2715
2738
  ) {
@@ -2730,6 +2753,7 @@ function Merge() {
2730
2753
  && !/null/i.test(target[a])
2731
2754
  && typeof (target[a][localKeyComparison]) != 'undefined'
2732
2755
  && typeof (options[a]) != 'undefined'
2756
+ && options[a] != null
2733
2757
  && typeof (options[a][localKeyComparison]) != 'undefined'
2734
2758
  && target[a][localKeyComparison] == options[a][localKeyComparison]
2735
2759
  ) {
@@ -6982,13 +7006,27 @@ function Routing() {
6982
7006
  * request current url
6983
7007
  * Attention: You should first try without an authentification middleware
6984
7008
  *
7009
+ * The callback is settled EXACTLY ONCE, on every outcome: a successful response,
7010
+ * a dial failure (ECONNREFUSED / EHOSTUNREACH / ENETUNREACH ...), a response stream
7011
+ * that dies mid-body, or a timeout. Without a callback the request is fire-and-forget
7012
+ * and a dial failure is reported with `console.warn` instead of being thrown.
6985
7013
  *
6986
7014
  * @param {boolean} [ignoreWebRoot]
6987
7015
  * @param {object} [options] - see: https://nodejs.org/api/https.html#https_new_agent_options
7016
+ * @param {number} [options.timeout] - milliseconds; on expiry the request is destroyed
7017
+ * and the callback settles with an Error carrying `code === 'ETIMEDOUT'`
6988
7018
  * @param {object} [_this] - current context: only used when `promisify`is used
6989
7019
  *
6990
- * @callback {callback} [cb] - see: https://nodejs.org/api/https.html#https_new_agent_options
6991
- * @param {object} res
7020
+ * @callback {callback} [cb]
7021
+ * @param {Error|string|boolean} err - an Error for transport failures, a string for a
7022
+ * broken response stream, `false` on success
7023
+ * @param {object|string} [data] - the response body, parsed when it is JSON
7024
+ *
7025
+ * @example
7026
+ * route.request(false, { timeout: 5000 }, function (err, data) {
7027
+ * if (err) { return handle(err); }
7028
+ * use(data);
7029
+ * });
6992
7030
  */
6993
7031
  route.request = function(ignoreWebRoot, options) {
6994
7032
 
@@ -7023,6 +7061,17 @@ function Routing() {
7023
7061
  options.agent = false;
7024
7062
  }
7025
7063
  var agent = require(''+scheme);
7064
+ // #B442: every exit path settles the caller exactly once. Before this guard the
7065
+ // ClientRequest was discarded, so a dial failure had NO 'error' listener: a carved-out
7066
+ // code (e.g. ECONNREFUSED, see lib/proc.js) left the caller waiting forever with
7067
+ // nothing logged, and an uncarved one (ETIMEDOUT / EHOSTUNREACH / ENETUNREACH)
7068
+ // escalated to uncaughtException and took the bundle down via dismiss(pid,'SIGTERM').
7069
+ var settled = false;
7070
+ var settle = function (err, data) {
7071
+ if (settled) { return; }
7072
+ settled = true;
7073
+ cb(err, data);
7074
+ };
7026
7075
  var onAgentResponse = function(res) {
7027
7076
 
7028
7077
  var data = '', err = false;
@@ -7031,12 +7080,15 @@ function Routing() {
7031
7080
  data += chunk;
7032
7081
  });
7033
7082
  res.on('error', function (error) {
7034
- err = 'Failed to get mail content';
7083
+ // #B442: a response that dies mid-body never emits 'end', so assigning here
7084
+ // and waiting for 'end' to deliver meant the caller was never settled at all.
7085
+ err = 'route.request: response stream failed for ' + url;
7035
7086
  if (error && typeof(error.stack) != 'undefined' ) {
7036
- err += error.stack;
7087
+ err += '\n' + error.stack;
7037
7088
  } else if ( typeof(error) == 'string' ) {
7038
7089
  err += '\n' + error;
7039
7090
  }
7091
+ settle(err);
7040
7092
  });
7041
7093
  res.on('end', function () {
7042
7094
  if (/^\{/.test(data) ) {
@@ -7051,19 +7103,39 @@ function Routing() {
7051
7103
  }
7052
7104
  }
7053
7105
  if (err) {
7054
- cb(err);
7106
+ settle(err);
7055
7107
  return;
7056
7108
  }
7057
7109
 
7058
- cb(false, data);
7110
+ settle(false, data);
7059
7111
  return;
7060
7112
  });
7061
7113
  }
7114
+ var req = null;
7062
7115
  if (cb) {
7063
- agent.get(url, options, onAgentResponse);
7116
+ req = agent.get(url, options, onAgentResponse);
7117
+ // #B442: the dial-failure path. Without this the 'error' event has no listener.
7118
+ req.on('error', function (error) {
7119
+ settle(error);
7120
+ });
7121
+ // #B442: `options.timeout` reaches http(s).get and Node EMITS 'timeout' without
7122
+ // destroying the socket — and the request object used to be unreachable, so the
7123
+ // option looked like a workaround and did nothing. Honour it here.
7124
+ if ( options && typeof(options.timeout) != 'undefined' && options.timeout ) {
7125
+ req.on('timeout', function () {
7126
+ var e = new Error('route.request: timed out after ' + options.timeout + 'ms requesting ' + url);
7127
+ e.code = 'ETIMEDOUT';
7128
+ req.destroy(e);
7129
+ });
7130
+ }
7064
7131
  } else {
7065
7132
  // just throw the request without waiting/handling response
7066
- agent.get(url, options);
7133
+ req = agent.get(url, options);
7134
+ // #B442: nobody is waiting, but an unhandled 'error' here is still an
7135
+ // uncaughtException — which is how a fire-and-forget call could kill the bundle.
7136
+ req.on('error', function (error) {
7137
+ console.warn('[ ROUTING ] route.request: fire-and-forget request to ' + url + ' failed: ' + ( (error && error.message) ? error.message : error ));
7138
+ });
7067
7139
  }
7068
7140
  return;
7069
7141
 
@@ -7616,6 +7688,10 @@ function addListener(target, element, name, callback) {
7616
7688
  * @param {string} name - event ID
7617
7689
  * @param {object|array|string} args - details
7618
7690
  * @param {object} [proxiedEvent]
7691
+ * @returns {object|undefined} the dispatched event when a DOM element received
7692
+ * one - so a proxy can read the handler's decision (defaultPrevented) and
7693
+ * mirror it onto the native event it is proxying; undefined on the
7694
+ * customEvent (element-less) path
7619
7695
  */
7620
7696
  function triggerEvent (target, element, name, args, proxiedEvent) {
7621
7697
  if (typeof(element) != 'undefined' && element != null) {
@@ -7656,6 +7732,7 @@ function triggerEvent (target, element, name, args, proxiedEvent) {
7656
7732
  //console.log('dispatching ['+name+'] to ', element.id, isAttachedToDOM, evt.detail);
7657
7733
  element.dispatchEvent(evt)
7658
7734
  }
7735
+ return evt;
7659
7736
 
7660
7737
  } else if (document.createEventObject) { // non standard
7661
7738
 
@@ -7670,6 +7747,7 @@ function triggerEvent (target, element, name, args, proxiedEvent) {
7670
7747
  }
7671
7748
 
7672
7749
  element.fireEvent('on' + name, evt);
7750
+ return evt;
7673
7751
  }
7674
7752
 
7675
7753
  } else {
@@ -19289,8 +19367,21 @@ function ValidatorPlugin(rules, data, formId, culture) {
19289
19367
  _evt = 'keydown.'+$el.id
19290
19368
  }
19291
19369
  if (gina.events[_evt]) {
19292
- cancelEvent(event);
19293
- triggerEvent(gina, $el, _evt, event.detail, event);
19370
+ // #B444 - dispatch FIRST and let the namespaced handler decide:
19371
+ // the native keydown is cancelled only when that handler asked
19372
+ // for it (it prevents the synthetic event on the paths it
19373
+ // re-implements, and deliberately does not on modifier chords,
19374
+ // per the interception's own contract). Cancelling BEFORE the
19375
+ // dispatch suppressed the browser's own editing commands for
19376
+ // every chord - on a real-Safari UA that made paste, select-all,
19377
+ // copy, cut and undo all dead on any live-checked
19378
+ // autocomplete-suppressed field, with no event observable
19379
+ // anywhere (gh issue #67).
19380
+ // was: cancelEvent(event); triggerEvent(gina, $el, _evt, event.detail, event);
19381
+ var _syntheticEvt = triggerEvent(gina, $el, _evt, event.detail, event);
19382
+ if ( _syntheticEvt && _syntheticEvt.defaultPrevented ) {
19383
+ cancelEvent(event);
19384
+ }
19294
19385
  }
19295
19386
  };
19296
19387
  var keyupProxyHandler = function(event) {