gina 0.6.22 → 0.6.23

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 (599) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +18 -16
  3. package/ROADMAP.md +13 -0
  4. package/framework/v0.6.23/VERSION +1 -0
  5. package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/js/gina.js +22 -5
  6. package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/js/gina.min.js +249 -249
  7. package/framework/v0.6.23/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  8. package/framework/v0.6.23/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  9. package/framework/{v0.6.22 → v0.6.23}/core/controller/controller.js +38 -8
  10. package/framework/{v0.6.22 → v0.6.23}/core/controller/controller.render-nunjucks.js +6 -5
  11. package/framework/{v0.6.22 → v0.6.23}/core/controller/controller.render-swig.js +10 -6
  12. package/framework/v0.6.23/core/controller/inline-script.js +108 -0
  13. package/framework/{v0.6.22 → v0.6.23}/core/server.isaac.js +13 -0
  14. package/framework/{v0.6.22 → v0.6.23}/core/server.js +129 -1
  15. package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle/config/templates.json +3 -0
  16. package/framework/{v0.6.22 → v0.6.23}/core/template/conf/settings.json +63 -2
  17. package/framework/{v0.6.22 → v0.6.23}/core/template/conf/templates.json +1 -0
  18. package/framework/{v0.6.22 → v0.6.23}/lib/index.js +17 -0
  19. package/framework/{v0.6.22 → v0.6.23}/lib/merge/src/main.js +22 -5
  20. package/framework/v0.6.23/lib/security-headers-emitter/package.json +18 -0
  21. package/framework/v0.6.23/lib/security-headers-emitter/src/main.js +225 -0
  22. package/framework/v0.6.23/lib/sri/package.json +18 -0
  23. package/framework/v0.6.23/lib/sri/src/main.js +237 -0
  24. package/framework/{v0.6.22 → v0.6.23}/package.json +1 -1
  25. package/gna.js +4 -4
  26. package/llms.txt +2 -1
  27. package/package.json +3 -3
  28. package/schema/settings.json +47 -0
  29. package/types/index.d.ts +16 -0
  30. package/framework/v0.6.22/VERSION +0 -1
  31. package/framework/v0.6.22/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  32. package/framework/v0.6.22/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  33. /package/framework/{v0.6.22 → v0.6.23}/AUTHORS +0 -0
  34. /package/framework/{v0.6.22 → v0.6.23}/LICENSE +0 -0
  35. /package/framework/{v0.6.22 → v0.6.23}/core/asset/html/nolayout.html +0 -0
  36. /package/framework/{v0.6.22 → v0.6.23}/core/asset/html/static.html +0 -0
  37. /package/framework/{v0.6.22 → v0.6.23}/core/asset/img/android-chrome-192x192.png +0 -0
  38. /package/framework/{v0.6.22 → v0.6.23}/core/asset/img/android-chrome-512x512.png +0 -0
  39. /package/framework/{v0.6.22 → v0.6.23}/core/asset/img/apple-touch-icon.png +0 -0
  40. /package/framework/{v0.6.22 → v0.6.23}/core/asset/img/favicon-16x16.png +0 -0
  41. /package/framework/{v0.6.22 → v0.6.23}/core/asset/img/favicon-32x32.png +0 -0
  42. /package/framework/{v0.6.22 → v0.6.23}/core/asset/img/favicon.ico +0 -0
  43. /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/README.md +0 -0
  44. /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  45. /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  46. /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  47. /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  48. /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  49. /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  50. /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
  51. /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  52. /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  53. /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  54. /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
  55. /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
  56. /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
  57. /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  58. /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
  59. /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  60. /package/framework/{v0.6.22 → v0.6.23}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  61. /package/framework/{v0.6.22 → v0.6.23}/core/config.js +0 -0
  62. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/ai/index.js +0 -0
  63. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/ai/lib/connector.js +0 -0
  64. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/couchbase/index.js +0 -0
  65. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/couchbase/lib/connector.js +0 -0
  66. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  67. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  68. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/couchbase/lib/n1ql.js +0 -0
  69. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/couchbase/lib/session-store.js +0 -0
  70. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  71. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  72. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/couchbase/lib/storage-store.js +0 -0
  73. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/duckdb/index.js +0 -0
  74. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/duckdb/lib/connector.js +0 -0
  75. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/mongodb/index.js +0 -0
  76. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/mongodb/lib/connector.js +0 -0
  77. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/mongodb/lib/job-store.js +0 -0
  78. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
  79. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/mongodb/lib/session-store.js +0 -0
  80. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/mysql/index.js +0 -0
  81. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/mysql/lib/connector.js +0 -0
  82. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/param-redact.js +0 -0
  83. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/postgresql/index.js +0 -0
  84. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/postgresql/lib/connector.js +0 -0
  85. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/redis/index.js +0 -0
  86. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/redis/lib/connector.js +0 -0
  87. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/redis/lib/job-store.js +0 -0
  88. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/redis/lib/kv-store.js +0 -0
  89. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/redis/lib/render-cache-store.js +0 -0
  90. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/redis/lib/session-store.js +0 -0
  91. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/scylladb/index.js +0 -0
  92. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/scylladb/lib/connector.js +0 -0
  93. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/scylladb/lib/session-store.js +0 -0
  94. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/settle-once.js +0 -0
  95. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/sql-parser.js +0 -0
  96. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/sqlite/index.js +0 -0
  97. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/sqlite/lib/connector.js +0 -0
  98. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/sqlite/lib/job-store.js +0 -0
  99. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/sqlite/lib/kv-store.js +0 -0
  100. /package/framework/{v0.6.22 → v0.6.23}/core/connectors/sqlite/lib/session-store.js +0 -0
  101. /package/framework/{v0.6.22 → v0.6.23}/core/content.encoding +0 -0
  102. /package/framework/{v0.6.22 → v0.6.23}/core/controller/controller.framework.js +0 -0
  103. /package/framework/{v0.6.22 → v0.6.23}/core/controller/controller.render-json.js +0 -0
  104. /package/framework/{v0.6.22 → v0.6.23}/core/controller/controller.render-nunjucks-async.js +0 -0
  105. /package/framework/{v0.6.22 → v0.6.23}/core/controller/controller.render-stream.js +0 -0
  106. /package/framework/{v0.6.22 → v0.6.23}/core/controller/controller.render-swig-async.js +0 -0
  107. /package/framework/{v0.6.22 → v0.6.23}/core/controller/controller.render-v1.js +0 -0
  108. /package/framework/{v0.6.22 → v0.6.23}/core/controller/index.js +0 -0
  109. /package/framework/{v0.6.22 → v0.6.23}/core/controller/inspector-window-emit.js +0 -0
  110. /package/framework/{v0.6.22 → v0.6.23}/core/controller/release-banner.js +0 -0
  111. /package/framework/{v0.6.22 → v0.6.23}/core/dev/index.js +0 -0
  112. /package/framework/{v0.6.22 → v0.6.23}/core/dev/lib/class.js +0 -0
  113. /package/framework/{v0.6.22 → v0.6.23}/core/dev/lib/factory.js +0 -0
  114. /package/framework/{v0.6.22 → v0.6.23}/core/dev/lib/tools.js +0 -0
  115. /package/framework/{v0.6.22 → v0.6.23}/core/gna.js +0 -0
  116. /package/framework/{v0.6.22 → v0.6.23}/core/locales/README.md +0 -0
  117. /package/framework/{v0.6.22 → v0.6.23}/core/locales/currency.json +0 -0
  118. /package/framework/{v0.6.22 → v0.6.23}/core/locales/dist/language/en.json +0 -0
  119. /package/framework/{v0.6.22 → v0.6.23}/core/locales/dist/language/fr.json +0 -0
  120. /package/framework/{v0.6.22 → v0.6.23}/core/locales/dist/region/en.json +0 -0
  121. /package/framework/{v0.6.22 → v0.6.23}/core/locales/dist/region/fr.json +0 -0
  122. /package/framework/{v0.6.22 → v0.6.23}/core/locales/index.js +0 -0
  123. /package/framework/{v0.6.22 → v0.6.23}/core/mime.types +0 -0
  124. /package/framework/{v0.6.22 → v0.6.23}/core/model/entity.js +0 -0
  125. /package/framework/{v0.6.22 → v0.6.23}/core/model/index.js +0 -0
  126. /package/framework/{v0.6.22 → v0.6.23}/core/model/template/entityFactory.js +0 -0
  127. /package/framework/{v0.6.22 → v0.6.23}/core/model/template/index.js +0 -0
  128. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/README.md +0 -0
  129. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/index.js +0 -0
  130. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/csrf/README.md +0 -0
  131. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/csrf/package.json +0 -0
  132. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/csrf/src/main.js +0 -0
  133. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/README.md +0 -0
  134. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/coep/README.md +0 -0
  135. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/coep/package.json +0 -0
  136. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
  137. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/coop/README.md +0 -0
  138. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/coop/package.json +0 -0
  139. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
  140. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/corp/README.md +0 -0
  141. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/corp/package.json +0 -0
  142. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
  143. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/csp/README.md +0 -0
  144. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/csp/package.json +0 -0
  145. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
  146. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
  147. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
  148. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
  149. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/hsts/README.md +0 -0
  150. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/hsts/package.json +0 -0
  151. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
  152. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
  153. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
  154. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
  155. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/package.json +0 -0
  156. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
  157. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
  158. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
  159. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/src/main.js +0 -0
  160. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
  161. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
  162. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
  163. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
  164. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
  165. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
  166. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
  167. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
  168. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
  169. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
  170. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
  171. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
  172. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
  173. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
  174. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
  175. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
  176. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
  177. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
  178. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/session/README.md +0 -0
  179. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/session/package.json +0 -0
  180. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/session/src/main.js +0 -0
  181. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/storage/README.md +0 -0
  182. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/storage/build.json +0 -0
  183. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/storage/package.json +0 -0
  184. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/storage/src/main.js +0 -0
  185. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/validator/README.md +0 -0
  186. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/validator/build.json +0 -0
  187. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/validator/package.json +0 -0
  188. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/validator/src/form-validator.js +0 -0
  189. /package/framework/{v0.6.22 → v0.6.23}/core/plugins/lib/validator/src/main.js +0 -0
  190. /package/framework/{v0.6.22 → v0.6.23}/core/router.js +0 -0
  191. /package/framework/{v0.6.22 → v0.6.23}/core/server.express.js +0 -0
  192. /package/framework/{v0.6.22 → v0.6.23}/core/status.codes +0 -0
  193. /package/framework/{v0.6.22 → v0.6.23}/core/template/_gitignore +0 -0
  194. /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle/config/app.json +0 -0
  195. /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  196. /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle/config/routing.json +0 -0
  197. /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle/config/settings.json +0 -0
  198. /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  199. /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  200. /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  201. /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  202. /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  203. /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle/index.js +0 -0
  204. /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle/locales/en.json +0 -0
  205. /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  206. /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  207. /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  208. /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  209. /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  210. /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_public/js/components/x-checklist.js +0 -0
  211. /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  212. /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
  213. /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_public/readme.md +0 -0
  214. /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_public/sw.js +0 -0
  215. /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  216. /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  217. /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  218. /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  219. /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_templates/html/includes/x-checklist.html +0 -0
  220. /package/framework/{v0.6.22 → v0.6.23}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  221. /package/framework/{v0.6.22 → v0.6.23}/core/template/command/gina.bat.tpl +0 -0
  222. /package/framework/{v0.6.22 → v0.6.23}/core/template/command/gina.tpl +0 -0
  223. /package/framework/{v0.6.22 → v0.6.23}/core/template/conf/env.json +0 -0
  224. /package/framework/{v0.6.22 → v0.6.23}/core/template/conf/manifest.json +0 -0
  225. /package/framework/{v0.6.22 → v0.6.23}/core/template/conf/package.json +0 -0
  226. /package/framework/{v0.6.22 → v0.6.23}/core/template/conf/statics.json +0 -0
  227. /package/framework/{v0.6.22 → v0.6.23}/core/template/error/client/json/401.json +0 -0
  228. /package/framework/{v0.6.22 → v0.6.23}/core/template/error/client/json/403.json +0 -0
  229. /package/framework/{v0.6.22 → v0.6.23}/core/template/error/client/json/404.json +0 -0
  230. /package/framework/{v0.6.22 → v0.6.23}/core/template/error/server/html/50x.html +0 -0
  231. /package/framework/{v0.6.22 → v0.6.23}/core/template/error/server/json/500.json +0 -0
  232. /package/framework/{v0.6.22 → v0.6.23}/core/template/error/server/json/503.json +0 -0
  233. /package/framework/{v0.6.22 → v0.6.23}/core/template/extensions/logger/config.json +0 -0
  234. /package/framework/{v0.6.22 → v0.6.23}/helpers/console.js +0 -0
  235. /package/framework/{v0.6.22 → v0.6.23}/helpers/context.js +0 -0
  236. /package/framework/{v0.6.22 → v0.6.23}/helpers/data/LICENSE +0 -0
  237. /package/framework/{v0.6.22 → v0.6.23}/helpers/data/README.md +0 -0
  238. /package/framework/{v0.6.22 → v0.6.23}/helpers/data/package.json +0 -0
  239. /package/framework/{v0.6.22 → v0.6.23}/helpers/data/src/main.js +0 -0
  240. /package/framework/{v0.6.22 → v0.6.23}/helpers/dateFormat.js +0 -0
  241. /package/framework/{v0.6.22 → v0.6.23}/helpers/index.js +0 -0
  242. /package/framework/{v0.6.22 → v0.6.23}/helpers/json/LICENSE +0 -0
  243. /package/framework/{v0.6.22 → v0.6.23}/helpers/json/README.md +0 -0
  244. /package/framework/{v0.6.22 → v0.6.23}/helpers/json/package.json +0 -0
  245. /package/framework/{v0.6.22 → v0.6.23}/helpers/json/src/main.js +0 -0
  246. /package/framework/{v0.6.22 → v0.6.23}/helpers/path.js +0 -0
  247. /package/framework/{v0.6.22 → v0.6.23}/helpers/plugins/README.md +0 -0
  248. /package/framework/{v0.6.22 → v0.6.23}/helpers/plugins/package.json +0 -0
  249. /package/framework/{v0.6.22 → v0.6.23}/helpers/plugins/src/api-error.js +0 -0
  250. /package/framework/{v0.6.22 → v0.6.23}/helpers/plugins/src/main.js +0 -0
  251. /package/framework/{v0.6.22 → v0.6.23}/helpers/prototypes.js +0 -0
  252. /package/framework/{v0.6.22 → v0.6.23}/helpers/task.js +0 -0
  253. /package/framework/{v0.6.22 → v0.6.23}/helpers/text.js +0 -0
  254. /package/framework/{v0.6.22 → v0.6.23}/lib/admin/package.json +0 -0
  255. /package/framework/{v0.6.22 → v0.6.23}/lib/admin/src/main.js +0 -0
  256. /package/framework/{v0.6.22 → v0.6.23}/lib/archiver/README.md +0 -0
  257. /package/framework/{v0.6.22 → v0.6.23}/lib/archiver/build.json +0 -0
  258. /package/framework/{v0.6.22 → v0.6.23}/lib/archiver/package.json +0 -0
  259. /package/framework/{v0.6.22 → v0.6.23}/lib/archiver/src/dep/jszip.min.js +0 -0
  260. /package/framework/{v0.6.22 → v0.6.23}/lib/archiver/src/main.js +0 -0
  261. /package/framework/{v0.6.22 → v0.6.23}/lib/async/package.json +0 -0
  262. /package/framework/{v0.6.22 → v0.6.23}/lib/async/src/main.js +0 -0
  263. /package/framework/{v0.6.22 → v0.6.23}/lib/audit/package.json +0 -0
  264. /package/framework/{v0.6.22 → v0.6.23}/lib/audit/src/main.js +0 -0
  265. /package/framework/{v0.6.22 → v0.6.23}/lib/audit-store.js +0 -0
  266. /package/framework/{v0.6.22 → v0.6.23}/lib/authn/package.json +0 -0
  267. /package/framework/{v0.6.22 → v0.6.23}/lib/authn/src/lockout.js +0 -0
  268. /package/framework/{v0.6.22 → v0.6.23}/lib/authn/src/main.js +0 -0
  269. /package/framework/{v0.6.22 → v0.6.23}/lib/authn/src/totp.js +0 -0
  270. /package/framework/{v0.6.22 → v0.6.23}/lib/authz-gate/package.json +0 -0
  271. /package/framework/{v0.6.22 → v0.6.23}/lib/authz-gate/src/main.js +0 -0
  272. /package/framework/{v0.6.22 → v0.6.23}/lib/cache/README.md +0 -0
  273. /package/framework/{v0.6.22 → v0.6.23}/lib/cache/build.json +0 -0
  274. /package/framework/{v0.6.22 → v0.6.23}/lib/cache/package.json +0 -0
  275. /package/framework/{v0.6.22 → v0.6.23}/lib/cache/src/main.js +0 -0
  276. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/aliases.json +0 -0
  277. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/audit/arguments.json +0 -0
  278. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/audit/help.txt +0 -0
  279. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/audit/verify.js +0 -0
  280. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/add.js +0 -0
  281. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/arguments.json +0 -0
  282. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/build.js +0 -0
  283. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/copy.js +0 -0
  284. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/cp.js +0 -0
  285. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/help.js +0 -0
  286. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/help.txt +0 -0
  287. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
  288. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/list.js +0 -0
  289. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/man.js +0 -0
  290. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/mcp-start.js +0 -0
  291. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/mcp.js +0 -0
  292. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/oas.js +0 -0
  293. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/openapi.js +0 -0
  294. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/remove.js +0 -0
  295. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/rename.js +0 -0
  296. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/restart.js +0 -0
  297. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/rm.js +0 -0
  298. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/start.js +0 -0
  299. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/status.js +0 -0
  300. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/stop.js +0 -0
  301. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/bundle/types.js +0 -0
  302. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/cache/arguments.json +0 -0
  303. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/cache/clear.js +0 -0
  304. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/cache/help.txt +0 -0
  305. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/cache/stats.js +0 -0
  306. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/connector/add.js +0 -0
  307. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/connector/arguments.json +0 -0
  308. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/connector/help.js +0 -0
  309. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/connector/help.txt +0 -0
  310. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/connector/infer.js +0 -0
  311. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/connector/list.js +0 -0
  312. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/connector/migrate.js +0 -0
  313. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/connector/models.js +0 -0
  314. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/connector/remove.js +0 -0
  315. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/connector/rm.js +0 -0
  316. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/connector/test.js +0 -0
  317. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/container/arguments.json +0 -0
  318. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/container/help.js +0 -0
  319. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/container/help.txt +0 -0
  320. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/container/man.js +0 -0
  321. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/container/ps.js +0 -0
  322. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/container/stop.js +0 -0
  323. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/controller/add.js +0 -0
  324. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/controller/arguments.json +0 -0
  325. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/controller/help.txt +0 -0
  326. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/controller/inc/args.js +0 -0
  327. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/controller/inc/namespace.js +0 -0
  328. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/controller/inc/reference-rewrite.js +0 -0
  329. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/controller/inc/reference-scan.js +0 -0
  330. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/controller/inc/scaffold.js +0 -0
  331. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/controller/remove.js +0 -0
  332. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/controller/rename.js +0 -0
  333. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/controller/rm.js +0 -0
  334. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/env/add.js +0 -0
  335. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/env/get.js +0 -0
  336. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/env/help.js +0 -0
  337. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/env/help.txt +0 -0
  338. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/env/link-dev.js +0 -0
  339. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/env/list.js +0 -0
  340. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/env/remove.js +0 -0
  341. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/env/rm.js +0 -0
  342. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/env/set.js +0 -0
  343. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/env/unset.js +0 -0
  344. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/env/use.js +0 -0
  345. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/add.js +0 -0
  346. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/arguments.json +0 -0
  347. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/build.js +0 -0
  348. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/dot.js +0 -0
  349. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/get.js +0 -0
  350. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/help.js +0 -0
  351. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/help.txt +0 -0
  352. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/init.js +0 -0
  353. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/link-node-modules.js +0 -0
  354. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/link.js +0 -0
  355. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/list.js +0 -0
  356. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/man.js +0 -0
  357. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/msg.json +0 -0
  358. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/open.js +0 -0
  359. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/remove.js +0 -0
  360. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/reset.js +0 -0
  361. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/restart.js +0 -0
  362. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/set.js +0 -0
  363. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/start.js +0 -0
  364. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/status.js +0 -0
  365. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/stop.js +0 -0
  366. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/tail.js +0 -0
  367. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/update.js +0 -0
  368. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/framework/version.js +0 -0
  369. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/gina-dev.1.md +0 -0
  370. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/gina-framework.1.md +0 -0
  371. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/gina.1.md +0 -0
  372. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/helper.js +0 -0
  373. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/i18n/add.js +0 -0
  374. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/i18n/arguments.json +0 -0
  375. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/i18n/export.js +0 -0
  376. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/i18n/help.js +0 -0
  377. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/i18n/help.txt +0 -0
  378. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/i18n/import.js +0 -0
  379. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/i18n/scan.js +0 -0
  380. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/image/_host.js +0 -0
  381. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/image/arguments.json +0 -0
  382. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/image/build.js +0 -0
  383. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/image/help.js +0 -0
  384. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/image/help.txt +0 -0
  385. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/image/list.js +0 -0
  386. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/image/man.js +0 -0
  387. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/image/rm.js +0 -0
  388. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/image/run.js +0 -0
  389. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/index.js +0 -0
  390. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/inspector/help.js +0 -0
  391. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/inspector/help.txt +0 -0
  392. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/inspector/open.js +0 -0
  393. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/man-render.js +0 -0
  394. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/minion/arguments.json +0 -0
  395. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/minion/help.js +0 -0
  396. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/minion/help.txt +0 -0
  397. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/minion/kill.js +0 -0
  398. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/minion/list.js +0 -0
  399. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/msg.json +0 -0
  400. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/port/help.js +0 -0
  401. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/port/help.txt +0 -0
  402. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/port/inc/scan.js +0 -0
  403. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/port/list.js +0 -0
  404. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/port/reset.js +0 -0
  405. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/port/set.js +0 -0
  406. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/add.js +0 -0
  407. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/arguments.json +0 -0
  408. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/backup.js +0 -0
  409. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/build.js +0 -0
  410. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/help.js +0 -0
  411. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/help.txt +0 -0
  412. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/import.js +0 -0
  413. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/list.js +0 -0
  414. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/man.js +0 -0
  415. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/move.js +0 -0
  416. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/remove.js +0 -0
  417. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/rename.js +0 -0
  418. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/restart.js +0 -0
  419. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/restore.js +0 -0
  420. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/rm.js +0 -0
  421. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/start.js +0 -0
  422. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/status.js +0 -0
  423. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/project/stop.js +0 -0
  424. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/protocol/arguments.json +0 -0
  425. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/protocol/help.js +0 -0
  426. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/protocol/help.txt +0 -0
  427. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/protocol/list.js +0 -0
  428. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/protocol/remove.js +0 -0
  429. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/protocol/set.js +0 -0
  430. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/scope/add.js +0 -0
  431. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/scope/help.js +0 -0
  432. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/scope/help.txt +0 -0
  433. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/scope/link-local.js +0 -0
  434. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/scope/link-production.js +0 -0
  435. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/scope/list.js +0 -0
  436. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/scope/remove.js +0 -0
  437. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/scope/rm.js +0 -0
  438. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/scope/use.js +0 -0
  439. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/secrets/arguments.json +0 -0
  440. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/secrets/check.js +0 -0
  441. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/secrets/help.js +0 -0
  442. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/secrets/help.txt +0 -0
  443. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/secrets/scan.js +0 -0
  444. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/service/help.js +0 -0
  445. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/service/help.txt +0 -0
  446. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/service/list.js +0 -0
  447. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/service/man.js +0 -0
  448. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/service/start.js +0 -0
  449. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/storage/arguments.json +0 -0
  450. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/storage/gc.js +0 -0
  451. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/storage/help.txt +0 -0
  452. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/storage/stats.js +0 -0
  453. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/storage/verify.js +0 -0
  454. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd/view/add.js +0 -0
  455. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd-status-format/package.json +0 -0
  456. /package/framework/{v0.6.22 → v0.6.23}/lib/cmd-status-format/src/main.js +0 -0
  457. /package/framework/{v0.6.22 → v0.6.23}/lib/collection/README.md +0 -0
  458. /package/framework/{v0.6.22 → v0.6.23}/lib/collection/build.json +0 -0
  459. /package/framework/{v0.6.22 → v0.6.23}/lib/collection/package.json +0 -0
  460. /package/framework/{v0.6.22 → v0.6.23}/lib/collection/src/main.js +0 -0
  461. /package/framework/{v0.6.22 → v0.6.23}/lib/config.js +0 -0
  462. /package/framework/{v0.6.22 → v0.6.23}/lib/connector-config/package.json +0 -0
  463. /package/framework/{v0.6.22 → v0.6.23}/lib/connector-config/src/main.js +0 -0
  464. /package/framework/{v0.6.22 → v0.6.23}/lib/connector-error/package.json +0 -0
  465. /package/framework/{v0.6.22 → v0.6.23}/lib/connector-error/src/main.js +0 -0
  466. /package/framework/{v0.6.22 → v0.6.23}/lib/connector-registry/package.json +0 -0
  467. /package/framework/{v0.6.22 → v0.6.23}/lib/connector-registry/src/main.js +0 -0
  468. /package/framework/{v0.6.22 → v0.6.23}/lib/cron/README.md +0 -0
  469. /package/framework/{v0.6.22 → v0.6.23}/lib/cron/package.json +0 -0
  470. /package/framework/{v0.6.22 → v0.6.23}/lib/cron/src/main.js +0 -0
  471. /package/framework/{v0.6.22 → v0.6.23}/lib/domain/LICENSE +0 -0
  472. /package/framework/{v0.6.22 → v0.6.23}/lib/domain/README.md +0 -0
  473. /package/framework/{v0.6.22 → v0.6.23}/lib/domain/package.json +0 -0
  474. /package/framework/{v0.6.22 → v0.6.23}/lib/domain/src/main.js +0 -0
  475. /package/framework/{v0.6.22 → v0.6.23}/lib/dto/package.json +0 -0
  476. /package/framework/{v0.6.22 → v0.6.23}/lib/dto/src/main.js +0 -0
  477. /package/framework/{v0.6.22 → v0.6.23}/lib/dto-pipe/package.json +0 -0
  478. /package/framework/{v0.6.22 → v0.6.23}/lib/dto-pipe/src/main.js +0 -0
  479. /package/framework/{v0.6.22 → v0.6.23}/lib/dto-types/package.json +0 -0
  480. /package/framework/{v0.6.22 → v0.6.23}/lib/dto-types/src/main.js +0 -0
  481. /package/framework/{v0.6.22 → v0.6.23}/lib/generator/index.js +0 -0
  482. /package/framework/{v0.6.22 → v0.6.23}/lib/i18n/package.json +0 -0
  483. /package/framework/{v0.6.22 → v0.6.23}/lib/i18n/src/main.js +0 -0
  484. /package/framework/{v0.6.22 → v0.6.23}/lib/image-build/package.json +0 -0
  485. /package/framework/{v0.6.22 → v0.6.23}/lib/image-build/src/main.js +0 -0
  486. /package/framework/{v0.6.22 → v0.6.23}/lib/inherits/LICENSE +0 -0
  487. /package/framework/{v0.6.22 → v0.6.23}/lib/inherits/README.md +0 -0
  488. /package/framework/{v0.6.22 → v0.6.23}/lib/inherits/package.json +0 -0
  489. /package/framework/{v0.6.22 → v0.6.23}/lib/inherits/src/main.js +0 -0
  490. /package/framework/{v0.6.22 → v0.6.23}/lib/inspector-events/package.json +0 -0
  491. /package/framework/{v0.6.22 → v0.6.23}/lib/inspector-events/src/main.js +0 -0
  492. /package/framework/{v0.6.22 → v0.6.23}/lib/inspector-redact/package.json +0 -0
  493. /package/framework/{v0.6.22 → v0.6.23}/lib/inspector-redact/src/main.js +0 -0
  494. /package/framework/{v0.6.22 → v0.6.23}/lib/instrument/package.json +0 -0
  495. /package/framework/{v0.6.22 → v0.6.23}/lib/instrument/src/main.js +0 -0
  496. /package/framework/{v0.6.22 → v0.6.23}/lib/job/package.json +0 -0
  497. /package/framework/{v0.6.22 → v0.6.23}/lib/job/src/main.js +0 -0
  498. /package/framework/{v0.6.22 → v0.6.23}/lib/job-store.js +0 -0
  499. /package/framework/{v0.6.22 → v0.6.23}/lib/json-config-header/package.json +0 -0
  500. /package/framework/{v0.6.22 → v0.6.23}/lib/json-config-header/src/main.js +0 -0
  501. /package/framework/{v0.6.22 → v0.6.23}/lib/kv/package.json +0 -0
  502. /package/framework/{v0.6.22 → v0.6.23}/lib/kv/src/main.js +0 -0
  503. /package/framework/{v0.6.22 → v0.6.23}/lib/kv-store.js +0 -0
  504. /package/framework/{v0.6.22 → v0.6.23}/lib/loading-state/package.json +0 -0
  505. /package/framework/{v0.6.22 → v0.6.23}/lib/loading-state/src/main.js +0 -0
  506. /package/framework/{v0.6.22 → v0.6.23}/lib/logger/README.md +0 -0
  507. /package/framework/{v0.6.22 → v0.6.23}/lib/logger/package.json +0 -0
  508. /package/framework/{v0.6.22 → v0.6.23}/lib/logger/src/containers/default/index.js +0 -0
  509. /package/framework/{v0.6.22 → v0.6.23}/lib/logger/src/containers/file/index.js +0 -0
  510. /package/framework/{v0.6.22 → v0.6.23}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  511. /package/framework/{v0.6.22 → v0.6.23}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  512. /package/framework/{v0.6.22 → v0.6.23}/lib/logger/src/containers/mq/index.js +0 -0
  513. /package/framework/{v0.6.22 → v0.6.23}/lib/logger/src/containers/mq/listener.js +0 -0
  514. /package/framework/{v0.6.22 → v0.6.23}/lib/logger/src/containers/mq/speaker.js +0 -0
  515. /package/framework/{v0.6.22 → v0.6.23}/lib/logger/src/helper.js +0 -0
  516. /package/framework/{v0.6.22 → v0.6.23}/lib/logger/src/main.js +0 -0
  517. /package/framework/{v0.6.22 → v0.6.23}/lib/logger/src/redact.js +0 -0
  518. /package/framework/{v0.6.22 → v0.6.23}/lib/maintenance/package.json +0 -0
  519. /package/framework/{v0.6.22 → v0.6.23}/lib/maintenance/src/main.js +0 -0
  520. /package/framework/{v0.6.22 → v0.6.23}/lib/math/index.js +0 -0
  521. /package/framework/{v0.6.22 → v0.6.23}/lib/mcp-dispatch/package.json +0 -0
  522. /package/framework/{v0.6.22 → v0.6.23}/lib/mcp-dispatch/src/main.js +0 -0
  523. /package/framework/{v0.6.22 → v0.6.23}/lib/mcp-http/package.json +0 -0
  524. /package/framework/{v0.6.22 → v0.6.23}/lib/mcp-http/src/main.js +0 -0
  525. /package/framework/{v0.6.22 → v0.6.23}/lib/mcp-server/package.json +0 -0
  526. /package/framework/{v0.6.22 → v0.6.23}/lib/mcp-server/src/main.js +0 -0
  527. /package/framework/{v0.6.22 → v0.6.23}/lib/merge/README.md +0 -0
  528. /package/framework/{v0.6.22 → v0.6.23}/lib/merge/package.json +0 -0
  529. /package/framework/{v0.6.22 → v0.6.23}/lib/metrics/package.json +0 -0
  530. /package/framework/{v0.6.22 → v0.6.23}/lib/metrics/src/main.js +0 -0
  531. /package/framework/{v0.6.22 → v0.6.23}/lib/model.js +0 -0
  532. /package/framework/{v0.6.22 → v0.6.23}/lib/net-locality/package.json +0 -0
  533. /package/framework/{v0.6.22 → v0.6.23}/lib/net-locality/src/main.js +0 -0
  534. /package/framework/{v0.6.22 → v0.6.23}/lib/nunjucks-filters/README.md +0 -0
  535. /package/framework/{v0.6.22 → v0.6.23}/lib/nunjucks-filters/package.json +0 -0
  536. /package/framework/{v0.6.22 → v0.6.23}/lib/nunjucks-filters/src/main.js +0 -0
  537. /package/framework/{v0.6.22 → v0.6.23}/lib/nunjucks-resolver/package.json +0 -0
  538. /package/framework/{v0.6.22 → v0.6.23}/lib/nunjucks-resolver/src/main.js +0 -0
  539. /package/framework/{v0.6.22 → v0.6.23}/lib/proc.js +0 -0
  540. /package/framework/{v0.6.22 → v0.6.23}/lib/push/package.json +0 -0
  541. /package/framework/{v0.6.22 → v0.6.23}/lib/push/src/main.js +0 -0
  542. /package/framework/{v0.6.22 → v0.6.23}/lib/rate-limit/package.json +0 -0
  543. /package/framework/{v0.6.22 → v0.6.23}/lib/rate-limit/src/main.js +0 -0
  544. /package/framework/{v0.6.22 → v0.6.23}/lib/release-watch/package.json +0 -0
  545. /package/framework/{v0.6.22 → v0.6.23}/lib/release-watch/src/main.js +0 -0
  546. /package/framework/{v0.6.22 → v0.6.23}/lib/render-cache/package.json +0 -0
  547. /package/framework/{v0.6.22 → v0.6.23}/lib/render-cache/src/main.js +0 -0
  548. /package/framework/{v0.6.22 → v0.6.23}/lib/render-cache-store.js +0 -0
  549. /package/framework/{v0.6.22 → v0.6.23}/lib/routing/README.md +0 -0
  550. /package/framework/{v0.6.22 → v0.6.23}/lib/routing/build.json +0 -0
  551. /package/framework/{v0.6.22 → v0.6.23}/lib/routing/package.json +0 -0
  552. /package/framework/{v0.6.22 → v0.6.23}/lib/routing/src/main.js +0 -0
  553. /package/framework/{v0.6.22 → v0.6.23}/lib/routing/src/radix.js +0 -0
  554. /package/framework/{v0.6.22 → v0.6.23}/lib/routing-introspect/package.json +0 -0
  555. /package/framework/{v0.6.22 → v0.6.23}/lib/routing-introspect/src/main.js +0 -0
  556. /package/framework/{v0.6.22 → v0.6.23}/lib/secrets/package.json +0 -0
  557. /package/framework/{v0.6.22 → v0.6.23}/lib/secrets/src/backends/env.js +0 -0
  558. /package/framework/{v0.6.22 → v0.6.23}/lib/secrets/src/backends/exec.js +0 -0
  559. /package/framework/{v0.6.22 → v0.6.23}/lib/secrets/src/backends/file.js +0 -0
  560. /package/framework/{v0.6.22 → v0.6.23}/lib/secrets/src/declaration.js +0 -0
  561. /package/framework/{v0.6.22 → v0.6.23}/lib/secrets/src/env-file.js +0 -0
  562. /package/framework/{v0.6.22 → v0.6.23}/lib/secrets/src/main.js +0 -0
  563. /package/framework/{v0.6.22 → v0.6.23}/lib/secrets/src/sources.js +0 -0
  564. /package/framework/{v0.6.22 → v0.6.23}/lib/session-store.js +0 -0
  565. /package/framework/{v0.6.22 → v0.6.23}/lib/shell.js +0 -0
  566. /package/framework/{v0.6.22 → v0.6.23}/lib/sqlite-driver.js +0 -0
  567. /package/framework/{v0.6.22 → v0.6.23}/lib/state.js +0 -0
  568. /package/framework/{v0.6.22 → v0.6.23}/lib/storage/package.json +0 -0
  569. /package/framework/{v0.6.22 → v0.6.23}/lib/storage/src/local-cas.js +0 -0
  570. /package/framework/{v0.6.22 → v0.6.23}/lib/storage/src/local-stream.js +0 -0
  571. /package/framework/{v0.6.22 → v0.6.23}/lib/storage/src/local.js +0 -0
  572. /package/framework/{v0.6.22 → v0.6.23}/lib/storage/src/main.js +0 -0
  573. /package/framework/{v0.6.22 → v0.6.23}/lib/storage/src/meta-store.js +0 -0
  574. /package/framework/{v0.6.22 → v0.6.23}/lib/storage/src/s3.js +0 -0
  575. /package/framework/{v0.6.22 → v0.6.23}/lib/storage/src/util.js +0 -0
  576. /package/framework/{v0.6.22 → v0.6.23}/lib/storage-store.js +0 -0
  577. /package/framework/{v0.6.22 → v0.6.23}/lib/swig-filters/README.md +0 -0
  578. /package/framework/{v0.6.22 → v0.6.23}/lib/swig-filters/package.json +0 -0
  579. /package/framework/{v0.6.22 → v0.6.23}/lib/swig-filters/src/main.js +0 -0
  580. /package/framework/{v0.6.22 → v0.6.23}/lib/swig-resolver/package.json +0 -0
  581. /package/framework/{v0.6.22 → v0.6.23}/lib/swig-resolver/src/main.js +0 -0
  582. /package/framework/{v0.6.22 → v0.6.23}/lib/template-loaders/package.json +0 -0
  583. /package/framework/{v0.6.22 → v0.6.23}/lib/template-loaders/src/loaders/http.js +0 -0
  584. /package/framework/{v0.6.22 → v0.6.23}/lib/template-loaders/src/loaders/memory.js +0 -0
  585. /package/framework/{v0.6.22 → v0.6.23}/lib/template-loaders/src/main.js +0 -0
  586. /package/framework/{v0.6.22 → v0.6.23}/lib/url/README.md +0 -0
  587. /package/framework/{v0.6.22 → v0.6.23}/lib/url/index.js +0 -0
  588. /package/framework/{v0.6.22 → v0.6.23}/lib/url/routing.json +0 -0
  589. /package/framework/{v0.6.22 → v0.6.23}/lib/uuid/package.json +0 -0
  590. /package/framework/{v0.6.22 → v0.6.23}/lib/uuid/src/main.js +0 -0
  591. /package/framework/{v0.6.22 → v0.6.23}/lib/validator.js +0 -0
  592. /package/framework/{v0.6.22 → v0.6.23}/lib/watcher/package.json +0 -0
  593. /package/framework/{v0.6.22 → v0.6.23}/lib/watcher/src/main.js +0 -0
  594. /package/framework/{v0.6.22 → v0.6.23}/lib/ws-framing/package.json +0 -0
  595. /package/framework/{v0.6.22 → v0.6.23}/lib/ws-framing/src/main.js +0 -0
  596. /package/framework/{v0.6.22 → v0.6.23}/lib/ws-query/package.json +0 -0
  597. /package/framework/{v0.6.22 → v0.6.23}/lib/ws-query/src/main.js +0 -0
  598. /package/framework/{v0.6.22 → v0.6.23}/lib/ws-session/package.json +0 -0
  599. /package/framework/{v0.6.22 → v0.6.23}/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.23 - 2026-09-02
10
+ ### Added
11
+ * Security headers are now emitted by the framework itself, on both engines, via `settings.json > server.securityHeaders` (OWASP A02). This closes a gap that made the existing `#HDR` plugins unreachable for most projects: they are Express middleware, and the default `isaac` engine never runs the Express middleware chain for HTTP responses, so mounting the `SecurityHeaders()` orchestrator emitted nothing at all there. Seven headers are on by default, chosen because none can break a working application — `x-content-type-options`, `x-download-options`, `x-permitted-cross-domain-policies`, `x-xss-protection`, `referrer-policy`, `x-dns-prefetch-control` and `origin-agent-cluster`. Four are opt-in behind a single key each, because each breaks a legitimate deployment: `xFrameOptions` (cross-origin embedding), `coop` (severs `window.opener`, so OAuth and payment popups), `corp` (cross-origin asset loading) and `hsts` (a 180-day HTTPS commitment, emitted over plain HTTP too). Precedence is first-writer-wins, so a mounted plugin, an `env.json > server.response.header` entry or an upstream proxy always wins. `coop` and `corp` are never applied to `/_gina/*`, which is deliberately cross-origin. Set `server.securityHeaders.enabled` to `false` to restore the previous behaviour (#OW1)
12
+ * `settings.json > server.maxBodySize` bounds non-multipart request bodies, which previously accumulated with no ceiling at all — a single large body was an unbounded-memory exposure (OWASP A10). A body past the limit is answered 413 and the stream is destroyed. The default `64MB` is deliberately permissive: the ceiling exists to stop unbounded growth, not to police payload shapes, and gina's own inter-bundle `self.query()` hop posts through the same pipeline. A companion `server.maxBodySizeWarn` (default `2MB`) only logs, so you can measure your real distribution before choosing a stricter ceiling. Both accept B/KB/MB/GB (a bare number means MB); `0` disables either. Multipart uploads are unaffected — they remain capped by `upload.maxFieldsSize`. `server.timeout` is now configurable too, and stays `0` (unlimited) by default on purpose: a finite whole-request clock would kill Server-Sent Events and WebSocket connections, and the slow-body case it would otherwise cover is already closed by the body cap (#OW2)
13
+ * Opt-in Subresource Integrity for the asset tags gina emits: set `"sriEnabled": true` in `templates.json > "_common"` and every same-origin `<script>` and `<link rel="stylesheet">` whose file resolves on disk gains `integrity="sha384-..."` plus `crossorigin="anonymous"`, so a tampered or truncated asset is refused by the browser instead of executed. Fail-open by design: external URLs, unresolvable paths and unreadable files simply get no attribute — a wrong hash would hard-block the asset, so nothing is ever guessed. Hashes are cached per file and re-validated by mtime and size on every render, which means a rebuilt asset gets a fresh hash with no restart. Two operational notes: pages already stored by the render/output cache keep the hash they were rendered with, so flush that cache after rebuilding assets; and the HTTP/2 preload hint is suppressed for integrity-checked assets, since a hint carries no integrity metadata and a mismatched preload would be a wasted double fetch (#OW3)
14
+ ### Changed
15
+ * `settings.json > server.hidePoweredBy` now defaults to `true`, so the framework no longer advertises its name and exact version on every response. A version banner is free reconnaissance for an attacker and buys the operator nothing. Set it back to `false` to restore the previous behaviour. One interaction worth knowing: with the render/output cache enabled and `server.cache.name` unset, the new default raises the existing boot warning about the cache still naming the framework on the wire via `Cache-Status` — set any token there to close that disclosure too (#OW1)
16
+ ### Fixed
17
+ * A JSON body carrying a nested object whose own `constructor` key holds a primitive, null, array or plain object no longer crashes the merge: the plain-object check read `.prototype` off the shadowed value eagerly and threw `Cannot convert undefined or null to object` — request-reachable through PUT bodies and pre-existing (measured identical on 0.6.21). The check now computes lazily with the read guarded, a 24-shape differential sweep pins identical answers on every previously non-crashing input, the guarded key is still dropped per the 0.6.22 disclosure and sibling fields survive (#B450)
18
+ ### Security
19
+ * Hardened the escaping of server-side data serialised into inline `<script>` blocks. The previous guard matched only the literal `</script>` and `<!--` sequences, but the HTML5 script-data end tag also accepts a tab, newline, form feed, space or `/` after the tag name, so `</script >` and `</script/>` closed the block and the remainder of a stored value was parsed as HTML. Values are now escaped by neutralising `<` itself, which no terminator spelling can work around, and the same helper is applied at every site that serialises server data into an inline script rather than at one site per renderer. U+2028 and U+2029 are escaped as well, since both are legal in JSON but were line terminators to the JavaScript parser. The escaped output parses back to an identical value, so no data shape changes. Reported as #69. Server-side only: a bundle restart picks this up, no rebuild needed.
20
+
9
21
  ## 0.6.22 - 2026-09-02
10
22
  ### Fixed
11
23
  * Fixed a form submit that failed at the transport layer settling silently. When the network was down, the connection was refused, or the server was restarting, the request settled with no HTTP status and neither `error.<formId>` nor `error.<formId>.hform` was dispatched, so a handler declared with `data-gina-form-event-on-submit-error` never ran while the form released its submit trigger and reported nothing to the visitor. Such a failure now dispatches both events with `status: 408` and `transportError: true`, the latter distinguishing it from a genuine request timeout. Handlers matching on `status >= 400` keep working unchanged. This code ships in the browser bundle, so consuming bundles need a rebuild as well as a restart.
package/README.md CHANGED
@@ -62,24 +62,26 @@ 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.22
65
+ ## What's in 0.6.23
66
66
 
67
67
  > **Restart your bundles AND rebuild them.** This release changes the browser
68
- > bundle: both fixes below ship in `gina.min.js`. A restart alone updates the
69
- > server half only — each bundle bakes its own copy of the client assets, so a
70
- > restart without `gina bundle:build` leaves the browser running the old code.
71
-
72
- > **No settings reset.** `0.6.22` is a patch — the `shortVersion` stays `0.6`, so
73
- > your `~/.gina/0.6/settings.json` is untouched. (`0.6.0` was the reset.)
74
-
75
- **A prototype-pollution fix on the request path, and a form submit that failed
76
- silently when the network did.** The first is a security fix reachable from any
77
- request that carries field names — upgrade it ahead of the second. The second is
78
- a client-side fix reported from the field: a submit that failed at the transport
79
- layer told the visitor nothing.
80
-
81
- - **Security — prototype pollution on the request path (#B446).** Client-supplied bracket-notation field names reached an unguarded property assignment in the data helper's key-path nesting: `__proto__[x]=y`, `constructor[prototype][x]=y` and their percent-encoded forms all wrote to `Object.prototype`, and did so silently — the parsed body came back empty, so nothing in the request looked wrong. Separately, `merge()` copied an **own** `__proto__` key — the shape `JSON.parse` produces — through its `for...in` loops. The sources were reachable from query strings, urlencoded and JSON request bodies, `request.query.inheritedData`, and multipart text-field names. A polluted prototype could then influence code that reads a property it expects to be absent: outbound request options (host, port, auth, and the TLS certificate check), and the safe-method and exemption checks. Both sources now reject the same three key names — rejecting the key name is what closes this, since an own `__proto__` (the shape `JSON.parse` produces) satisfies an own-property check. **One thing to check before upgrading.** A field or key whose *path* contains a `__proto__`, `constructor` or `prototype` segment is now dropped from the parsed body instead of being nested — silently, since throwing on the request-parse path would turn one bad field into a 500. `__proto__` was never a usable field name, but `constructor` and `prototype` are ordinary words: if a form posts `job[constructor]=…`, or a JSON body carries a `prototype` key, that value no longer arrives. Flat top-level form fields of those names are unaffected. Grep your field names and API payloads for them. The affected modules also ship in the browser bundle, so a rebuild is part of picking this up, not just a restart.
82
- - **Fixed — a form submit that fails at the transport layer now reports it (#B447).** When the network was down, the connection was refused, or the server was restarting, the request settled with no HTTP status and neither `error.<formId>` nor `error.<formId>.hform` was dispatched — so a handler declared with `data-gina-form-event-on-submit-error` never ran, while the form released its submit trigger and told the visitor nothing. The failure was indistinguishable from a form that had simply done nothing. Such a failure now dispatches both events with `status: 408` and `transportError: true` — the 408 keeps handlers that match on `status >= 400` working unchanged, and `transportError` is what separates it from a genuine request timeout. **What to check:** if you branch on `result.status`, a transport failure will now enter your error branch where previously it entered nothing at all.
68
+ > bundle: the merge hardening ships 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.
72
+
73
+ > **No settings reset.** `0.6.23` is a patch — the `shortVersion` stays `0.6`,
74
+ > so your `~/.gina/0.6/settings.json` is untouched. (`0.6.0` was the reset.)
75
+
76
+ **The OWASP Top 10 response release.** The framework now emits security headers
77
+ itself, bounds request bodies, and can stamp integrity hashes on the asset tags
78
+ it builds — plus a hardened inline-script escape and a merge crash fix.
79
+
80
+ - **Security — hardened inline-script escaping (#B451).** The previous guard for server data serialised into inline `<script>` blocks matched only the literal `</script>` and `<!--` sequences, but the HTML5 script-data end tag also accepts a tab, newline, form feed, space or `/` after the tag name — so `</script >` and `</script/>` closed the block and the remainder of a stored value was parsed as HTML. Values are now escaped by neutralising `<` itself, which no terminator spelling can work around, applied by one shared helper at every site that serialises server data into an inline script. U+2028 and U+2029 are escaped as well. The escaped output parses back to an identical value, so no data shape changes. Server-side only.
81
+ - **Added — the framework now emits security headers itself (#OW1).** On both engines, via `settings.json > server.securityHeaders`. This closes the gap that made the `#HDR` plugins unreachable for most projects: they are Express middleware, and the default `isaac` engine never runs the Express middleware chain for HTTP responses, so mounting the `SecurityHeaders()` orchestrator emitted nothing there. Seven headers are on by default — chosen because none can break a working application; four more (`xFrameOptions`, `coop`, `corp`, `hsts`) are opt-in behind one key each, each with a named breakage. Precedence is first-writer-wins: a mounted plugin, an `env.json` header entry or an upstream proxy always beats the framework default, and `coop`/`corp` are never applied to the deliberately cross-origin `/_gina/*`. `server.hidePoweredBy` now defaults to `true` — a version banner is free reconnaissance. `server.securityHeaders.enabled: false` restores the previous behaviour.
82
+ - **Added — request bodies are bounded (#OW2).** `server.maxBodySize` (default `64MB`) caps non-multipart request bodies, which previously accumulated with no ceiling at all: a body past the limit is answered 413 and the stream is destroyed. A companion `server.maxBodySizeWarn` (default `2MB`) only logs, so you can measure your real distribution before choosing a stricter ceiling. Multipart uploads stay under the `upload.*` caps. `server.timeout` is now configurable too, and stays `0` (unlimited) by default on purpose — a finite whole-request clock would kill SSE and WebSocket connections.
83
+ - **Added — opt-in Subresource Integrity (#OW3).** Set `"sriEnabled": true` in `templates.json > "_common"` and every same-origin `<script>` and `<link rel="stylesheet">` whose file resolves on disk gains `integrity="sha384-..."` plus `crossorigin="anonymous"`, so a tampered or truncated asset is refused by the browser instead of executed. Fail-open by design: external URLs, unresolvable paths and unreadable files simply get no attribute. Hashes are re-validated by mtime and size on every render, so a rebuilt asset gets a fresh hash with no restart; flush the render/output cache after rebuilding assets, since already-cached pages keep the hash they were rendered with.
84
+ - **Fixed — merge crash on shadowed `constructor` keys (#B450).** A JSON body carrying a nested object whose own `constructor` key holds a primitive, null, array or plain object no longer crashes the merge on the PUT path: the plain-object check read `.prototype` off the shadowed value eagerly and threw. The check now computes lazily with the read guarded; the guarded key is still dropped per the 0.6.22 disclosure, and sibling fields survive.
83
85
 
84
86
  ## Documentation
85
87
 
package/ROADMAP.md CHANGED
@@ -74,6 +74,7 @@ This roadmap covers planned features, architectural improvements, new connectors
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
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`). |
76
76
  | **Q4 2026** | `0.6.22` ✅ | **Security**: prototype pollution on the request path — client-supplied bracket-notation field names (`__proto__[x]`, `constructor[prototype][x]`, and their percent-encoded forms) reached an unguarded property assignment in the data helper's key-path nesting and wrote to `Object.prototype` silently (the parsed body came back empty, so nothing in the request looked wrong), and `merge()` copied an **own** `__proto__` key — the shape `JSON.parse` produces — through its `for...in` loops. Reachable from query strings, urlencoded and JSON request bodies, `request.query.inheritedData` and multipart text-field names; a polluted prototype could then influence code reading a property it expects to be absent — outbound request options (host, port, auth, the TLS certificate check) and the safe-method and exemption checks. Both sources now reject the same three key names — rejecting the key name is what closes this, since an own `__proto__` (the shape `JSON.parse` produces) satisfies an own-property check. **Fixed**: a form submit that fails at the TRANSPORT layer (network down, connection refused, server restarting) settled with no HTTP status and dispatched neither `error.<formId>` nor `error.<formId>.hform`, so a handler declared with `data-gina-form-event-on-submit-error` never ran while the form released its submit trigger and reported nothing to the visitor; both events now fire with `status: 408` and `transportError: true`, the latter distinguishing it from a genuine request timeout, and handlers matching on `status >= 400` keep working unchanged. Restart **and** rebuild your bundles (the browser bundle changed — both fixes ship in `gina.min.js`). |
77
+ | **Q4 2026** | `0.6.23` ✅ | **Security**: hardened inline-script escaping — the previous guard matched only the literal `</script>` and `<!--`, but the HTML5 script-data end tag also accepts a tab, newline, form feed, space or `/` after the tag name, so `</script >` closed the block and the remainder of a stored value parsed as HTML; serialised values now neutralise `<` itself at every site, with U+2028/U+2029 escaped too, and escaped output parses back to an identical value. **Added**: the framework itself now emits seven security headers by default on both engines (`server.securityHeaders`; four more opt-in — `xFrameOptions` / `coop` / `corp` / `hsts`), first-writer-wins so mounted plugins, `env.json` headers and proxies keep winning, with `/_gina/*` exempt from the cross-origin-isolating pair; `server.hidePoweredBy` now defaults to `true`. **Added**: `server.maxBodySize` (default 64MB, 413 + stream destroyed) bounds non-multipart request bodies, with warn-only `server.maxBodySizeWarn` (2MB) and a configurable `server.timeout` that stays `0` on purpose (SSE/WebSocket). **Added**: opt-in Subresource Integrity — `templates.json > "sriEnabled": true` adds `integrity` + `crossorigin` to same-origin script and stylesheet tags that resolve on disk; fail-open, hashes stat-validated per render. **Fixed**: a JSON body whose nested object shadows `constructor` with a primitive, null, array or plain object no longer crashes the merge on the PUT path. Restart **and** rebuild your bundles (the browser bundle changed — the merge fix ships in `gina.min.js`). |
77
78
  | **Q1 2027** | `0.6.x` | HTTP/2 priorities (blocked on Node scheduler hooks) · Beemaster admin + visual translation editor |
78
79
  | **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`) |
79
80
  | **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 |
@@ -263,6 +264,18 @@ HTTP security response headers as opt-in `gina.plugins.*` middlewares, mirroring
263
264
 
264
265
  ---
265
266
 
267
+ ## OWASP Top 10 Response
268
+
269
+ Direct response to an OWASP Top 10:2025 review of the framework (September 2026): close the weak areas at the framework layer rather than leaving them as consumer homework. Three items shipped together in `0.6.23`; the remaining review findings stay tracked as candidates and get rows here only if promoted.
270
+
271
+ | Status | Feature | Version | Target |
272
+ | --- | --- | --- | --- |
273
+ | ✅ | **Framework-side security headers + `X-Powered-By` off by default (A02)** — Security headers are now emitted by the framework itself, on both engines, via `settings.json > server.securityHeaders` — closing the gap that made the `#HDR` plugins unreachable for most projects: they are Express middleware, and the default `isaac` engine never runs the Express middleware chain for HTTP responses, so mounting the `SecurityHeaders()` orchestrator emitted nothing there. Seven headers on by default — `x-content-type-options`, `x-download-options`, `x-permitted-cross-domain-policies`, `x-xss-protection`, `referrer-policy`, `x-dns-prefetch-control`, `origin-agent-cluster` — chosen because none can break a working application. Four opt-in behind one key each, each with a named breakage: `xFrameOptions` (cross-origin embedding), `coop` (severs `window.opener` — OAuth/payment popups), `corp` (cross-origin asset loading, incl. gina's own deliberately cross-origin `/_gina/*` endpoints), `hsts` (a 180-day HTTPS commitment). Precedence is first-writer-wins: a mounted plugin, an `env.json` header override or an upstream proxy always beats the framework default. `coop`/`corp` are never applied to `/_gina/*`. `server.hidePoweredBy` now defaults to `true` — a version banner is free reconnaissance and buys the operator nothing. `server.securityHeaders.enabled: false` restores the previous behaviour. | `0.6.23` | 2026-09-02 |
274
+ | ✅ | **Request-body size cap + configurable server timeout (A10)** — `settings.json > server.maxBodySize` (default `64MB`, enforced: 413 + stream destroyed) bounds non-multipart request bodies, which previously accumulated with no ceiling at all. A companion `server.maxBodySizeWarn` (default `2MB`) only logs, so the real payload distribution can be measured before choosing a stricter ceiling. Raw wire bytes are counted, not decoded string length. Both accept B/KB/MB/GB (a bare number means MB); `0` disables either. Multipart uploads remain governed by the `upload.*` caps. `server.timeout` is exposed and stays `0` (unlimited) by default on purpose — a finite whole-request clock would kill Server-Sent Events and WebSocket connections, and the slow-body case is already closed by the body cap. | `0.6.23` | 2026-09-02 |
275
+ | ✅ | **Opt-in Subresource Integrity for emitted asset tags (A08)** — `templates.json > "_common" > "sriEnabled": true` adds `integrity="sha384-..."` plus `crossorigin="anonymous"` to every same-origin `<script>` and `<link rel="stylesheet">` whose file resolves on disk, so a tampered or truncated asset is refused by the browser instead of executed. Fail-open by design: external URLs, unresolvable paths and unreadable files get no attribute — a wrong hash would hard-block the asset, so nothing is ever guessed. Hashes are stat-validated per render (mtime + size), so a rebuilt asset re-hashes with no restart; pages already stored by the render/output cache keep the hash they were rendered with (flush that cache after rebuilding assets). The HTTP/2 preload hint is suppressed for integrity-checked assets, since a hint carries no integrity metadata and a mismatched preload would be a wasted double fetch. sha384 is fixed deliberately: its padding-free base64 output keeps integrity values inert to the framework's own asset-catalog URL scan. | `0.6.23` | 2026-09-02 |
276
+
277
+ ---
278
+
266
279
  ## Accessibility
267
280
 
268
281
  Client-side form-validation accessibility — keeping `FormValidator`'s ARIA state in sync with field validity so screen-reader users get the same error feedback sighted users already get from native `:user-invalid` styling. No new public API; behaviour applies to fields that opt in through their existing ARIA markup. Models the `isInList` rule + CSP-nonce (#HDR16) rollout: ship behind the existing validator API, default-on for opted-in markup, no consuming-app code change.
@@ -0,0 +1 @@
1
+ 0.6.23
@@ -2190,9 +2190,12 @@ function Merge() {
2190
2190
  *
2191
2191
  * Key rejection is the WHOLE guard, deliberately. The first cut of #B446 also
2192
2192
  * skipped inherited enumerable source properties, which broke every entity in
2193
- * the model registry: lib/model.js setModel round-trips entity instances
2194
- * through merge, and all six SQL connectors attach their .sql-derived query
2195
- * methods to the PROTOTYPE, so an own-only copy silently dropped them
2193
+ * the model registry: the model layer round-trips entity instances through
2194
+ * merge — the in-tree path is the relations assembly (core/model/entity.js),
2195
+ * and the registry's setModel (lib/model.js), while it has no in-tree caller,
2196
+ * is published through the modelUtil context and stays consumer-reachable —
2197
+ * and all six SQL connectors attach their .sql-derived query methods to the
2198
+ * PROTOTYPE, so an own-only copy silently dropped them
2196
2199
  * (`db.xEntity.getOneById is not a function`). merge therefore copies the
2197
2200
  * chain, as it always has; only these three key names are refused.
2198
2201
  *
@@ -2833,8 +2836,22 @@ function Merge() {
2833
2836
 
2834
2837
  var hasOwn = {}.hasOwnProperty;
2835
2838
  var hasOwnConstructor = hasOwn.call(obj, 'constructor');
2836
- // added test for node > v6
2837
- var hasMethodPrototyped = ( typeof(obj.constructor) != 'undefined' ) ? hasOwn.call(obj.constructor.prototype, 'isPrototypeOf') : false;
2839
+ // #B450 — compute lazily, restoring the original short-circuit. An OWN
2840
+ // `constructor` key (the shape JSON.parse yields for
2841
+ // `{"constructor": <primitive|null|{}|[]>}`) shadows
2842
+ // Object.prototype.constructor, so the eager read
2843
+ // `obj.constructor.prototype` was undefined (or threw outright for null)
2844
+ // and `hasOwn.call(undefined, ...)` crashed the whole merge —
2845
+ // request-reachable, since PUT bodies reach merge as the source. When the
2846
+ // object HAS an own constructor the rejection branch below cannot fire,
2847
+ // so the value is never needed; when it lacks one, guard the `.prototype`
2848
+ // read. A 24-shape differential sweep pins identical answers on every
2849
+ // input the old form did not crash on (test/lib/merge-b450.test.js).
2850
+ // was: var hasMethodPrototyped = ( typeof(obj.constructor) != 'undefined' ) ? hasOwn.call(obj.constructor.prototype, 'isPrototypeOf') : false;
2851
+ var hasMethodPrototyped = false;
2852
+ if ( !hasOwnConstructor && typeof(obj.constructor) != 'undefined' ) {
2853
+ hasMethodPrototyped = ( obj.constructor.prototype ) ? hasOwn.call(obj.constructor.prototype, 'isPrototypeOf') : false;
2854
+ }
2838
2855
 
2839
2856
 
2840
2857
  if (