gina 0.6.24 → 0.6.25

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 (607) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +23 -13
  3. package/ROADMAP.md +10 -9
  4. package/framework/v0.6.25/VERSION +1 -0
  5. package/framework/{v0.6.24 → v0.6.25}/core/asset/plugin/dist/vendor/gina/js/gina.js +554 -4
  6. package/framework/v0.6.25/core/asset/plugin/dist/vendor/gina/js/gina.min.js +665 -0
  7. package/framework/v0.6.25/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  8. package/framework/v0.6.25/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  9. package/framework/{v0.6.24 → v0.6.25}/core/config.js +11 -0
  10. package/framework/{v0.6.24 → v0.6.25}/core/controller/controller.js +114 -2
  11. package/framework/{v0.6.24 → v0.6.25}/core/controller/controller.render-json.js +9 -0
  12. package/framework/v0.6.25/core/controller/controller.render-xml.js +226 -0
  13. package/framework/{v0.6.24 → v0.6.25}/core/controller/inline-script.js +54 -3
  14. package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/validator/src/form-validator.js +163 -0
  15. package/framework/{v0.6.24 → v0.6.25}/core/router.js +88 -4
  16. package/framework/{v0.6.24 → v0.6.25}/core/server.js +115 -0
  17. package/framework/v0.6.25/lib/idempotency/package.json +6 -0
  18. package/framework/v0.6.25/lib/idempotency/src/main.js +514 -0
  19. package/framework/{v0.6.24 → v0.6.25}/lib/index.js +11 -0
  20. package/framework/v0.6.25/lib/message-validator/package.json +6 -0
  21. package/framework/v0.6.25/lib/message-validator/src/main.js +340 -0
  22. package/framework/v0.6.25/lib/money/package.json +17 -0
  23. package/framework/v0.6.25/lib/money/src/main.js +355 -0
  24. package/framework/{v0.6.24 → v0.6.25}/lib/routing/src/main.js +26 -2
  25. package/framework/{v0.6.24 → v0.6.25}/package.json +1 -1
  26. package/gna.js +4 -4
  27. package/llms.txt +13 -6
  28. package/package.json +3 -3
  29. package/schema/settings.json +44 -1
  30. package/types/index.d.ts +38 -0
  31. package/framework/v0.6.24/VERSION +0 -1
  32. package/framework/v0.6.24/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -655
  33. package/framework/v0.6.24/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  34. package/framework/v0.6.24/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  35. /package/framework/{v0.6.24 → v0.6.25}/AUTHORS +0 -0
  36. /package/framework/{v0.6.24 → v0.6.25}/LICENSE +0 -0
  37. /package/framework/{v0.6.24 → v0.6.25}/core/asset/html/nolayout.html +0 -0
  38. /package/framework/{v0.6.24 → v0.6.25}/core/asset/html/static.html +0 -0
  39. /package/framework/{v0.6.24 → v0.6.25}/core/asset/img/android-chrome-192x192.png +0 -0
  40. /package/framework/{v0.6.24 → v0.6.25}/core/asset/img/android-chrome-512x512.png +0 -0
  41. /package/framework/{v0.6.24 → v0.6.25}/core/asset/img/apple-touch-icon.png +0 -0
  42. /package/framework/{v0.6.24 → v0.6.25}/core/asset/img/favicon-16x16.png +0 -0
  43. /package/framework/{v0.6.24 → v0.6.25}/core/asset/img/favicon-32x32.png +0 -0
  44. /package/framework/{v0.6.24 → v0.6.25}/core/asset/img/favicon.ico +0 -0
  45. /package/framework/{v0.6.24 → v0.6.25}/core/asset/plugin/README.md +0 -0
  46. /package/framework/{v0.6.24 → v0.6.25}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  47. /package/framework/{v0.6.24 → v0.6.25}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  48. /package/framework/{v0.6.24 → v0.6.25}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  49. /package/framework/{v0.6.24 → v0.6.25}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  50. /package/framework/{v0.6.24 → v0.6.25}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  51. /package/framework/{v0.6.24 → v0.6.25}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  52. /package/framework/{v0.6.24 → v0.6.25}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
  53. /package/framework/{v0.6.24 → v0.6.25}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  54. /package/framework/{v0.6.24 → v0.6.25}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  55. /package/framework/{v0.6.24 → v0.6.25}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  56. /package/framework/{v0.6.24 → v0.6.25}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
  57. /package/framework/{v0.6.24 → v0.6.25}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
  58. /package/framework/{v0.6.24 → v0.6.25}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
  59. /package/framework/{v0.6.24 → v0.6.25}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  60. /package/framework/{v0.6.24 → v0.6.25}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
  61. /package/framework/{v0.6.24 → v0.6.25}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  62. /package/framework/{v0.6.24 → v0.6.25}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  63. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/ai/index.js +0 -0
  64. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/ai/lib/connector.js +0 -0
  65. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/couchbase/index.js +0 -0
  66. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/couchbase/lib/connector.js +0 -0
  67. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  68. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  69. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/couchbase/lib/n1ql.js +0 -0
  70. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/couchbase/lib/session-store.js +0 -0
  71. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  72. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  73. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/couchbase/lib/storage-store.js +0 -0
  74. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/duckdb/index.js +0 -0
  75. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/duckdb/lib/connector.js +0 -0
  76. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/mongodb/index.js +0 -0
  77. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/mongodb/lib/connector.js +0 -0
  78. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/mongodb/lib/job-store.js +0 -0
  79. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
  80. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/mongodb/lib/session-store.js +0 -0
  81. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/mysql/index.js +0 -0
  82. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/mysql/lib/connector.js +0 -0
  83. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/param-redact.js +0 -0
  84. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/postgresql/index.js +0 -0
  85. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/postgresql/lib/connector.js +0 -0
  86. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/redis/index.js +0 -0
  87. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/redis/lib/connector.js +0 -0
  88. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/redis/lib/job-store.js +0 -0
  89. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/redis/lib/kv-store.js +0 -0
  90. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/redis/lib/render-cache-store.js +0 -0
  91. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/redis/lib/session-store.js +0 -0
  92. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/scylladb/index.js +0 -0
  93. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/scylladb/lib/connector.js +0 -0
  94. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/scylladb/lib/session-store.js +0 -0
  95. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/settle-once.js +0 -0
  96. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/sql-parser.js +0 -0
  97. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/sqlite/index.js +0 -0
  98. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/sqlite/lib/connector.js +0 -0
  99. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/sqlite/lib/job-store.js +0 -0
  100. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/sqlite/lib/kv-store.js +0 -0
  101. /package/framework/{v0.6.24 → v0.6.25}/core/connectors/sqlite/lib/session-store.js +0 -0
  102. /package/framework/{v0.6.24 → v0.6.25}/core/content.encoding +0 -0
  103. /package/framework/{v0.6.24 → v0.6.25}/core/controller/controller.framework.js +0 -0
  104. /package/framework/{v0.6.24 → v0.6.25}/core/controller/controller.render-nunjucks-async.js +0 -0
  105. /package/framework/{v0.6.24 → v0.6.25}/core/controller/controller.render-nunjucks.js +0 -0
  106. /package/framework/{v0.6.24 → v0.6.25}/core/controller/controller.render-stream.js +0 -0
  107. /package/framework/{v0.6.24 → v0.6.25}/core/controller/controller.render-swig-async.js +0 -0
  108. /package/framework/{v0.6.24 → v0.6.25}/core/controller/controller.render-swig.js +0 -0
  109. /package/framework/{v0.6.24 → v0.6.25}/core/controller/controller.render-v1.js +0 -0
  110. /package/framework/{v0.6.24 → v0.6.25}/core/controller/index.js +0 -0
  111. /package/framework/{v0.6.24 → v0.6.25}/core/controller/inspector-window-emit.js +0 -0
  112. /package/framework/{v0.6.24 → v0.6.25}/core/controller/release-banner.js +0 -0
  113. /package/framework/{v0.6.24 → v0.6.25}/core/dev/index.js +0 -0
  114. /package/framework/{v0.6.24 → v0.6.25}/core/dev/lib/class.js +0 -0
  115. /package/framework/{v0.6.24 → v0.6.25}/core/dev/lib/factory.js +0 -0
  116. /package/framework/{v0.6.24 → v0.6.25}/core/dev/lib/tools.js +0 -0
  117. /package/framework/{v0.6.24 → v0.6.25}/core/gna.js +0 -0
  118. /package/framework/{v0.6.24 → v0.6.25}/core/locales/README.md +0 -0
  119. /package/framework/{v0.6.24 → v0.6.25}/core/locales/currency.json +0 -0
  120. /package/framework/{v0.6.24 → v0.6.25}/core/locales/dist/language/en.json +0 -0
  121. /package/framework/{v0.6.24 → v0.6.25}/core/locales/dist/language/fr.json +0 -0
  122. /package/framework/{v0.6.24 → v0.6.25}/core/locales/dist/region/en.json +0 -0
  123. /package/framework/{v0.6.24 → v0.6.25}/core/locales/dist/region/fr.json +0 -0
  124. /package/framework/{v0.6.24 → v0.6.25}/core/locales/index.js +0 -0
  125. /package/framework/{v0.6.24 → v0.6.25}/core/mime.types +0 -0
  126. /package/framework/{v0.6.24 → v0.6.25}/core/model/entity.js +0 -0
  127. /package/framework/{v0.6.24 → v0.6.25}/core/model/index.js +0 -0
  128. /package/framework/{v0.6.24 → v0.6.25}/core/model/template/entityFactory.js +0 -0
  129. /package/framework/{v0.6.24 → v0.6.25}/core/model/template/index.js +0 -0
  130. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/README.md +0 -0
  131. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/index.js +0 -0
  132. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/csrf/README.md +0 -0
  133. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/csrf/package.json +0 -0
  134. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/csrf/src/main.js +0 -0
  135. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/README.md +0 -0
  136. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/coep/README.md +0 -0
  137. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/coep/package.json +0 -0
  138. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
  139. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/coop/README.md +0 -0
  140. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/coop/package.json +0 -0
  141. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
  142. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/corp/README.md +0 -0
  143. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/corp/package.json +0 -0
  144. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
  145. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/csp/README.md +0 -0
  146. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/csp/package.json +0 -0
  147. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
  148. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
  149. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
  150. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
  151. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/hsts/README.md +0 -0
  152. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/hsts/package.json +0 -0
  153. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
  154. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
  155. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
  156. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
  157. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/package.json +0 -0
  158. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
  159. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
  160. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
  161. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/src/main.js +0 -0
  162. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
  163. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
  164. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
  165. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
  166. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
  167. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
  168. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
  169. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
  170. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
  171. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
  172. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
  173. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
  174. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
  175. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
  176. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
  177. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
  178. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
  179. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
  180. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/session/README.md +0 -0
  181. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/session/package.json +0 -0
  182. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/session/src/main.js +0 -0
  183. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/storage/README.md +0 -0
  184. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/storage/build.json +0 -0
  185. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/storage/package.json +0 -0
  186. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/storage/src/main.js +0 -0
  187. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/validator/README.md +0 -0
  188. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/validator/build.json +0 -0
  189. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/validator/package.json +0 -0
  190. /package/framework/{v0.6.24 → v0.6.25}/core/plugins/lib/validator/src/main.js +0 -0
  191. /package/framework/{v0.6.24 → v0.6.25}/core/server.express.js +0 -0
  192. /package/framework/{v0.6.24 → v0.6.25}/core/server.isaac.js +0 -0
  193. /package/framework/{v0.6.24 → v0.6.25}/core/status.codes +0 -0
  194. /package/framework/{v0.6.24 → v0.6.25}/core/template/_gitignore +0 -0
  195. /package/framework/{v0.6.24 → v0.6.25}/core/template/boilerplate/bundle/config/app.json +0 -0
  196. /package/framework/{v0.6.24 → v0.6.25}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  197. /package/framework/{v0.6.24 → v0.6.25}/core/template/boilerplate/bundle/config/routing.json +0 -0
  198. /package/framework/{v0.6.24 → v0.6.25}/core/template/boilerplate/bundle/config/settings.json +0 -0
  199. /package/framework/{v0.6.24 → v0.6.25}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  200. /package/framework/{v0.6.24 → v0.6.25}/core/template/boilerplate/bundle/config/templates.json +0 -0
  201. /package/framework/{v0.6.24 → v0.6.25}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  202. /package/framework/{v0.6.24 → v0.6.25}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  203. /package/framework/{v0.6.24 → v0.6.25}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  204. /package/framework/{v0.6.24 → v0.6.25}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  205. /package/framework/{v0.6.24 → v0.6.25}/core/template/boilerplate/bundle/index.js +0 -0
  206. /package/framework/{v0.6.24 → v0.6.25}/core/template/boilerplate/bundle/locales/en.json +0 -0
  207. /package/framework/{v0.6.24 → v0.6.25}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  208. /package/framework/{v0.6.24 → v0.6.25}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  209. /package/framework/{v0.6.24 → v0.6.25}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  210. /package/framework/{v0.6.24 → v0.6.25}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  211. /package/framework/{v0.6.24 → v0.6.25}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  212. /package/framework/{v0.6.24 → v0.6.25}/core/template/boilerplate/bundle_public/js/components/x-checklist.js +0 -0
  213. /package/framework/{v0.6.24 → v0.6.25}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  214. /package/framework/{v0.6.24 → v0.6.25}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
  215. /package/framework/{v0.6.24 → v0.6.25}/core/template/boilerplate/bundle_public/readme.md +0 -0
  216. /package/framework/{v0.6.24 → v0.6.25}/core/template/boilerplate/bundle_public/sw.js +0 -0
  217. /package/framework/{v0.6.24 → v0.6.25}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  218. /package/framework/{v0.6.24 → v0.6.25}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  219. /package/framework/{v0.6.24 → v0.6.25}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  220. /package/framework/{v0.6.24 → v0.6.25}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  221. /package/framework/{v0.6.24 → v0.6.25}/core/template/boilerplate/bundle_templates/html/includes/x-checklist.html +0 -0
  222. /package/framework/{v0.6.24 → v0.6.25}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  223. /package/framework/{v0.6.24 → v0.6.25}/core/template/command/gina.bat.tpl +0 -0
  224. /package/framework/{v0.6.24 → v0.6.25}/core/template/command/gina.tpl +0 -0
  225. /package/framework/{v0.6.24 → v0.6.25}/core/template/conf/env.json +0 -0
  226. /package/framework/{v0.6.24 → v0.6.25}/core/template/conf/manifest.json +0 -0
  227. /package/framework/{v0.6.24 → v0.6.25}/core/template/conf/package.json +0 -0
  228. /package/framework/{v0.6.24 → v0.6.25}/core/template/conf/settings.json +0 -0
  229. /package/framework/{v0.6.24 → v0.6.25}/core/template/conf/statics.json +0 -0
  230. /package/framework/{v0.6.24 → v0.6.25}/core/template/conf/templates.json +0 -0
  231. /package/framework/{v0.6.24 → v0.6.25}/core/template/error/client/json/401.json +0 -0
  232. /package/framework/{v0.6.24 → v0.6.25}/core/template/error/client/json/403.json +0 -0
  233. /package/framework/{v0.6.24 → v0.6.25}/core/template/error/client/json/404.json +0 -0
  234. /package/framework/{v0.6.24 → v0.6.25}/core/template/error/server/html/50x.html +0 -0
  235. /package/framework/{v0.6.24 → v0.6.25}/core/template/error/server/json/500.json +0 -0
  236. /package/framework/{v0.6.24 → v0.6.25}/core/template/error/server/json/503.json +0 -0
  237. /package/framework/{v0.6.24 → v0.6.25}/core/template/extensions/logger/config.json +0 -0
  238. /package/framework/{v0.6.24 → v0.6.25}/helpers/console.js +0 -0
  239. /package/framework/{v0.6.24 → v0.6.25}/helpers/context.js +0 -0
  240. /package/framework/{v0.6.24 → v0.6.25}/helpers/data/LICENSE +0 -0
  241. /package/framework/{v0.6.24 → v0.6.25}/helpers/data/README.md +0 -0
  242. /package/framework/{v0.6.24 → v0.6.25}/helpers/data/package.json +0 -0
  243. /package/framework/{v0.6.24 → v0.6.25}/helpers/data/src/main.js +0 -0
  244. /package/framework/{v0.6.24 → v0.6.25}/helpers/dateFormat.js +0 -0
  245. /package/framework/{v0.6.24 → v0.6.25}/helpers/index.js +0 -0
  246. /package/framework/{v0.6.24 → v0.6.25}/helpers/json/LICENSE +0 -0
  247. /package/framework/{v0.6.24 → v0.6.25}/helpers/json/README.md +0 -0
  248. /package/framework/{v0.6.24 → v0.6.25}/helpers/json/package.json +0 -0
  249. /package/framework/{v0.6.24 → v0.6.25}/helpers/json/src/main.js +0 -0
  250. /package/framework/{v0.6.24 → v0.6.25}/helpers/path.js +0 -0
  251. /package/framework/{v0.6.24 → v0.6.25}/helpers/plugins/README.md +0 -0
  252. /package/framework/{v0.6.24 → v0.6.25}/helpers/plugins/package.json +0 -0
  253. /package/framework/{v0.6.24 → v0.6.25}/helpers/plugins/src/api-error.js +0 -0
  254. /package/framework/{v0.6.24 → v0.6.25}/helpers/plugins/src/main.js +0 -0
  255. /package/framework/{v0.6.24 → v0.6.25}/helpers/prototypes.js +0 -0
  256. /package/framework/{v0.6.24 → v0.6.25}/helpers/task.js +0 -0
  257. /package/framework/{v0.6.24 → v0.6.25}/helpers/text.js +0 -0
  258. /package/framework/{v0.6.24 → v0.6.25}/lib/admin/package.json +0 -0
  259. /package/framework/{v0.6.24 → v0.6.25}/lib/admin/src/main.js +0 -0
  260. /package/framework/{v0.6.24 → v0.6.25}/lib/archiver/README.md +0 -0
  261. /package/framework/{v0.6.24 → v0.6.25}/lib/archiver/build.json +0 -0
  262. /package/framework/{v0.6.24 → v0.6.25}/lib/archiver/package.json +0 -0
  263. /package/framework/{v0.6.24 → v0.6.25}/lib/archiver/src/dep/jszip.min.js +0 -0
  264. /package/framework/{v0.6.24 → v0.6.25}/lib/archiver/src/main.js +0 -0
  265. /package/framework/{v0.6.24 → v0.6.25}/lib/async/package.json +0 -0
  266. /package/framework/{v0.6.24 → v0.6.25}/lib/async/src/main.js +0 -0
  267. /package/framework/{v0.6.24 → v0.6.25}/lib/audit/package.json +0 -0
  268. /package/framework/{v0.6.24 → v0.6.25}/lib/audit/src/main.js +0 -0
  269. /package/framework/{v0.6.24 → v0.6.25}/lib/audit-store.js +0 -0
  270. /package/framework/{v0.6.24 → v0.6.25}/lib/authn/package.json +0 -0
  271. /package/framework/{v0.6.24 → v0.6.25}/lib/authn/src/lockout.js +0 -0
  272. /package/framework/{v0.6.24 → v0.6.25}/lib/authn/src/main.js +0 -0
  273. /package/framework/{v0.6.24 → v0.6.25}/lib/authn/src/totp.js +0 -0
  274. /package/framework/{v0.6.24 → v0.6.25}/lib/authz-gate/package.json +0 -0
  275. /package/framework/{v0.6.24 → v0.6.25}/lib/authz-gate/src/main.js +0 -0
  276. /package/framework/{v0.6.24 → v0.6.25}/lib/cache/README.md +0 -0
  277. /package/framework/{v0.6.24 → v0.6.25}/lib/cache/build.json +0 -0
  278. /package/framework/{v0.6.24 → v0.6.25}/lib/cache/package.json +0 -0
  279. /package/framework/{v0.6.24 → v0.6.25}/lib/cache/src/main.js +0 -0
  280. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/aliases.json +0 -0
  281. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/audit/arguments.json +0 -0
  282. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/audit/help.txt +0 -0
  283. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/audit/verify.js +0 -0
  284. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/bundle/add.js +0 -0
  285. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/bundle/arguments.json +0 -0
  286. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/bundle/build.js +0 -0
  287. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/bundle/copy.js +0 -0
  288. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/bundle/cp.js +0 -0
  289. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/bundle/help.js +0 -0
  290. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/bundle/help.txt +0 -0
  291. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
  292. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/bundle/list.js +0 -0
  293. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/bundle/man.js +0 -0
  294. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/bundle/mcp-start.js +0 -0
  295. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/bundle/mcp.js +0 -0
  296. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/bundle/oas.js +0 -0
  297. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/bundle/openapi.js +0 -0
  298. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/bundle/remove.js +0 -0
  299. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/bundle/rename.js +0 -0
  300. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/bundle/restart.js +0 -0
  301. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/bundle/rm.js +0 -0
  302. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/bundle/start.js +0 -0
  303. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/bundle/status.js +0 -0
  304. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/bundle/stop.js +0 -0
  305. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/bundle/types.js +0 -0
  306. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/cache/arguments.json +0 -0
  307. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/cache/clear.js +0 -0
  308. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/cache/help.txt +0 -0
  309. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/cache/stats.js +0 -0
  310. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/connector/add.js +0 -0
  311. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/connector/arguments.json +0 -0
  312. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/connector/help.js +0 -0
  313. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/connector/help.txt +0 -0
  314. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/connector/infer.js +0 -0
  315. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/connector/list.js +0 -0
  316. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/connector/migrate.js +0 -0
  317. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/connector/models.js +0 -0
  318. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/connector/remove.js +0 -0
  319. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/connector/rm.js +0 -0
  320. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/connector/test.js +0 -0
  321. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/container/arguments.json +0 -0
  322. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/container/help.js +0 -0
  323. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/container/help.txt +0 -0
  324. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/container/man.js +0 -0
  325. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/container/ps.js +0 -0
  326. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/container/stop.js +0 -0
  327. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/controller/add.js +0 -0
  328. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/controller/arguments.json +0 -0
  329. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/controller/help.txt +0 -0
  330. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/controller/inc/args.js +0 -0
  331. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/controller/inc/namespace.js +0 -0
  332. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/controller/inc/reference-rewrite.js +0 -0
  333. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/controller/inc/reference-scan.js +0 -0
  334. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/controller/inc/scaffold.js +0 -0
  335. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/controller/remove.js +0 -0
  336. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/controller/rename.js +0 -0
  337. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/controller/rm.js +0 -0
  338. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/env/add.js +0 -0
  339. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/env/get.js +0 -0
  340. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/env/help.js +0 -0
  341. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/env/help.txt +0 -0
  342. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/env/link-dev.js +0 -0
  343. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/env/list.js +0 -0
  344. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/env/remove.js +0 -0
  345. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/env/rm.js +0 -0
  346. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/env/set.js +0 -0
  347. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/env/unset.js +0 -0
  348. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/env/use.js +0 -0
  349. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/framework/add.js +0 -0
  350. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/framework/arguments.json +0 -0
  351. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/framework/build.js +0 -0
  352. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/framework/dot.js +0 -0
  353. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/framework/get.js +0 -0
  354. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/framework/help.js +0 -0
  355. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/framework/help.txt +0 -0
  356. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/framework/init.js +0 -0
  357. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/framework/link-node-modules.js +0 -0
  358. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/framework/link.js +0 -0
  359. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/framework/list.js +0 -0
  360. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/framework/man.js +0 -0
  361. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/framework/msg.json +0 -0
  362. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/framework/open.js +0 -0
  363. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/framework/remove.js +0 -0
  364. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/framework/reset.js +0 -0
  365. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/framework/restart.js +0 -0
  366. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/framework/set.js +0 -0
  367. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/framework/start.js +0 -0
  368. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/framework/status.js +0 -0
  369. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/framework/stop.js +0 -0
  370. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/framework/tail.js +0 -0
  371. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/framework/update.js +0 -0
  372. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/framework/version.js +0 -0
  373. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/gina-dev.1.md +0 -0
  374. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/gina-framework.1.md +0 -0
  375. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/gina.1.md +0 -0
  376. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/helper.js +0 -0
  377. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/i18n/add.js +0 -0
  378. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/i18n/arguments.json +0 -0
  379. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/i18n/export.js +0 -0
  380. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/i18n/help.js +0 -0
  381. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/i18n/help.txt +0 -0
  382. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/i18n/import.js +0 -0
  383. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/i18n/scan.js +0 -0
  384. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/image/_host.js +0 -0
  385. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/image/arguments.json +0 -0
  386. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/image/build.js +0 -0
  387. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/image/help.js +0 -0
  388. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/image/help.txt +0 -0
  389. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/image/list.js +0 -0
  390. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/image/man.js +0 -0
  391. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/image/rm.js +0 -0
  392. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/image/run.js +0 -0
  393. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/index.js +0 -0
  394. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/inspector/help.js +0 -0
  395. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/inspector/help.txt +0 -0
  396. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/inspector/open.js +0 -0
  397. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/man-render.js +0 -0
  398. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/minion/arguments.json +0 -0
  399. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/minion/help.js +0 -0
  400. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/minion/help.txt +0 -0
  401. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/minion/kill.js +0 -0
  402. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/minion/list.js +0 -0
  403. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/msg.json +0 -0
  404. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/port/help.js +0 -0
  405. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/port/help.txt +0 -0
  406. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/port/inc/scan.js +0 -0
  407. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/port/list.js +0 -0
  408. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/port/reset.js +0 -0
  409. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/port/set.js +0 -0
  410. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/project/add.js +0 -0
  411. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/project/arguments.json +0 -0
  412. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/project/backup.js +0 -0
  413. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/project/build.js +0 -0
  414. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/project/help.js +0 -0
  415. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/project/help.txt +0 -0
  416. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/project/import.js +0 -0
  417. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/project/list.js +0 -0
  418. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/project/man.js +0 -0
  419. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/project/move.js +0 -0
  420. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/project/remove.js +0 -0
  421. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/project/rename.js +0 -0
  422. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/project/restart.js +0 -0
  423. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/project/restore.js +0 -0
  424. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/project/rm.js +0 -0
  425. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/project/start.js +0 -0
  426. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/project/status.js +0 -0
  427. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/project/stop.js +0 -0
  428. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/protocol/arguments.json +0 -0
  429. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/protocol/help.js +0 -0
  430. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/protocol/help.txt +0 -0
  431. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/protocol/list.js +0 -0
  432. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/protocol/remove.js +0 -0
  433. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/protocol/set.js +0 -0
  434. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/scope/add.js +0 -0
  435. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/scope/help.js +0 -0
  436. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/scope/help.txt +0 -0
  437. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/scope/link-local.js +0 -0
  438. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/scope/link-production.js +0 -0
  439. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/scope/list.js +0 -0
  440. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/scope/remove.js +0 -0
  441. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/scope/rm.js +0 -0
  442. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/scope/use.js +0 -0
  443. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/secrets/arguments.json +0 -0
  444. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/secrets/check.js +0 -0
  445. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/secrets/help.js +0 -0
  446. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/secrets/help.txt +0 -0
  447. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/secrets/scan.js +0 -0
  448. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/service/help.js +0 -0
  449. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/service/help.txt +0 -0
  450. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/service/list.js +0 -0
  451. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/service/man.js +0 -0
  452. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/service/start.js +0 -0
  453. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/storage/arguments.json +0 -0
  454. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/storage/gc.js +0 -0
  455. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/storage/help.txt +0 -0
  456. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/storage/stats.js +0 -0
  457. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/storage/verify.js +0 -0
  458. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd/view/add.js +0 -0
  459. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd-status-format/package.json +0 -0
  460. /package/framework/{v0.6.24 → v0.6.25}/lib/cmd-status-format/src/main.js +0 -0
  461. /package/framework/{v0.6.24 → v0.6.25}/lib/collection/README.md +0 -0
  462. /package/framework/{v0.6.24 → v0.6.25}/lib/collection/build.json +0 -0
  463. /package/framework/{v0.6.24 → v0.6.25}/lib/collection/package.json +0 -0
  464. /package/framework/{v0.6.24 → v0.6.25}/lib/collection/src/main.js +0 -0
  465. /package/framework/{v0.6.24 → v0.6.25}/lib/config.js +0 -0
  466. /package/framework/{v0.6.24 → v0.6.25}/lib/connector-config/package.json +0 -0
  467. /package/framework/{v0.6.24 → v0.6.25}/lib/connector-config/src/main.js +0 -0
  468. /package/framework/{v0.6.24 → v0.6.25}/lib/connector-error/package.json +0 -0
  469. /package/framework/{v0.6.24 → v0.6.25}/lib/connector-error/src/main.js +0 -0
  470. /package/framework/{v0.6.24 → v0.6.25}/lib/connector-registry/package.json +0 -0
  471. /package/framework/{v0.6.24 → v0.6.25}/lib/connector-registry/src/main.js +0 -0
  472. /package/framework/{v0.6.24 → v0.6.25}/lib/cron/README.md +0 -0
  473. /package/framework/{v0.6.24 → v0.6.25}/lib/cron/package.json +0 -0
  474. /package/framework/{v0.6.24 → v0.6.25}/lib/cron/src/main.js +0 -0
  475. /package/framework/{v0.6.24 → v0.6.25}/lib/domain/LICENSE +0 -0
  476. /package/framework/{v0.6.24 → v0.6.25}/lib/domain/README.md +0 -0
  477. /package/framework/{v0.6.24 → v0.6.25}/lib/domain/package.json +0 -0
  478. /package/framework/{v0.6.24 → v0.6.25}/lib/domain/src/main.js +0 -0
  479. /package/framework/{v0.6.24 → v0.6.25}/lib/dto/package.json +0 -0
  480. /package/framework/{v0.6.24 → v0.6.25}/lib/dto/src/main.js +0 -0
  481. /package/framework/{v0.6.24 → v0.6.25}/lib/dto-pipe/package.json +0 -0
  482. /package/framework/{v0.6.24 → v0.6.25}/lib/dto-pipe/src/main.js +0 -0
  483. /package/framework/{v0.6.24 → v0.6.25}/lib/dto-types/package.json +0 -0
  484. /package/framework/{v0.6.24 → v0.6.25}/lib/dto-types/src/main.js +0 -0
  485. /package/framework/{v0.6.24 → v0.6.25}/lib/generator/index.js +0 -0
  486. /package/framework/{v0.6.24 → v0.6.25}/lib/i18n/package.json +0 -0
  487. /package/framework/{v0.6.24 → v0.6.25}/lib/i18n/src/main.js +0 -0
  488. /package/framework/{v0.6.24 → v0.6.25}/lib/image-build/package.json +0 -0
  489. /package/framework/{v0.6.24 → v0.6.25}/lib/image-build/src/main.js +0 -0
  490. /package/framework/{v0.6.24 → v0.6.25}/lib/inherits/LICENSE +0 -0
  491. /package/framework/{v0.6.24 → v0.6.25}/lib/inherits/README.md +0 -0
  492. /package/framework/{v0.6.24 → v0.6.25}/lib/inherits/package.json +0 -0
  493. /package/framework/{v0.6.24 → v0.6.25}/lib/inherits/src/main.js +0 -0
  494. /package/framework/{v0.6.24 → v0.6.25}/lib/inspector-events/package.json +0 -0
  495. /package/framework/{v0.6.24 → v0.6.25}/lib/inspector-events/src/main.js +0 -0
  496. /package/framework/{v0.6.24 → v0.6.25}/lib/inspector-redact/package.json +0 -0
  497. /package/framework/{v0.6.24 → v0.6.25}/lib/inspector-redact/src/main.js +0 -0
  498. /package/framework/{v0.6.24 → v0.6.25}/lib/instrument/package.json +0 -0
  499. /package/framework/{v0.6.24 → v0.6.25}/lib/instrument/src/main.js +0 -0
  500. /package/framework/{v0.6.24 → v0.6.25}/lib/job/package.json +0 -0
  501. /package/framework/{v0.6.24 → v0.6.25}/lib/job/src/main.js +0 -0
  502. /package/framework/{v0.6.24 → v0.6.25}/lib/job-store.js +0 -0
  503. /package/framework/{v0.6.24 → v0.6.25}/lib/json-config-header/package.json +0 -0
  504. /package/framework/{v0.6.24 → v0.6.25}/lib/json-config-header/src/main.js +0 -0
  505. /package/framework/{v0.6.24 → v0.6.25}/lib/kv/package.json +0 -0
  506. /package/framework/{v0.6.24 → v0.6.25}/lib/kv/src/main.js +0 -0
  507. /package/framework/{v0.6.24 → v0.6.25}/lib/kv-store.js +0 -0
  508. /package/framework/{v0.6.24 → v0.6.25}/lib/loading-state/package.json +0 -0
  509. /package/framework/{v0.6.24 → v0.6.25}/lib/loading-state/src/main.js +0 -0
  510. /package/framework/{v0.6.24 → v0.6.25}/lib/logger/README.md +0 -0
  511. /package/framework/{v0.6.24 → v0.6.25}/lib/logger/package.json +0 -0
  512. /package/framework/{v0.6.24 → v0.6.25}/lib/logger/src/containers/default/index.js +0 -0
  513. /package/framework/{v0.6.24 → v0.6.25}/lib/logger/src/containers/file/index.js +0 -0
  514. /package/framework/{v0.6.24 → v0.6.25}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  515. /package/framework/{v0.6.24 → v0.6.25}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  516. /package/framework/{v0.6.24 → v0.6.25}/lib/logger/src/containers/mq/index.js +0 -0
  517. /package/framework/{v0.6.24 → v0.6.25}/lib/logger/src/containers/mq/listener.js +0 -0
  518. /package/framework/{v0.6.24 → v0.6.25}/lib/logger/src/containers/mq/speaker.js +0 -0
  519. /package/framework/{v0.6.24 → v0.6.25}/lib/logger/src/helper.js +0 -0
  520. /package/framework/{v0.6.24 → v0.6.25}/lib/logger/src/main.js +0 -0
  521. /package/framework/{v0.6.24 → v0.6.25}/lib/logger/src/redact.js +0 -0
  522. /package/framework/{v0.6.24 → v0.6.25}/lib/maintenance/package.json +0 -0
  523. /package/framework/{v0.6.24 → v0.6.25}/lib/maintenance/src/main.js +0 -0
  524. /package/framework/{v0.6.24 → v0.6.25}/lib/math/index.js +0 -0
  525. /package/framework/{v0.6.24 → v0.6.25}/lib/mcp-dispatch/package.json +0 -0
  526. /package/framework/{v0.6.24 → v0.6.25}/lib/mcp-dispatch/src/main.js +0 -0
  527. /package/framework/{v0.6.24 → v0.6.25}/lib/mcp-http/package.json +0 -0
  528. /package/framework/{v0.6.24 → v0.6.25}/lib/mcp-http/src/main.js +0 -0
  529. /package/framework/{v0.6.24 → v0.6.25}/lib/mcp-server/package.json +0 -0
  530. /package/framework/{v0.6.24 → v0.6.25}/lib/mcp-server/src/main.js +0 -0
  531. /package/framework/{v0.6.24 → v0.6.25}/lib/merge/README.md +0 -0
  532. /package/framework/{v0.6.24 → v0.6.25}/lib/merge/package.json +0 -0
  533. /package/framework/{v0.6.24 → v0.6.25}/lib/merge/src/main.js +0 -0
  534. /package/framework/{v0.6.24 → v0.6.25}/lib/metrics/package.json +0 -0
  535. /package/framework/{v0.6.24 → v0.6.25}/lib/metrics/src/main.js +0 -0
  536. /package/framework/{v0.6.24 → v0.6.25}/lib/model.js +0 -0
  537. /package/framework/{v0.6.24 → v0.6.25}/lib/net-locality/package.json +0 -0
  538. /package/framework/{v0.6.24 → v0.6.25}/lib/net-locality/src/main.js +0 -0
  539. /package/framework/{v0.6.24 → v0.6.25}/lib/nunjucks-filters/README.md +0 -0
  540. /package/framework/{v0.6.24 → v0.6.25}/lib/nunjucks-filters/package.json +0 -0
  541. /package/framework/{v0.6.24 → v0.6.25}/lib/nunjucks-filters/src/main.js +0 -0
  542. /package/framework/{v0.6.24 → v0.6.25}/lib/nunjucks-resolver/package.json +0 -0
  543. /package/framework/{v0.6.24 → v0.6.25}/lib/nunjucks-resolver/src/main.js +0 -0
  544. /package/framework/{v0.6.24 → v0.6.25}/lib/proc.js +0 -0
  545. /package/framework/{v0.6.24 → v0.6.25}/lib/push/package.json +0 -0
  546. /package/framework/{v0.6.24 → v0.6.25}/lib/push/src/main.js +0 -0
  547. /package/framework/{v0.6.24 → v0.6.25}/lib/rate-limit/package.json +0 -0
  548. /package/framework/{v0.6.24 → v0.6.25}/lib/rate-limit/src/main.js +0 -0
  549. /package/framework/{v0.6.24 → v0.6.25}/lib/release-watch/package.json +0 -0
  550. /package/framework/{v0.6.24 → v0.6.25}/lib/release-watch/src/main.js +0 -0
  551. /package/framework/{v0.6.24 → v0.6.25}/lib/render-cache/package.json +0 -0
  552. /package/framework/{v0.6.24 → v0.6.25}/lib/render-cache/src/main.js +0 -0
  553. /package/framework/{v0.6.24 → v0.6.25}/lib/render-cache-store.js +0 -0
  554. /package/framework/{v0.6.24 → v0.6.25}/lib/routing/README.md +0 -0
  555. /package/framework/{v0.6.24 → v0.6.25}/lib/routing/build.json +0 -0
  556. /package/framework/{v0.6.24 → v0.6.25}/lib/routing/package.json +0 -0
  557. /package/framework/{v0.6.24 → v0.6.25}/lib/routing/src/radix.js +0 -0
  558. /package/framework/{v0.6.24 → v0.6.25}/lib/routing-introspect/package.json +0 -0
  559. /package/framework/{v0.6.24 → v0.6.25}/lib/routing-introspect/src/main.js +0 -0
  560. /package/framework/{v0.6.24 → v0.6.25}/lib/secrets/package.json +0 -0
  561. /package/framework/{v0.6.24 → v0.6.25}/lib/secrets/src/backends/env.js +0 -0
  562. /package/framework/{v0.6.24 → v0.6.25}/lib/secrets/src/backends/exec.js +0 -0
  563. /package/framework/{v0.6.24 → v0.6.25}/lib/secrets/src/backends/file.js +0 -0
  564. /package/framework/{v0.6.24 → v0.6.25}/lib/secrets/src/declaration.js +0 -0
  565. /package/framework/{v0.6.24 → v0.6.25}/lib/secrets/src/env-file.js +0 -0
  566. /package/framework/{v0.6.24 → v0.6.25}/lib/secrets/src/main.js +0 -0
  567. /package/framework/{v0.6.24 → v0.6.25}/lib/secrets/src/sources.js +0 -0
  568. /package/framework/{v0.6.24 → v0.6.25}/lib/security-headers-emitter/package.json +0 -0
  569. /package/framework/{v0.6.24 → v0.6.25}/lib/security-headers-emitter/src/main.js +0 -0
  570. /package/framework/{v0.6.24 → v0.6.25}/lib/session-store.js +0 -0
  571. /package/framework/{v0.6.24 → v0.6.25}/lib/shell.js +0 -0
  572. /package/framework/{v0.6.24 → v0.6.25}/lib/sqlite-driver.js +0 -0
  573. /package/framework/{v0.6.24 → v0.6.25}/lib/sri/package.json +0 -0
  574. /package/framework/{v0.6.24 → v0.6.25}/lib/sri/src/main.js +0 -0
  575. /package/framework/{v0.6.24 → v0.6.25}/lib/state.js +0 -0
  576. /package/framework/{v0.6.24 → v0.6.25}/lib/storage/package.json +0 -0
  577. /package/framework/{v0.6.24 → v0.6.25}/lib/storage/src/local-cas.js +0 -0
  578. /package/framework/{v0.6.24 → v0.6.25}/lib/storage/src/local-stream.js +0 -0
  579. /package/framework/{v0.6.24 → v0.6.25}/lib/storage/src/local.js +0 -0
  580. /package/framework/{v0.6.24 → v0.6.25}/lib/storage/src/main.js +0 -0
  581. /package/framework/{v0.6.24 → v0.6.25}/lib/storage/src/meta-store.js +0 -0
  582. /package/framework/{v0.6.24 → v0.6.25}/lib/storage/src/s3.js +0 -0
  583. /package/framework/{v0.6.24 → v0.6.25}/lib/storage/src/util.js +0 -0
  584. /package/framework/{v0.6.24 → v0.6.25}/lib/storage-store.js +0 -0
  585. /package/framework/{v0.6.24 → v0.6.25}/lib/swig-filters/README.md +0 -0
  586. /package/framework/{v0.6.24 → v0.6.25}/lib/swig-filters/package.json +0 -0
  587. /package/framework/{v0.6.24 → v0.6.25}/lib/swig-filters/src/main.js +0 -0
  588. /package/framework/{v0.6.24 → v0.6.25}/lib/swig-resolver/package.json +0 -0
  589. /package/framework/{v0.6.24 → v0.6.25}/lib/swig-resolver/src/main.js +0 -0
  590. /package/framework/{v0.6.24 → v0.6.25}/lib/template-loaders/package.json +0 -0
  591. /package/framework/{v0.6.24 → v0.6.25}/lib/template-loaders/src/loaders/http.js +0 -0
  592. /package/framework/{v0.6.24 → v0.6.25}/lib/template-loaders/src/loaders/memory.js +0 -0
  593. /package/framework/{v0.6.24 → v0.6.25}/lib/template-loaders/src/main.js +0 -0
  594. /package/framework/{v0.6.24 → v0.6.25}/lib/url/README.md +0 -0
  595. /package/framework/{v0.6.24 → v0.6.25}/lib/url/index.js +0 -0
  596. /package/framework/{v0.6.24 → v0.6.25}/lib/url/routing.json +0 -0
  597. /package/framework/{v0.6.24 → v0.6.25}/lib/uuid/package.json +0 -0
  598. /package/framework/{v0.6.24 → v0.6.25}/lib/uuid/src/main.js +0 -0
  599. /package/framework/{v0.6.24 → v0.6.25}/lib/validator.js +0 -0
  600. /package/framework/{v0.6.24 → v0.6.25}/lib/watcher/package.json +0 -0
  601. /package/framework/{v0.6.24 → v0.6.25}/lib/watcher/src/main.js +0 -0
  602. /package/framework/{v0.6.24 → v0.6.25}/lib/ws-framing/package.json +0 -0
  603. /package/framework/{v0.6.24 → v0.6.25}/lib/ws-framing/src/main.js +0 -0
  604. /package/framework/{v0.6.24 → v0.6.25}/lib/ws-query/package.json +0 -0
  605. /package/framework/{v0.6.24 → v0.6.25}/lib/ws-query/src/main.js +0 -0
  606. /package/framework/{v0.6.24 → v0.6.25}/lib/ws-session/package.json +0 -0
  607. /package/framework/{v0.6.24 → v0.6.25}/lib/ws-session/src/main.js +0 -0
@@ -3173,6 +3173,8 @@ function FormValidatorUtil(data, $fields, xhrOptions, fieldsSet, culture) {
3173
3173
  'isStringMinLength': 'Should be at least %s characters',
3174
3174
  'isStringMaxLength': 'Should not be more than %s characters',
3175
3175
  'isJsonWebToken': 'Must be a valid JSON Web Token',
3176
+ 'isIban': 'A valid IBAN is required',
3177
+ 'isBic': 'A valid BIC is required',
3176
3178
  'query': 'Must be a valid response',
3177
3179
  // #B233 rider - dropped: `isApiError` is not a rule, so nothing ever consulted this
3178
3180
  // label. The API-error path assigns the SERVER's message straight onto the error
@@ -3181,6 +3183,30 @@ function FormValidatorUtil(data, $fields, xhrOptions, fieldsSet, culture) {
3181
3183
  //'isApiError': 'Condition not satisfied',
3182
3184
  'isInList': 'Must be one of: %s'
3183
3185
  };
3186
+ /**
3187
+ * ISO 13616 registry - official IBAN length per country code, consumed by
3188
+ * the `isIban` rule. Countries absent from this table are validated on
3189
+ * shape + MOD-97 checksum alone (deliberate: the registry grows over time
3190
+ * and an unknown country must not hard-fail a well-formed IBAN).
3191
+ * @constant
3192
+ * @inner
3193
+ * @type {Object.<string, number>}
3194
+ */
3195
+ var _ibanLengths = {
3196
+ 'AD': 24, 'AE': 23, 'AL': 28, 'AT': 20, 'AZ': 28, 'BA': 20, 'BE': 16,
3197
+ 'BG': 22, 'BH': 22, 'BI': 27, 'BR': 29, 'BY': 28, 'CH': 21, 'CR': 22,
3198
+ 'CY': 28, 'CZ': 24, 'DE': 22, 'DJ': 27, 'DK': 18, 'DO': 28, 'EE': 20,
3199
+ 'EG': 29, 'ES': 24, 'FI': 18, 'FK': 18, 'FO': 18, 'FR': 27, 'GB': 22,
3200
+ 'GE': 22, 'GI': 23, 'GL': 18, 'GR': 27, 'GT': 28, 'HR': 21, 'HU': 28,
3201
+ 'IE': 22, 'IL': 23, 'IQ': 23, 'IS': 26, 'IT': 27, 'JO': 30, 'KW': 30,
3202
+ 'KZ': 20, 'LB': 28, 'LC': 32, 'LI': 21, 'LT': 20, 'LU': 20, 'LV': 21,
3203
+ 'LY': 25, 'MC': 27, 'MD': 24, 'ME': 22, 'MK': 19, 'MN': 20, 'MR': 27,
3204
+ 'MT': 31, 'MU': 30, 'NI': 28, 'NL': 18, 'NO': 15, 'OM': 23, 'PK': 24,
3205
+ 'PL': 28, 'PS': 29, 'PT': 25, 'QA': 29, 'RO': 24, 'RS': 22, 'RU': 33,
3206
+ 'SA': 24, 'SC': 31, 'SD': 18, 'SE': 24, 'SI': 19, 'SK': 24, 'SM': 27,
3207
+ 'SO': 23, 'ST': 25, 'SV': 28, 'TL': 23, 'TN': 24, 'TR': 26, 'UA': 29,
3208
+ 'VA': 22, 'VG': 24, 'XK': 20
3209
+ };
3184
3210
  /**
3185
3211
  * Rules already warned about by `replace()`'s fail-soft guard, so one mistyped label
3186
3212
  * emits one warning and not one per debounced keystroke. Scoped to this engine
@@ -4588,6 +4614,143 @@ function FormValidatorUtil(data, $fields, xhrOptions, fieldsSet, culture) {
4588
4614
  return self[this['name']]
4589
4615
  }
4590
4616
 
4617
+ /**
4618
+ * Validates the field value as an IBAN (ISO 13616).
4619
+ *
4620
+ * Tolerant read: validation runs on an uppercased copy with spaces and
4621
+ * hyphens stripped (the ISO 13616 print format groups characters in
4622
+ * blocks of four) - the stored field value and the DOM are NEVER
4623
+ * mutated, so the application receives exactly what the user typed.
4624
+ * Three checks, in order: the ISO shape, the official per-country
4625
+ * length when the country code is in the `_ibanLengths` registry
4626
+ * (unknown countries pass on shape + checksum alone - the registry
4627
+ * grows over time and an unknown country must not hard-fail a
4628
+ * well-formed IBAN), and the ISO 7064 MOD 97-10 checksum.
4629
+ * An empty value is adjudicated by `isRequired` alone (#B78).
4630
+ *
4631
+ * @returns {object} the field object (chainable)
4632
+ *
4633
+ * @example
4634
+ * // rule file
4635
+ * "accountIban": { "isRequired": true, "isIban": true }
4636
+ */
4637
+ self[el]['isIban'] = function() {
4638
+
4639
+ // #B200 - TYPE-guarded, not merely truthy-guarded: see the isEmail
4640
+ // note above. The guard folds into isValid (rather than letting the
4641
+ // regex coerce) because the checks below call string methods on the
4642
+ // candidate - a toString-spoofing object must record an invalid,
4643
+ // never throw into the rule driver.
4644
+ var candidate = ( this.value && typeof(this.value) == 'string' )
4645
+ ? this.value.toUpperCase().replace(/[\s-]+/g, '')
4646
+ : this.value;
4647
+
4648
+ var rgx = /^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$/;
4649
+ var isValid = ( typeof(candidate) == 'string' && rgx.test(candidate) ) ? true : false;
4650
+
4651
+ // Official per-country length when the country is registered;
4652
+ // unknown countries pass on shape + checksum alone.
4653
+ if (isValid) {
4654
+ var country = candidate.slice(0, 2);
4655
+ if ( typeof(_ibanLengths[country]) != 'undefined' && candidate.length !== _ibanLengths[country] ) {
4656
+ isValid = false;
4657
+ }
4658
+ }
4659
+
4660
+ // ISO 7064 MOD 97-10: move the first four characters to the end,
4661
+ // expand letters (A=10 ... Z=35), then fold the digit string
4662
+ // modulo 97 in <= 7-digit chunks so every intermediate stays far
4663
+ // inside Number.MAX_SAFE_INTEGER - plain Number math only (the
4664
+ // browser-bundle build chain constrains bundled source).
4665
+ if (isValid) {
4666
+ var rearranged = candidate.slice(4) + candidate.slice(0, 4);
4667
+ var expanded = '';
4668
+ for (var i = 0, len = rearranged.length; i < len; ++i) {
4669
+ var code = rearranged.charCodeAt(i);
4670
+ expanded += ( code >= 65 ) ? (code - 55).toString() : rearranged.charAt(i);
4671
+ }
4672
+ var remainder = 0;
4673
+ for (var p = 0, pLen = expanded.length; p < pLen; p += 7) {
4674
+ remainder = parseInt(remainder.toString() + expanded.slice(p, p + 7), 10) % 97;
4675
+ }
4676
+ isValid = (remainder === 1);
4677
+ }
4678
+
4679
+ var errors = self[this['name']]['errors'] || {};
4680
+
4681
+ // #B78 - an empty value is adjudicated by isRequired alone: bypass on empty so a
4682
+ // required+empty field records only isRequired, not a second 'invalid' message.
4683
+ // #B199 - strict: only the literal empty string is "empty".
4684
+ if ( this.value === '' ) {
4685
+ isValid = true;
4686
+ }
4687
+
4688
+ local['data'][this.name] = this.value;
4689
+
4690
+ if (!isValid) {
4691
+ errors['isIban'] = replace(this['error'] || local.errorLabels['isIban'], this, 'isIban')
4692
+ }
4693
+ else if ( isValid && typeof(errors['isIban']) != 'undefined' ) {
4694
+ delete errors['isIban'];
4695
+ }
4696
+
4697
+ // #B78 - keep .valid consistent with a surviving isRequired error.
4698
+ this.valid = isValid && !errors['isRequired'];
4699
+
4700
+ if ( errors.count() > 0 )
4701
+ this['errors'] = errors;
4702
+
4703
+ return self[this['name']]
4704
+ }
4705
+
4706
+ /**
4707
+ * Validates the field value as a BIC (ISO 9362): a 4-letter business
4708
+ * party prefix, a 2-letter country code, a 2-character alphanumeric
4709
+ * location code, and an optional 3-character alphanumeric branch code
4710
+ * (8 or 11 characters). Case-insensitive by regex - the stored field
4711
+ * value and the DOM are NEVER mutated.
4712
+ * An empty value is adjudicated by `isRequired` alone (#B78).
4713
+ *
4714
+ * @returns {object} the field object (chainable)
4715
+ *
4716
+ * @example
4717
+ * // rule file
4718
+ * "bankBic": { "isRequired": true, "isBic": true }
4719
+ */
4720
+ self[el]['isBic'] = function() {
4721
+
4722
+ // #B200 - non-strings are adjudicated by the regex (every
4723
+ // non-string coerces to a string that fails the shape), so they
4724
+ // record an invalid - they never throw into the rule driver.
4725
+ var rgx = /^[A-Za-z]{4}[A-Za-z]{2}[A-Za-z0-9]{2}([A-Za-z0-9]{3})?$/;
4726
+ var isValid = rgx.test(this['value']) ? true : false;
4727
+ var errors = self[this['name']]['errors'] || {};
4728
+
4729
+ // #B78 - an empty value is adjudicated by isRequired alone: bypass on empty so a
4730
+ // required+empty field records only isRequired, not a second 'invalid' message.
4731
+ // #B199 - strict: only the literal empty string is "empty".
4732
+ if ( this.value === '' ) {
4733
+ isValid = true;
4734
+ }
4735
+
4736
+ local['data'][this.name] = this.value;
4737
+
4738
+ if (!isValid) {
4739
+ errors['isBic'] = replace(this['error'] || local.errorLabels['isBic'], this, 'isBic')
4740
+ }
4741
+ else if ( isValid && typeof(errors['isBic']) != 'undefined' ) {
4742
+ delete errors['isBic'];
4743
+ }
4744
+
4745
+ // #B78 - keep .valid consistent with a surviving isRequired error.
4746
+ this.valid = isValid && !errors['isRequired'];
4747
+
4748
+ if ( errors.count() > 0 )
4749
+ this['errors'] = errors;
4750
+
4751
+ return self[this['name']]
4752
+ }
4753
+
4591
4754
  /**
4592
4755
  * Check if boolean and convert to `true/false` boolean if value is a string or a number.
4593
4756
  * Accepts `true`/`'true'`/`1` and `false`/`'false'`/`0` — the documented set.
@@ -6029,6 +6192,15 @@ function Routing() {
6029
6192
  params.rateLimit = routeObject.rateLimit;
6030
6193
  }
6031
6194
 
6195
+ // #FIN6 — propagate the per-route idempotency opt-in to
6196
+ // req.routing.idempotency (top-level, NOT req.routing.param.* — the
6197
+ // #CSRF2 trap). typeof-guarded so `false` survives the copy;
6198
+ // assigned only when declared, so a routing.json that never
6199
+ // mentions `idempotency` produces a byte-identical params object.
6200
+ if ( typeof(routeObject.idempotency) != 'undefined' ) {
6201
+ params.idempotency = routeObject.idempotency;
6202
+ }
6203
+
6032
6204
  // isRoute
6033
6205
  return self.compareUrls(params, routeObject.url, req);
6034
6206
  }
@@ -7258,6 +7430,13 @@ function Routing() {
7258
7430
  * `false` sentinel for every url. Await this method (or `.then()` it); the
7259
7431
  * old "unresolved promises" caveat that used to sit here was this defect.
7260
7432
  *
7433
+ * Browser context, on a miss (#B462): when a rendered `404:` marker or an
7434
+ * alternate-route lookup identifies the missing rule, the composed
7435
+ * "route not found inside your view" diagnostic is registered on the
7436
+ * notFound registry — keyed per rule, `count` incremented on repeats —
7437
+ * and emitted via `console.warn` on the FIRST sighting of each key.
7438
+ * Server context warns on every miss (unchanged).
7439
+ *
7261
7440
  * @function getRouteByUrl
7262
7441
  * @async
7263
7442
  *
@@ -7527,6 +7706,7 @@ function Routing() {
7527
7706
  count: 1,
7528
7707
  message: msg
7529
7708
  };
7709
+ console.warn(msg); // #B462 — announce the composed diagnostic on the FIRST sighting of each key (the registry dedups repeats)
7530
7710
  } else if ( isMethodProvidedByDefault && typeof(self.notFound[notFound]) != 'undefined' ) {
7531
7711
  ++self.notFound[notFound].count;
7532
7712
  }
@@ -7553,7 +7733,7 @@ function Routing() {
7553
7733
  count: 1,
7554
7734
  message: msg
7555
7735
  };
7556
- //console.warn(msg);
7736
+ console.warn(msg); // #B462 — re-enabled: emit once per new registry key
7557
7737
  } else if ( isMethodProvidedByDefault && typeof(self.notFound[notFound]) != 'undefined' ) {
7558
7738
  ++self.notFound[notFound].count;
7559
7739
  }
@@ -7571,7 +7751,14 @@ function Routing() {
7571
7751
  notFound = method.toUpperCase() +'::'+ altRoute.request.routing.rule;
7572
7752
  if ( typeof(self.notFound[notFound]) == 'undefined' ) {
7573
7753
  msg = msg.replace(/\%r/, notFound);
7574
- //console.warn(msg);
7754
+ // #B462 — the registry write was missing here, leaving the
7755
+ // increment arm below unreachable; aligned with the sibling
7756
+ // arms (create + emit once per key)
7757
+ self.notFound[notFound] = {
7758
+ count: 1,
7759
+ message: msg
7760
+ };
7761
+ console.warn(msg); // #B462
7575
7762
  } else {
7576
7763
  ++self.notFound[notFound].count;
7577
7764
  }
@@ -7673,6 +7860,362 @@ if ((typeof (module) !== 'undefined') && module.exports) {
7673
7860
  return Routing();
7674
7861
  });
7675
7862
  };
7863
+ /*
7864
+ * This file is part of the gina package.
7865
+ * Copyright (c) 2009-2026 Rhinostone <contact@gina.io>
7866
+ *
7867
+ * For the full copyright and license information, please view the LICENSE
7868
+ * file that was distributed with this source code.
7869
+ */
7870
+
7871
+ /**
7872
+ * @module money
7873
+ *
7874
+ * Exact-money primitive (#FIN5) — ISO 4217 minor-unit integer arithmetic,
7875
+ * BigInt-safe, dependency-free, dual-context (server + browser bundle).
7876
+ *
7877
+ * The one rule this module exists to enforce: an amount of money is an
7878
+ * INTEGER count of a currency's minor units (cents, fils, yen...), never an
7879
+ * IEEE 754 float. `0.10 + 0.20` is wrong out of the box in JavaScript; this
7880
+ * module makes the correct pattern cheap:
7881
+ *
7882
+ * wire (string, byte-exact) -> parse() -> { minor: BigInt } -> arithmetic
7883
+ * |
7884
+ * wire (string) <- format() / toMinor() <
7885
+ *
7886
+ * What it deliberately does NOT do:
7887
+ * - Display formatting (locale symbols, grouping): that is the i18n layer's
7888
+ * job — `Intl.NumberFormat(culture, { style: 'currency', currency: code })`
7889
+ * is native on both runtimes. `format()` here returns the CANONICAL wire
7890
+ * string ("1234.50"), locale-independent.
7891
+ * - Rounding policy: `parse()` REJECTS excess precision instead of rounding
7892
+ * (whether "1.005" rounds up, down or banker's is application domain), and
7893
+ * `multiply()` accepts INTEGER factors only for the same reason. An
7894
+ * application that needs fractional factors owns its rounding explicitly,
7895
+ * on minor units.
7896
+ * - Currency conversion: rates are application data.
7897
+ *
7898
+ * Amounts internally use BigInt so totals beyond `Number.MAX_SAFE_INTEGER`
7899
+ * minor units stay exact. BigInt values are created exclusively through the
7900
+ * `BigInt()` constructor — no BigInt literals — so the source stays parseable
7901
+ * by every tool in the browser-bundle build chain.
7902
+ *
7903
+ * @example
7904
+ * var money = require('lib/money'); // server: bare module | browser: gina.money
7905
+ * var a = money.parse('19.99', 'EUR');
7906
+ * var b = money.parse('0.01', 'EUR');
7907
+ * money.format(money.add(a, b)); // '20.00'
7908
+ * money.toMinor(money.add(a, b)); // '2000'
7909
+ * money.parse('100', 'JPY').exponent; // 0 — no minor unit
7910
+ * money.add(a, money.parse('1', 'USD')); // throws TypeError (currency mismatch)
7911
+ * */
7912
+
7913
+ var Money = (function() {
7914
+
7915
+ var self = {};
7916
+
7917
+ /**
7918
+ * ISO 4217 minor-unit exponents that differ from the default of 2.
7919
+ * Sourced from the ISO 4217 active-currency table; funds and precious-
7920
+ * metal codes (XAU, XDR, ...) carry no minor unit and are not listed —
7921
+ * they resolve to the default like any unlisted well-formed code.
7922
+ *
7923
+ * @constant
7924
+ * @type {Object<string, number>}
7925
+ * @inner
7926
+ * */
7927
+ var EXPONENT_EXCEPTIONS = {
7928
+ // 0 — no minor unit
7929
+ 'BIF': 0, 'CLP': 0, 'DJF': 0, 'GNF': 0, 'ISK': 0, 'JPY': 0,
7930
+ 'KMF': 0, 'KRW': 0, 'PYG': 0, 'RWF': 0, 'UGX': 0, 'UYI': 0,
7931
+ 'VND': 0, 'VUV': 0, 'XAF': 0, 'XOF': 0, 'XPF': 0,
7932
+ // 3 — mills
7933
+ 'BHD': 3, 'IQD': 3, 'JOD': 3, 'KWD': 3, 'LYD': 3, 'OMR': 3, 'TND': 3,
7934
+ // 4
7935
+ 'CLF': 4, 'UYW': 4
7936
+ };
7937
+
7938
+ /**
7939
+ * Wire-amount shape: an optional sign, an integer part, an optional
7940
+ * fraction. Nothing else — no grouping separators, no exponent notation,
7941
+ * no currency symbols (those are display concerns).
7942
+ *
7943
+ * @constant
7944
+ * @inner
7945
+ * */
7946
+ var RE_AMOUNT = /^(-?)(\d+)(?:\.(\d+))?$/;
7947
+
7948
+ /**
7949
+ * Well-formed ISO 4217 alphabetic code.
7950
+ *
7951
+ * @constant
7952
+ * @inner
7953
+ * */
7954
+ var RE_CODE = /^[A-Za-z]{3}$/;
7955
+
7956
+ /**
7957
+ * Normalizes and validates a currency code.
7958
+ *
7959
+ * @inner
7960
+ * @param {string} code - ISO 4217 alphabetic code, any case
7961
+ * @returns {string} the upper-cased code
7962
+ * @throws {TypeError} when `code` is not a 3-letter string
7963
+ * */
7964
+ var normalizeCode = function(code) {
7965
+ if ( typeof(code) != 'string' || !RE_CODE.test(code) ) {
7966
+ throw new TypeError('[ money ] invalid currency code: expected a 3-letter ISO 4217 code, got `' + code + '`');
7967
+ }
7968
+ return code.toUpperCase();
7969
+ };
7970
+
7971
+ /**
7972
+ * Asserts a value is a money amount produced by this module.
7973
+ *
7974
+ * @inner
7975
+ * @param {object} a
7976
+ * @returns {object} `a`
7977
+ * @throws {TypeError} when the shape is not a money amount
7978
+ * */
7979
+ var assertAmount = function(a) {
7980
+ if ( !a || typeof(a) != 'object' || typeof(a.minor) != 'bigint' || typeof(a.currency) != 'string' ) {
7981
+ throw new TypeError('[ money ] not a money amount: expected the { currency, exponent, minor } shape from parse()/fromMinor()');
7982
+ }
7983
+ return a;
7984
+ };
7985
+
7986
+ /**
7987
+ * Asserts two amounts share one currency.
7988
+ *
7989
+ * @inner
7990
+ * @param {object} a
7991
+ * @param {object} b
7992
+ * @throws {TypeError} on a currency mismatch — mixed-currency arithmetic
7993
+ * is the corruption this module exists to prevent, so it always throws
7994
+ * */
7995
+ var assertSameCurrency = function(a, b) {
7996
+ assertAmount(a); assertAmount(b);
7997
+ if (a.currency !== b.currency) {
7998
+ throw new TypeError('[ money ] currency mismatch: `' + a.currency + '` vs `' + b.currency + '` — convert explicitly before operating');
7999
+ }
8000
+ };
8001
+
8002
+ /**
8003
+ * Returns the minor-unit exponent for a currency.
8004
+ * Unlisted well-formed codes resolve to the ISO default of 2.
8005
+ *
8006
+ * @param {string} code - ISO 4217 alphabetic code, any case
8007
+ * @returns {number} 0, 2, 3 or 4
8008
+ * @throws {TypeError} when `code` is not a 3-letter string
8009
+ *
8010
+ * @example
8011
+ * money.exponent('EUR'); // 2
8012
+ * money.exponent('jpy'); // 0
8013
+ * money.exponent('BHD'); // 3
8014
+ * */
8015
+ self.exponent = function(code) {
8016
+ code = normalizeCode(code);
8017
+ return ( typeof(EXPONENT_EXCEPTIONS[code]) != 'undefined' ) ? EXPONENT_EXCEPTIONS[code] : 2;
8018
+ };
8019
+
8020
+ /**
8021
+ * Parses a canonical wire string into an exact amount.
8022
+ *
8023
+ * The input is the decimal string an API carries on the wire (`"19.99"`,
8024
+ * `"-0.05"`, `"1234"`). Excess fractional digits are an ERROR, not a
8025
+ * rounding opportunity: `parse('1.005', 'EUR')` throws.
8026
+ *
8027
+ * @param {string} value - decimal string; sign + digits + optional fraction
8028
+ * @param {string} code - ISO 4217 alphabetic code, any case
8029
+ * @returns {{currency: string, exponent: number, minor: bigint}}
8030
+ * @throws {TypeError} on a non-string / malformed value, a malformed
8031
+ * code, or more fractional digits than the currency's exponent
8032
+ *
8033
+ * @example
8034
+ * money.parse('19.99', 'EUR'); // { currency:'EUR', exponent:2, minor: 1999n }
8035
+ * money.parse('19.9', 'EUR'); // minor 1990n — short fractions scale up
8036
+ * money.parse('100', 'JPY'); // { currency:'JPY', exponent:0, minor: 100n }
8037
+ * money.parse('1.005', 'EUR'); // throws — precision beyond the exponent
8038
+ * money.parse(19.99, 'EUR'); // throws — floats are the hazard, not an input
8039
+ * */
8040
+ self.parse = function(value, code) {
8041
+ code = normalizeCode(code);
8042
+ if ( typeof(value) != 'string' ) {
8043
+ throw new TypeError('[ money ] parse() takes the WIRE STRING, not a number — a float has already lost exactness (`' + value + '`)');
8044
+ }
8045
+ var m = RE_AMOUNT.exec(value.trim());
8046
+ if (!m) {
8047
+ throw new TypeError('[ money ] malformed amount `' + value + '`: expected digits with an optional sign and `.` fraction');
8048
+ }
8049
+ var exp = self.exponent(code);
8050
+ var fraction = m[3] || '';
8051
+ if (fraction.length > exp) {
8052
+ throw new TypeError('[ money ] `' + value + '` carries ' + fraction.length + ' fractional digit(s) but ' + code + ' has ' + exp + ' — rounding is the application\'s decision, apply it before parse()');
8053
+ }
8054
+ while (fraction.length < exp) {
8055
+ fraction += '0';
8056
+ }
8057
+ var minor = BigInt(m[2] + fraction);
8058
+ if (m[1] === '-') {
8059
+ minor = -minor;
8060
+ }
8061
+ return { currency: code, exponent: exp, minor: minor };
8062
+ };
8063
+
8064
+ /**
8065
+ * Builds an amount directly from a minor-unit count.
8066
+ *
8067
+ * @param {string|number|bigint} minor - integer minor units (`1999`, `'1999'`)
8068
+ * @param {string} code - ISO 4217 alphabetic code, any case
8069
+ * @returns {{currency: string, exponent: number, minor: bigint}}
8070
+ * @throws {TypeError} on a malformed code, a non-integer number, or a
8071
+ * string that is not a plain signed integer
8072
+ *
8073
+ * @example
8074
+ * money.fromMinor(1999, 'EUR'); // 19.99 EUR
8075
+ * money.fromMinor('250', 'JPY'); // 250 JPY
8076
+ * */
8077
+ self.fromMinor = function(minor, code) {
8078
+ code = normalizeCode(code);
8079
+ var big;
8080
+ if ( typeof(minor) == 'bigint' ) {
8081
+ big = minor;
8082
+ } else if ( typeof(minor) == 'number' ) {
8083
+ if ( !isFinite(minor) || Math.floor(minor) !== minor ) {
8084
+ throw new TypeError('[ money ] fromMinor() takes an INTEGER minor-unit count, got `' + minor + '`');
8085
+ }
8086
+ big = BigInt(minor);
8087
+ } else if ( typeof(minor) == 'string' && /^-?\d+$/.test(minor.trim()) ) {
8088
+ big = BigInt(minor.trim());
8089
+ } else {
8090
+ throw new TypeError('[ money ] fromMinor() takes an integer as bigint, number or string, got `' + minor + '`');
8091
+ }
8092
+ return { currency: code, exponent: self.exponent(code), minor: big };
8093
+ };
8094
+
8095
+ /**
8096
+ * Exact addition. Same-currency only.
8097
+ *
8098
+ * @param {object} a - amount from parse()/fromMinor()
8099
+ * @param {object} b - amount from parse()/fromMinor()
8100
+ * @returns {{currency: string, exponent: number, minor: bigint}}
8101
+ * @throws {TypeError} on a currency mismatch or a non-amount
8102
+ *
8103
+ * @example
8104
+ * money.format(money.add(money.parse('0.10','EUR'), money.parse('0.20','EUR'))); // '0.30'
8105
+ * */
8106
+ self.add = function(a, b) {
8107
+ assertSameCurrency(a, b);
8108
+ return { currency: a.currency, exponent: a.exponent, minor: a.minor + b.minor };
8109
+ };
8110
+
8111
+ /**
8112
+ * Exact subtraction (`a - b`). Same-currency only.
8113
+ *
8114
+ * @param {object} a - amount from parse()/fromMinor()
8115
+ * @param {object} b - amount from parse()/fromMinor()
8116
+ * @returns {{currency: string, exponent: number, minor: bigint}}
8117
+ * @throws {TypeError} on a currency mismatch or a non-amount
8118
+ * */
8119
+ self.subtract = function(a, b) {
8120
+ assertSameCurrency(a, b);
8121
+ return { currency: a.currency, exponent: a.exponent, minor: a.minor - b.minor };
8122
+ };
8123
+
8124
+ /**
8125
+ * Exact multiplication by an INTEGER factor (a quantity, a line count).
8126
+ * A fractional factor (a rate, a percentage) needs a rounding decision
8127
+ * the application owns — apply it on minor units, then fromMinor().
8128
+ *
8129
+ * @param {object} a - amount from parse()/fromMinor()
8130
+ * @param {string|number|bigint} factor - integer multiplier
8131
+ * @returns {{currency: string, exponent: number, minor: bigint}}
8132
+ * @throws {TypeError} on a non-amount or a non-integer factor
8133
+ *
8134
+ * @example
8135
+ * money.format(money.multiply(money.parse('19.99','EUR'), 3)); // '59.97'
8136
+ * */
8137
+ self.multiply = function(a, factor) {
8138
+ assertAmount(a);
8139
+ var big;
8140
+ if ( typeof(factor) == 'bigint' ) {
8141
+ big = factor;
8142
+ } else if ( typeof(factor) == 'number' && isFinite(factor) && Math.floor(factor) === factor ) {
8143
+ big = BigInt(factor);
8144
+ } else if ( typeof(factor) == 'string' && /^-?\d+$/.test(factor.trim()) ) {
8145
+ big = BigInt(factor.trim());
8146
+ } else {
8147
+ throw new TypeError('[ money ] multiply() takes an INTEGER factor, got `' + factor + '` — a fractional rate needs the application\'s own rounding, on minor units');
8148
+ }
8149
+ return { currency: a.currency, exponent: a.exponent, minor: a.minor * big };
8150
+ };
8151
+
8152
+ /**
8153
+ * Three-way comparison. Same-currency only.
8154
+ *
8155
+ * @param {object} a - amount from parse()/fromMinor()
8156
+ * @param {object} b - amount from parse()/fromMinor()
8157
+ * @returns {number} -1 when a < b, 0 when equal, 1 when a > b
8158
+ * @throws {TypeError} on a currency mismatch or a non-amount
8159
+ * */
8160
+ self.compare = function(a, b) {
8161
+ assertSameCurrency(a, b);
8162
+ if (a.minor < b.minor) { return -1; }
8163
+ if (a.minor > b.minor) { return 1; }
8164
+ return 0;
8165
+ };
8166
+
8167
+ /**
8168
+ * Renders the canonical wire string: sign, integer part, and EXACTLY the
8169
+ * currency's exponent in fractional digits (`'20.00'`, `'-0.05'`, `'150'`
8170
+ * for a 0-exponent currency). Locale display belongs to the i18n layer
8171
+ * (`Intl.NumberFormat`); this string is for wires, stores and logs.
8172
+ *
8173
+ * @param {object} a - amount from parse()/fromMinor()
8174
+ * @returns {string}
8175
+ * @throws {TypeError} on a non-amount
8176
+ *
8177
+ * @example
8178
+ * money.format(money.fromMinor(-5, 'EUR')); // '-0.05'
8179
+ * money.format(money.fromMinor(150, 'JPY')); // '150'
8180
+ * */
8181
+ self.format = function(a) {
8182
+ assertAmount(a);
8183
+ var neg = a.minor < BigInt(0);
8184
+ var s = (neg ? -a.minor : a.minor).toString();
8185
+ if (a.exponent === 0) {
8186
+ return (neg ? '-' : '') + s;
8187
+ }
8188
+ while (s.length <= a.exponent) {
8189
+ s = '0' + s;
8190
+ }
8191
+ var cut = s.length - a.exponent;
8192
+ return (neg ? '-' : '') + s.substring(0, cut) + '.' + s.substring(cut);
8193
+ };
8194
+
8195
+ /**
8196
+ * Returns the minor-unit count as a JSON-safe decimal string.
8197
+ *
8198
+ * @param {object} a - amount from parse()/fromMinor()
8199
+ * @returns {string} e.g. `'1999'`, `'-5'`
8200
+ * @throws {TypeError} on a non-amount
8201
+ * */
8202
+ self.toMinor = function(a) {
8203
+ assertAmount(a);
8204
+ return a.minor.toString();
8205
+ };
8206
+
8207
+ return self;
8208
+
8209
+ })();
8210
+
8211
+ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
8212
+ // Publish as node.js module
8213
+ module.exports = Money
8214
+ } else if ( typeof(define) === 'function' && define.amd) {
8215
+ // Publish as AMD module
8216
+ define('lib/money',[],function() { return Money })
8217
+ }
8218
+ ;
7676
8219
  function registerEvents(plugin, events) {
7677
8220
  if ( typeof(gina) == 'undefined' && typeof(window.gina) != 'undefined' ) {
7678
8221
  gina = window.gina;
@@ -9382,7 +9925,7 @@ if ( ( typeof(module) !== 'undefined' ) && module.exports ) {
9382
9925
  // Publish as AMD module
9383
9926
  define( 'helpers/dateFormat',[],function() { return DateFormatHelper })
9384
9927
  };
9385
- define('gina', [ 'require', 'lib/merge', 'lib/uuid', 'lib/routing', 'utils/events', 'helpers/prototypes', 'helpers/dateFormat' ], function (require) {
9928
+ define('gina', [ 'require', 'lib/merge', 'lib/uuid', 'lib/routing', 'lib/money', 'utils/events', 'helpers/prototypes', 'helpers/dateFormat' ], function (require) {
9386
9929
 
9387
9930
  /**
9388
9931
  * Imports & definitions
@@ -9391,6 +9934,7 @@ define('gina', [ 'require', 'lib/merge', 'lib/uuid', 'lib/routing', 'utils/event
9391
9934
  var merge = require('lib/merge');
9392
9935
  var uuid = require('lib/uuid');
9393
9936
  var routing = require('lib/routing');
9937
+ var money = require('lib/money'); // #FIN5 — exposed as gina.money below
9394
9938
  var dateFormat = require('helpers/dateFormat')();
9395
9939
  var prototypes = require('helpers/prototypes')({ dateFormat: dateFormat });
9396
9940
  if (!window.process ) {
@@ -9484,7 +10028,13 @@ define('gina', [ 'require', 'lib/merge', 'lib/uuid', 'lib/routing', 'utils/event
9484
10028
  'registeredEvents' : {},
9485
10029
  'events' : {},
9486
10030
 
9487
- 'setOptions' : setOptions
10031
+ 'setOptions' : setOptions,
10032
+ // #FIN5 — exact-money primitive (ISO 4217 minor-unit BigInt
10033
+ // arithmetic), the same module the server registers as lib.money:
10034
+ // gina.money.parse('19.99','EUR') / add / subtract / multiply /
10035
+ // compare / format / toMinor / fromMinor / exponent. Display
10036
+ // formatting stays with Intl.NumberFormat.
10037
+ 'money' : money
9488
10038
  };
9489
10039
 
9490
10040
  // iframe case