gina 0.5.20 → 0.5.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 (532) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +9 -6
  3. package/ROADMAP.md +2 -0
  4. package/framework/v0.5.21/VERSION +1 -0
  5. package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/js/gina.js +251 -76
  6. package/framework/v0.5.21/core/asset/plugin/dist/vendor/gina/js/gina.min.js +589 -0
  7. package/framework/v0.5.21/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  8. package/framework/v0.5.21/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  9. package/framework/{v0.5.20 → v0.5.21}/core/config.js +49 -2
  10. package/framework/{v0.5.20 → v0.5.21}/core/controller/controller.render-json.js +6 -1
  11. package/framework/{v0.5.20 → v0.5.21}/core/controller/controller.render-swig.js +46 -8
  12. package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/validator/src/main.js +115 -47
  13. package/framework/{v0.5.20 → v0.5.21}/core/server.isaac.js +39 -4
  14. package/framework/{v0.5.20 → v0.5.21}/core/server.js +47 -3
  15. package/framework/{v0.5.20 → v0.5.21}/core/template/conf/env.json +7 -1
  16. package/framework/{v0.5.20 → v0.5.21}/lib/render-cache/src/main.js +113 -2
  17. package/framework/{v0.5.20 → v0.5.21}/lib/routing/src/main.js +4 -1
  18. package/framework/{v0.5.20 → v0.5.21}/package.json +1 -1
  19. package/gna.js +4 -4
  20. package/llms.txt +12 -2
  21. package/package.json +3 -3
  22. package/framework/v0.5.20/VERSION +0 -1
  23. package/framework/v0.5.20/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -588
  24. package/framework/v0.5.20/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  25. package/framework/v0.5.20/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  26. /package/framework/{v0.5.20 → v0.5.21}/AUTHORS +0 -0
  27. /package/framework/{v0.5.20 → v0.5.21}/LICENSE +0 -0
  28. /package/framework/{v0.5.20 → v0.5.21}/core/asset/html/nolayout.html +0 -0
  29. /package/framework/{v0.5.20 → v0.5.21}/core/asset/html/static.html +0 -0
  30. /package/framework/{v0.5.20 → v0.5.21}/core/asset/img/android-chrome-192x192.png +0 -0
  31. /package/framework/{v0.5.20 → v0.5.21}/core/asset/img/android-chrome-512x512.png +0 -0
  32. /package/framework/{v0.5.20 → v0.5.21}/core/asset/img/apple-touch-icon.png +0 -0
  33. /package/framework/{v0.5.20 → v0.5.21}/core/asset/img/favicon-16x16.png +0 -0
  34. /package/framework/{v0.5.20 → v0.5.21}/core/asset/img/favicon-32x32.png +0 -0
  35. /package/framework/{v0.5.20 → v0.5.21}/core/asset/img/favicon.ico +0 -0
  36. /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/README.md +0 -0
  37. /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  38. /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  39. /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  40. /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  41. /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  42. /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  43. /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
  44. /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  45. /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  46. /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  47. /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
  48. /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
  49. /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
  50. /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  51. /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
  52. /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  53. /package/framework/{v0.5.20 → v0.5.21}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  54. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/ai/index.js +0 -0
  55. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/ai/lib/connector.js +0 -0
  56. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/couchbase/index.js +0 -0
  57. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/couchbase/lib/connector.js +0 -0
  58. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  59. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  60. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/couchbase/lib/n1ql.js +0 -0
  61. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/couchbase/lib/session-store.js +0 -0
  62. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  63. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  64. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/mongodb/index.js +0 -0
  65. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/mongodb/lib/connector.js +0 -0
  66. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/mongodb/lib/job-store.js +0 -0
  67. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
  68. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/mongodb/lib/session-store.js +0 -0
  69. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/mysql/index.js +0 -0
  70. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/mysql/lib/connector.js +0 -0
  71. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/postgresql/index.js +0 -0
  72. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/postgresql/lib/connector.js +0 -0
  73. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/redis/index.js +0 -0
  74. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/redis/lib/connector.js +0 -0
  75. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/redis/lib/job-store.js +0 -0
  76. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/redis/lib/render-cache-store.js +0 -0
  77. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/redis/lib/session-store.js +0 -0
  78. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/scylladb/index.js +0 -0
  79. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/scylladb/lib/connector.js +0 -0
  80. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/scylladb/lib/session-store.js +0 -0
  81. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/sql-parser.js +0 -0
  82. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/sqlite/index.js +0 -0
  83. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/sqlite/lib/connector.js +0 -0
  84. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/sqlite/lib/job-store.js +0 -0
  85. /package/framework/{v0.5.20 → v0.5.21}/core/connectors/sqlite/lib/session-store.js +0 -0
  86. /package/framework/{v0.5.20 → v0.5.21}/core/content.encoding +0 -0
  87. /package/framework/{v0.5.20 → v0.5.21}/core/controller/controller.framework.js +0 -0
  88. /package/framework/{v0.5.20 → v0.5.21}/core/controller/controller.js +0 -0
  89. /package/framework/{v0.5.20 → v0.5.21}/core/controller/controller.render-nunjucks-async.js +0 -0
  90. /package/framework/{v0.5.20 → v0.5.21}/core/controller/controller.render-nunjucks.js +0 -0
  91. /package/framework/{v0.5.20 → v0.5.21}/core/controller/controller.render-stream.js +0 -0
  92. /package/framework/{v0.5.20 → v0.5.21}/core/controller/controller.render-swig-async.js +0 -0
  93. /package/framework/{v0.5.20 → v0.5.21}/core/controller/controller.render-v1.js +0 -0
  94. /package/framework/{v0.5.20 → v0.5.21}/core/controller/index.js +0 -0
  95. /package/framework/{v0.5.20 → v0.5.21}/core/controller/inspector-window-emit.js +0 -0
  96. /package/framework/{v0.5.20 → v0.5.21}/core/controller/release-banner.js +0 -0
  97. /package/framework/{v0.5.20 → v0.5.21}/core/dev/index.js +0 -0
  98. /package/framework/{v0.5.20 → v0.5.21}/core/dev/lib/class.js +0 -0
  99. /package/framework/{v0.5.20 → v0.5.21}/core/dev/lib/factory.js +0 -0
  100. /package/framework/{v0.5.20 → v0.5.21}/core/dev/lib/tools.js +0 -0
  101. /package/framework/{v0.5.20 → v0.5.21}/core/gna.js +0 -0
  102. /package/framework/{v0.5.20 → v0.5.21}/core/locales/README.md +0 -0
  103. /package/framework/{v0.5.20 → v0.5.21}/core/locales/currency.json +0 -0
  104. /package/framework/{v0.5.20 → v0.5.21}/core/locales/dist/language/en.json +0 -0
  105. /package/framework/{v0.5.20 → v0.5.21}/core/locales/dist/language/fr.json +0 -0
  106. /package/framework/{v0.5.20 → v0.5.21}/core/locales/dist/region/en.json +0 -0
  107. /package/framework/{v0.5.20 → v0.5.21}/core/locales/dist/region/fr.json +0 -0
  108. /package/framework/{v0.5.20 → v0.5.21}/core/locales/index.js +0 -0
  109. /package/framework/{v0.5.20 → v0.5.21}/core/mime.types +0 -0
  110. /package/framework/{v0.5.20 → v0.5.21}/core/model/entity.js +0 -0
  111. /package/framework/{v0.5.20 → v0.5.21}/core/model/index.js +0 -0
  112. /package/framework/{v0.5.20 → v0.5.21}/core/model/template/entityFactory.js +0 -0
  113. /package/framework/{v0.5.20 → v0.5.21}/core/model/template/index.js +0 -0
  114. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/README.md +0 -0
  115. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/index.js +0 -0
  116. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/csrf/README.md +0 -0
  117. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/csrf/package.json +0 -0
  118. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/csrf/src/main.js +0 -0
  119. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/README.md +0 -0
  120. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/coep/README.md +0 -0
  121. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/coep/package.json +0 -0
  122. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
  123. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/coop/README.md +0 -0
  124. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/coop/package.json +0 -0
  125. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
  126. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/corp/README.md +0 -0
  127. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/corp/package.json +0 -0
  128. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
  129. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/csp/README.md +0 -0
  130. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/csp/package.json +0 -0
  131. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
  132. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
  133. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
  134. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
  135. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/hsts/README.md +0 -0
  136. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/hsts/package.json +0 -0
  137. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
  138. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
  139. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
  140. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
  141. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/package.json +0 -0
  142. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
  143. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
  144. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
  145. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/src/main.js +0 -0
  146. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
  147. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
  148. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
  149. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
  150. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
  151. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
  152. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
  153. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
  154. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
  155. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
  156. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
  157. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
  158. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
  159. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
  160. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
  161. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
  162. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
  163. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
  164. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/session/README.md +0 -0
  165. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/session/package.json +0 -0
  166. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/session/src/main.js +0 -0
  167. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/storage/README.md +0 -0
  168. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/storage/build.json +0 -0
  169. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/storage/package.json +0 -0
  170. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/storage/src/main.js +0 -0
  171. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/validator/README.md +0 -0
  172. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/validator/build.json +0 -0
  173. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/validator/package.json +0 -0
  174. /package/framework/{v0.5.20 → v0.5.21}/core/plugins/lib/validator/src/form-validator.js +0 -0
  175. /package/framework/{v0.5.20 → v0.5.21}/core/router.js +0 -0
  176. /package/framework/{v0.5.20 → v0.5.21}/core/server.express.js +0 -0
  177. /package/framework/{v0.5.20 → v0.5.21}/core/status.codes +0 -0
  178. /package/framework/{v0.5.20 → v0.5.21}/core/template/_gitignore +0 -0
  179. /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle/config/app.json +0 -0
  180. /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  181. /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle/config/routing.json +0 -0
  182. /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle/config/settings.json +0 -0
  183. /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  184. /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle/config/templates.json +0 -0
  185. /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  186. /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  187. /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  188. /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  189. /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle/index.js +0 -0
  190. /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle/locales/en.json +0 -0
  191. /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  192. /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  193. /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  194. /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  195. /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  196. /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_public/js/components/x-checklist.js +0 -0
  197. /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  198. /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
  199. /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_public/readme.md +0 -0
  200. /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_public/sw.js +0 -0
  201. /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  202. /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  203. /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  204. /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  205. /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_templates/html/includes/x-checklist.html +0 -0
  206. /package/framework/{v0.5.20 → v0.5.21}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  207. /package/framework/{v0.5.20 → v0.5.21}/core/template/command/gina.bat.tpl +0 -0
  208. /package/framework/{v0.5.20 → v0.5.21}/core/template/command/gina.tpl +0 -0
  209. /package/framework/{v0.5.20 → v0.5.21}/core/template/conf/manifest.json +0 -0
  210. /package/framework/{v0.5.20 → v0.5.21}/core/template/conf/package.json +0 -0
  211. /package/framework/{v0.5.20 → v0.5.21}/core/template/conf/settings.json +0 -0
  212. /package/framework/{v0.5.20 → v0.5.21}/core/template/conf/statics.json +0 -0
  213. /package/framework/{v0.5.20 → v0.5.21}/core/template/conf/templates.json +0 -0
  214. /package/framework/{v0.5.20 → v0.5.21}/core/template/error/client/json/401.json +0 -0
  215. /package/framework/{v0.5.20 → v0.5.21}/core/template/error/client/json/403.json +0 -0
  216. /package/framework/{v0.5.20 → v0.5.21}/core/template/error/client/json/404.json +0 -0
  217. /package/framework/{v0.5.20 → v0.5.21}/core/template/error/server/html/50x.html +0 -0
  218. /package/framework/{v0.5.20 → v0.5.21}/core/template/error/server/json/500.json +0 -0
  219. /package/framework/{v0.5.20 → v0.5.21}/core/template/error/server/json/503.json +0 -0
  220. /package/framework/{v0.5.20 → v0.5.21}/core/template/extensions/logger/config.json +0 -0
  221. /package/framework/{v0.5.20 → v0.5.21}/helpers/console.js +0 -0
  222. /package/framework/{v0.5.20 → v0.5.21}/helpers/context.js +0 -0
  223. /package/framework/{v0.5.20 → v0.5.21}/helpers/data/LICENSE +0 -0
  224. /package/framework/{v0.5.20 → v0.5.21}/helpers/data/README.md +0 -0
  225. /package/framework/{v0.5.20 → v0.5.21}/helpers/data/package.json +0 -0
  226. /package/framework/{v0.5.20 → v0.5.21}/helpers/data/src/main.js +0 -0
  227. /package/framework/{v0.5.20 → v0.5.21}/helpers/dateFormat.js +0 -0
  228. /package/framework/{v0.5.20 → v0.5.21}/helpers/index.js +0 -0
  229. /package/framework/{v0.5.20 → v0.5.21}/helpers/json/LICENSE +0 -0
  230. /package/framework/{v0.5.20 → v0.5.21}/helpers/json/README.md +0 -0
  231. /package/framework/{v0.5.20 → v0.5.21}/helpers/json/package.json +0 -0
  232. /package/framework/{v0.5.20 → v0.5.21}/helpers/json/src/main.js +0 -0
  233. /package/framework/{v0.5.20 → v0.5.21}/helpers/path.js +0 -0
  234. /package/framework/{v0.5.20 → v0.5.21}/helpers/plugins/README.md +0 -0
  235. /package/framework/{v0.5.20 → v0.5.21}/helpers/plugins/package.json +0 -0
  236. /package/framework/{v0.5.20 → v0.5.21}/helpers/plugins/src/api-error.js +0 -0
  237. /package/framework/{v0.5.20 → v0.5.21}/helpers/plugins/src/main.js +0 -0
  238. /package/framework/{v0.5.20 → v0.5.21}/helpers/prototypes.js +0 -0
  239. /package/framework/{v0.5.20 → v0.5.21}/helpers/task.js +0 -0
  240. /package/framework/{v0.5.20 → v0.5.21}/helpers/text.js +0 -0
  241. /package/framework/{v0.5.20 → v0.5.21}/lib/admin/package.json +0 -0
  242. /package/framework/{v0.5.20 → v0.5.21}/lib/admin/src/main.js +0 -0
  243. /package/framework/{v0.5.20 → v0.5.21}/lib/archiver/README.md +0 -0
  244. /package/framework/{v0.5.20 → v0.5.21}/lib/archiver/build.json +0 -0
  245. /package/framework/{v0.5.20 → v0.5.21}/lib/archiver/package.json +0 -0
  246. /package/framework/{v0.5.20 → v0.5.21}/lib/archiver/src/dep/jszip.min.js +0 -0
  247. /package/framework/{v0.5.20 → v0.5.21}/lib/archiver/src/main.js +0 -0
  248. /package/framework/{v0.5.20 → v0.5.21}/lib/async/package.json +0 -0
  249. /package/framework/{v0.5.20 → v0.5.21}/lib/async/src/main.js +0 -0
  250. /package/framework/{v0.5.20 → v0.5.21}/lib/audit/package.json +0 -0
  251. /package/framework/{v0.5.20 → v0.5.21}/lib/audit/src/main.js +0 -0
  252. /package/framework/{v0.5.20 → v0.5.21}/lib/audit-store.js +0 -0
  253. /package/framework/{v0.5.20 → v0.5.21}/lib/authz-gate/package.json +0 -0
  254. /package/framework/{v0.5.20 → v0.5.21}/lib/authz-gate/src/main.js +0 -0
  255. /package/framework/{v0.5.20 → v0.5.21}/lib/cache/README.md +0 -0
  256. /package/framework/{v0.5.20 → v0.5.21}/lib/cache/build.json +0 -0
  257. /package/framework/{v0.5.20 → v0.5.21}/lib/cache/package.json +0 -0
  258. /package/framework/{v0.5.20 → v0.5.21}/lib/cache/src/main.js +0 -0
  259. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/aliases.json +0 -0
  260. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/add.js +0 -0
  261. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/arguments.json +0 -0
  262. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/build.js +0 -0
  263. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/copy.js +0 -0
  264. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/cp.js +0 -0
  265. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/help.js +0 -0
  266. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/help.txt +0 -0
  267. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
  268. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/list.js +0 -0
  269. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/man.js +0 -0
  270. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/mcp-start.js +0 -0
  271. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/mcp.js +0 -0
  272. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/oas.js +0 -0
  273. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/openapi.js +0 -0
  274. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/remove.js +0 -0
  275. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/rename.js +0 -0
  276. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/restart.js +0 -0
  277. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/rm.js +0 -0
  278. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/start.js +0 -0
  279. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/status.js +0 -0
  280. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/stop.js +0 -0
  281. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/bundle/types.js +0 -0
  282. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/cache/arguments.json +0 -0
  283. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/cache/clear.js +0 -0
  284. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/cache/help.txt +0 -0
  285. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/cache/stats.js +0 -0
  286. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/connector/add.js +0 -0
  287. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/connector/arguments.json +0 -0
  288. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/connector/help.js +0 -0
  289. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/connector/help.txt +0 -0
  290. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/connector/infer.js +0 -0
  291. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/connector/list.js +0 -0
  292. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/connector/migrate.js +0 -0
  293. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/connector/models.js +0 -0
  294. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/connector/remove.js +0 -0
  295. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/connector/rm.js +0 -0
  296. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/connector/test.js +0 -0
  297. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/container/arguments.json +0 -0
  298. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/container/help.js +0 -0
  299. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/container/help.txt +0 -0
  300. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/container/man.js +0 -0
  301. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/container/ps.js +0 -0
  302. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/container/stop.js +0 -0
  303. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/env/add.js +0 -0
  304. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/env/get.js +0 -0
  305. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/env/help.js +0 -0
  306. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/env/help.txt +0 -0
  307. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/env/link-dev.js +0 -0
  308. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/env/list.js +0 -0
  309. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/env/remove.js +0 -0
  310. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/env/rm.js +0 -0
  311. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/env/set.js +0 -0
  312. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/env/unset.js +0 -0
  313. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/env/use.js +0 -0
  314. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/add.js +0 -0
  315. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/arguments.json +0 -0
  316. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/build.js +0 -0
  317. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/dot.js +0 -0
  318. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/get.js +0 -0
  319. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/help.js +0 -0
  320. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/help.txt +0 -0
  321. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/init.js +0 -0
  322. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/link-node-modules.js +0 -0
  323. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/link.js +0 -0
  324. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/list.js +0 -0
  325. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/man.js +0 -0
  326. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/msg.json +0 -0
  327. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/open.js +0 -0
  328. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/remove.js +0 -0
  329. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/reset.js +0 -0
  330. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/restart.js +0 -0
  331. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/set.js +0 -0
  332. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/start.js +0 -0
  333. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/status.js +0 -0
  334. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/stop.js +0 -0
  335. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/tail.js +0 -0
  336. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/update.js +0 -0
  337. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/framework/version.js +0 -0
  338. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/gina-dev.1.md +0 -0
  339. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/gina-framework.1.md +0 -0
  340. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/gina.1.md +0 -0
  341. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/helper.js +0 -0
  342. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/i18n/add.js +0 -0
  343. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/i18n/arguments.json +0 -0
  344. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/i18n/export.js +0 -0
  345. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/i18n/help.js +0 -0
  346. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/i18n/help.txt +0 -0
  347. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/i18n/import.js +0 -0
  348. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/i18n/scan.js +0 -0
  349. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/image/_host.js +0 -0
  350. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/image/arguments.json +0 -0
  351. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/image/build.js +0 -0
  352. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/image/help.js +0 -0
  353. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/image/help.txt +0 -0
  354. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/image/list.js +0 -0
  355. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/image/man.js +0 -0
  356. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/image/rm.js +0 -0
  357. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/image/run.js +0 -0
  358. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/index.js +0 -0
  359. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/inspector/help.js +0 -0
  360. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/inspector/help.txt +0 -0
  361. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/inspector/open.js +0 -0
  362. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/man-render.js +0 -0
  363. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/minion/arguments.json +0 -0
  364. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/minion/help.js +0 -0
  365. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/minion/help.txt +0 -0
  366. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/minion/kill.js +0 -0
  367. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/minion/list.js +0 -0
  368. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/msg.json +0 -0
  369. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/port/help.js +0 -0
  370. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/port/help.txt +0 -0
  371. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/port/inc/scan.js +0 -0
  372. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/port/list.js +0 -0
  373. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/port/reset.js +0 -0
  374. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/port/set.js +0 -0
  375. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/add.js +0 -0
  376. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/arguments.json +0 -0
  377. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/backup.js +0 -0
  378. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/build.js +0 -0
  379. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/help.js +0 -0
  380. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/help.txt +0 -0
  381. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/import.js +0 -0
  382. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/list.js +0 -0
  383. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/man.js +0 -0
  384. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/move.js +0 -0
  385. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/remove.js +0 -0
  386. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/rename.js +0 -0
  387. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/restart.js +0 -0
  388. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/restore.js +0 -0
  389. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/rm.js +0 -0
  390. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/start.js +0 -0
  391. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/status.js +0 -0
  392. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/project/stop.js +0 -0
  393. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/protocol/arguments.json +0 -0
  394. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/protocol/help.js +0 -0
  395. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/protocol/help.txt +0 -0
  396. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/protocol/list.js +0 -0
  397. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/protocol/remove.js +0 -0
  398. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/protocol/set.js +0 -0
  399. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/scope/add.js +0 -0
  400. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/scope/help.js +0 -0
  401. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/scope/help.txt +0 -0
  402. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/scope/link-local.js +0 -0
  403. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/scope/link-production.js +0 -0
  404. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/scope/list.js +0 -0
  405. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/scope/remove.js +0 -0
  406. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/scope/rm.js +0 -0
  407. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/scope/use.js +0 -0
  408. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/secrets/arguments.json +0 -0
  409. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/secrets/check.js +0 -0
  410. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/secrets/help.js +0 -0
  411. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/secrets/help.txt +0 -0
  412. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/secrets/scan.js +0 -0
  413. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/service/help.js +0 -0
  414. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/service/help.txt +0 -0
  415. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/service/list.js +0 -0
  416. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/service/man.js +0 -0
  417. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/service/start.js +0 -0
  418. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd/view/add.js +0 -0
  419. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd-status-format/package.json +0 -0
  420. /package/framework/{v0.5.20 → v0.5.21}/lib/cmd-status-format/src/main.js +0 -0
  421. /package/framework/{v0.5.20 → v0.5.21}/lib/collection/README.md +0 -0
  422. /package/framework/{v0.5.20 → v0.5.21}/lib/collection/build.json +0 -0
  423. /package/framework/{v0.5.20 → v0.5.21}/lib/collection/package.json +0 -0
  424. /package/framework/{v0.5.20 → v0.5.21}/lib/collection/src/main.js +0 -0
  425. /package/framework/{v0.5.20 → v0.5.21}/lib/config.js +0 -0
  426. /package/framework/{v0.5.20 → v0.5.21}/lib/connector-config/package.json +0 -0
  427. /package/framework/{v0.5.20 → v0.5.21}/lib/connector-config/src/main.js +0 -0
  428. /package/framework/{v0.5.20 → v0.5.21}/lib/connector-registry/package.json +0 -0
  429. /package/framework/{v0.5.20 → v0.5.21}/lib/connector-registry/src/main.js +0 -0
  430. /package/framework/{v0.5.20 → v0.5.21}/lib/cron/README.md +0 -0
  431. /package/framework/{v0.5.20 → v0.5.21}/lib/cron/package.json +0 -0
  432. /package/framework/{v0.5.20 → v0.5.21}/lib/cron/src/main.js +0 -0
  433. /package/framework/{v0.5.20 → v0.5.21}/lib/domain/LICENSE +0 -0
  434. /package/framework/{v0.5.20 → v0.5.21}/lib/domain/README.md +0 -0
  435. /package/framework/{v0.5.20 → v0.5.21}/lib/domain/package.json +0 -0
  436. /package/framework/{v0.5.20 → v0.5.21}/lib/domain/src/main.js +0 -0
  437. /package/framework/{v0.5.20 → v0.5.21}/lib/dto/package.json +0 -0
  438. /package/framework/{v0.5.20 → v0.5.21}/lib/dto/src/main.js +0 -0
  439. /package/framework/{v0.5.20 → v0.5.21}/lib/dto-pipe/package.json +0 -0
  440. /package/framework/{v0.5.20 → v0.5.21}/lib/dto-pipe/src/main.js +0 -0
  441. /package/framework/{v0.5.20 → v0.5.21}/lib/dto-types/package.json +0 -0
  442. /package/framework/{v0.5.20 → v0.5.21}/lib/dto-types/src/main.js +0 -0
  443. /package/framework/{v0.5.20 → v0.5.21}/lib/generator/index.js +0 -0
  444. /package/framework/{v0.5.20 → v0.5.21}/lib/i18n/package.json +0 -0
  445. /package/framework/{v0.5.20 → v0.5.21}/lib/i18n/src/main.js +0 -0
  446. /package/framework/{v0.5.20 → v0.5.21}/lib/image-build/package.json +0 -0
  447. /package/framework/{v0.5.20 → v0.5.21}/lib/image-build/src/main.js +0 -0
  448. /package/framework/{v0.5.20 → v0.5.21}/lib/index.js +0 -0
  449. /package/framework/{v0.5.20 → v0.5.21}/lib/inherits/LICENSE +0 -0
  450. /package/framework/{v0.5.20 → v0.5.21}/lib/inherits/README.md +0 -0
  451. /package/framework/{v0.5.20 → v0.5.21}/lib/inherits/package.json +0 -0
  452. /package/framework/{v0.5.20 → v0.5.21}/lib/inherits/src/main.js +0 -0
  453. /package/framework/{v0.5.20 → v0.5.21}/lib/inspector-events/package.json +0 -0
  454. /package/framework/{v0.5.20 → v0.5.21}/lib/inspector-events/src/main.js +0 -0
  455. /package/framework/{v0.5.20 → v0.5.21}/lib/inspector-redact/package.json +0 -0
  456. /package/framework/{v0.5.20 → v0.5.21}/lib/inspector-redact/src/main.js +0 -0
  457. /package/framework/{v0.5.20 → v0.5.21}/lib/instrument/package.json +0 -0
  458. /package/framework/{v0.5.20 → v0.5.21}/lib/instrument/src/main.js +0 -0
  459. /package/framework/{v0.5.20 → v0.5.21}/lib/job/package.json +0 -0
  460. /package/framework/{v0.5.20 → v0.5.21}/lib/job/src/main.js +0 -0
  461. /package/framework/{v0.5.20 → v0.5.21}/lib/job-store.js +0 -0
  462. /package/framework/{v0.5.20 → v0.5.21}/lib/json-config-header/package.json +0 -0
  463. /package/framework/{v0.5.20 → v0.5.21}/lib/json-config-header/src/main.js +0 -0
  464. /package/framework/{v0.5.20 → v0.5.21}/lib/logger/README.md +0 -0
  465. /package/framework/{v0.5.20 → v0.5.21}/lib/logger/package.json +0 -0
  466. /package/framework/{v0.5.20 → v0.5.21}/lib/logger/src/containers/default/index.js +0 -0
  467. /package/framework/{v0.5.20 → v0.5.21}/lib/logger/src/containers/file/index.js +0 -0
  468. /package/framework/{v0.5.20 → v0.5.21}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  469. /package/framework/{v0.5.20 → v0.5.21}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  470. /package/framework/{v0.5.20 → v0.5.21}/lib/logger/src/containers/mq/index.js +0 -0
  471. /package/framework/{v0.5.20 → v0.5.21}/lib/logger/src/containers/mq/listener.js +0 -0
  472. /package/framework/{v0.5.20 → v0.5.21}/lib/logger/src/containers/mq/speaker.js +0 -0
  473. /package/framework/{v0.5.20 → v0.5.21}/lib/logger/src/helper.js +0 -0
  474. /package/framework/{v0.5.20 → v0.5.21}/lib/logger/src/main.js +0 -0
  475. /package/framework/{v0.5.20 → v0.5.21}/lib/math/index.js +0 -0
  476. /package/framework/{v0.5.20 → v0.5.21}/lib/mcp-dispatch/package.json +0 -0
  477. /package/framework/{v0.5.20 → v0.5.21}/lib/mcp-dispatch/src/main.js +0 -0
  478. /package/framework/{v0.5.20 → v0.5.21}/lib/mcp-http/package.json +0 -0
  479. /package/framework/{v0.5.20 → v0.5.21}/lib/mcp-http/src/main.js +0 -0
  480. /package/framework/{v0.5.20 → v0.5.21}/lib/mcp-server/package.json +0 -0
  481. /package/framework/{v0.5.20 → v0.5.21}/lib/mcp-server/src/main.js +0 -0
  482. /package/framework/{v0.5.20 → v0.5.21}/lib/merge/README.md +0 -0
  483. /package/framework/{v0.5.20 → v0.5.21}/lib/merge/package.json +0 -0
  484. /package/framework/{v0.5.20 → v0.5.21}/lib/merge/src/main.js +0 -0
  485. /package/framework/{v0.5.20 → v0.5.21}/lib/metrics/package.json +0 -0
  486. /package/framework/{v0.5.20 → v0.5.21}/lib/metrics/src/main.js +0 -0
  487. /package/framework/{v0.5.20 → v0.5.21}/lib/model.js +0 -0
  488. /package/framework/{v0.5.20 → v0.5.21}/lib/nunjucks-filters/README.md +0 -0
  489. /package/framework/{v0.5.20 → v0.5.21}/lib/nunjucks-filters/package.json +0 -0
  490. /package/framework/{v0.5.20 → v0.5.21}/lib/nunjucks-filters/src/main.js +0 -0
  491. /package/framework/{v0.5.20 → v0.5.21}/lib/nunjucks-resolver/package.json +0 -0
  492. /package/framework/{v0.5.20 → v0.5.21}/lib/nunjucks-resolver/src/main.js +0 -0
  493. /package/framework/{v0.5.20 → v0.5.21}/lib/proc.js +0 -0
  494. /package/framework/{v0.5.20 → v0.5.21}/lib/release-watch/package.json +0 -0
  495. /package/framework/{v0.5.20 → v0.5.21}/lib/release-watch/src/main.js +0 -0
  496. /package/framework/{v0.5.20 → v0.5.21}/lib/render-cache/package.json +0 -0
  497. /package/framework/{v0.5.20 → v0.5.21}/lib/render-cache-store.js +0 -0
  498. /package/framework/{v0.5.20 → v0.5.21}/lib/routing/README.md +0 -0
  499. /package/framework/{v0.5.20 → v0.5.21}/lib/routing/build.json +0 -0
  500. /package/framework/{v0.5.20 → v0.5.21}/lib/routing/package.json +0 -0
  501. /package/framework/{v0.5.20 → v0.5.21}/lib/routing/src/radix.js +0 -0
  502. /package/framework/{v0.5.20 → v0.5.21}/lib/routing-introspect/package.json +0 -0
  503. /package/framework/{v0.5.20 → v0.5.21}/lib/routing-introspect/src/main.js +0 -0
  504. /package/framework/{v0.5.20 → v0.5.21}/lib/secrets/package.json +0 -0
  505. /package/framework/{v0.5.20 → v0.5.21}/lib/secrets/src/backends/env.js +0 -0
  506. /package/framework/{v0.5.20 → v0.5.21}/lib/secrets/src/main.js +0 -0
  507. /package/framework/{v0.5.20 → v0.5.21}/lib/session-store.js +0 -0
  508. /package/framework/{v0.5.20 → v0.5.21}/lib/shell.js +0 -0
  509. /package/framework/{v0.5.20 → v0.5.21}/lib/state.js +0 -0
  510. /package/framework/{v0.5.20 → v0.5.21}/lib/swig-filters/README.md +0 -0
  511. /package/framework/{v0.5.20 → v0.5.21}/lib/swig-filters/package.json +0 -0
  512. /package/framework/{v0.5.20 → v0.5.21}/lib/swig-filters/src/main.js +0 -0
  513. /package/framework/{v0.5.20 → v0.5.21}/lib/swig-resolver/package.json +0 -0
  514. /package/framework/{v0.5.20 → v0.5.21}/lib/swig-resolver/src/main.js +0 -0
  515. /package/framework/{v0.5.20 → v0.5.21}/lib/template-loaders/package.json +0 -0
  516. /package/framework/{v0.5.20 → v0.5.21}/lib/template-loaders/src/loaders/http.js +0 -0
  517. /package/framework/{v0.5.20 → v0.5.21}/lib/template-loaders/src/loaders/memory.js +0 -0
  518. /package/framework/{v0.5.20 → v0.5.21}/lib/template-loaders/src/main.js +0 -0
  519. /package/framework/{v0.5.20 → v0.5.21}/lib/url/README.md +0 -0
  520. /package/framework/{v0.5.20 → v0.5.21}/lib/url/index.js +0 -0
  521. /package/framework/{v0.5.20 → v0.5.21}/lib/url/routing.json +0 -0
  522. /package/framework/{v0.5.20 → v0.5.21}/lib/uuid/package.json +0 -0
  523. /package/framework/{v0.5.20 → v0.5.21}/lib/uuid/src/main.js +0 -0
  524. /package/framework/{v0.5.20 → v0.5.21}/lib/validator.js +0 -0
  525. /package/framework/{v0.5.20 → v0.5.21}/lib/watcher/package.json +0 -0
  526. /package/framework/{v0.5.20 → v0.5.21}/lib/watcher/src/main.js +0 -0
  527. /package/framework/{v0.5.20 → v0.5.21}/lib/ws-framing/package.json +0 -0
  528. /package/framework/{v0.5.20 → v0.5.21}/lib/ws-framing/src/main.js +0 -0
  529. /package/framework/{v0.5.20 → v0.5.21}/lib/ws-query/package.json +0 -0
  530. /package/framework/{v0.5.20 → v0.5.21}/lib/ws-query/src/main.js +0 -0
  531. /package/framework/{v0.5.20 → v0.5.21}/lib/ws-session/package.json +0 -0
  532. /package/framework/{v0.5.20 → v0.5.21}/lib/ws-session/src/main.js +0 -0
@@ -413,6 +413,14 @@ function Config(opt, contextResetNeeded) {
413
413
  /**
414
414
  * Get env config
415
415
  *
416
+ * Non-merged mode (`!self.isStandalone`, bundles on distinct ports):
417
+ * returns `envConf[bundle][env]` untouched. Merged mode (every bundle
418
+ * on the same port, one process): additionally normalises the target
419
+ * bundle's `hostname` to the starting app's (same host:port by
420
+ * definition). The target bundle's `content.routing` is NEVER
421
+ * reassigned (#B137) — each bundle keeps its own table, and the
422
+ * merged view lives in the global `envConf.routing`.
423
+ *
416
424
  * @param {string} bundle
417
425
  * @param {string} env
418
426
  *
@@ -460,7 +468,17 @@ function Config(opt, contextResetNeeded) {
460
468
  self.envConf[self.startingApp][env].hostname = hostname;
461
469
 
462
470
  self.envConf[bundle][env].hostname = self.envConf[self.startingApp][env].hostname;
463
- self.envConf[bundle][env].content.routing = self.envConf[self.startingApp][env].content.routing;
471
+ // #B137 — was: self.envConf[bundle][env].content.routing = self.envConf[self.startingApp][env].content.routing;
472
+ // The 2015 single-table design aliased the target bundle's routing
473
+ // table to the starting app's. Per-bundle `rule@bundle` keying made
474
+ // that pure corruption: the starting app's table cannot hold a
475
+ // sibling's keys, so the first cross-bundle getUrl permanently
476
+ // clobbered the sibling's table — every cross-bundle link rendered
477
+ // the literal `404:[<METHOD>]<rule>@<bundle>` marker, and merged-mode
478
+ // inbound statics dispatch (loadBundleConfiguration → getRouting)
479
+ // could match requests against the wrong bundle's table. The sibling
480
+ // keeps its own table; the merged view of all bundles' rules lives
481
+ // in the global `envConf.routing` (see setRouting).
464
482
 
465
483
  if ( bundle && env ) {
466
484
  return self.envConf[bundle][env]
@@ -1627,6 +1645,10 @@ function Config(opt, contextResetNeeded) {
1627
1645
 
1628
1646
  var c = 0
1629
1647
  , cLen = configFiles.length
1648
+ // #B132 — set inside the loop when an iteration resolves a REAL
1649
+ // routing config file (bundle or shared; the env-versioned variant
1650
+ // rides its base file's iteration); enforced right after the loop.
1651
+ , routingConfigSeen = false
1630
1652
  ;
1631
1653
  for (; c < cLen; ++c) {
1632
1654
  let jsonFile = null;
@@ -1756,7 +1778,10 @@ function Config(opt, contextResetNeeded) {
1756
1778
  }
1757
1779
 
1758
1780
  if (!exists) {
1759
- console.warn('[ ' + app + ' ] [ ' + env + ' ]' + new Error('[ ' + filename + ' ] not found'));
1781
+ // #B132 rider — `app` was a ReferenceError here (the loop's
1782
+ // bundle-name variable is `bundle`), so this readdir-race
1783
+ // warn could never actually fire: it crashed instead.
1784
+ console.warn('[ ' + bundle + ' ] [ ' + env + ' ]' + new Error('[ ' + filename + ' ] not found'));
1760
1785
  } else {
1761
1786
  jsonFile = requireJSON(_(filename, true));
1762
1787
  }
@@ -1798,8 +1823,30 @@ function Config(opt, contextResetNeeded) {
1798
1823
  files[name] = merge(files[name], fileContent);
1799
1824
  }
1800
1825
 
1826
+ // #B132 — `exists` here reflects the MAIN config file (bundle dir or
1827
+ // the shared-config fallback); a readdir↔existsSync race lands false
1828
+ // and correctly routes to the post-loop refusal (supervisor retry).
1829
+ if ( name == 'routing' && exists ) {
1830
+ routingConfigSeen = true;
1831
+ }
1801
1832
 
1802
1833
  } // EO for (var c = 0, cLen = configFiles.length; c < cLen; ++c)
1834
+
1835
+ // #B132 — fail fast on a missing/unreadable routing config. Hydration is
1836
+ // readdir-driven: a config/routing.json absent at boot readdir time is
1837
+ // never iterated, so the bundle's table would silently hold only the
1838
+ // framework-synthetic routes and every app route 404s (or a sibling
1839
+ // bundle's cross-bundle route lookup throws) hours later with no
1840
+ // boot-time signal. A declared bundle without a readable routing config
1841
+ // is a broken deployment (deploy still in progress?) — refuse to start,
1842
+ // matching the malformed-JSON path above (callback(err) leads to
1843
+ // process.exit(1)); the supervisor restart then retries until the
1844
+ // release tree settles.
1845
+ if (!routingConfigSeen) {
1846
+ e = '[ ' + bundle + ' ][ ' + env + ' ] config/routing.json not found — a declared bundle without a readable routing config is a broken deployment (deploy still in progress?); refusing to start';
1847
+ console.error(e);
1848
+ return callback(new Error(e));
1849
+ }
1803
1850
  conf[bundle][env] = merge(files, conf[bundle][env]);
1804
1851
 
1805
1852
  // building file list
@@ -211,12 +211,17 @@ module.exports = function renderJSON(jsonObj, deps) {
211
211
  }
212
212
  } catch (err){
213
213
  response.statusCode = 500;
214
+ // #B131 — the reason phrase must be a short single line: a multi-line
215
+ // stack is invalid on the HTTP/1.1 status line (Node rejects the write)
216
+ // and would leak internal paths + frames to the client. The stack goes
217
+ // to the server log instead.
218
+ console.error('[ RENDER-JSON ] status resolution failed: ', err.stack||err.message||err);
214
219
  // HTTP/2 (RFC7540 8.1.2.4):
215
220
  // This standard for HTTP/2 explicitly states that status messages are not supported.
216
221
  // In HTTP/2, the status is conveyed solely by the numerical status code (e.g., 200, 404, 500),
217
222
  // and there is no field for a human-readable status message.
218
223
  if ( !/http\/2/.test(local.options.conf.server.protocol) ) {
219
- response.statusMessage = err.stack;
224
+ response.statusMessage = err.message || 'Internal Server Error';
220
225
  }
221
226
  }
222
227
  }
@@ -209,21 +209,38 @@ module.exports = async function render(userData, displayInspector, errOptions, d
209
209
  // When present, every framework-injected inline <script> carries a matching
210
210
  // nonce="..." attribute so a bundle can drop 'unsafe-inline' from script-src.
211
211
  var _cspNonce = (req && req._ginaCspNonce) ? req._ginaCspNonce : null;
212
- // Stamp the onGinaLoaded bootstrap <script> with the nonce. The loader tag is
213
- // a cached, immutable string (config.js builds it once) .replace() returns a
214
- // fresh string and never mutates the shared cache. No-op when no nonce is set.
212
+ // Stamp the onGinaLoaded bootstrap <script> with a RENDER-TIME nonce template
213
+ // (#B130). The loader tag flows into the swig-compiled layout, and the compiled
214
+ // template is CACHED per view on serverInstance._cached so a literal nonce
215
+ // here would be frozen at first compile while the Csp middleware mints a fresh
216
+ // one per request (header != markup on every later request for the view).
217
+ // Injecting swig tags instead keeps the cached artifact nonce-agnostic: the
218
+ // conditional re-evaluates on every compiledTemplate(data) execute against
219
+ // data.page.cspNonce, which BOTH the cache-hit and compile branches assign
220
+ // pre-execute. The loader tag itself is a cached, immutable string (config.js
221
+ // builds it once) — .replace() returns a fresh string and never mutates the
222
+ // shared cache. No-op when no nonce is set (non-CSP deployments bake the
223
+ // plain tag, byte-identical to before).
215
224
  var _nonceLoader = function (loaderTag) {
216
225
  if (_cspNonce && typeof loaderTag === 'string') {
217
226
  return loaderTag.replace(
218
227
  '<script type="text/javascript">',
219
- '<script type="text/javascript" nonce="' + _cspNonce + '">'
228
+ '<script type="text/javascript"{% if page.cspNonce %} nonce="{{ page.cspNonce }}"{% endif %}>'
220
229
  );
221
230
  }
222
231
  return loaderTag;
223
232
  };
224
- // #HDR5 — nonce attribute fragment for the dev-only Inspector + metrics-patch
225
- // inline <script>s (assembled as JS strings below). '' when no nonce is set.
233
+ // #HDR5 — nonce attribute fragment for POST-EXECUTE inline-<script> injections
234
+ // (release banner, cache-patch scripts): those splice into htmlContent after
235
+ // compiledTemplate(data) ran, so the literal per-request value is correct.
236
+ // '' when no nonce is set.
226
237
  var _cspNonceAttr = _cspNonce ? (' nonce="' + _cspNonce + '"') : '';
238
+ // #B130 — TEMPLATE form of the same attr for inline <script>s that are baked
239
+ // into the swig-compiled layout PRE-compile (the dev Inspector __ginaData /
240
+ // __ginaLogs pair): the compiled template is cached per view, so a literal
241
+ // value would freeze at first compile. The swig conditional re-evaluates per
242
+ // execute — the same mechanism the statusbar include already uses.
243
+ var _cspNonceTplAttr = _cspNonce ? '{% if page.cspNonce %} nonce="{{ page.cspNonce }}"{% endif %}' : '';
227
244
  // Using server cache to cache compiledTemplates
228
245
  cache.from(self.serverInstance._cached);
229
246
  // Output/render cache goes through the strategy dispatcher (same shared store).
@@ -893,6 +910,27 @@ module.exports = async function render(userData, displayInspector, errOptions, d
893
910
  assets = {assets:"${assets}"};
894
911
  // replaced: fs.readFileSync — async read (#P29)
895
912
  layout = await fs.promises.readFile(layoutPath, 'utf8');
913
+ // #B130 upgrade path — in cached mode the layout-cache file persists the
914
+ // INJECTED layout (it is the {% extends %} target swig compiles from) and
915
+ // is only re-primed when missing, so a file written by a pre-#B130 build
916
+ // still carries the bootstrap loader (and, dev+cache, the Inspector
917
+ // scripts) with a frozen LITERAL nonce baked in — and the injection
918
+ // guards below skip re-injection because onGinaLoaded is already there.
919
+ // Normalize those literals to the render-time conditional; anchored on
920
+ // each script's own idiom (the loader's `<!--` wrapper from config.js,
921
+ // the Inspector scripts' window.__gina* openers), idempotent (the
922
+ // conditional form no longer matches), and persisted back by the
923
+ // layout-cache write below, so this heals once per stale file.
924
+ if ( /<script( type="text\/javascript")? nonce="/.test(layout) ) {
925
+ layout = layout.replace(
926
+ /<script type="text\/javascript" nonce="[^"]*">(\s*<!--)/g,
927
+ '<script type="text/javascript"{% if page.cspNonce %} nonce="{{ page.cspNonce }}"{% endif %}>$1'
928
+ );
929
+ layout = layout.replace(
930
+ /<script nonce="[^"]*">(window\.__gina(Data|Logs))/g,
931
+ '<script{% if page.cspNonce %} nonce="{{ page.cspNonce }}"{% endif %}>$1'
932
+ );
933
+ }
896
934
  // Loading from cache
897
935
  if (
898
936
  String(self.serverInstance._cacheIsEnabled).toLowerCase() === 'true'
@@ -1346,7 +1384,7 @@ module.exports = async function render(userData, displayInspector, errOptions, d
1346
1384
  replacement : _redactConf.replacement
1347
1385
  });
1348
1386
 
1349
- var __gdScript = '<script' + _cspNonceAttr + '>window.__ginaData = '
1387
+ var __gdScript = '<script' + _cspNonceTplAttr + '>window.__ginaData = '
1350
1388
  + JSON.stringify(__gdPayload)
1351
1389
  .replace(/<\/script>/gi, '<\\/script>')
1352
1390
  .replace(/<!--/g, '<\\!--')
@@ -1362,7 +1400,7 @@ module.exports = async function render(userData, displayInspector, errOptions, d
1362
1400
  }
1363
1401
  process.emit('inspector#data', __gdPayload);
1364
1402
 
1365
- var __logsScript = '<script' + _cspNonceAttr + '>'
1403
+ var __logsScript = '<script' + _cspNonceTplAttr + '>'
1366
1404
  + 'window.__ginaLogs = window.__ginaLogs || [];'
1367
1405
  + '(function(w){'
1368
1406
  + 'var _c=w.console,_l=w.__ginaLogs,_b="' + (__gdUser.environment && __gdUser.environment.bundle || '') + '";'
@@ -3863,6 +3863,24 @@ function ValidatorPlugin(rules, data, formId, culture) {
3863
3863
  handleErrorsDisplay($gForm, gResult.error, gResult.data, _touchedField);
3864
3864
  }
3865
3865
  }
3866
+ // #B136 — the fresh global pass is VALID but the store still
3867
+ // holds errors from an earlier pass (e.g. a cross-field
3868
+ // comparison fixed by ANOTHER control's change: a checkbox
3869
+ // handler raising the compared field). Every stored error is
3870
+ // stale — clear each previously-errored field's display, not
3871
+ // just the touched field's, so the re-enabled submit trigger
3872
+ // never sits beside a stale blocking-error message.
3873
+ // handleErrorsDisplay's empty-errors path also prunes the
3874
+ // per-field bookkeeping; new errors are never rendered here
3875
+ // (untouched-field display still waits for interaction or
3876
+ // submit).
3877
+ else if ( isFormValid && instance.$forms[formId].errors && instance.$forms[formId].errors.count() > 0 ) {
3878
+ var staleErrors = instance.$forms[formId].errors;
3879
+ instance.$forms[formId].errors = {};
3880
+ for (var staleField in staleErrors) {
3881
+ handleErrorsDisplay($gForm, {}, null, staleField);
3882
+ }
3883
+ }
3866
3884
  // Fixed on 2025-03-16
3867
3885
  // Eg.: input select change impacting another element: solve `no more errors`
3868
3886
  else if ( instance.$forms[formId].errors && !instance.$forms[formId].errors.count() ) {
@@ -4075,7 +4093,19 @@ function ValidatorPlugin(rules, data, formId, culture) {
4075
4093
  * handleAutoComplete
4076
4094
  * This is a temporary fix to handle safari autocomplete/autosuggest
4077
4095
  * Will be removed when Safari honores autocomplete="off"
4096
+ *
4097
+ * Intercepts keydown on the field (preventDefault + a programmatic value
4098
+ * rebuild behind a transient readonly) so the browser never sees typing
4099
+ * and offers no autofill/autosuggest. Modifier chords (metaKey/ctrlKey)
4100
+ * are deliberately NOT intercepted (#B134): they return before
4101
+ * preventDefault so the native select-all/copy/paste/cut/undo defaults
4102
+ * run — the rebuild cannot reproduce them.
4103
+ *
4104
+ * Gated to REAL Safari at the registerForLiveChecking call site (#B135):
4105
+ * Chromium UAs carry the Safari token but were never this workaround's
4106
+ * target — they get native behavior.
4078
4107
  * @param {object} $el HTMLElement
4108
+ * @param {number} [liveCheckTimer] - live-check debounce handle, cleared per intercepted keystroke
4079
4109
  */
4080
4110
  var handleAutoComplete = function($el, liveCheckTimer) {
4081
4111
 
@@ -4096,6 +4126,17 @@ function ValidatorPlugin(rules, data, formId, culture) {
4096
4126
  // add once
4097
4127
  if ( typeof(gina.events[evtName]) == 'undefined' ) {
4098
4128
  addListener(gina, event.currentTarget, evtName, function(e) {
4129
+ // #B134 — modifier chords are NOT intercepted: return before
4130
+ // preventDefault so the native select-all/copy/paste/cut/undo
4131
+ // defaults run. The rebuild below cannot reproduce them — the
4132
+ // printable branch typed the chord letter into the field
4133
+ // (Cmd+A appended "a") and execCommand("paste") is inert in
4134
+ // unprivileged web content. The field is not readonly here
4135
+ // (focusin removed it), so the native edit lands and the
4136
+ // live-check picks it up on the keyup that follows.
4137
+ if ( e.metaKey || e.ctrlKey ) {
4138
+ return;
4139
+ }
4099
4140
  e.preventDefault();
4100
4141
  clearTimeout(liveCheckTimer);
4101
4142
 
@@ -4179,53 +4220,61 @@ function ValidatorPlugin(rules, data, formId, culture) {
4179
4220
  }
4180
4221
  break;
4181
4222
  // Shortcuts
4182
- case 17: // CTRL
4183
- case 91: // CMD
4184
- console.debug("CMD, CTRL hit");
4185
- e.preventDefault();
4186
- break;
4187
- case 67: // to handle CMD+C (copy)
4188
- if (
4189
- keyboardMapping[67] && keyboardMapping[91] // mac osx
4190
- ||
4191
- keyboardMapping[67] && keyboardMapping[17] // windows
4192
- ) {
4193
- $_el.setSelectionRange(posStart, posEnd);
4194
- document.execCommand("copy");
4195
- break;
4196
- }
4197
- case 86: // to handle CMD+V (paste)
4198
- if (
4199
- keyboardMapping[86] && keyboardMapping[91] // mac osx
4200
- ||
4201
- keyboardMapping[86] && keyboardMapping[17] // windows
4202
- ) {
4203
- if (posStart != posEnd) {
4204
- $_el.value = $_el.value.replace(str.substring(posStart, posEnd), '');
4205
- }
4206
- setCaretToPos($_el, posStart);
4207
- document.execCommand("paste");
4208
- break;
4209
- }
4210
- case 88: // to handle CMD+X (cut)
4211
- if (
4212
- keyboardMapping[88] && keyboardMapping[91] // mac osx
4213
- ||
4214
- keyboardMapping[88] && keyboardMapping[17] // windows
4215
- ) {
4216
- $_el.setSelectionRange(posStart, posEnd);
4217
- document.execCommand("cut");
4218
- break;
4219
- }
4220
- case 90: // to handle CMD+Z (undo)
4221
- if (
4222
- keyboardMapping[90] && keyboardMapping[91] // mac osx
4223
- ||
4224
- keyboardMapping[90] && keyboardMapping[17] // windows
4225
- ) {
4226
- $_el.value = $_el.defaultValue;
4227
- break;
4228
- }
4223
+ // #B134 the modifier-chord cases below are unreachable
4224
+ // since the e.metaKey/e.ctrlKey bail at the top of this
4225
+ // handler: chords now run natively, and the native
4226
+ // copy/cut/paste/select-all/undo defaults are correct
4227
+ // where these re-implementations were not (the paste
4228
+ // re-implementation was inert in unprivileged web
4229
+ // content, and undo-to-defaultValue wiped user input).
4230
+ // Kept commented for the record.
4231
+ // case 17: // CTRL
4232
+ // case 91: // CMD
4233
+ // console.debug("CMD, CTRL hit");
4234
+ // e.preventDefault();
4235
+ // break;
4236
+ // case 67: // to handle CMD+C (copy)
4237
+ // if (
4238
+ // keyboardMapping[67] && keyboardMapping[91] // mac osx
4239
+ // ||
4240
+ // keyboardMapping[67] && keyboardMapping[17] // windows
4241
+ // ) {
4242
+ // $_el.setSelectionRange(posStart, posEnd);
4243
+ // document.execCommand("copy");
4244
+ // break;
4245
+ // }
4246
+ // case 86: // to handle CMD+V (paste)
4247
+ // if (
4248
+ // keyboardMapping[86] && keyboardMapping[91] // mac osx
4249
+ // ||
4250
+ // keyboardMapping[86] && keyboardMapping[17] // windows
4251
+ // ) {
4252
+ // if (posStart != posEnd) {
4253
+ // $_el.value = $_el.value.replace(str.substring(posStart, posEnd), '');
4254
+ // }
4255
+ // setCaretToPos($_el, posStart);
4256
+ // document.execCommand("paste");
4257
+ // break;
4258
+ // }
4259
+ // case 88: // to handle CMD+X (cut)
4260
+ // if (
4261
+ // keyboardMapping[88] && keyboardMapping[91] // mac osx
4262
+ // ||
4263
+ // keyboardMapping[88] && keyboardMapping[17] // windows
4264
+ // ) {
4265
+ // $_el.setSelectionRange(posStart, posEnd);
4266
+ // document.execCommand("cut");
4267
+ // break;
4268
+ // }
4269
+ // case 90: // to handle CMD+Z (undo)
4270
+ // if (
4271
+ // keyboardMapping[90] && keyboardMapping[91] // mac osx
4272
+ // ||
4273
+ // keyboardMapping[90] && keyboardMapping[17] // windows
4274
+ // ) {
4275
+ // $_el.value = $_el.defaultValue;
4276
+ // break;
4277
+ // }
4229
4278
  default:
4230
4279
  // Replace selection
4231
4280
  if (e.key.length > 1) {
@@ -4294,9 +4343,17 @@ function ValidatorPlugin(rules, data, formId, culture) {
4294
4343
  addLiveForInput($form, $el, liveCheckTimer, isCustomEl);
4295
4344
  if ( !isCustomEl ) {
4296
4345
  // Bypass Safari autocomplete (native inputs only)
4346
+ // #B135 — REAL Safari only: every Chromium UA (Chrome/Edge/
4347
+ // Brave/Opera...) also carries the "Safari/537.36" token, so
4348
+ // the bare /safari/i test matched them all and ran this
4349
+ // WebKit workaround where it was never intended (see the
4350
+ // handleAutoComplete header). WebKit-on-iOS third-party
4351
+ // browsers (CriOS/FxiOS/EdgiOS — no "Chrome"/"Chromium"
4352
+ // token) stay matched on purpose: they run Safari's engine.
4297
4353
  var isAutoCompleteField = $el.getAttribute('autocomplete');
4298
4354
  if (
4299
4355
  /safari/i.test(navigator.userAgent)
4356
+ && !/chrom(e|ium)/i.test(navigator.userAgent)
4300
4357
  && isAutoCompleteField
4301
4358
  && /^(off|false)/i.test(isAutoCompleteField)
4302
4359
  ) {
@@ -5608,6 +5665,17 @@ function ValidatorPlugin(rules, data, formId, culture) {
5608
5665
  handleErrorsDisplay($gForm, gResult.error, gResult.data, _touchedField);
5609
5666
  }
5610
5667
  }
5668
+ // #B136 — same stale-clear as processEvent's global pass (keep the
5669
+ // two copies in sync): the fresh pass is valid but the store still
5670
+ // holds earlier errors — clear each previously-errored field's
5671
+ // display, not just the touched field's.
5672
+ else if ( isFormValid && instance.$forms[formId].errors && instance.$forms[formId].errors.count() > 0 ) {
5673
+ var staleErrors = instance.$forms[formId].errors;
5674
+ instance.$forms[formId].errors = {};
5675
+ for (var staleField in staleErrors) {
5676
+ handleErrorsDisplay($gForm, {}, null, staleField);
5677
+ }
5678
+ }
5611
5679
 
5612
5680
  updateSubmitTriggerState( $gForm, isFormValid);
5613
5681
  once = false;
@@ -2163,9 +2163,20 @@ function ServerEngineClass(options) {
2163
2163
  // only; the shared handle() read (server.js) labels detail=redis.
2164
2164
  cacheStatus += '; detail=' + ( (typeof(cachedContentObj.fromMemory) != 'undefined') ? 'memory' : 'fs' );
2165
2165
 
2166
+ // #B130 — same re-nonce as server.js serveRenderCacheHit (keep in
2167
+ // sync): a hit replays the WRITING request's stored headers + body;
2168
+ // when the stored CSP header carries a nonce, mint fresh + rewrite
2169
+ // the header copy and the body occurrences so nonces stay
2170
+ // per-response. The stored entry is never mutated.
2171
+ var _rn = lib.RenderCache.renonceCspHeaders(
2172
+ ( typeof(cachedContentObj.responseHeaders) != 'undefined' )
2173
+ ? cachedContentObj.responseHeaders
2174
+ : null
2175
+ );
2166
2176
  if ( typeof(cachedContentObj.responseHeaders) != 'undefined' ) {
2167
- for (let h in cachedContentObj.responseHeaders ) {
2168
- response.setHeader(h, cachedContentObj.responseHeaders[h]);
2177
+ let _rnHeaders = _rn ? _rn.headers : cachedContentObj.responseHeaders;
2178
+ for (let h in _rnHeaders ) {
2179
+ response.setHeader(h, _rnHeaders[h]);
2169
2180
  }
2170
2181
  }
2171
2182
  response.setHeader('Cache-Status', cacheStatus);
@@ -2195,15 +2206,39 @@ function ServerEngineClass(options) {
2195
2206
  typeof(cachedContentObj.fromMemory) != 'undefined'
2196
2207
  ) {
2197
2208
  console.info(request.method +' [200]['+ cacheStatus +'] '+ request.url);
2198
- return response.end(cachedContentObj.content);
2209
+ return response.end(
2210
+ _rn
2211
+ ? lib.RenderCache.swapNonces(cachedContentObj.content, _rn.oldNonces, _rn.nonce)
2212
+ : cachedContentObj.content
2213
+ );
2199
2214
  }
2200
2215
 
2201
2216
  filename = _(cachedContentObj.filename, true);
2202
2217
 
2218
+ if ( _rn ) {
2219
+ // #B130 — the re-nonced body needs the whole content in hand;
2220
+ // buffer the disk read-back instead of streaming. Only fires
2221
+ // when the stored headers carry a CSP nonce — nonce-less
2222
+ // entries keep the streaming path below byte-identical.
2223
+ return fs.readFile(filename, 'utf8', function onCachedFileRenonce(err, fileContent) {
2224
+ if (err) {
2225
+ console.error("[SERVER][CACHE][FILE ERROR] ", err.stack||err.message||err);
2226
+ // message-only on the wire — the stack stays in the log above
2227
+ return response.end(''+ (err.message || err));
2228
+ }
2229
+ console.info(request.method +' [200] '+ request.url);
2230
+ return response.end( lib.RenderCache.swapNonces(fileContent, _rn.oldNonces, _rn.nonce) );
2231
+ });
2232
+ }
2233
+
2203
2234
  return fs.createReadStream(filename)
2204
2235
  .on('error', function onError(err) {
2205
2236
  console.error("[SERVER][CACHE][FILE ERROR] ", err.stack||err.message||err);
2206
- return response.end(''+ (err.stack||err.message||err));
2237
+ // #B131 message-only on the wire, aligned with the
2238
+ // onCachedFileRenonce buffered sibling above; the stack
2239
+ // stays in the log line above (it previously led the
2240
+ // wire fallback chain, putting frames on the wire).
2241
+ return response.end(''+ (err.message || err));
2207
2242
  })
2208
2243
  .on('end', function onResponse(){
2209
2244
  console.info(request.method +' [200] '+ request.url);
@@ -5571,9 +5571,19 @@ function Server(options) {
5571
5571
  _remaining = Math.max(0, Math.floor( (hit.createdAt.getTime() + Math.round(hit.ttl * 1000) - Date.now()) / 1000 ));
5572
5572
  }
5573
5573
  var _vis = ( hit.visibility === 'public' ) ? 'public' : 'private';
5574
+ // #B130 — a hit replays the STORED headers + body, both minted by the request
5575
+ // that WROTE the entry. When the stored CSP header carries a nonce, replaying
5576
+ // the pair verbatim would reuse one nonce for every client of this URL until
5577
+ // the TTL (and the Csp middleware never re-mints here — the hit short-circuits
5578
+ // dispatch). Mint fresh + rewrite the header copy AND the body occurrences so
5579
+ // nonces stay per-response. The stored entry is never mutated.
5580
+ // Keep in sync with the isaac pre-routing read (server.isaac.js).
5581
+ var _rn = lib.RenderCache.renonceCspHeaders(hit.responseHeaders || null);
5582
+ var _hitContent = _rn ? lib.RenderCache.swapNonces(hit.content, _rn.oldNonces, _rn.nonce) : hit.content;
5574
5583
  // The page's own headers first, then the cache metadata.
5575
5584
  if ( hit.responseHeaders ) {
5576
- for (var h in hit.responseHeaders) { res.setHeader(h, hit.responseHeaders[h]); }
5585
+ var _hitHeaders = _rn ? _rn.headers : hit.responseHeaders;
5586
+ for (var h in _hitHeaders) { res.setHeader(h, _hitHeaders[h]); }
5577
5587
  }
5578
5588
  // #RC5 — ONE header string, set AND logged from the same var (the prior dual
5579
5589
  // construction at setHeader + console.info was a drift hazard).
@@ -5595,12 +5605,12 @@ function Server(options) {
5595
5605
  var _pending = res.getHeaders ? res.getHeaders() : {};
5596
5606
  for (var ph in _pending) { _sh[ph] = _pending[ph]; }
5597
5607
  res.stream.respond(_sh);
5598
- res.stream.end(hit.content);
5608
+ res.stream.end(_hitContent);
5599
5609
  res.headersSent = true;
5600
5610
  }
5601
5611
  } else {
5602
5612
  if ( !res.headersSent && !res.writableEnded ) {
5603
- res.end(hit.content);
5613
+ res.end(_hitContent);
5604
5614
  }
5605
5615
  }
5606
5616
  console.info(req.method + ' [200][' + _cs + '] ' + (req.originalUrl || req.url));
@@ -6192,6 +6202,37 @@ function Server(options) {
6192
6202
  var bundleConf = self.conf[self.appName][self.env];
6193
6203
  var _h1ContentType = null;
6194
6204
 
6205
+ // #B131 — scope-gated stack egress. Feeders (router.js action/middleware
6206
+ // catches, server.js internals) pass `err.stack` pre-flattened as `msg`,
6207
+ // so outside local scope every emit below (the JSON XHR/API branches, the
6208
+ // inline HTML fallback, the custom-error page data built from `err`) would
6209
+ // carry absolute framework paths + stack frames to HTTP clients. Outside
6210
+ // local scope: log the full text server-side (before this gate it only
6211
+ // survived via the wire), then send the message line only / strip the
6212
+ // field. Local scope stays byte-identical — the dev toolbar reads the
6213
+ // stack. The gate reads self.isLocalScope() — the same NODE_SCOPE_IS_LOCAL
6214
+ // env read as controller.js's module-level scope cache (both set once at
6215
+ // gna.js bootstrap), so the server-side and controller-side throwError
6216
+ // gates can never disagree. bundleConf.server.scopeIsLocal was rejected:
6217
+ // it derives from projects.json def_scope (config.js), which can lag the
6218
+ // RUNTIME scope of a boot started with an explicit NODE_SCOPE/--scope.
6219
+ var sanitizeWireError = function(m, c) {
6220
+ if ( self.isLocalScope() ) {
6221
+ return m;
6222
+ }
6223
+ if ( typeof(m) == 'string' && /\n\s+at\s/.test(m) ) {
6224
+ console.error('[ BUNDLE ][ '+ self.appName +' ] '+ local.request.method +' [ '+ c +' ] '+ local.request.url +'\n'+ m);
6225
+ return m.split('\n')[0];
6226
+ }
6227
+ if ( m && typeof(m) == 'object' && typeof(m.stack) != 'undefined' ) {
6228
+ console.error('[ BUNDLE ][ '+ self.appName +' ] '+ local.request.method +' [ '+ c +' ] '+ local.request.url +'\n'+ m.stack);
6229
+ m = JSON.clone(m);
6230
+ delete m.stack;
6231
+ }
6232
+ return m;
6233
+ };
6234
+ msg = sanitizeWireError(msg, code);
6235
+
6195
6236
  if ( typeof(msg) != 'object' ) {
6196
6237
  err = {
6197
6238
  code : code,
@@ -6211,6 +6252,9 @@ function Server(options) {
6211
6252
  if ( typeof(code) == 'object' && !msg && typeof(code.status) != 'undefined' && typeof(code.error) != 'undefined' ) {
6212
6253
  msg = code.error;
6213
6254
  code = code.status;
6255
+ // #B131 — the 1-arg errorObject shape lands `msg` after the
6256
+ // top-of-function gate already ran; sanitize the reshaped value too.
6257
+ msg = sanitizeWireError(msg, code);
6214
6258
  }
6215
6259
 
6216
6260
  // Internet Explorer override
@@ -90,7 +90,13 @@
90
90
  // },
91
91
  "response": {
92
92
  "header": {
93
- "accept-language": "en-US,en;q=0.8,fr;q=0.6"
93
+ // Accept-Language is a REQUEST header — meaningless on responses.
94
+ // The framework default used to declare it here, so every response
95
+ // (error responses included) emitted a hardcoded accept-language;
96
+ // removed (#B133). A project/bundle env.json may still declare any
97
+ // response header in this block — the override path is intact, and
98
+ // the controller's request-fallback read of a declared value in
99
+ // this block is kept.
94
100
  // X-Powered-By is intentionally NOT set here.
95
101
  // The framework emits `X-Powered-By: Gina/<version>` from its
96
102
  // per-request emission in core/server.js (BOTH engines), gated on