gina 0.6.2 → 0.6.3

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 (570) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/README.md +41 -12
  3. package/ROADMAP.md +3 -2
  4. package/bin/cli +19 -2
  5. package/framework/v0.6.3/VERSION +1 -0
  6. package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +6 -0
  7. package/framework/v0.6.3/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  8. package/framework/v0.6.3/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  9. package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/inspector/index.html +1 -0
  10. package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +50 -1
  11. package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +457 -57
  12. package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/js/gina.js +1457 -58
  13. package/framework/v0.6.3/core/asset/plugin/dist/vendor/gina/js/gina.min.js +625 -0
  14. package/framework/v0.6.3/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  15. package/framework/v0.6.3/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  16. package/framework/{v0.6.2 → v0.6.3}/core/connectors/couchbase/index.js +114 -0
  17. package/framework/{v0.6.2 → v0.6.3}/core/connectors/couchbase/lib/connector.js +14 -3
  18. package/framework/{v0.6.2 → v0.6.3}/core/connectors/couchbase/lib/session-store.js +14 -3
  19. package/framework/{v0.6.2 → v0.6.3}/core/connectors/couchbase/lib/session-store.v3.js +29 -2
  20. package/framework/{v0.6.2 → v0.6.3}/core/connectors/couchbase/lib/session-store.v4.js +29 -2
  21. package/framework/{v0.6.2 → v0.6.3}/core/connectors/mongodb/lib/session-store.js +24 -2
  22. package/framework/{v0.6.2 → v0.6.3}/core/connectors/redis/lib/session-store.js +33 -9
  23. package/framework/{v0.6.2 → v0.6.3}/core/connectors/scylladb/lib/session-store.js +25 -2
  24. package/framework/{v0.6.2 → v0.6.3}/core/connectors/sqlite/lib/session-store.js +26 -2
  25. package/framework/{v0.6.2 → v0.6.3}/core/controller/controller.js +201 -21
  26. package/framework/{v0.6.2 → v0.6.3}/core/controller/controller.render-nunjucks.js +8 -0
  27. package/framework/{v0.6.2 → v0.6.3}/core/controller/controller.render-swig.js +85 -4
  28. package/framework/{v0.6.2 → v0.6.3}/core/gna.js +23 -1
  29. package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/csrf/src/main.js +9 -5
  30. package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/hide-powered-by/README.md +20 -0
  31. package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/validator/src/form-validator.js +119 -43
  32. package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/validator/src/main.js +451 -9
  33. package/framework/{v0.6.2 → v0.6.3}/core/server.isaac.js +50 -54
  34. package/framework/{v0.6.2 → v0.6.3}/core/server.js +240 -3
  35. package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/index.js +6 -4
  36. package/framework/{v0.6.2 → v0.6.3}/core/template/conf/settings.json +10 -0
  37. package/framework/{v0.6.2 → v0.6.3}/lib/cache/README.md +9 -1
  38. package/framework/{v0.6.2 → v0.6.3}/lib/cmd/audit/verify.js +11 -9
  39. package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/mcp-start.js +21 -12
  40. package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/help.txt +1 -1
  41. package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/init.js +13 -1
  42. package/framework/{v0.6.2 → v0.6.3}/lib/dto/src/main.js +18 -11
  43. package/framework/{v0.6.2 → v0.6.3}/lib/logger/src/containers/file/index.js +29 -1
  44. package/framework/{v0.6.2 → v0.6.3}/lib/logger/src/containers/mq/speaker.js +30 -1
  45. package/framework/{v0.6.2 → v0.6.3}/lib/math/index.js +57 -6
  46. package/framework/{v0.6.2 → v0.6.3}/lib/merge/src/main.js +34 -5
  47. package/framework/{v0.6.2 → v0.6.3}/lib/render-cache/src/main.js +77 -4
  48. package/framework/{v0.6.2 → v0.6.3}/lib/routing/src/main.js +13 -1
  49. package/framework/{v0.6.2 → v0.6.3}/lib/routing-introspect/src/main.js +64 -2
  50. package/framework/v0.6.3/lib/secrets/src/backends/env.js +75 -0
  51. package/framework/{v0.6.2 → v0.6.3}/package.json +1 -1
  52. package/gna.js +5 -4
  53. package/llms.txt +19 -17
  54. package/package.json +5 -4
  55. package/schema/connectors.json +2 -2
  56. package/schema/routing.json +5 -0
  57. package/schema/settings.json +6 -1
  58. package/script/generate_gna_types.js +1 -1
  59. package/script/soak/couchbase-soak.js +1316 -0
  60. package/types/globals.d.ts +2 -0
  61. package/types/gna.d.ts +5 -0
  62. package/types/index.d.ts +1 -0
  63. package/utils/helper.js +38 -7
  64. package/framework/v0.6.2/VERSION +0 -1
  65. package/framework/v0.6.2/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  66. package/framework/v0.6.2/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  67. package/framework/v0.6.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -603
  68. package/framework/v0.6.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  69. package/framework/v0.6.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  70. package/framework/v0.6.2/lib/secrets/src/backends/env.js +0 -60
  71. /package/framework/{v0.6.2 → v0.6.3}/AUTHORS +0 -0
  72. /package/framework/{v0.6.2 → v0.6.3}/LICENSE +0 -0
  73. /package/framework/{v0.6.2 → v0.6.3}/core/asset/html/nolayout.html +0 -0
  74. /package/framework/{v0.6.2 → v0.6.3}/core/asset/html/static.html +0 -0
  75. /package/framework/{v0.6.2 → v0.6.3}/core/asset/img/android-chrome-192x192.png +0 -0
  76. /package/framework/{v0.6.2 → v0.6.3}/core/asset/img/android-chrome-512x512.png +0 -0
  77. /package/framework/{v0.6.2 → v0.6.3}/core/asset/img/apple-touch-icon.png +0 -0
  78. /package/framework/{v0.6.2 → v0.6.3}/core/asset/img/favicon-16x16.png +0 -0
  79. /package/framework/{v0.6.2 → v0.6.3}/core/asset/img/favicon-32x32.png +0 -0
  80. /package/framework/{v0.6.2 → v0.6.3}/core/asset/img/favicon.ico +0 -0
  81. /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/README.md +0 -0
  82. /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  83. /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  84. /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  85. /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  86. /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  87. /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  88. /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  89. /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  90. /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
  91. /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  92. /package/framework/{v0.6.2 → v0.6.3}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  93. /package/framework/{v0.6.2 → v0.6.3}/core/config.js +0 -0
  94. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/ai/index.js +0 -0
  95. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/ai/lib/connector.js +0 -0
  96. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  97. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  98. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/couchbase/lib/n1ql.js +0 -0
  99. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/duckdb/index.js +0 -0
  100. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/duckdb/lib/connector.js +0 -0
  101. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/mongodb/index.js +0 -0
  102. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/mongodb/lib/connector.js +0 -0
  103. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/mongodb/lib/job-store.js +0 -0
  104. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
  105. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/mysql/index.js +0 -0
  106. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/mysql/lib/connector.js +0 -0
  107. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/postgresql/index.js +0 -0
  108. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/postgresql/lib/connector.js +0 -0
  109. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/redis/index.js +0 -0
  110. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/redis/lib/connector.js +0 -0
  111. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/redis/lib/job-store.js +0 -0
  112. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/redis/lib/render-cache-store.js +0 -0
  113. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/scylladb/index.js +0 -0
  114. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/scylladb/lib/connector.js +0 -0
  115. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/sql-parser.js +0 -0
  116. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/sqlite/index.js +0 -0
  117. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/sqlite/lib/connector.js +0 -0
  118. /package/framework/{v0.6.2 → v0.6.3}/core/connectors/sqlite/lib/job-store.js +0 -0
  119. /package/framework/{v0.6.2 → v0.6.3}/core/content.encoding +0 -0
  120. /package/framework/{v0.6.2 → v0.6.3}/core/controller/controller.framework.js +0 -0
  121. /package/framework/{v0.6.2 → v0.6.3}/core/controller/controller.render-json.js +0 -0
  122. /package/framework/{v0.6.2 → v0.6.3}/core/controller/controller.render-nunjucks-async.js +0 -0
  123. /package/framework/{v0.6.2 → v0.6.3}/core/controller/controller.render-stream.js +0 -0
  124. /package/framework/{v0.6.2 → v0.6.3}/core/controller/controller.render-swig-async.js +0 -0
  125. /package/framework/{v0.6.2 → v0.6.3}/core/controller/controller.render-v1.js +0 -0
  126. /package/framework/{v0.6.2 → v0.6.3}/core/controller/index.js +0 -0
  127. /package/framework/{v0.6.2 → v0.6.3}/core/controller/inspector-window-emit.js +0 -0
  128. /package/framework/{v0.6.2 → v0.6.3}/core/controller/release-banner.js +0 -0
  129. /package/framework/{v0.6.2 → v0.6.3}/core/dev/index.js +0 -0
  130. /package/framework/{v0.6.2 → v0.6.3}/core/dev/lib/class.js +0 -0
  131. /package/framework/{v0.6.2 → v0.6.3}/core/dev/lib/factory.js +0 -0
  132. /package/framework/{v0.6.2 → v0.6.3}/core/dev/lib/tools.js +0 -0
  133. /package/framework/{v0.6.2 → v0.6.3}/core/locales/README.md +0 -0
  134. /package/framework/{v0.6.2 → v0.6.3}/core/locales/currency.json +0 -0
  135. /package/framework/{v0.6.2 → v0.6.3}/core/locales/dist/language/en.json +0 -0
  136. /package/framework/{v0.6.2 → v0.6.3}/core/locales/dist/language/fr.json +0 -0
  137. /package/framework/{v0.6.2 → v0.6.3}/core/locales/dist/region/en.json +0 -0
  138. /package/framework/{v0.6.2 → v0.6.3}/core/locales/dist/region/fr.json +0 -0
  139. /package/framework/{v0.6.2 → v0.6.3}/core/locales/index.js +0 -0
  140. /package/framework/{v0.6.2 → v0.6.3}/core/mime.types +0 -0
  141. /package/framework/{v0.6.2 → v0.6.3}/core/model/entity.js +0 -0
  142. /package/framework/{v0.6.2 → v0.6.3}/core/model/index.js +0 -0
  143. /package/framework/{v0.6.2 → v0.6.3}/core/model/template/entityFactory.js +0 -0
  144. /package/framework/{v0.6.2 → v0.6.3}/core/model/template/index.js +0 -0
  145. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/README.md +0 -0
  146. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/index.js +0 -0
  147. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/csrf/README.md +0 -0
  148. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/csrf/package.json +0 -0
  149. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/README.md +0 -0
  150. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/coep/README.md +0 -0
  151. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/coep/package.json +0 -0
  152. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
  153. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/coop/README.md +0 -0
  154. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/coop/package.json +0 -0
  155. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
  156. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/corp/README.md +0 -0
  157. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/corp/package.json +0 -0
  158. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
  159. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/csp/README.md +0 -0
  160. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/csp/package.json +0 -0
  161. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
  162. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
  163. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
  164. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/hsts/README.md +0 -0
  165. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/hsts/package.json +0 -0
  166. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
  167. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
  168. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
  169. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
  170. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/package.json +0 -0
  171. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
  172. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
  173. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
  174. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/src/main.js +0 -0
  175. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
  176. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
  177. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
  178. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
  179. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
  180. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
  181. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
  182. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
  183. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
  184. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
  185. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
  186. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
  187. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
  188. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
  189. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
  190. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
  191. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
  192. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
  193. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/session/README.md +0 -0
  194. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/session/package.json +0 -0
  195. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/session/src/main.js +0 -0
  196. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/storage/README.md +0 -0
  197. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/storage/build.json +0 -0
  198. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/storage/package.json +0 -0
  199. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/storage/src/main.js +0 -0
  200. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/validator/README.md +0 -0
  201. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/validator/build.json +0 -0
  202. /package/framework/{v0.6.2 → v0.6.3}/core/plugins/lib/validator/package.json +0 -0
  203. /package/framework/{v0.6.2 → v0.6.3}/core/router.js +0 -0
  204. /package/framework/{v0.6.2 → v0.6.3}/core/server.express.js +0 -0
  205. /package/framework/{v0.6.2 → v0.6.3}/core/status.codes +0 -0
  206. /package/framework/{v0.6.2 → v0.6.3}/core/template/_gitignore +0 -0
  207. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/config/app.json +0 -0
  208. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  209. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/config/routing.json +0 -0
  210. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/config/settings.json +0 -0
  211. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  212. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/config/templates.json +0 -0
  213. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  214. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  215. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  216. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  217. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle/locales/en.json +0 -0
  218. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  219. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  220. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  221. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  222. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  223. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_public/js/components/x-checklist.js +0 -0
  224. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  225. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
  226. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_public/readme.md +0 -0
  227. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_public/sw.js +0 -0
  228. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  229. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  230. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  231. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  232. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_templates/html/includes/x-checklist.html +0 -0
  233. /package/framework/{v0.6.2 → v0.6.3}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  234. /package/framework/{v0.6.2 → v0.6.3}/core/template/command/gina.bat.tpl +0 -0
  235. /package/framework/{v0.6.2 → v0.6.3}/core/template/command/gina.tpl +0 -0
  236. /package/framework/{v0.6.2 → v0.6.3}/core/template/conf/env.json +0 -0
  237. /package/framework/{v0.6.2 → v0.6.3}/core/template/conf/manifest.json +0 -0
  238. /package/framework/{v0.6.2 → v0.6.3}/core/template/conf/package.json +0 -0
  239. /package/framework/{v0.6.2 → v0.6.3}/core/template/conf/statics.json +0 -0
  240. /package/framework/{v0.6.2 → v0.6.3}/core/template/conf/templates.json +0 -0
  241. /package/framework/{v0.6.2 → v0.6.3}/core/template/error/client/json/401.json +0 -0
  242. /package/framework/{v0.6.2 → v0.6.3}/core/template/error/client/json/403.json +0 -0
  243. /package/framework/{v0.6.2 → v0.6.3}/core/template/error/client/json/404.json +0 -0
  244. /package/framework/{v0.6.2 → v0.6.3}/core/template/error/server/html/50x.html +0 -0
  245. /package/framework/{v0.6.2 → v0.6.3}/core/template/error/server/json/500.json +0 -0
  246. /package/framework/{v0.6.2 → v0.6.3}/core/template/error/server/json/503.json +0 -0
  247. /package/framework/{v0.6.2 → v0.6.3}/core/template/extensions/logger/config.json +0 -0
  248. /package/framework/{v0.6.2 → v0.6.3}/helpers/console.js +0 -0
  249. /package/framework/{v0.6.2 → v0.6.3}/helpers/context.js +0 -0
  250. /package/framework/{v0.6.2 → v0.6.3}/helpers/data/LICENSE +0 -0
  251. /package/framework/{v0.6.2 → v0.6.3}/helpers/data/README.md +0 -0
  252. /package/framework/{v0.6.2 → v0.6.3}/helpers/data/package.json +0 -0
  253. /package/framework/{v0.6.2 → v0.6.3}/helpers/data/src/main.js +0 -0
  254. /package/framework/{v0.6.2 → v0.6.3}/helpers/dateFormat.js +0 -0
  255. /package/framework/{v0.6.2 → v0.6.3}/helpers/index.js +0 -0
  256. /package/framework/{v0.6.2 → v0.6.3}/helpers/json/LICENSE +0 -0
  257. /package/framework/{v0.6.2 → v0.6.3}/helpers/json/README.md +0 -0
  258. /package/framework/{v0.6.2 → v0.6.3}/helpers/json/package.json +0 -0
  259. /package/framework/{v0.6.2 → v0.6.3}/helpers/json/src/main.js +0 -0
  260. /package/framework/{v0.6.2 → v0.6.3}/helpers/path.js +0 -0
  261. /package/framework/{v0.6.2 → v0.6.3}/helpers/plugins/README.md +0 -0
  262. /package/framework/{v0.6.2 → v0.6.3}/helpers/plugins/package.json +0 -0
  263. /package/framework/{v0.6.2 → v0.6.3}/helpers/plugins/src/api-error.js +0 -0
  264. /package/framework/{v0.6.2 → v0.6.3}/helpers/plugins/src/main.js +0 -0
  265. /package/framework/{v0.6.2 → v0.6.3}/helpers/prototypes.js +0 -0
  266. /package/framework/{v0.6.2 → v0.6.3}/helpers/task.js +0 -0
  267. /package/framework/{v0.6.2 → v0.6.3}/helpers/text.js +0 -0
  268. /package/framework/{v0.6.2 → v0.6.3}/lib/admin/package.json +0 -0
  269. /package/framework/{v0.6.2 → v0.6.3}/lib/admin/src/main.js +0 -0
  270. /package/framework/{v0.6.2 → v0.6.3}/lib/archiver/README.md +0 -0
  271. /package/framework/{v0.6.2 → v0.6.3}/lib/archiver/build.json +0 -0
  272. /package/framework/{v0.6.2 → v0.6.3}/lib/archiver/package.json +0 -0
  273. /package/framework/{v0.6.2 → v0.6.3}/lib/archiver/src/dep/jszip.min.js +0 -0
  274. /package/framework/{v0.6.2 → v0.6.3}/lib/archiver/src/main.js +0 -0
  275. /package/framework/{v0.6.2 → v0.6.3}/lib/async/package.json +0 -0
  276. /package/framework/{v0.6.2 → v0.6.3}/lib/async/src/main.js +0 -0
  277. /package/framework/{v0.6.2 → v0.6.3}/lib/audit/package.json +0 -0
  278. /package/framework/{v0.6.2 → v0.6.3}/lib/audit/src/main.js +0 -0
  279. /package/framework/{v0.6.2 → v0.6.3}/lib/audit-store.js +0 -0
  280. /package/framework/{v0.6.2 → v0.6.3}/lib/authn/package.json +0 -0
  281. /package/framework/{v0.6.2 → v0.6.3}/lib/authn/src/lockout.js +0 -0
  282. /package/framework/{v0.6.2 → v0.6.3}/lib/authn/src/main.js +0 -0
  283. /package/framework/{v0.6.2 → v0.6.3}/lib/authn/src/totp.js +0 -0
  284. /package/framework/{v0.6.2 → v0.6.3}/lib/authz-gate/package.json +0 -0
  285. /package/framework/{v0.6.2 → v0.6.3}/lib/authz-gate/src/main.js +0 -0
  286. /package/framework/{v0.6.2 → v0.6.3}/lib/cache/build.json +0 -0
  287. /package/framework/{v0.6.2 → v0.6.3}/lib/cache/package.json +0 -0
  288. /package/framework/{v0.6.2 → v0.6.3}/lib/cache/src/main.js +0 -0
  289. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/aliases.json +0 -0
  290. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/audit/arguments.json +0 -0
  291. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/audit/help.txt +0 -0
  292. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/add.js +0 -0
  293. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/arguments.json +0 -0
  294. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/build.js +0 -0
  295. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/copy.js +0 -0
  296. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/cp.js +0 -0
  297. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/help.js +0 -0
  298. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/help.txt +0 -0
  299. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
  300. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/list.js +0 -0
  301. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/man.js +0 -0
  302. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/mcp.js +0 -0
  303. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/oas.js +0 -0
  304. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/openapi.js +0 -0
  305. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/remove.js +0 -0
  306. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/rename.js +0 -0
  307. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/restart.js +0 -0
  308. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/rm.js +0 -0
  309. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/start.js +0 -0
  310. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/status.js +0 -0
  311. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/stop.js +0 -0
  312. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/bundle/types.js +0 -0
  313. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/cache/arguments.json +0 -0
  314. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/cache/clear.js +0 -0
  315. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/cache/help.txt +0 -0
  316. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/cache/stats.js +0 -0
  317. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/add.js +0 -0
  318. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/arguments.json +0 -0
  319. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/help.js +0 -0
  320. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/infer.js +0 -0
  321. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/list.js +0 -0
  322. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/migrate.js +0 -0
  323. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/models.js +0 -0
  324. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/remove.js +0 -0
  325. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/rm.js +0 -0
  326. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/connector/test.js +0 -0
  327. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/container/arguments.json +0 -0
  328. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/container/help.js +0 -0
  329. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/container/help.txt +0 -0
  330. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/container/man.js +0 -0
  331. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/container/ps.js +0 -0
  332. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/container/stop.js +0 -0
  333. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/add.js +0 -0
  334. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/arguments.json +0 -0
  335. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/help.txt +0 -0
  336. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/inc/args.js +0 -0
  337. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/inc/namespace.js +0 -0
  338. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/inc/reference-rewrite.js +0 -0
  339. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/inc/reference-scan.js +0 -0
  340. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/inc/scaffold.js +0 -0
  341. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/remove.js +0 -0
  342. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/rename.js +0 -0
  343. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/controller/rm.js +0 -0
  344. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/add.js +0 -0
  345. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/get.js +0 -0
  346. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/help.js +0 -0
  347. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/help.txt +0 -0
  348. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/link-dev.js +0 -0
  349. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/list.js +0 -0
  350. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/remove.js +0 -0
  351. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/rm.js +0 -0
  352. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/set.js +0 -0
  353. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/unset.js +0 -0
  354. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/env/use.js +0 -0
  355. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/add.js +0 -0
  356. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/arguments.json +0 -0
  357. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/build.js +0 -0
  358. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/dot.js +0 -0
  359. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/get.js +0 -0
  360. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/help.js +0 -0
  361. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/help.txt +0 -0
  362. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/link-node-modules.js +0 -0
  363. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/link.js +0 -0
  364. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/list.js +0 -0
  365. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/man.js +0 -0
  366. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/msg.json +0 -0
  367. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/open.js +0 -0
  368. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/remove.js +0 -0
  369. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/reset.js +0 -0
  370. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/restart.js +0 -0
  371. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/set.js +0 -0
  372. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/start.js +0 -0
  373. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/status.js +0 -0
  374. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/stop.js +0 -0
  375. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/tail.js +0 -0
  376. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/update.js +0 -0
  377. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/framework/version.js +0 -0
  378. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/gina-dev.1.md +0 -0
  379. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/gina-framework.1.md +0 -0
  380. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/gina.1.md +0 -0
  381. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/helper.js +0 -0
  382. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/i18n/add.js +0 -0
  383. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/i18n/arguments.json +0 -0
  384. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/i18n/export.js +0 -0
  385. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/i18n/help.js +0 -0
  386. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/i18n/help.txt +0 -0
  387. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/i18n/import.js +0 -0
  388. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/i18n/scan.js +0 -0
  389. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/image/_host.js +0 -0
  390. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/image/arguments.json +0 -0
  391. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/image/build.js +0 -0
  392. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/image/help.js +0 -0
  393. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/image/help.txt +0 -0
  394. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/image/list.js +0 -0
  395. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/image/man.js +0 -0
  396. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/image/rm.js +0 -0
  397. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/image/run.js +0 -0
  398. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/index.js +0 -0
  399. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/inspector/help.js +0 -0
  400. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/inspector/help.txt +0 -0
  401. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/inspector/open.js +0 -0
  402. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/man-render.js +0 -0
  403. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/minion/arguments.json +0 -0
  404. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/minion/help.js +0 -0
  405. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/minion/help.txt +0 -0
  406. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/minion/kill.js +0 -0
  407. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/minion/list.js +0 -0
  408. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/msg.json +0 -0
  409. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/port/help.js +0 -0
  410. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/port/help.txt +0 -0
  411. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/port/inc/scan.js +0 -0
  412. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/port/list.js +0 -0
  413. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/port/reset.js +0 -0
  414. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/port/set.js +0 -0
  415. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/add.js +0 -0
  416. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/arguments.json +0 -0
  417. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/backup.js +0 -0
  418. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/build.js +0 -0
  419. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/help.js +0 -0
  420. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/help.txt +0 -0
  421. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/import.js +0 -0
  422. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/list.js +0 -0
  423. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/man.js +0 -0
  424. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/move.js +0 -0
  425. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/remove.js +0 -0
  426. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/rename.js +0 -0
  427. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/restart.js +0 -0
  428. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/restore.js +0 -0
  429. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/rm.js +0 -0
  430. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/start.js +0 -0
  431. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/status.js +0 -0
  432. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/project/stop.js +0 -0
  433. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/protocol/arguments.json +0 -0
  434. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/protocol/help.js +0 -0
  435. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/protocol/help.txt +0 -0
  436. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/protocol/list.js +0 -0
  437. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/protocol/remove.js +0 -0
  438. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/protocol/set.js +0 -0
  439. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/scope/add.js +0 -0
  440. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/scope/help.js +0 -0
  441. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/scope/help.txt +0 -0
  442. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/scope/link-local.js +0 -0
  443. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/scope/link-production.js +0 -0
  444. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/scope/list.js +0 -0
  445. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/scope/remove.js +0 -0
  446. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/scope/rm.js +0 -0
  447. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/scope/use.js +0 -0
  448. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/secrets/arguments.json +0 -0
  449. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/secrets/check.js +0 -0
  450. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/secrets/help.js +0 -0
  451. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/secrets/help.txt +0 -0
  452. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/secrets/scan.js +0 -0
  453. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/service/help.js +0 -0
  454. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/service/help.txt +0 -0
  455. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/service/list.js +0 -0
  456. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/service/man.js +0 -0
  457. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/service/start.js +0 -0
  458. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd/view/add.js +0 -0
  459. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd-status-format/package.json +0 -0
  460. /package/framework/{v0.6.2 → v0.6.3}/lib/cmd-status-format/src/main.js +0 -0
  461. /package/framework/{v0.6.2 → v0.6.3}/lib/collection/README.md +0 -0
  462. /package/framework/{v0.6.2 → v0.6.3}/lib/collection/build.json +0 -0
  463. /package/framework/{v0.6.2 → v0.6.3}/lib/collection/package.json +0 -0
  464. /package/framework/{v0.6.2 → v0.6.3}/lib/collection/src/main.js +0 -0
  465. /package/framework/{v0.6.2 → v0.6.3}/lib/config.js +0 -0
  466. /package/framework/{v0.6.2 → v0.6.3}/lib/connector-config/package.json +0 -0
  467. /package/framework/{v0.6.2 → v0.6.3}/lib/connector-config/src/main.js +0 -0
  468. /package/framework/{v0.6.2 → v0.6.3}/lib/connector-error/package.json +0 -0
  469. /package/framework/{v0.6.2 → v0.6.3}/lib/connector-error/src/main.js +0 -0
  470. /package/framework/{v0.6.2 → v0.6.3}/lib/connector-registry/package.json +0 -0
  471. /package/framework/{v0.6.2 → v0.6.3}/lib/connector-registry/src/main.js +0 -0
  472. /package/framework/{v0.6.2 → v0.6.3}/lib/cron/README.md +0 -0
  473. /package/framework/{v0.6.2 → v0.6.3}/lib/cron/package.json +0 -0
  474. /package/framework/{v0.6.2 → v0.6.3}/lib/cron/src/main.js +0 -0
  475. /package/framework/{v0.6.2 → v0.6.3}/lib/domain/LICENSE +0 -0
  476. /package/framework/{v0.6.2 → v0.6.3}/lib/domain/README.md +0 -0
  477. /package/framework/{v0.6.2 → v0.6.3}/lib/domain/package.json +0 -0
  478. /package/framework/{v0.6.2 → v0.6.3}/lib/domain/src/main.js +0 -0
  479. /package/framework/{v0.6.2 → v0.6.3}/lib/dto/package.json +0 -0
  480. /package/framework/{v0.6.2 → v0.6.3}/lib/dto-pipe/package.json +0 -0
  481. /package/framework/{v0.6.2 → v0.6.3}/lib/dto-pipe/src/main.js +0 -0
  482. /package/framework/{v0.6.2 → v0.6.3}/lib/dto-types/package.json +0 -0
  483. /package/framework/{v0.6.2 → v0.6.3}/lib/dto-types/src/main.js +0 -0
  484. /package/framework/{v0.6.2 → v0.6.3}/lib/generator/index.js +0 -0
  485. /package/framework/{v0.6.2 → v0.6.3}/lib/i18n/package.json +0 -0
  486. /package/framework/{v0.6.2 → v0.6.3}/lib/i18n/src/main.js +0 -0
  487. /package/framework/{v0.6.2 → v0.6.3}/lib/image-build/package.json +0 -0
  488. /package/framework/{v0.6.2 → v0.6.3}/lib/image-build/src/main.js +0 -0
  489. /package/framework/{v0.6.2 → v0.6.3}/lib/index.js +0 -0
  490. /package/framework/{v0.6.2 → v0.6.3}/lib/inherits/LICENSE +0 -0
  491. /package/framework/{v0.6.2 → v0.6.3}/lib/inherits/README.md +0 -0
  492. /package/framework/{v0.6.2 → v0.6.3}/lib/inherits/package.json +0 -0
  493. /package/framework/{v0.6.2 → v0.6.3}/lib/inherits/src/main.js +0 -0
  494. /package/framework/{v0.6.2 → v0.6.3}/lib/inspector-events/package.json +0 -0
  495. /package/framework/{v0.6.2 → v0.6.3}/lib/inspector-events/src/main.js +0 -0
  496. /package/framework/{v0.6.2 → v0.6.3}/lib/inspector-redact/package.json +0 -0
  497. /package/framework/{v0.6.2 → v0.6.3}/lib/inspector-redact/src/main.js +0 -0
  498. /package/framework/{v0.6.2 → v0.6.3}/lib/instrument/package.json +0 -0
  499. /package/framework/{v0.6.2 → v0.6.3}/lib/instrument/src/main.js +0 -0
  500. /package/framework/{v0.6.2 → v0.6.3}/lib/job/package.json +0 -0
  501. /package/framework/{v0.6.2 → v0.6.3}/lib/job/src/main.js +0 -0
  502. /package/framework/{v0.6.2 → v0.6.3}/lib/job-store.js +0 -0
  503. /package/framework/{v0.6.2 → v0.6.3}/lib/json-config-header/package.json +0 -0
  504. /package/framework/{v0.6.2 → v0.6.3}/lib/json-config-header/src/main.js +0 -0
  505. /package/framework/{v0.6.2 → v0.6.3}/lib/logger/README.md +0 -0
  506. /package/framework/{v0.6.2 → v0.6.3}/lib/logger/package.json +0 -0
  507. /package/framework/{v0.6.2 → v0.6.3}/lib/logger/src/containers/default/index.js +0 -0
  508. /package/framework/{v0.6.2 → v0.6.3}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  509. /package/framework/{v0.6.2 → v0.6.3}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  510. /package/framework/{v0.6.2 → v0.6.3}/lib/logger/src/containers/mq/index.js +0 -0
  511. /package/framework/{v0.6.2 → v0.6.3}/lib/logger/src/containers/mq/listener.js +0 -0
  512. /package/framework/{v0.6.2 → v0.6.3}/lib/logger/src/helper.js +0 -0
  513. /package/framework/{v0.6.2 → v0.6.3}/lib/logger/src/main.js +0 -0
  514. /package/framework/{v0.6.2 → v0.6.3}/lib/mcp-dispatch/package.json +0 -0
  515. /package/framework/{v0.6.2 → v0.6.3}/lib/mcp-dispatch/src/main.js +0 -0
  516. /package/framework/{v0.6.2 → v0.6.3}/lib/mcp-http/package.json +0 -0
  517. /package/framework/{v0.6.2 → v0.6.3}/lib/mcp-http/src/main.js +0 -0
  518. /package/framework/{v0.6.2 → v0.6.3}/lib/mcp-server/package.json +0 -0
  519. /package/framework/{v0.6.2 → v0.6.3}/lib/mcp-server/src/main.js +0 -0
  520. /package/framework/{v0.6.2 → v0.6.3}/lib/merge/README.md +0 -0
  521. /package/framework/{v0.6.2 → v0.6.3}/lib/merge/package.json +0 -0
  522. /package/framework/{v0.6.2 → v0.6.3}/lib/metrics/package.json +0 -0
  523. /package/framework/{v0.6.2 → v0.6.3}/lib/metrics/src/main.js +0 -0
  524. /package/framework/{v0.6.2 → v0.6.3}/lib/model.js +0 -0
  525. /package/framework/{v0.6.2 → v0.6.3}/lib/net-locality/package.json +0 -0
  526. /package/framework/{v0.6.2 → v0.6.3}/lib/net-locality/src/main.js +0 -0
  527. /package/framework/{v0.6.2 → v0.6.3}/lib/nunjucks-filters/README.md +0 -0
  528. /package/framework/{v0.6.2 → v0.6.3}/lib/nunjucks-filters/package.json +0 -0
  529. /package/framework/{v0.6.2 → v0.6.3}/lib/nunjucks-filters/src/main.js +0 -0
  530. /package/framework/{v0.6.2 → v0.6.3}/lib/nunjucks-resolver/package.json +0 -0
  531. /package/framework/{v0.6.2 → v0.6.3}/lib/nunjucks-resolver/src/main.js +0 -0
  532. /package/framework/{v0.6.2 → v0.6.3}/lib/proc.js +0 -0
  533. /package/framework/{v0.6.2 → v0.6.3}/lib/release-watch/package.json +0 -0
  534. /package/framework/{v0.6.2 → v0.6.3}/lib/release-watch/src/main.js +0 -0
  535. /package/framework/{v0.6.2 → v0.6.3}/lib/render-cache/package.json +0 -0
  536. /package/framework/{v0.6.2 → v0.6.3}/lib/render-cache-store.js +0 -0
  537. /package/framework/{v0.6.2 → v0.6.3}/lib/routing/README.md +0 -0
  538. /package/framework/{v0.6.2 → v0.6.3}/lib/routing/build.json +0 -0
  539. /package/framework/{v0.6.2 → v0.6.3}/lib/routing/package.json +0 -0
  540. /package/framework/{v0.6.2 → v0.6.3}/lib/routing/src/radix.js +0 -0
  541. /package/framework/{v0.6.2 → v0.6.3}/lib/routing-introspect/package.json +0 -0
  542. /package/framework/{v0.6.2 → v0.6.3}/lib/secrets/package.json +0 -0
  543. /package/framework/{v0.6.2 → v0.6.3}/lib/secrets/src/main.js +0 -0
  544. /package/framework/{v0.6.2 → v0.6.3}/lib/session-store.js +0 -0
  545. /package/framework/{v0.6.2 → v0.6.3}/lib/shell.js +0 -0
  546. /package/framework/{v0.6.2 → v0.6.3}/lib/sqlite-driver.js +0 -0
  547. /package/framework/{v0.6.2 → v0.6.3}/lib/state.js +0 -0
  548. /package/framework/{v0.6.2 → v0.6.3}/lib/swig-filters/README.md +0 -0
  549. /package/framework/{v0.6.2 → v0.6.3}/lib/swig-filters/package.json +0 -0
  550. /package/framework/{v0.6.2 → v0.6.3}/lib/swig-filters/src/main.js +0 -0
  551. /package/framework/{v0.6.2 → v0.6.3}/lib/swig-resolver/package.json +0 -0
  552. /package/framework/{v0.6.2 → v0.6.3}/lib/swig-resolver/src/main.js +0 -0
  553. /package/framework/{v0.6.2 → v0.6.3}/lib/template-loaders/package.json +0 -0
  554. /package/framework/{v0.6.2 → v0.6.3}/lib/template-loaders/src/loaders/http.js +0 -0
  555. /package/framework/{v0.6.2 → v0.6.3}/lib/template-loaders/src/loaders/memory.js +0 -0
  556. /package/framework/{v0.6.2 → v0.6.3}/lib/template-loaders/src/main.js +0 -0
  557. /package/framework/{v0.6.2 → v0.6.3}/lib/url/README.md +0 -0
  558. /package/framework/{v0.6.2 → v0.6.3}/lib/url/index.js +0 -0
  559. /package/framework/{v0.6.2 → v0.6.3}/lib/url/routing.json +0 -0
  560. /package/framework/{v0.6.2 → v0.6.3}/lib/uuid/package.json +0 -0
  561. /package/framework/{v0.6.2 → v0.6.3}/lib/uuid/src/main.js +0 -0
  562. /package/framework/{v0.6.2 → v0.6.3}/lib/validator.js +0 -0
  563. /package/framework/{v0.6.2 → v0.6.3}/lib/watcher/package.json +0 -0
  564. /package/framework/{v0.6.2 → v0.6.3}/lib/watcher/src/main.js +0 -0
  565. /package/framework/{v0.6.2 → v0.6.3}/lib/ws-framing/package.json +0 -0
  566. /package/framework/{v0.6.2 → v0.6.3}/lib/ws-framing/src/main.js +0 -0
  567. /package/framework/{v0.6.2 → v0.6.3}/lib/ws-query/package.json +0 -0
  568. /package/framework/{v0.6.2 → v0.6.3}/lib/ws-query/src/main.js +0 -0
  569. /package/framework/{v0.6.2 → v0.6.3}/lib/ws-session/package.json +0 -0
  570. /package/framework/{v0.6.2 → v0.6.3}/lib/ws-session/src/main.js +0 -0
@@ -268,13 +268,205 @@ function ValidatorPlugin(rules, data, formId, culture) {
268
268
  'setCustomRules': setCustomRules
269
269
  };
270
270
 
271
+ /**
272
+ * backendIsPlainObject — plain-data-object test for the #B241 alias walk.
273
+ * Arrays, Date instances and null are LEAF VALUES on the server form-body
274
+ * path (a rule addresses the array/date itself), never containers to
275
+ * descend into.
276
+ *
277
+ * @inner
278
+ * @private
279
+ * @param {*} value
280
+ * @returns {boolean} true for a non-null, non-array, non-Date object
281
+ */
282
+ var backendIsPlainObject = function (value) {
283
+ return (
284
+ value !== null
285
+ && typeof(value) == 'object'
286
+ && !Array.isArray(value)
287
+ && !(value instanceof Date)
288
+ )
289
+ };
271
290
 
272
291
  /**
273
- * Backend init
292
+ * backendAliasAugment — #B241: synthesize dotted-canon field entries
293
+ * ALONGSIDE the raw posted keys so the per-field rule lookup can join.
274
294
  *
275
- * @param {object} rules
276
- * @param {object} [customRule]
277
- * */
295
+ * `parseRules` canonicalizes every rule key to a dotted path (a bracket
296
+ * key `a[b]` becomes `a.b`, a nested rule tree flattens to its dotted
297
+ * leaves) while the fields map keeps the RAW posted keys — so a rule
298
+ * authored on a bracket key, or as a nested tree, never joined on this
299
+ * path and the field was skipped with no warn (fail-open, check AND
300
+ * drop directives alike). Both production wire shapes were affected:
301
+ * flat bracket keys (the client posts the engine's name-keyed data as
302
+ * JSON, which the server parses verbatim) and nested objects (the
303
+ * multipart and urlencoded parsers expand bracket names).
304
+ *
305
+ * The originals are deliberately KEPT in the map: dollar-token
306
+ * substitution reads the raw keys, so cross-field references to
307
+ * bracket-named peers keep resolving exactly as before, and an all-flat
308
+ * payload synthesizes nothing (identity). An alias is only added when
309
+ * its key is still free, so a caller that already posts the dotted form
310
+ * keeps its own entry untouched.
311
+ *
312
+ * @inner
313
+ * @private
314
+ * @param {object} fields - the fields map to augment IN PLACE
315
+ * @param {object} data - the raw posted payload (never mutated)
316
+ * @returns {object} aliases - { count: number, map: { alias: meta } }
317
+ * where meta is { kind: 'bracket', original } or
318
+ * { kind: 'nested', rootKey, path }
319
+ */
320
+ var backendAliasAugment = function (fields, data) {
321
+ var aliases = { count: 0, map: {} };
322
+ var addNestedLeafAliases = function (rootKey, base, obj, pathSoFar) {
323
+ for (var subKey in obj) {
324
+ var aliasPath = pathSoFar.concat(subKey);
325
+ var subAlias = base + '.' + subKey;
326
+ if ( backendIsPlainObject(obj[subKey]) ) {
327
+ addNestedLeafAliases(rootKey, subAlias, obj[subKey], aliasPath);
328
+ } else if ( typeof(fields[subAlias]) == 'undefined' ) {
329
+ fields[subAlias] = obj[subKey];
330
+ aliases.map[subAlias] = { kind: 'nested', rootKey: rootKey, path: aliasPath };
331
+ ++aliases.count;
332
+ }
333
+ }
334
+ };
335
+ var key = null, alias = null;
336
+ for (key in data) {
337
+ if ( /\[/.test(key) ) {
338
+ alias = key.replace(/\[/g, '.').replace(/\]/g, '');
339
+ if ( typeof(fields[alias]) == 'undefined' ) {
340
+ fields[alias] = data[key];
341
+ aliases.map[alias] = { kind: 'bracket', original: key };
342
+ ++aliases.count;
343
+ }
344
+ } else if ( backendIsPlainObject(data[key]) ) {
345
+ addNestedLeafAliases(key, key, data[key], [key]);
346
+ }
347
+ }
348
+ return aliases;
349
+ };
350
+
351
+ /**
352
+ * backendAliasToBracketName — rebuild the client's DOM-name addressing
353
+ * from a nested alias path (['account','username'] -> account[username]),
354
+ * so restored error keys match what the browser side renders against.
355
+ *
356
+ * @inner
357
+ * @private
358
+ * @param {string} rootKey
359
+ * @param {array} pathArr - path segments, rootKey first
360
+ * @returns {string} the bracket-notation field name
361
+ */
362
+ var backendAliasToBracketName = function (rootKey, pathArr) {
363
+ var out = rootKey;
364
+ for (var i = 1, len = pathArr.length; i < len; ++i) {
365
+ out += '[' + pathArr[i] + ']';
366
+ }
367
+ return out;
368
+ };
369
+
370
+ /**
371
+ * backendRestoreAliases — #B241 egress: fold every alias outcome back
372
+ * onto the original addressing, so the summary keeps today's contract.
373
+ *
374
+ * Error keys move to the DOM-name bracket form (the addressing the
375
+ * client's error rendering looks up). On `.data` — which the engine has
376
+ * already materialized (bracket originals arrive nested) — the alias
377
+ * flat keys are stripped and their outcomes applied at the original
378
+ * spot: an alias the engine dropped (an `exclude` directive) drops the
379
+ * original leaf too, an alias a transform rewrote wins over the raw
380
+ * value. Parents emptied BY AN EXCLUSION are pruned along that alias's
381
+ * path only — an empty object the caller posted is not this function's
382
+ * to remove.
383
+ *
384
+ * @inner
385
+ * @private
386
+ * @param {object} result - the { isValid, error, data } summary (mutated)
387
+ * @param {object} aliases - backendAliasAugment's return value
388
+ * @returns {object} result
389
+ */
390
+ var backendRestoreAliases = function (result, aliases) {
391
+ var alias = null, meta = null;
392
+ var errors = {};
393
+ for (alias in (result.error || {})) {
394
+ meta = aliases.map[alias];
395
+ if ( !meta ) {
396
+ errors[alias] = result.error[alias];
397
+ } else if ( meta.kind == 'bracket' ) {
398
+ errors[meta.original] = result.error[alias];
399
+ } else {
400
+ errors[backendAliasToBracketName(meta.rootKey, meta.path)] = result.error[alias];
401
+ }
402
+ }
403
+ result.error = errors;
404
+
405
+ var data = result.data;
406
+ if ( !data || typeof(data) != 'object' ) {
407
+ return result;
408
+ }
409
+ for (alias in aliases.map) {
410
+ meta = aliases.map[alias];
411
+ var aliasKept = Object.prototype.hasOwnProperty.call(data, alias);
412
+ var aliasValue = aliasKept ? data[alias] : undefined;
413
+ delete data[alias];
414
+
415
+ var segments = ( meta.kind == 'bracket' )
416
+ ? meta.original.replace(/\]/g, '').split(/\[/g)
417
+ : meta.path;
418
+ var sLen = segments.length - 1;
419
+ var parent = data, s = 0;
420
+ for (; s < sLen && parent; ++s) {
421
+ parent = parent[ segments[s] ];
422
+ }
423
+ if ( !parent || typeof(parent) != 'object' ) {
424
+ continue;
425
+ }
426
+ if ( !aliasKept ) {
427
+ delete parent[ segments[sLen] ];
428
+ // walk back up THIS path only, dropping parents the exclusion emptied
429
+ for (var back = sLen - 1; back >= 0; --back) {
430
+ var holder = data, b = 0;
431
+ for (; b < back && holder; ++b) {
432
+ holder = holder[ segments[b] ];
433
+ }
434
+ if (
435
+ holder
436
+ && backendIsPlainObject(holder[ segments[back] ])
437
+ && Object.keys(holder[ segments[back] ]).length === 0
438
+ ) {
439
+ delete holder[ segments[back] ];
440
+ } else {
441
+ break;
442
+ }
443
+ }
444
+ } else {
445
+ parent[ segments[sLen] ] = aliasValue;
446
+ }
447
+ }
448
+ return result;
449
+ };
450
+
451
+ /**
452
+ * Backend init — the server half of form-body validation.
453
+ *
454
+ * Builds the fields map from the posted payload, parses the rule set
455
+ * into the dotted canon, and runs the engine. #B241: bracket-notation
456
+ * and nested-authored rule keys join through synthesized dotted aliases
457
+ * (see backendAliasAugment above); verdict keys and the data egress are
458
+ * restored to the original addressing before returning. The no-rules
459
+ * branch is untouched and keeps returning the payload verbatim.
460
+ *
461
+ * @inner
462
+ * @private
463
+ * @param {object} rules - the form's rule set (authored keys)
464
+ * @param {object} data - the posted payload
465
+ * @param {string} [formId]
466
+ * @param {string} [culture]
467
+ * @returns {object} the { isValid, error, data } summary, or a bare
468
+ * FormValidator instance on the no-rules branch
469
+ */
278
470
  var backendInit = function (rules, data, formId, culture) {
279
471
 
280
472
  var $form = ( typeof(formId) != 'undefined' ) ? { 'id': formId } : null;
@@ -288,6 +480,9 @@ function ValidatorPlugin(rules, data, formId, culture) {
288
480
  // parsing rules
289
481
  if ( typeof(rules) != 'undefined' && rules.count() > 0 ) {
290
482
 
483
+ // #B241 — join bracket/nested rule keys through dotted aliases
484
+ var backendAliases = backendAliasAugment(fields, data);
485
+
291
486
  try {
292
487
  parseRules(rules, '');
293
488
  rules = checkForRulesImports(rules);
@@ -297,7 +492,16 @@ function ValidatorPlugin(rules, data, formId, culture) {
297
492
 
298
493
  backendProto.rules = instance.rules;
299
494
 
300
- return validate($form, fields, null, instance.rules, null, culture)
495
+ var backendResult = validate($form, fields, null, instance.rules, null, culture);
496
+ if (
497
+ backendAliases.count > 0
498
+ && backendResult
499
+ && typeof(backendResult.isValid) == 'function'
500
+ && typeof(backendResult.error) != 'undefined'
501
+ ) {
502
+ backendRestoreAliases(backendResult, backendAliases);
503
+ }
504
+ return backendResult;
301
505
 
302
506
  } else {
303
507
  // without rules - by hand
@@ -4238,6 +4442,25 @@ function ValidatorPlugin(rules, data, formId, culture) {
4238
4442
  Object.defineProperty($el, 'value', descriptor);
4239
4443
  }
4240
4444
 
4445
+ /**
4446
+ * addLiveForInput
4447
+ * Wires one form control for live checking: registers the gina event
4448
+ * name(s) the control's validation handler consumes, plus the handler
4449
+ * itself (field pass + whole-form silent pass -> updateSubmitTriggerState).
4450
+ * Text-like controls register change./keyup./focusin./focusout.<id>;
4451
+ * radios and checkboxes register changed.<id> (dispatched by their
4452
+ * update relays); a radio ALSO registers change.<id> (#B228) because the
4453
+ * form-level change proxy is the only dispatcher that fires on a user
4454
+ * pick and it only dispatches names that are registered.
4455
+ *
4456
+ * @inner
4457
+ * @param {object} $form - form instance record (`instance.$forms[id]` shape: `.rules`, `.target`)
4458
+ * @param {object} $el - control to wire (DOMObject)
4459
+ * @param {number} liveCheckTimer - shared debounce timer handle
4460
+ * @param {boolean} [isOtherTagAllowed=false] - admit non-input/textarea tags (selects, FACEs)
4461
+ *
4462
+ * @returns {undefined}
4463
+ * */
4241
4464
  var addLiveForInput = function($form, $el, liveCheckTimer, isOtherTagAllowed) {
4242
4465
 
4243
4466
  if (typeof(isOtherTagAllowed) == 'undefined' ) {
@@ -4310,6 +4533,23 @@ function ValidatorPlugin(rules, data, formId, culture) {
4310
4533
  eventsList[_e] = _evt;
4311
4534
  ++_e;
4312
4535
  }
4536
+ // #B228 -- a RADIO also listens on the proxy-dispatched name: the
4537
+ // form-level change proxy dispatches `change.<id>` only when that
4538
+ // exact name is registered, and nothing else fires on a user pick
4539
+ // (the click proxy short-circuits into updateRadio, which never
4540
+ // dispatches; the bare-id relay has no live trigger) -- so the
4541
+ // `changed.<id>` registration above was consume-only dead wiring
4542
+ // on the pick path and the submit trigger kept its bind-time
4543
+ // state forever. The handler's radio arm has accepted
4544
+ // `change.`-typed events all along; checkboxes stay on their
4545
+ // working relay (change proxy -> updateCheckBox -> `changed.<id>`).
4546
+ if ( /^radio$/i.test($el.type) ) {
4547
+ _evt = 'change.'+$el.id;
4548
+ if ( typeof(gina.events[_evt]) == 'undefined' ) {
4549
+ eventsList[_e] = _evt;
4550
+ ++_e;
4551
+ }
4552
+ }
4313
4553
  }
4314
4554
 
4315
4555
  if (eventsList.length > 0) {
@@ -7210,6 +7450,20 @@ function ValidatorPlugin(rules, data, formId, culture) {
7210
7450
  $form.send(result['data']);
7211
7451
  }
7212
7452
  } else {
7453
+ // #B192 — release the submit latch. A rejected submit sends nothing, so it
7454
+ // never reaches the XHR settle (`xhr.onreadystatechange`), which was the only
7455
+ // other site clearing `isSubmitting`. Left latched, the live-check field
7456
+ // listener hard-returns on every subsequent keystroke, `updateSubmitTriggerState`
7457
+ // never runs again and the submit trigger keeps `aria-disabled="true"` +
7458
+ // `gina-form-submit-disabled` until the page is reloaded — and because the flag
7459
+ // lives on the `$forms[id]` object rather than a listener closure, it survives a
7460
+ // full unbind/rebind too. This branch IS the terminal no-send outcome; the valid
7461
+ // branch above deliberately keeps the latch until send() settles, which is what
7462
+ // keeps live-check quiet during a real in-flight submit.
7463
+ if ( instance.$forms[_id] ) {
7464
+ instance.$forms[_id].isSubmitting = false;
7465
+ }
7466
+
7213
7467
  // #A11Y1 (slice 3) — failed submit: move focus to the first invalid field so
7214
7468
  // assistive tech announces it (accessible name + aria-invalid + the
7215
7469
  // aria-errormessage text). DOM order; hidden / unfocusable fields are skipped.
@@ -7499,6 +7753,18 @@ function ValidatorPlugin(rules, data, formId, culture) {
7499
7753
  && !/^(true|false)$/.test($target[i].value)
7500
7754
  ) {
7501
7755
  fields[name] = false;
7756
+ } else if ( // #B221: same collection arm as getFormValidationInfos --
7757
+ // an unchecked non-boolean radio group with a truthy isRequired
7758
+ // is collected as an empty value so the submit-path validation
7759
+ // can adjudicate it (see the twin arm there for the rationale).
7760
+ $target[i].type == 'radio'
7761
+ && rules
7762
+ && typeof(rules[name]) != 'undefined'
7763
+ && /^true$/i.test(rules[name].isRequired)
7764
+ && typeof(rules[name].isBoolean) == 'undefined'
7765
+ && typeof(fields[name]) == 'undefined'
7766
+ ) {
7767
+ fields[name] = '';
7502
7768
  }
7503
7769
 
7504
7770
  } else {
@@ -7655,8 +7921,17 @@ function ValidatorPlugin(rules, data, formId, culture) {
7655
7921
  /**
7656
7922
  * getFormValidationInfos
7657
7923
  *
7924
+ * Collects a form's named, non-disabled controls into a name->value map
7925
+ * (`fields`) plus a name->DOM-handle map (`$fields`). Radio groups: a
7926
+ * checked member's value is collected by the boolean/legacy arms; an
7927
+ * unchecked non-boolean group whose rule declares a truthy `isRequired`
7928
+ * is collected as an empty string (#B221) so the rule engine can
7929
+ * adjudicate it; any other unchecked group stays absent (native parity;
7930
+ * boolean-declared groups are owned by the force-false arm).
7931
+ *
7658
7932
  * @param {object} $form - form target (DOMObject), not the instance
7659
7933
  * @param {object} [rules]
7934
+ * @param {boolean} [isOnResetMode=false] - resets hidden/text values to their defaults while walking
7660
7935
  *
7661
7936
  * @returns {object} { .fields, .$fields, .rules }
7662
7937
  */
@@ -7812,6 +8087,28 @@ function ValidatorPlugin(rules, data, formId, culture) {
7812
8087
 
7813
8088
  ) {
7814
8089
  fields[name] = false;
8090
+ } else if ( // #B221: an unchecked non-boolean radio group with a
8091
+ // declared truthy isRequired never entered `fields`, so no
8092
+ // rule (isRequired above all) could adjudicate it -- and a
8093
+ // radio-group-only form short-circuited the whole pass
8094
+ // (fields count == 0 reads as nothing-to-validate). Collect
8095
+ // it as an empty value so the engine's generic emptiness
8096
+ // test fires. A checked member is always collected by the
8097
+ // arms above; the already-collected guard keeps this arm
8098
+ // from resetting it when an unchecked member iterates after
8099
+ // the checked one. Groups with no rule, isRequired:false,
8100
+ // or an isBoolean declaration keep the legacy
8101
+ // absent-when-unchecked shape (boolean groups are owned by
8102
+ // the force-false arm above; optional groups bypass on
8103
+ // empty anyway, so their wire shape stays byte-identical).
8104
+ $form[i].type == 'radio'
8105
+ && rules
8106
+ && typeof(rules[name]) != 'undefined'
8107
+ && /^true$/i.test(rules[name].isRequired)
8108
+ && typeof(rules[name].isBoolean) == 'undefined'
8109
+ && typeof(fields[name]) == 'undefined'
8110
+ ) {
8111
+ fields[name] = '';
7815
8112
  }
7816
8113
 
7817
8114
  } else {
@@ -7835,6 +8132,26 @@ function ValidatorPlugin(rules, data, formId, culture) {
7835
8132
  }
7836
8133
  }
7837
8134
 
8135
+ /**
8136
+ * getCastedValue
8137
+ * Returns the value to use for `fieldName` — raw for the engine to
8138
+ * adjudicate, or cast/quoted for dynamised-rules substitution.
8139
+ *
8140
+ * Plain mode (`formatFields`): numeric-rule comma normalisation only;
8141
+ * real booleans pass through as-is and every other value stays RAW — the
8142
+ * engine's own rules cast on acceptance (#B236).
8143
+ * Dynamised mode (`getDynamisedRules`): values are spliced into a
8144
+ * stringified condition, so a boolean-ruled field casts to an unquoted
8145
+ * boolean operand, an empty value becomes a quoted empty string, and
8146
+ * other strings are quoted.
8147
+ *
8148
+ * @inner
8149
+ * @param {object} ruleObj - parsed rules (quoted booleans unquoted)
8150
+ * @param {object} fields - collected field values (MUTATED: comma normalisation)
8151
+ * @param {string} fieldName
8152
+ * @param {boolean|string} [isOnDynamisedRulesMode] - truthy/`'true'` in dynamised mode
8153
+ * @returns {*} the raw, cast, or quoted value
8154
+ */
7838
8155
  var getCastedValue = function(ruleObj, fields, fieldName, isOnDynamisedRulesMode) {
7839
8156
 
7840
8157
  var isOnDynamisedRules = (
@@ -7879,7 +8196,16 @@ function ValidatorPlugin(rules, data, formId, culture) {
7879
8196
 
7880
8197
  if ( typeof(fields[fieldName]) == 'boolean') {
7881
8198
  return fields[fieldName]
7882
- } else if (ruleObj[fieldName].isBoolean) {
8199
+ // #B236 — the boolean pre-cast survives ONLY in dynamised-rules mode, where a
8200
+ // referenced isBoolean field must splice into a stringified condition as an
8201
+ // unquoted boolean operand (`$flag === true`). On the PLAIN pass it funneled
8202
+ // every value not matching the case-insensitive literal `true` to `false`
8203
+ // BEFORE the engine ran, so junk (and the HTML checkbox default `on`, and
8204
+ // the number 1) validated clean and persisted as `false` on the server auto
8205
+ // path. The engine is the single adjudicator now — the same contract the
8206
+ // routing requirements surface always enforced.
8207
+ // was: `} else if (ruleObj[fieldName].isBoolean) {`
8208
+ } else if (isOnDynamisedRules && ruleObj[fieldName].isBoolean) {
7883
8209
  return (/^true$/i.test(fields[fieldName])) ? true : false;
7884
8210
  }
7885
8211
 
@@ -7951,7 +8277,18 @@ function ValidatorPlugin(rules, data, formId, culture) {
7951
8277
 
7952
8278
  stringifiedRules = stringifiedRules.replace(re, fieldValue );
7953
8279
  }
7954
- if ( /\$(.*)/.test(stringifiedRules) ) {
8280
+ // #B234 — this second loop is a DOM FALLBACK: it re-derives each splice
8281
+ // value from the live element (`$fields[...].value` / `.checked`), and
8282
+ // the server auto path (`backendInit`) passes `$fields = null`, so ANY
8283
+ // `$` surviving loop 1 threw here — a regex end-anchor in an `is`
8284
+ // condition, or a `$` inside a human-readable message string. Loop 1
8285
+ // already replaces every KNOWN field's token, so what reaches loop 2 is
8286
+ // a leftover it structurally cannot match anyway: skipping when there is
8287
+ // no DOM matches what the client does when this re-scan no-ops, and
8288
+ // leaves every previously-working substitution byte-identical. Same
8289
+ // `$fields &&` guard shape as the #B127 precedent one function later.
8290
+ // was: `if ( /\$(.*)/.test(stringifiedRules) ) {`
8291
+ if ( $fields && /\$(.*)/.test(stringifiedRules) ) {
7955
8292
  for (let i = 0, len = arrFields.length; i < len; i++) {
7956
8293
  _field = arrFields[i].replace(/\-|\_|\@|\#|\.|\[|\]/g, '\\$&');
7957
8294
  re = new RegExp('\\$'+_field, 'g');
@@ -8016,6 +8353,24 @@ function ValidatorPlugin(rules, data, formId, culture) {
8016
8353
 
8017
8354
 
8018
8355
  var re = null, flags = null, args = null;
8356
+ /**
8357
+ * Apply every rule declared for one field to the FormValidator instance `d`.
8358
+ *
8359
+ * Array-form rules (`isInList: [...]`) get their FIRST argument scanned for
8360
+ * `$`-prefixed tokens; a token resolving to a real field (a `d` key with a
8361
+ * defined `.value`) is substituted with that value, anything else stays
8362
+ * LITERAL (#B239 — the blind deref crashed on unknown names and spliced
8363
+ * "undefined" on engine-method-name collisions). Later elements are never
8364
+ * scanned. Cross-field refs inside array rules are consumed upstream by
8365
+ * getDynamisedRules loop 1 (quoted — #B240), so in practice only leftover
8366
+ * non-field tokens reach the scan here.
8367
+ *
8368
+ * @inner
8369
+ * @param {string} field - field name (key into `rules`, `fields` and `d`)
8370
+ * @param {object} rules - parsed rule set for the whole form
8371
+ * @param {object} fields - collected field values
8372
+ * @returns {void} verdicts land on `d[field]` / `d.error`
8373
+ */
8019
8374
  var checkFieldAgainstRules = function(field, rules, fields) {
8020
8375
  // ignore field if used as a _case_field
8021
8376
 
@@ -8114,7 +8469,25 @@ function ValidatorPlugin(rules, data, formId, culture) {
8114
8469
  if ( /\$[\-\w\[\]]*/.test(args[0]) ) {
8115
8470
  var foundVariables = args[0].match(/\$[\-\w\[\]]*/g);
8116
8471
  for (var v = 0, vLen = foundVariables.length; v < vLen; ++v) {
8117
- args[0] = args[0].replace( foundVariables[v], d[foundVariables[v].replace('$', '')].value )
8472
+ // #B239 — the deref used to be blind, throwing
8473
+ // `TypeError: Cannot read properties of undefined` on
8474
+ // BOTH paths for any token naming no field (`d` is the
8475
+ // FormValidator field map on the client AND the server),
8476
+ // and splicing the string "undefined" for a token whose
8477
+ // name collides with an engine METHOD (isValid, toData —
8478
+ // defined keys with no `.value`). A token that does not
8479
+ // resolve to a real field now stays LITERAL, so strict
8480
+ // comparison applies. Cross-field refs inside array
8481
+ // rules remain owned by #B240 (upstream loop-1 quoting).
8482
+ // was: args[0] = args[0].replace( foundVariables[v], d[foundVariables[v].replace('$', '')].value )
8483
+ var _refName = foundVariables[v].replace('$', '');
8484
+ if (
8485
+ typeof(d[_refName]) == 'undefined'
8486
+ || typeof(d[_refName].value) == 'undefined'
8487
+ ) {
8488
+ continue;
8489
+ }
8490
+ args[0] = args[0].replace( foundVariables[v], d[_refName].value );
8118
8491
  }
8119
8492
  }
8120
8493
  d[field][rule].apply(d[field], args);
@@ -8333,6 +8706,8 @@ function ValidatorPlugin(rules, data, formId, culture) {
8333
8706
  var localRules = null, caseName = null;
8334
8707
  var localRuleObj = null, skipTest = null;
8335
8708
  var localFieldType = null;
8709
+ var caseValueBackup = null; // #B229 — see the `caseName == field` arm below
8710
+ var baseValueBackup = null; // #B230 — see the base-rule restore below
8336
8711
 
8337
8712
  //console.debug('parsing ', fields, $fields, rules);
8338
8713
  if ( typeof(rules) != 'undefined' ) {
@@ -8717,13 +9092,80 @@ function ValidatorPlugin(rules, data, formId, culture) {
8717
9092
  }
8718
9093
  }
8719
9094
 
8720
- if (isInCase || caseName == field) continue;
9095
+ if (isInCase) continue;
9096
+
9097
+ // #B229 — a field that DRIVES a `_case_` still owns its BASE
9098
+ // rules. `caseName` is assigned inside the `_case_` scan loop
9099
+ // above, which runs in full on EVERY field iteration, so at this
9100
+ // point it always holds the LAST scanned `_case_` key's driver
9101
+ // name. The old combined tail therefore skipped the whole rest of
9102
+ // the iteration for that driver — base-rule check included — so a
9103
+ // rule shape { "group": { "isRequired": true }, "_case_group": {…} }
9104
+ // never adjudicated `group` on the bind pass, the live-check
9105
+ // global pass OR the submit pass: the form never gated and an
9106
+ // empty submit went out unvalidated (the #B221 silent-submit
9107
+ // class, resurfacing for the self-driving shape — downstream of
9108
+ // #B221's collection fix, which already admits the group as '').
9109
+ // The driver's `allFields` entry is restored around the call:
9110
+ // checkFieldAgainstRules ends every applied rule with
9111
+ // `delete fields[field]` on the object it is handed, and
9112
+ // `allFields[caseName]` is the case VALUE the scan block re-reads
9113
+ // on every later field iteration — a deleted entry re-seeds from
9114
+ // `$allFields[name].value`, which for a radio group is the FIRST
9115
+ // member's value regardless of `.checked` (#B230, pre-existing).
9116
+ // The direct-case block below stays skipped for the driver, so
9117
+ // WHICH conditions apply is unchanged (measured: that block is
9118
+ // never entered for a self-driving case, pre-fix or post-fix).
9119
+ // was:
9120
+ // if (isInCase || caseName == field) continue;
9121
+ if ( caseName == field ) {
9122
+ if ( typeof(rules[field]) != 'undefined' ) {
9123
+ caseValueBackup = allFields[field];
9124
+ checkFieldAgainstRules(field, rules, allFields);
9125
+ if (
9126
+ typeof(allFields[field]) == 'undefined'
9127
+ && typeof(caseValueBackup) != 'undefined'
9128
+ ) {
9129
+ allFields[field] = caseValueBackup;
9130
+ }
9131
+ }
9132
+ continue;
9133
+ }
8721
9134
 
9135
+ // #B230 — a `_case_` driver's entry in `allFields` IS the case
9136
+ // VALUE every later reader consumes: the scan block above
9137
+ // re-reads it on every subsequent field iteration (a missing
9138
+ // entry re-seeds from `$allFields[name].value` — a radio
9139
+ // group's FIRST member regardless of `.checked`), and the
9140
+ // direct-case block below reads it in THIS iteration. Site
9141
+ // 3/3's adjudication deletes it (checkFieldAgainstRules ends
9142
+ // every applied rule with `delete fields[field]` on the
9143
+ // object it is handed), so a non-last driver's conditions
9144
+ // matched a value the user never picked on later scans and
9145
+ // matched nothing (`undefined`) in its own direct-case pass.
9146
+ // Back the entry up and restore it after the check — gated
9147
+ // on the field driving a `_case_` in the live `rules` OR in
9148
+ // the pass-entry clone `allRules`: inside a direct-case
9149
+ // recursion `rules` is the condition's own rule set (no
9150
+ // `_case_` keys), so `hasCase` alone is blind there
9151
+ // (measured — the union is load-bearing). Non-driver fields
9152
+ // keep the delete untouched: the pull-in gate, the
9153
+ // direct-case exclude injection and the async-`query`
9154
+ // re-validation input all read those absences today.
9155
+ baseValueBackup = allFields[field];
8722
9156
  // check each field against rule only if rule exists 3/3
8723
9157
  if ( typeof(rules[field]) != 'undefined' ) {
8724
9158
  //checkFieldAgainstRules(field, rules, fields);
8725
9159
  checkFieldAgainstRules(field, rules, allFields);
8726
9160
  }
9161
+ // #B230 restore — see the block comment above
9162
+ if (
9163
+ ( hasCase || typeof(allRules['_case_' + field]) != 'undefined' )
9164
+ && typeof(baseValueBackup) != 'undefined'
9165
+ && typeof(allFields[field]) == 'undefined'
9166
+ ) {
9167
+ allFields[field] = baseValueBackup;
9168
+ }
8727
9169
 
8728
9170
  if (hasCase) {
8729
9171
  ++i; // add sub level