gina 0.5.12 → 0.5.13

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 (505) hide show
  1. package/CHANGELOG.md +5 -1
  2. package/README.md +4 -0
  3. package/ROADMAP.md +1 -0
  4. package/framework/v0.5.13/VERSION +1 -0
  5. package/framework/{v0.5.12 → v0.5.13}/lib/i18n/src/main.js +103 -0
  6. package/framework/{v0.5.12 → v0.5.13}/package.json +1 -1
  7. package/gna.js +4 -4
  8. package/llms.txt +1 -1
  9. package/package.json +3 -3
  10. package/framework/v0.5.12/VERSION +0 -1
  11. /package/framework/{v0.5.12 → v0.5.13}/AUTHORS +0 -0
  12. /package/framework/{v0.5.12 → v0.5.13}/LICENSE +0 -0
  13. /package/framework/{v0.5.12 → v0.5.13}/core/asset/html/nolayout.html +0 -0
  14. /package/framework/{v0.5.12 → v0.5.13}/core/asset/html/static.html +0 -0
  15. /package/framework/{v0.5.12 → v0.5.13}/core/asset/img/android-chrome-192x192.png +0 -0
  16. /package/framework/{v0.5.12 → v0.5.13}/core/asset/img/android-chrome-512x512.png +0 -0
  17. /package/framework/{v0.5.12 → v0.5.13}/core/asset/img/apple-touch-icon.png +0 -0
  18. /package/framework/{v0.5.12 → v0.5.13}/core/asset/img/favicon-16x16.png +0 -0
  19. /package/framework/{v0.5.12 → v0.5.13}/core/asset/img/favicon-32x32.png +0 -0
  20. /package/framework/{v0.5.12 → v0.5.13}/core/asset/img/favicon.ico +0 -0
  21. /package/framework/{v0.5.12 → v0.5.13}/core/asset/plugin/README.md +0 -0
  22. /package/framework/{v0.5.12 → v0.5.13}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  23. /package/framework/{v0.5.12 → v0.5.13}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  24. /package/framework/{v0.5.12 → v0.5.13}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  25. /package/framework/{v0.5.12 → v0.5.13}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  26. /package/framework/{v0.5.12 → v0.5.13}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  27. /package/framework/{v0.5.12 → v0.5.13}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  28. /package/framework/{v0.5.12 → v0.5.13}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
  29. /package/framework/{v0.5.12 → v0.5.13}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  30. /package/framework/{v0.5.12 → v0.5.13}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  31. /package/framework/{v0.5.12 → v0.5.13}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  32. /package/framework/{v0.5.12 → v0.5.13}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
  33. /package/framework/{v0.5.12 → v0.5.13}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
  34. /package/framework/{v0.5.12 → v0.5.13}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
  35. /package/framework/{v0.5.12 → v0.5.13}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  36. /package/framework/{v0.5.12 → v0.5.13}/core/asset/plugin/dist/vendor/gina/js/gina.js +0 -0
  37. /package/framework/{v0.5.12 → v0.5.13}/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -0
  38. /package/framework/{v0.5.12 → v0.5.13}/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  39. /package/framework/{v0.5.12 → v0.5.13}/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  40. /package/framework/{v0.5.12 → v0.5.13}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
  41. /package/framework/{v0.5.12 → v0.5.13}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  42. /package/framework/{v0.5.12 → v0.5.13}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  43. /package/framework/{v0.5.12 → v0.5.13}/core/config.js +0 -0
  44. /package/framework/{v0.5.12 → v0.5.13}/core/connectors/ai/index.js +0 -0
  45. /package/framework/{v0.5.12 → v0.5.13}/core/connectors/ai/lib/connector.js +0 -0
  46. /package/framework/{v0.5.12 → v0.5.13}/core/connectors/couchbase/index.js +0 -0
  47. /package/framework/{v0.5.12 → v0.5.13}/core/connectors/couchbase/lib/connector.js +0 -0
  48. /package/framework/{v0.5.12 → v0.5.13}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  49. /package/framework/{v0.5.12 → v0.5.13}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  50. /package/framework/{v0.5.12 → v0.5.13}/core/connectors/couchbase/lib/n1ql.js +0 -0
  51. /package/framework/{v0.5.12 → v0.5.13}/core/connectors/couchbase/lib/session-store.js +0 -0
  52. /package/framework/{v0.5.12 → v0.5.13}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  53. /package/framework/{v0.5.12 → v0.5.13}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  54. /package/framework/{v0.5.12 → v0.5.13}/core/connectors/mongodb/index.js +0 -0
  55. /package/framework/{v0.5.12 → v0.5.13}/core/connectors/mongodb/lib/connector.js +0 -0
  56. /package/framework/{v0.5.12 → v0.5.13}/core/connectors/mongodb/lib/job-store.js +0 -0
  57. /package/framework/{v0.5.12 → v0.5.13}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
  58. /package/framework/{v0.5.12 → v0.5.13}/core/connectors/mongodb/lib/session-store.js +0 -0
  59. /package/framework/{v0.5.12 → v0.5.13}/core/connectors/mysql/index.js +0 -0
  60. /package/framework/{v0.5.12 → v0.5.13}/core/connectors/mysql/lib/connector.js +0 -0
  61. /package/framework/{v0.5.12 → v0.5.13}/core/connectors/postgresql/index.js +0 -0
  62. /package/framework/{v0.5.12 → v0.5.13}/core/connectors/postgresql/lib/connector.js +0 -0
  63. /package/framework/{v0.5.12 → v0.5.13}/core/connectors/redis/index.js +0 -0
  64. /package/framework/{v0.5.12 → v0.5.13}/core/connectors/redis/lib/connector.js +0 -0
  65. /package/framework/{v0.5.12 → v0.5.13}/core/connectors/redis/lib/job-store.js +0 -0
  66. /package/framework/{v0.5.12 → v0.5.13}/core/connectors/redis/lib/session-store.js +0 -0
  67. /package/framework/{v0.5.12 → v0.5.13}/core/connectors/scylladb/index.js +0 -0
  68. /package/framework/{v0.5.12 → v0.5.13}/core/connectors/scylladb/lib/connector.js +0 -0
  69. /package/framework/{v0.5.12 → v0.5.13}/core/connectors/scylladb/lib/session-store.js +0 -0
  70. /package/framework/{v0.5.12 → v0.5.13}/core/connectors/sql-parser.js +0 -0
  71. /package/framework/{v0.5.12 → v0.5.13}/core/connectors/sqlite/index.js +0 -0
  72. /package/framework/{v0.5.12 → v0.5.13}/core/connectors/sqlite/lib/connector.js +0 -0
  73. /package/framework/{v0.5.12 → v0.5.13}/core/connectors/sqlite/lib/job-store.js +0 -0
  74. /package/framework/{v0.5.12 → v0.5.13}/core/connectors/sqlite/lib/session-store.js +0 -0
  75. /package/framework/{v0.5.12 → v0.5.13}/core/content.encoding +0 -0
  76. /package/framework/{v0.5.12 → v0.5.13}/core/controller/controller.framework.js +0 -0
  77. /package/framework/{v0.5.12 → v0.5.13}/core/controller/controller.js +0 -0
  78. /package/framework/{v0.5.12 → v0.5.13}/core/controller/controller.render-json.js +0 -0
  79. /package/framework/{v0.5.12 → v0.5.13}/core/controller/controller.render-nunjucks-async.js +0 -0
  80. /package/framework/{v0.5.12 → v0.5.13}/core/controller/controller.render-nunjucks.js +0 -0
  81. /package/framework/{v0.5.12 → v0.5.13}/core/controller/controller.render-stream.js +0 -0
  82. /package/framework/{v0.5.12 → v0.5.13}/core/controller/controller.render-swig-async.js +0 -0
  83. /package/framework/{v0.5.12 → v0.5.13}/core/controller/controller.render-swig.js +0 -0
  84. /package/framework/{v0.5.12 → v0.5.13}/core/controller/controller.render-v1.js +0 -0
  85. /package/framework/{v0.5.12 → v0.5.13}/core/controller/index.js +0 -0
  86. /package/framework/{v0.5.12 → v0.5.13}/core/controller/inspector-window-emit.js +0 -0
  87. /package/framework/{v0.5.12 → v0.5.13}/core/deps/busboy-1.6.0/LICENSE +0 -0
  88. /package/framework/{v0.5.12 → v0.5.13}/core/deps/busboy-1.6.0/README.md +0 -0
  89. /package/framework/{v0.5.12 → v0.5.13}/core/deps/busboy-1.6.0/lib/index.js +0 -0
  90. /package/framework/{v0.5.12 → v0.5.13}/core/deps/busboy-1.6.0/lib/types/multipart.js +0 -0
  91. /package/framework/{v0.5.12 → v0.5.13}/core/deps/busboy-1.6.0/lib/types/urlencoded.js +0 -0
  92. /package/framework/{v0.5.12 → v0.5.13}/core/deps/busboy-1.6.0/lib/utils.js +0 -0
  93. /package/framework/{v0.5.12 → v0.5.13}/core/deps/busboy-1.6.0/package.json +0 -0
  94. /package/framework/{v0.5.12 → v0.5.13}/core/deps/streamsearch-1.1.0/LICENSE +0 -0
  95. /package/framework/{v0.5.12 → v0.5.13}/core/deps/streamsearch-1.1.0/lib/sbmh.js +0 -0
  96. /package/framework/{v0.5.12 → v0.5.13}/core/deps/streamsearch-1.1.0/package.json +0 -0
  97. /package/framework/{v0.5.12 → v0.5.13}/core/dev/index.js +0 -0
  98. /package/framework/{v0.5.12 → v0.5.13}/core/dev/lib/class.js +0 -0
  99. /package/framework/{v0.5.12 → v0.5.13}/core/dev/lib/factory.js +0 -0
  100. /package/framework/{v0.5.12 → v0.5.13}/core/dev/lib/tools.js +0 -0
  101. /package/framework/{v0.5.12 → v0.5.13}/core/gna.js +0 -0
  102. /package/framework/{v0.5.12 → v0.5.13}/core/locales/README.md +0 -0
  103. /package/framework/{v0.5.12 → v0.5.13}/core/locales/currency.json +0 -0
  104. /package/framework/{v0.5.12 → v0.5.13}/core/locales/dist/language/en.json +0 -0
  105. /package/framework/{v0.5.12 → v0.5.13}/core/locales/dist/language/fr.json +0 -0
  106. /package/framework/{v0.5.12 → v0.5.13}/core/locales/dist/region/en.json +0 -0
  107. /package/framework/{v0.5.12 → v0.5.13}/core/locales/dist/region/fr.json +0 -0
  108. /package/framework/{v0.5.12 → v0.5.13}/core/locales/index.js +0 -0
  109. /package/framework/{v0.5.12 → v0.5.13}/core/mime.types +0 -0
  110. /package/framework/{v0.5.12 → v0.5.13}/core/model/entity.js +0 -0
  111. /package/framework/{v0.5.12 → v0.5.13}/core/model/index.js +0 -0
  112. /package/framework/{v0.5.12 → v0.5.13}/core/model/template/entityFactory.js +0 -0
  113. /package/framework/{v0.5.12 → v0.5.13}/core/model/template/index.js +0 -0
  114. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/README.md +0 -0
  115. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/index.js +0 -0
  116. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/csrf/README.md +0 -0
  117. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/csrf/package.json +0 -0
  118. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/csrf/src/main.js +0 -0
  119. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/README.md +0 -0
  120. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/coep/README.md +0 -0
  121. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/coep/package.json +0 -0
  122. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
  123. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/coop/README.md +0 -0
  124. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/coop/package.json +0 -0
  125. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
  126. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/corp/README.md +0 -0
  127. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/corp/package.json +0 -0
  128. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
  129. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/csp/README.md +0 -0
  130. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/csp/package.json +0 -0
  131. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
  132. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
  133. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
  134. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
  135. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/hsts/README.md +0 -0
  136. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/hsts/package.json +0 -0
  137. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
  138. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
  139. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
  140. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
  141. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/package.json +0 -0
  142. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
  143. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
  144. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
  145. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/src/main.js +0 -0
  146. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
  147. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
  148. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
  149. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
  150. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
  151. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
  152. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
  153. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
  154. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
  155. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
  156. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
  157. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
  158. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
  159. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
  160. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
  161. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
  162. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
  163. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
  164. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/session/README.md +0 -0
  165. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/session/package.json +0 -0
  166. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/session/src/main.js +0 -0
  167. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/storage/README.md +0 -0
  168. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/storage/build.json +0 -0
  169. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/storage/package.json +0 -0
  170. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/storage/src/main.js +0 -0
  171. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/validator/README.md +0 -0
  172. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/validator/build.json +0 -0
  173. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/validator/package.json +0 -0
  174. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/validator/src/form-validator.js +0 -0
  175. /package/framework/{v0.5.12 → v0.5.13}/core/plugins/lib/validator/src/main.js +0 -0
  176. /package/framework/{v0.5.12 → v0.5.13}/core/router.js +0 -0
  177. /package/framework/{v0.5.12 → v0.5.13}/core/server.express.js +0 -0
  178. /package/framework/{v0.5.12 → v0.5.13}/core/server.isaac.js +0 -0
  179. /package/framework/{v0.5.12 → v0.5.13}/core/server.js +0 -0
  180. /package/framework/{v0.5.12 → v0.5.13}/core/status.codes +0 -0
  181. /package/framework/{v0.5.12 → v0.5.13}/core/template/_gitignore +0 -0
  182. /package/framework/{v0.5.12 → v0.5.13}/core/template/boilerplate/bundle/config/app.json +0 -0
  183. /package/framework/{v0.5.12 → v0.5.13}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  184. /package/framework/{v0.5.12 → v0.5.13}/core/template/boilerplate/bundle/config/routing.json +0 -0
  185. /package/framework/{v0.5.12 → v0.5.13}/core/template/boilerplate/bundle/config/settings.json +0 -0
  186. /package/framework/{v0.5.12 → v0.5.13}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  187. /package/framework/{v0.5.12 → v0.5.13}/core/template/boilerplate/bundle/config/templates.json +0 -0
  188. /package/framework/{v0.5.12 → v0.5.13}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  189. /package/framework/{v0.5.12 → v0.5.13}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  190. /package/framework/{v0.5.12 → v0.5.13}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  191. /package/framework/{v0.5.12 → v0.5.13}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  192. /package/framework/{v0.5.12 → v0.5.13}/core/template/boilerplate/bundle/index.js +0 -0
  193. /package/framework/{v0.5.12 → v0.5.13}/core/template/boilerplate/bundle/locales/en.json +0 -0
  194. /package/framework/{v0.5.12 → v0.5.13}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  195. /package/framework/{v0.5.12 → v0.5.13}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  196. /package/framework/{v0.5.12 → v0.5.13}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  197. /package/framework/{v0.5.12 → v0.5.13}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  198. /package/framework/{v0.5.12 → v0.5.13}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  199. /package/framework/{v0.5.12 → v0.5.13}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  200. /package/framework/{v0.5.12 → v0.5.13}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
  201. /package/framework/{v0.5.12 → v0.5.13}/core/template/boilerplate/bundle_public/readme.md +0 -0
  202. /package/framework/{v0.5.12 → v0.5.13}/core/template/boilerplate/bundle_public/sw.js +0 -0
  203. /package/framework/{v0.5.12 → v0.5.13}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  204. /package/framework/{v0.5.12 → v0.5.13}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  205. /package/framework/{v0.5.12 → v0.5.13}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  206. /package/framework/{v0.5.12 → v0.5.13}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  207. /package/framework/{v0.5.12 → v0.5.13}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  208. /package/framework/{v0.5.12 → v0.5.13}/core/template/command/gina.bat.tpl +0 -0
  209. /package/framework/{v0.5.12 → v0.5.13}/core/template/command/gina.tpl +0 -0
  210. /package/framework/{v0.5.12 → v0.5.13}/core/template/conf/env.json +0 -0
  211. /package/framework/{v0.5.12 → v0.5.13}/core/template/conf/manifest.json +0 -0
  212. /package/framework/{v0.5.12 → v0.5.13}/core/template/conf/package.json +0 -0
  213. /package/framework/{v0.5.12 → v0.5.13}/core/template/conf/settings.json +0 -0
  214. /package/framework/{v0.5.12 → v0.5.13}/core/template/conf/statics.json +0 -0
  215. /package/framework/{v0.5.12 → v0.5.13}/core/template/conf/templates.json +0 -0
  216. /package/framework/{v0.5.12 → v0.5.13}/core/template/error/client/json/401.json +0 -0
  217. /package/framework/{v0.5.12 → v0.5.13}/core/template/error/client/json/403.json +0 -0
  218. /package/framework/{v0.5.12 → v0.5.13}/core/template/error/client/json/404.json +0 -0
  219. /package/framework/{v0.5.12 → v0.5.13}/core/template/error/server/html/50x.html +0 -0
  220. /package/framework/{v0.5.12 → v0.5.13}/core/template/error/server/json/500.json +0 -0
  221. /package/framework/{v0.5.12 → v0.5.13}/core/template/error/server/json/503.json +0 -0
  222. /package/framework/{v0.5.12 → v0.5.13}/core/template/extensions/logger/config.json +0 -0
  223. /package/framework/{v0.5.12 → v0.5.13}/helpers/console.js +0 -0
  224. /package/framework/{v0.5.12 → v0.5.13}/helpers/context.js +0 -0
  225. /package/framework/{v0.5.12 → v0.5.13}/helpers/data/LICENSE +0 -0
  226. /package/framework/{v0.5.12 → v0.5.13}/helpers/data/README.md +0 -0
  227. /package/framework/{v0.5.12 → v0.5.13}/helpers/data/package.json +0 -0
  228. /package/framework/{v0.5.12 → v0.5.13}/helpers/data/src/main.js +0 -0
  229. /package/framework/{v0.5.12 → v0.5.13}/helpers/dateFormat.js +0 -0
  230. /package/framework/{v0.5.12 → v0.5.13}/helpers/index.js +0 -0
  231. /package/framework/{v0.5.12 → v0.5.13}/helpers/json/LICENSE +0 -0
  232. /package/framework/{v0.5.12 → v0.5.13}/helpers/json/README.md +0 -0
  233. /package/framework/{v0.5.12 → v0.5.13}/helpers/json/package.json +0 -0
  234. /package/framework/{v0.5.12 → v0.5.13}/helpers/json/src/main.js +0 -0
  235. /package/framework/{v0.5.12 → v0.5.13}/helpers/path.js +0 -0
  236. /package/framework/{v0.5.12 → v0.5.13}/helpers/plugins/README.md +0 -0
  237. /package/framework/{v0.5.12 → v0.5.13}/helpers/plugins/package.json +0 -0
  238. /package/framework/{v0.5.12 → v0.5.13}/helpers/plugins/src/api-error.js +0 -0
  239. /package/framework/{v0.5.12 → v0.5.13}/helpers/plugins/src/main.js +0 -0
  240. /package/framework/{v0.5.12 → v0.5.13}/helpers/prototypes.js +0 -0
  241. /package/framework/{v0.5.12 → v0.5.13}/helpers/task.js +0 -0
  242. /package/framework/{v0.5.12 → v0.5.13}/helpers/text.js +0 -0
  243. /package/framework/{v0.5.12 → v0.5.13}/lib/admin/package.json +0 -0
  244. /package/framework/{v0.5.12 → v0.5.13}/lib/admin/src/main.js +0 -0
  245. /package/framework/{v0.5.12 → v0.5.13}/lib/archiver/README.md +0 -0
  246. /package/framework/{v0.5.12 → v0.5.13}/lib/archiver/build.json +0 -0
  247. /package/framework/{v0.5.12 → v0.5.13}/lib/archiver/package.json +0 -0
  248. /package/framework/{v0.5.12 → v0.5.13}/lib/archiver/src/dep/jszip.min.js +0 -0
  249. /package/framework/{v0.5.12 → v0.5.13}/lib/archiver/src/main.js +0 -0
  250. /package/framework/{v0.5.12 → v0.5.13}/lib/async/package.json +0 -0
  251. /package/framework/{v0.5.12 → v0.5.13}/lib/async/src/main.js +0 -0
  252. /package/framework/{v0.5.12 → v0.5.13}/lib/cache/README.md +0 -0
  253. /package/framework/{v0.5.12 → v0.5.13}/lib/cache/build.json +0 -0
  254. /package/framework/{v0.5.12 → v0.5.13}/lib/cache/package.json +0 -0
  255. /package/framework/{v0.5.12 → v0.5.13}/lib/cache/src/main.js +0 -0
  256. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/aliases.json +0 -0
  257. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/bundle/add.js +0 -0
  258. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/bundle/arguments.json +0 -0
  259. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/bundle/build.js +0 -0
  260. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/bundle/copy.js +0 -0
  261. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/bundle/cp.js +0 -0
  262. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/bundle/help.js +0 -0
  263. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/bundle/help.txt +0 -0
  264. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
  265. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/bundle/list.js +0 -0
  266. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/bundle/man.js +0 -0
  267. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/bundle/mcp-start.js +0 -0
  268. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/bundle/mcp.js +0 -0
  269. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/bundle/oas.js +0 -0
  270. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/bundle/openapi.js +0 -0
  271. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/bundle/remove.js +0 -0
  272. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/bundle/rename.js +0 -0
  273. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/bundle/restart.js +0 -0
  274. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/bundle/rm.js +0 -0
  275. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/bundle/start.js +0 -0
  276. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/bundle/status.js +0 -0
  277. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/bundle/stop.js +0 -0
  278. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/cache/stats.js +0 -0
  279. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/connector/add.js +0 -0
  280. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/connector/arguments.json +0 -0
  281. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/connector/help.js +0 -0
  282. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/connector/help.txt +0 -0
  283. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/connector/infer.js +0 -0
  284. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/connector/list.js +0 -0
  285. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/connector/migrate.js +0 -0
  286. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/connector/models.js +0 -0
  287. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/connector/remove.js +0 -0
  288. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/connector/rm.js +0 -0
  289. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/connector/test.js +0 -0
  290. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/env/add.js +0 -0
  291. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/env/get.js +0 -0
  292. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/env/help.js +0 -0
  293. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/env/help.txt +0 -0
  294. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/env/link-dev.js +0 -0
  295. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/env/list.js +0 -0
  296. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/env/remove.js +0 -0
  297. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/env/rm.js +0 -0
  298. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/env/set.js +0 -0
  299. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/env/unset.js +0 -0
  300. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/env/use.js +0 -0
  301. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/framework/add.js +0 -0
  302. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/framework/arguments.json +0 -0
  303. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/framework/build.js +0 -0
  304. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/framework/dot.js +0 -0
  305. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/framework/get.js +0 -0
  306. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/framework/help.js +0 -0
  307. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/framework/help.txt +0 -0
  308. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/framework/init.js +0 -0
  309. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/framework/link-node-modules.js +0 -0
  310. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/framework/link.js +0 -0
  311. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/framework/list.js +0 -0
  312. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/framework/man.js +0 -0
  313. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/framework/msg.json +0 -0
  314. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/framework/open.js +0 -0
  315. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/framework/remove.js +0 -0
  316. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/framework/reset.js +0 -0
  317. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/framework/restart.js +0 -0
  318. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/framework/set.js +0 -0
  319. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/framework/start.js +0 -0
  320. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/framework/status.js +0 -0
  321. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/framework/stop.js +0 -0
  322. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/framework/tail.js +0 -0
  323. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/framework/update.js +0 -0
  324. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/framework/version.js +0 -0
  325. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/gina-dev.1.md +0 -0
  326. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/gina-framework.1.md +0 -0
  327. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/gina.1.md +0 -0
  328. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/helper.js +0 -0
  329. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/i18n/add.js +0 -0
  330. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/i18n/arguments.json +0 -0
  331. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/i18n/export.js +0 -0
  332. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/i18n/help.js +0 -0
  333. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/i18n/help.txt +0 -0
  334. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/i18n/import.js +0 -0
  335. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/i18n/scan.js +0 -0
  336. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/image/arguments.json +0 -0
  337. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/image/build.js +0 -0
  338. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/image/help.js +0 -0
  339. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/image/help.txt +0 -0
  340. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/image/man.js +0 -0
  341. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/index.js +0 -0
  342. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/inspector/help.js +0 -0
  343. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/inspector/help.txt +0 -0
  344. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/inspector/open.js +0 -0
  345. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/man-render.js +0 -0
  346. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/minion/arguments.json +0 -0
  347. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/minion/help.js +0 -0
  348. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/minion/help.txt +0 -0
  349. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/minion/kill.js +0 -0
  350. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/minion/list.js +0 -0
  351. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/msg.json +0 -0
  352. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/port/help.js +0 -0
  353. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/port/help.txt +0 -0
  354. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/port/inc/scan.js +0 -0
  355. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/port/list.js +0 -0
  356. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/port/reset.js +0 -0
  357. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/port/set.js +0 -0
  358. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/project/add.js +0 -0
  359. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/project/arguments.json +0 -0
  360. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/project/backup.js +0 -0
  361. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/project/build.js +0 -0
  362. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/project/help.js +0 -0
  363. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/project/help.txt +0 -0
  364. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/project/import.js +0 -0
  365. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/project/list.js +0 -0
  366. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/project/man.js +0 -0
  367. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/project/move.js +0 -0
  368. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/project/remove.js +0 -0
  369. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/project/rename.js +0 -0
  370. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/project/restart.js +0 -0
  371. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/project/restore.js +0 -0
  372. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/project/rm.js +0 -0
  373. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/project/start.js +0 -0
  374. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/project/status.js +0 -0
  375. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/project/stop.js +0 -0
  376. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/protocol/arguments.json +0 -0
  377. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/protocol/help.js +0 -0
  378. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/protocol/help.txt +0 -0
  379. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/protocol/list.js +0 -0
  380. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/protocol/remove.js +0 -0
  381. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/protocol/set.js +0 -0
  382. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/scope/add.js +0 -0
  383. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/scope/help.js +0 -0
  384. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/scope/help.txt +0 -0
  385. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/scope/link-local.js +0 -0
  386. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/scope/link-production.js +0 -0
  387. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/scope/list.js +0 -0
  388. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/scope/remove.js +0 -0
  389. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/scope/rm.js +0 -0
  390. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/scope/use.js +0 -0
  391. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/secrets/arguments.json +0 -0
  392. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/secrets/check.js +0 -0
  393. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/secrets/help.js +0 -0
  394. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/secrets/help.txt +0 -0
  395. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/secrets/scan.js +0 -0
  396. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/service/help.js +0 -0
  397. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/service/help.txt +0 -0
  398. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/service/list.js +0 -0
  399. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/service/man.js +0 -0
  400. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/service/start.js +0 -0
  401. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd/view/add.js +0 -0
  402. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd-status-format/package.json +0 -0
  403. /package/framework/{v0.5.12 → v0.5.13}/lib/cmd-status-format/src/main.js +0 -0
  404. /package/framework/{v0.5.12 → v0.5.13}/lib/collection/README.md +0 -0
  405. /package/framework/{v0.5.12 → v0.5.13}/lib/collection/build.json +0 -0
  406. /package/framework/{v0.5.12 → v0.5.13}/lib/collection/package.json +0 -0
  407. /package/framework/{v0.5.12 → v0.5.13}/lib/collection/src/main.js +0 -0
  408. /package/framework/{v0.5.12 → v0.5.13}/lib/config.js +0 -0
  409. /package/framework/{v0.5.12 → v0.5.13}/lib/connector-config/package.json +0 -0
  410. /package/framework/{v0.5.12 → v0.5.13}/lib/connector-config/src/main.js +0 -0
  411. /package/framework/{v0.5.12 → v0.5.13}/lib/connector-registry/package.json +0 -0
  412. /package/framework/{v0.5.12 → v0.5.13}/lib/connector-registry/src/main.js +0 -0
  413. /package/framework/{v0.5.12 → v0.5.13}/lib/cron/README.md +0 -0
  414. /package/framework/{v0.5.12 → v0.5.13}/lib/cron/package.json +0 -0
  415. /package/framework/{v0.5.12 → v0.5.13}/lib/cron/src/main.js +0 -0
  416. /package/framework/{v0.5.12 → v0.5.13}/lib/domain/LICENSE +0 -0
  417. /package/framework/{v0.5.12 → v0.5.13}/lib/domain/README.md +0 -0
  418. /package/framework/{v0.5.12 → v0.5.13}/lib/domain/package.json +0 -0
  419. /package/framework/{v0.5.12 → v0.5.13}/lib/domain/src/main.js +0 -0
  420. /package/framework/{v0.5.12 → v0.5.13}/lib/generator/index.js +0 -0
  421. /package/framework/{v0.5.12 → v0.5.13}/lib/i18n/package.json +0 -0
  422. /package/framework/{v0.5.12 → v0.5.13}/lib/image-build/package.json +0 -0
  423. /package/framework/{v0.5.12 → v0.5.13}/lib/image-build/src/main.js +0 -0
  424. /package/framework/{v0.5.12 → v0.5.13}/lib/index.js +0 -0
  425. /package/framework/{v0.5.12 → v0.5.13}/lib/inherits/LICENSE +0 -0
  426. /package/framework/{v0.5.12 → v0.5.13}/lib/inherits/README.md +0 -0
  427. /package/framework/{v0.5.12 → v0.5.13}/lib/inherits/package.json +0 -0
  428. /package/framework/{v0.5.12 → v0.5.13}/lib/inherits/src/main.js +0 -0
  429. /package/framework/{v0.5.12 → v0.5.13}/lib/inspector-events/package.json +0 -0
  430. /package/framework/{v0.5.12 → v0.5.13}/lib/inspector-events/src/main.js +0 -0
  431. /package/framework/{v0.5.12 → v0.5.13}/lib/inspector-redact/package.json +0 -0
  432. /package/framework/{v0.5.12 → v0.5.13}/lib/inspector-redact/src/main.js +0 -0
  433. /package/framework/{v0.5.12 → v0.5.13}/lib/instrument/package.json +0 -0
  434. /package/framework/{v0.5.12 → v0.5.13}/lib/instrument/src/main.js +0 -0
  435. /package/framework/{v0.5.12 → v0.5.13}/lib/job/package.json +0 -0
  436. /package/framework/{v0.5.12 → v0.5.13}/lib/job/src/main.js +0 -0
  437. /package/framework/{v0.5.12 → v0.5.13}/lib/job-store.js +0 -0
  438. /package/framework/{v0.5.12 → v0.5.13}/lib/json-config-header/package.json +0 -0
  439. /package/framework/{v0.5.12 → v0.5.13}/lib/json-config-header/src/main.js +0 -0
  440. /package/framework/{v0.5.12 → v0.5.13}/lib/logger/README.md +0 -0
  441. /package/framework/{v0.5.12 → v0.5.13}/lib/logger/package.json +0 -0
  442. /package/framework/{v0.5.12 → v0.5.13}/lib/logger/src/containers/default/index.js +0 -0
  443. /package/framework/{v0.5.12 → v0.5.13}/lib/logger/src/containers/file/index.js +0 -0
  444. /package/framework/{v0.5.12 → v0.5.13}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  445. /package/framework/{v0.5.12 → v0.5.13}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  446. /package/framework/{v0.5.12 → v0.5.13}/lib/logger/src/containers/mq/index.js +0 -0
  447. /package/framework/{v0.5.12 → v0.5.13}/lib/logger/src/containers/mq/listener.js +0 -0
  448. /package/framework/{v0.5.12 → v0.5.13}/lib/logger/src/containers/mq/speaker.js +0 -0
  449. /package/framework/{v0.5.12 → v0.5.13}/lib/logger/src/helper.js +0 -0
  450. /package/framework/{v0.5.12 → v0.5.13}/lib/logger/src/main.js +0 -0
  451. /package/framework/{v0.5.12 → v0.5.13}/lib/math/index.js +0 -0
  452. /package/framework/{v0.5.12 → v0.5.13}/lib/mcp-dispatch/package.json +0 -0
  453. /package/framework/{v0.5.12 → v0.5.13}/lib/mcp-dispatch/src/main.js +0 -0
  454. /package/framework/{v0.5.12 → v0.5.13}/lib/mcp-http/package.json +0 -0
  455. /package/framework/{v0.5.12 → v0.5.13}/lib/mcp-http/src/main.js +0 -0
  456. /package/framework/{v0.5.12 → v0.5.13}/lib/mcp-server/package.json +0 -0
  457. /package/framework/{v0.5.12 → v0.5.13}/lib/mcp-server/src/main.js +0 -0
  458. /package/framework/{v0.5.12 → v0.5.13}/lib/merge/README.md +0 -0
  459. /package/framework/{v0.5.12 → v0.5.13}/lib/merge/package.json +0 -0
  460. /package/framework/{v0.5.12 → v0.5.13}/lib/merge/src/main.js +0 -0
  461. /package/framework/{v0.5.12 → v0.5.13}/lib/metrics/package.json +0 -0
  462. /package/framework/{v0.5.12 → v0.5.13}/lib/metrics/src/main.js +0 -0
  463. /package/framework/{v0.5.12 → v0.5.13}/lib/model.js +0 -0
  464. /package/framework/{v0.5.12 → v0.5.13}/lib/nunjucks-filters/README.md +0 -0
  465. /package/framework/{v0.5.12 → v0.5.13}/lib/nunjucks-filters/package.json +0 -0
  466. /package/framework/{v0.5.12 → v0.5.13}/lib/nunjucks-filters/src/main.js +0 -0
  467. /package/framework/{v0.5.12 → v0.5.13}/lib/nunjucks-resolver/package.json +0 -0
  468. /package/framework/{v0.5.12 → v0.5.13}/lib/nunjucks-resolver/src/main.js +0 -0
  469. /package/framework/{v0.5.12 → v0.5.13}/lib/proc.js +0 -0
  470. /package/framework/{v0.5.12 → v0.5.13}/lib/routing/README.md +0 -0
  471. /package/framework/{v0.5.12 → v0.5.13}/lib/routing/build.json +0 -0
  472. /package/framework/{v0.5.12 → v0.5.13}/lib/routing/package.json +0 -0
  473. /package/framework/{v0.5.12 → v0.5.13}/lib/routing/src/main.js +0 -0
  474. /package/framework/{v0.5.12 → v0.5.13}/lib/routing/src/radix.js +0 -0
  475. /package/framework/{v0.5.12 → v0.5.13}/lib/routing-introspect/package.json +0 -0
  476. /package/framework/{v0.5.12 → v0.5.13}/lib/routing-introspect/src/main.js +0 -0
  477. /package/framework/{v0.5.12 → v0.5.13}/lib/secrets/package.json +0 -0
  478. /package/framework/{v0.5.12 → v0.5.13}/lib/secrets/src/backends/env.js +0 -0
  479. /package/framework/{v0.5.12 → v0.5.13}/lib/secrets/src/main.js +0 -0
  480. /package/framework/{v0.5.12 → v0.5.13}/lib/session-store.js +0 -0
  481. /package/framework/{v0.5.12 → v0.5.13}/lib/shell.js +0 -0
  482. /package/framework/{v0.5.12 → v0.5.13}/lib/state.js +0 -0
  483. /package/framework/{v0.5.12 → v0.5.13}/lib/swig-filters/README.md +0 -0
  484. /package/framework/{v0.5.12 → v0.5.13}/lib/swig-filters/package.json +0 -0
  485. /package/framework/{v0.5.12 → v0.5.13}/lib/swig-filters/src/main.js +0 -0
  486. /package/framework/{v0.5.12 → v0.5.13}/lib/swig-resolver/package.json +0 -0
  487. /package/framework/{v0.5.12 → v0.5.13}/lib/swig-resolver/src/main.js +0 -0
  488. /package/framework/{v0.5.12 → v0.5.13}/lib/template-loaders/package.json +0 -0
  489. /package/framework/{v0.5.12 → v0.5.13}/lib/template-loaders/src/loaders/http.js +0 -0
  490. /package/framework/{v0.5.12 → v0.5.13}/lib/template-loaders/src/loaders/memory.js +0 -0
  491. /package/framework/{v0.5.12 → v0.5.13}/lib/template-loaders/src/main.js +0 -0
  492. /package/framework/{v0.5.12 → v0.5.13}/lib/url/README.md +0 -0
  493. /package/framework/{v0.5.12 → v0.5.13}/lib/url/index.js +0 -0
  494. /package/framework/{v0.5.12 → v0.5.13}/lib/url/routing.json +0 -0
  495. /package/framework/{v0.5.12 → v0.5.13}/lib/uuid/package.json +0 -0
  496. /package/framework/{v0.5.12 → v0.5.13}/lib/uuid/src/main.js +0 -0
  497. /package/framework/{v0.5.12 → v0.5.13}/lib/validator.js +0 -0
  498. /package/framework/{v0.5.12 → v0.5.13}/lib/watcher/package.json +0 -0
  499. /package/framework/{v0.5.12 → v0.5.13}/lib/watcher/src/main.js +0 -0
  500. /package/framework/{v0.5.12 → v0.5.13}/lib/ws-framing/package.json +0 -0
  501. /package/framework/{v0.5.12 → v0.5.13}/lib/ws-framing/src/main.js +0 -0
  502. /package/framework/{v0.5.12 → v0.5.13}/lib/ws-query/package.json +0 -0
  503. /package/framework/{v0.5.12 → v0.5.13}/lib/ws-query/src/main.js +0 -0
  504. /package/framework/{v0.5.12 → v0.5.13}/lib/ws-session/package.json +0 -0
  505. /package/framework/{v0.5.12 → v0.5.13}/lib/ws-session/src/main.js +0 -0
package/CHANGELOG.md CHANGED
@@ -6,9 +6,13 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
6
6
  and is generated by [Changie](https://github.com/miniscruff/changie).
7
7
 
8
8
 
9
+ ## 0.5.13 - 2026-07-08
10
+ ### Added
11
+ * Gina now warns at bundle boot when a `_validator` label in a locale catalog cannot be rendered. Built-in rule labels accept only the placeholders `%l` (field label), `%n` (field name) and `%s` (size); any other `%`-token — including a literal percent glued to letters, as in `20%sur le prix` — is substituted with the string "undefined" in the message shown to the user, and a non-string label makes the validator throw. The catalog still loads, and the warning names the offending rule and the catalog file, so a translation typo surfaces in the boot log instead of in production copy.
12
+
9
13
  ## 0.5.12 - 2026-07-08
10
14
  ### Added
11
- * FormValidator built-in rule error messages can now be localised per culture on the client. The negotiated request culture is exposed to the browser as `gina.config.culture`, and an app registers its own per-culture label overrides via `gina.validator.setErrorLabels(labels[, culture])`; English defaults fill any untranslated rule, with a culture -> base-language -> English fallback. This matches the framework per-bundle i18n model — custom rule messages were already localisable, and this closes the gap for the built-in labels without the framework shipping translations. Server-side rendering keeps the English defaults for now.
15
+ * FormValidator built-in rule error messages can now be localised per culture on the client. The negotiated request culture is exposed to the browser as `gina.config.culture`, and an app registers its own per-culture label overrides via `gina.validator.setErrorLabels(labels[, culture])`; English defaults fill any untranslated rule, with a culture -> base-language -> English fallback. This matches the framework per-bundle i18n model — custom rule messages were already localisable, and this closes the gap for the built-in labels without the framework shipping translations.
12
16
  * Per-bundle i18n message catalogs (`bundle/locales/<culture>.json`) are now loaded at bundle boot, activating URL-prefix, cookie, and Accept-Language culture negotiation and `t()` / the `t` template filter for any bundle that ships a `locales/` directory. Loading is opt-in and non-fatal: a bundle with no `locales/` directory is unaffected, and a malformed catalog is warned rather than blocking boot.
13
17
  * Forms declaring `data-gina-form-rule` with a matching rule set now validate in the browser automatically at page load — the client bundle boots the form validator itself, so no per-page boot code is required (the same batteries-included behaviour the built-in `data-gina-dialog` popin already has). Bundle code constructs the validator explicitly only to attach submit/lifecycle handlers; that still works and is idempotent with the auto-boot.
14
18
  * Server-side FormValidator built-in rule error labels now localise from the bundle catalog, mirroring the client side. Pass the negotiated culture to the validator and the built-in labels (isEmail, isRequired, and the rest) resolve from `bundle/locales/<culture>.json` under the `_validator.<rule>` namespace, with the English defaults filling any gaps and a culture -> base-language -> English fallback. A per-field or per-rule error message still takes precedence.
package/README.md CHANGED
@@ -42,6 +42,10 @@ open https://localhost:3100
42
42
 
43
43
  > **npm 12+** blocks install scripts by default, and gina's post-install bootstraps `~/.gina` and the framework dependencies. Install with `npm install -g gina@latest --allow-scripts=gina`, or allow it once for all global installs with `npm config set allow-scripts=gina --location=user`. (Not needed on npm ≤ 11.)
44
44
 
45
+ ## What's in 0.5.13
46
+
47
+ - **Added — unrenderable `_validator` catalog labels are caught at bundle boot.** Gina now warns when a `_validator` label in a locale catalog cannot be rendered. Built-in rule labels accept only the placeholders `%l` (field label), `%n` (field name) and `%s` (size); any other `%`-token — including a literal percent glued to letters, as in `20%sur le prix` — is substituted with the string `undefined` in the message shown to the user, and a non-string label makes the validator throw. The catalog still loads, and the warning names the offending rule and the catalog file, so a translation typo surfaces in the boot log instead of in production copy.
48
+
45
49
  ## What's in 0.5.12
46
50
 
47
51
  - **Added — FormValidator built-in rule labels localise from the i18n catalog, client and server.** The built-in rule messages (`isEmail`, `isRequired`, and the rest) now resolve per culture from `bundle/locales/<culture>.json` under the `_validator.<rule>` namespace, on both the server-rendered and client-side validation paths — English defaults fill any gaps, with a culture → base-language → English fallback. An app can still override per key with `gina.validator.setErrorLabels(labels[, culture])` (precedence: `setErrorLabels` > bundle catalog > English), and a per-field or per-rule message still wins over all of it.
package/ROADMAP.md CHANGED
@@ -37,6 +37,7 @@ This roadmap covers planned features, architectural improvements, new connectors
37
37
  | **Q3 2026** | `0.5.10` ✅ | **Fixed**: server-side cross-bundle `getRoute('route@bundle').toUrl()` now resolves the public host on reverse-proxied deployments — a controller building a cross-bundle URL server-side (e.g. via `self.redirect`) could emit an unreachable internal host with a doubled web root on a proxied request; it now resolves the public host for both the Isaac and Express engines. Completes the `0.5.9` client-side cross-bundle URL fix on the server side (#B67) |
38
38
  | **Q3 2026** | `0.5.11` ✅ | `image:build` — first-class OCI packaging: synthesizes a Containerfile + build context from the project's registered state (bundles, entry, ports, env model, node floor) and builds with buildah, natively on Linux or on a container host over ssh (env override → native → `container.host` settings fallback); dev/prod parity (a non-dev env ships the release tree built in-image), deterministic `EXPOSE`, `${secret:KEY}` placeholders never baked; `--emit` / `--format=json` / `--stream` NDJSON for CI and GUI consumers · **Fixed**: framework-emitted redirects on proxied requests carry no-store cache headers, so a browser never caches a proxy-context-derived redirect (the inter-bundle query 3xx forward path inherits the set; direct production redirects unchanged) |
39
39
  | **Q3 2026** | `0.5.12` ✅ | FormValidator built-in rule labels localise from the per-bundle i18n catalog (`_validator.<rule>`) on both the client and server, with a `gina.validator.setErrorLabels()` per-key override · per-bundle i18n catalogs activate URL-prefix / cookie / `Accept-Language` culture negotiation and `t()` at boot, and the negotiated culture now reaches every request (it previously resolved to `en`/empty #B83, and was dropped on warm/cached reloads #B84) · `data-gina-form-rule` forms auto-boot the client validator · **Fixed**: validator correctness (empty-required single message #B78, cross-field `is` empty operand #B82, submit trigger stays operable via `aria-disabled` #B76), popin / redirect robustness (#B80 / #B77 / #B75, static directory-to-index 301 outside dev), and CLI robustness (malformed `@<project>` rejected #B69, `GINA_HOMEDIR` re-export across child commands, `project:start` / `service:start` delegation, zero-bundle bulk commands, `framework:add` install hint #B81) |
40
+ | **Q3 2026** | `0.5.13` ✅ | Unrenderable `_validator` catalog labels are caught at bundle boot — an unknown `%`-token (anything but `%l` / `%n` / `%s`, including a literal percent glued to letters as in `20%sur le prix`), a non-string label, or a non-object `_validator` section now warns and names the offending rule and catalog file. Warn-only: the catalog still loads, so a translation typo surfaces in the boot log instead of in production copy |
40
41
  | **Q1 2027** | `0.5.x` | HTTP/2 priorities (blocked on Node scheduler hooks) · Beemaster admin + visual translation editor |
41
42
  | **Q3 2027** | `1.0.0` | First stable release — Windows alpha compatibility is a hard gate |
42
43
 
@@ -0,0 +1 @@
1
+ 0.5.13
@@ -69,6 +69,41 @@ var DEFAULT_FALLBACK_LANG = 'en';
69
69
  */
70
70
  var CULTURE_FILENAME = /^([a-z]{2,3})(_([A-Z]{2,3}))?\.json$/;
71
71
 
72
+ /**
73
+ * Reserved catalog namespace holding gina's built-in FormValidator rule labels.
74
+ * Both label overlays resolve this node — the server engine
75
+ * (`core/plugins/lib/validator/src/form-validator.js`) and the client whisper
76
+ * (`core/controller/controller.js`, which ships the subset to the browser).
77
+ *
78
+ * @memberof module:gina/lib/i18n
79
+ * @constant
80
+ * @type {string}
81
+ */
82
+ var VALIDATOR_NAMESPACE = '_validator';
83
+
84
+ /**
85
+ * Placeholder tokens the validator engine substitutes inside a rule label.
86
+ * MUST mirror `local.keys` in `core/plugins/lib/validator/src/form-validator.js`
87
+ * (`%l` -> label, `%n` -> name, `%s` -> size). Case-sensitive on purpose: the
88
+ * engine looks each matched token up verbatim, so `%L` resolves to `undefined`
89
+ * exactly as `%d` does.
90
+ *
91
+ * @memberof module:gina/lib/i18n
92
+ * @constant
93
+ * @type {string[]}
94
+ */
95
+ var VALIDATOR_LABEL_TOKENS = ['%l', '%n', '%s'];
96
+
97
+ /**
98
+ * Token shape the validator engine's `replace()` scans for. Kept identical to
99
+ * the engine's own regex so this lint sees exactly what will be substituted.
100
+ *
101
+ * @memberof module:gina/lib/i18n
102
+ * @constant
103
+ * @type {RegExp}
104
+ */
105
+ var VALIDATOR_TOKEN_RE = /%[a-z]+/gi;
106
+
72
107
  /**
73
108
  * Track bundles for which a missing-catalog warn has already fired
74
109
  * (one warn per bundle per process lifetime, regardless of how many
@@ -199,6 +234,72 @@ function splitCulture(culture) {
199
234
  return [s.substring(0, i), s.substring(i + 1)];
200
235
  }
201
236
 
237
+ /**
238
+ * Warn on `_validator` labels the FormValidator engine cannot render correctly.
239
+ *
240
+ * The engine substitutes every token matching {@link VALIDATOR_TOKEN_RE} it finds
241
+ * in a label, looking each one up verbatim in its `local.keys` map. An unknown
242
+ * token — `%d`, `%L`, or a bare percent glued to letters as in `20%sur le prix` —
243
+ * resolves to `undefined` and is spliced into user-facing copy; a non-string label
244
+ * makes the engine's `replace()` throw (`target.match is not a function`). Both are
245
+ * catalog-authoring mistakes, and the catalog is parsed only here, so this is the
246
+ * one place to surface them before a request renders them.
247
+ *
248
+ * Warns once per offending label at boot and never throws — a translation typo
249
+ * must not take a bundle down. This covers the client too: the browser's
250
+ * `gina.config.validatorLabels` is a subset of this same boot-loaded catalog.
251
+ * It does NOT cover labels supplied at runtime via `gina.validator.setErrorLabels()`.
252
+ *
253
+ * @memberof module:gina/lib/i18n
254
+ * @inner
255
+ * @param {object} catalog - Parsed catalog root.
256
+ * @param {string} filePath - Absolute path to the catalog, for the operator message.
257
+ * @returns {number} Number of warnings emitted; `0` when the catalog is clean.
258
+ *
259
+ * @example
260
+ * // locales/fr.json -> { "_validator": { "isRequired": "Remise 100%sur le prix" } }
261
+ * warnOnSuspectValidatorLabels(catalog, '/srv/app/dashboard/locales/fr.json');
262
+ * // -> [i18n] `_validator.isRequired` in ... contains unknown placeholder `%sur` ...
263
+ */
264
+ function warnOnSuspectValidatorLabels(catalog, filePath) {
265
+ var node = catalog[VALIDATOR_NAMESPACE];
266
+ if ( typeof node === 'undefined' || node === null ) {
267
+ return 0; // absent: the normal case for a bundle that translates nothing else
268
+ }
269
+ if ( typeof node !== 'object' || Array.isArray(node) ) {
270
+ console.warn('[i18n] `' + VALIDATOR_NAMESPACE + '` in ' + filePath
271
+ + ' must be an object mapping rule names to labels — ignoring it');
272
+ return 1;
273
+ }
274
+ var count = 0;
275
+ for (var rule in node) {
276
+ if ( !Object.prototype.hasOwnProperty.call(node, rule) ) {
277
+ continue;
278
+ }
279
+ var label = node[rule];
280
+ if ( typeof label !== 'string' ) {
281
+ console.warn('[i18n] `' + VALIDATOR_NAMESPACE + '.' + rule + '` in ' + filePath
282
+ + ' must be a string — the validator throws when it renders a non-string label');
283
+ count++;
284
+ continue;
285
+ }
286
+ var tokens = label.match(VALIDATOR_TOKEN_RE);
287
+ if ( !tokens ) {
288
+ continue;
289
+ }
290
+ for (var t = 0; t < tokens.length; t++) {
291
+ if ( VALIDATOR_LABEL_TOKENS.indexOf(tokens[t]) < 0 ) {
292
+ console.warn('[i18n] `' + VALIDATOR_NAMESPACE + '.' + rule + '` in ' + filePath
293
+ + ' contains unknown placeholder `' + tokens[t] + '` — it renders as "undefined".'
294
+ + ' Known tokens: ' + VALIDATOR_LABEL_TOKENS.join(', ')
295
+ + ' (a literal percent must not be followed by letters)');
296
+ count++;
297
+ }
298
+ }
299
+ }
300
+ return count;
301
+ }
302
+
202
303
  /**
203
304
  * Eager-load every culture catalog under `<dir>/locales/`. Called once per
204
305
  * bundle at boot. Files must match {@link CULTURE_FILENAME}; non-matching
@@ -263,6 +364,8 @@ function loadCatalogs(bundleName, dir) {
263
364
  if ( parsed === null || typeof parsed !== 'object' || Array.isArray(parsed) ) {
264
365
  throw new Error('[i18n] catalog root must be an object: ' + filePath);
265
366
  }
367
+ // Surface unrenderable built-in validator labels while the catalog is in hand.
368
+ warnOnSuspectValidatorLabels(parsed, filePath);
266
369
  store[bundleName][culture] = parsed;
267
370
  loaded.push(culture);
268
371
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gina-framework",
3
- "version": "0.5.12",
3
+ "version": "0.5.13",
4
4
  "dependencies": {
5
5
  "@rhinostone/swig": "^2.7.2",
6
6
  "intl-messageformat": "^11.2.4",
package/gna.js CHANGED
@@ -15,14 +15,14 @@
15
15
  'use strict';
16
16
 
17
17
  // Framework core — the main gna module (lifecycle hooks, lib, etc.)
18
- var _gna = require('./framework/v0.5.12/core/gna');
18
+ var _gna = require('./framework/v0.5.13/core/gna');
19
19
 
20
20
  // SuperController and EntitySuper — loaded from their source modules
21
- var SuperController = require('./framework/v0.5.12/core/controller');
22
- var EntitySuper = require('./framework/v0.5.12/core/model/entity');
21
+ var SuperController = require('./framework/v0.5.13/core/controller');
22
+ var EntitySuper = require('./framework/v0.5.13/core/model/entity');
23
23
 
24
24
  // uuid — from the lib registry
25
- var uuid = require('./framework/v0.5.12/lib/uuid');
25
+ var uuid = require('./framework/v0.5.13/lib/uuid');
26
26
 
27
27
  module.exports = {
28
28
 
package/llms.txt CHANGED
@@ -973,7 +973,7 @@ Dev-mode query instrumentation captures every database query tied to the current
973
973
 
974
974
  221. **FormValidator marks an invalid submit trigger with `aria-disabled` + `.gina-form-submit-disabled`, NOT native `disabled` (#B76, 2026-07-06).** `updateSubmitTriggerState`'s invalid + live-check-on branch used to set the submit `<button>`'s native `.disabled = true`, but a natively-disabled `<button>` emits no click event — so the form-level `validate.<id>` guard (which renders every field's errors + focuses the first invalid field, and only `send()`s when `isValid()`) never fired, and the button was a dead no-op with zero feedback. The HIDE branch now sets `aria-disabled="true"` + adds the class `gina-form-submit-disabled` (keeping the trigger OPERABLE so the click still runs the guard) while `isValid()` stays the real send gate; the SHOW branch KEEPS clearing native `disabled` so a `<button disabled>` in markup still enables on valid / when live-check is off. Tag-agnostic (works for `<button>` and `<a>`; `.disabled=false` on an anchor is a harmless expando). The Enter-key/native-submit DOMParser proxy that read `submitTrigger.disabled` off a re-parsed copy simply never cancels on the invalid path now — harmless: the native submit is still cancelled by the `withRules || isBinded` branch and the `isValid()` gate still blocks the send. **Consumers must style the `[aria-disabled="true"]` / `.gina-form-submit-disabled` submit-trigger state — the framework ships no button CSS.** `main.js` is browser-bundled → a prod dist rebuild is required. Two testing gotchas: jsdom does NOT model "a disabled control emits no click" (it dispatches click on disabled buttons), so the bug is asserted via the pre-fix disabled STATE in a subtract replica; and the consumer-styling comment names the class, so pin the `classList.(add|remove)('gina-form-submit-disabled')` code form (==2), not a bare string count (==3). Tests: `validator-submit-trigger-state.test.js` (18).
975
975
 
976
- 222. **FormValidator built-in rule labels localise per culture from ONE per-bundle catalog on BOTH client and server — app-owned, the framework ships NO translations (0.5.x, validator i18n Slices 1–3).** The 26 English defaults live in `form-validator.js` as `_defaultErrorLabels`; each rule resolves `this.error || local.errorLabels[rule]` (per-field app override wins, else the default), and the engine seeds `local.errorLabels` from the defaults then overlays the negotiated culture's labels from the same `_validator.<rule>` catalog namespace both sides read. **CLIENT overlay** (`isGFFCtx`-gated) applies two layers over English with precedence **app `setErrorLabels()` > server-whispered bundle catalog > English**: layer 3 reads the `setErrorLabels()` registry `gina.validator._errorLabelsByCulture[gina.config.culture]` (exact `fr_FR` → base `fr` fallback); layer 2 reads `gina.config.validatorLabels` — the culture's `_validator` subset from `bundle/locales/<culture>.json` whispered by the render path (`controller.js` resolves it via `lib.i18n` walkFallback→getCatalog→resolveKey, `encodeRFC5987ValueChars`-encoded into `page.environment.validatorLabels`; `loader.js` reads it into `gina.config.validatorLabels` with a GUARDED `JSON.parse(decodeURIComponent(…))` IIFE — NOT a bare parse like `routing`, an empty whisper would throw and kill `onGinaLoaded` → whole-page JS dead — plus `@js_externs validatorLabels`). Each layer is `merge(JSON.clone(layer), local.errorLabels)` (lib/merge is target-wins/source-fills, so a higher layer wins per key and lower layers fill), catalog applied FIRST then registry; an empty `{}` catalog is skipped (own-key guard) so it degrades to registry/English. **SERVER overlay** (`!isGFFCtx`): passing a string `culture` to `gina.plugins.Validator` resolves the same `_validator` node (same walkFallback→getCatalog→resolveKey chain) and merges it over English. Apps register client overrides through the public `gina.validator.setErrorLabels(labels[, culture])`. Matches the framework's per-bundle "app owns catalogs" i18n stance (`bundle/locales` + `t()`); custom user rules already carry app messages and are untouched; a per-field/rule `error` still wins. **Two SERVER constraints (measured):** routing.json `validator::{}` requirement labels stay English (those validators run during route-matching, BEFORE culture negotiation → `req.culture` undefined there), and the auto-validation path (pass a rules object) has a pre-existing null-`$fields` crash at `forEachField` orthogonal to i18n — so the working server path is the MANUAL `new gina.plugins.Validator({}, data, formId, req.culture)` + `v.field.rule(...)`. Closure keeps the cross-module property names via the quoted-literal-decl + dot-read + `@js_externs` pattern; both files browser-bundled → any edit needs a prod dist rebuild (the 4 `gina.*` + 3 `gina.onload.*`). Tests: `test/lib/validator-label-i18n.test.js` (client registry layer) + `test/lib/validator-label-i18n-server.test.js` (server) + `test/lib/validator-label-i18n-client-catalog.test.js` (client catalog + 3-layer precedence).
976
+ 222. **FormValidator built-in rule labels localise per culture from ONE per-bundle catalog on BOTH client and server — app-owned, the framework ships NO translations (0.5.x, validator i18n Slices 1–3).** The 26 English defaults live in `form-validator.js` as `_defaultErrorLabels`; each rule resolves `this.error || local.errorLabels[rule]` (per-field app override wins, else the default), and the engine seeds `local.errorLabels` from the defaults then overlays the negotiated culture's labels from the same `_validator.<rule>` catalog namespace both sides read. **CLIENT overlay** (`isGFFCtx`-gated) applies two layers over English with precedence **app `setErrorLabels()` > server-whispered bundle catalog > English**: layer 3 reads the `setErrorLabels()` registry `gina.validator._errorLabelsByCulture[gina.config.culture]` (exact `fr_FR` → base `fr` fallback); layer 2 reads `gina.config.validatorLabels` — the culture's `_validator` subset from `bundle/locales/<culture>.json` whispered by the render path (`controller.js` resolves it via `lib.i18n` walkFallback→getCatalog→resolveKey, `encodeRFC5987ValueChars`-encoded into `page.environment.validatorLabels`; `loader.js` reads it into `gina.config.validatorLabels` with a GUARDED `JSON.parse(decodeURIComponent(…))` IIFE — NOT a bare parse like `routing`, an empty whisper would throw and kill `onGinaLoaded` → whole-page JS dead — plus `@js_externs validatorLabels`). Each layer is `merge(JSON.clone(layer), local.errorLabels)` (lib/merge is target-wins/source-fills, so a higher layer wins per key and lower layers fill), catalog applied FIRST then registry; an empty `{}` catalog is skipped (own-key guard) so it degrades to registry/English. **SERVER overlay** (`!isGFFCtx`): passing a string `culture` to `gina.plugins.Validator` resolves the same `_validator` node (same walkFallback→getCatalog→resolveKey chain) and merges it over English. Apps register client overrides through the public `gina.validator.setErrorLabels(labels[, culture])`. Matches the framework's per-bundle "app owns catalogs" i18n stance (`bundle/locales` + `t()`); custom user rules already carry app messages and are untouched; a per-field/rule `error` still wins. **Two SERVER constraints (measured):** routing.json `validator::{}` requirement labels stay English (those validators run during route-matching, BEFORE culture negotiation → `req.culture` undefined there), and the auto-validation path (pass a rules object) has a pre-existing null-`$fields` crash at `forEachField` orthogonal to i18n — so the working server path is the MANUAL `new gina.plugins.Validator({}, data, formId, req.culture)` + `v.field.rule(...)`. **`%`-token contract (measured 2026-07-08).** `replace()` substitutes tokens in the MERGED `local.errorLabels`, so a CATALOG label interpolates exactly like an English default — load-bearing because length bounds arrive as ARRAY args (`"isString": [5]`, spread through `apply()` in `main.js`) and therefore reach `isStringMinLength`/`isStringMaxLength`, keys no rule file ever names (grepping rule files for them returns 0 and wrongly reads as dead). The vocabulary is CLOSED and CASE-SENSITIVE: `replace()` matches `/%[a-z]+/gi` GREEDILY and looks each hit up verbatim in `local.keys` (`%l`→label, `%n`→name, `%s`→size), so an unknown token (`%d`, `%L`) — or a literal percent glued to letters (`20%sur le prix` matches `%sur`) — splices the literal string `undefined` into user-facing copy, and a NON-STRING label makes `replace()` throw `target.match is not a function`. `%l` is frontend-only (it reads the DOM `data-gina-form-field-label`), so a catalog label using it renders EMPTY server-side rather than `undefined`. `lib/i18n loadCatalogs` LINTS the `_validator` node at boot (warns per offending label, never throws, catalog still loads); it covers the client too (the whisper is a subset of the same boot-loaded catalog) but NOT runtime `setErrorLabels()` labels, and its token set is drift-pinned against `local.keys`. **Labels are LATE-BOUND per validation pass (measured).** The overlay lives in the `FormValidatorUtil` CONSTRUCTOR, and `validate()` builds a FRESH engine on every pass (`main.js` ~`:7145`/`:7154`/`:7157`) — not once at bind time — so `setErrorLabels()` called AFTER `new FormValidator(...)`, canonically inside a `ready` handler (which fires immediately after `gina.validator = instance`), applies from the NEXT pass; it does NOT retroactively change a pass already in flight, since the message string is interpolated at rule-evaluation time. **Catalog-load signal (measured correction).** A `locales/*.json` filename failing `CULTURE_FILENAME` (`fr-FR.json`, `fr_fr.json`) DOES warn and is skipped; the genuinely SILENT case is a MISSING `locales/` dir (`config.js` `fs.existsSync` with no `else`) — opt-in by design. Catalogs are boot-loaded with no hot reload, so a catalog edit needs a bundle restart. Closure keeps the cross-module property names via the quoted-literal-decl + dot-read + `@js_externs` pattern; both validator files browser-bundled → any edit needs a prod dist rebuild (the 4 `gina.*` + 3 `gina.onload.*`), but `lib/i18n` is server-only so the boot lint needs none. Tests: `test/lib/validator-label-i18n.test.js` (client registry layer) + `test/lib/validator-label-i18n-server.test.js` (server) + `test/lib/validator-label-i18n-client-catalog.test.js` (client catalog + 3-layer precedence) + `test/lib/validator-label-i18n-runtime.test.js` (%-token interpolation from a catalog label, the boot lint, late binding).
977
977
 
978
978
  223. **Per-request culture negotiation was INERT framework-wide until 0.5.x — `req.culture` / the whispered `gina.config.culture` always `'en'`/`''` regardless of bundle or environment culture, and `t()` / the `t` template filter returned keys — now activated (#I18N Slice 1).** The #I18N1 catalog + negotiation machinery shipped but three legs were dead: `lib/i18n loadCatalogs` had ZERO runtime callers (so `process.gina._i18nCatalogs` stayed empty → `core/server.js availableCultures` `[]` → `matchAvailable` null on an empty list → URL-prefix / cookie / `Accept-Language` never matched); the per-request `negotiateCulture` call passed `defaultCulture: null` (step-4 bundle default skipped); and 8 sites read `process.env.GINA_CULTURE`, which `utils/helper.js` moves into `process.gina` and DELETEs from `process.env` at init (`getEnvVar` reads `process.gina`), so `negotiateCulture` step 5, the `server.js` catch, both swig + both nunjucks `t`/`tIcu` filter fallbacks, and the `i18n:add` CLI all read an always-undefined var → negotiation fell to step 6 = `'en'`. Fix (server-side, NO dist rebuild): `config.js loadBundleConfig` (after the `secrets.resolve` seam) calls `i18n.loadCatalogs(bundle, <bundleRoot>/locales)` guarded by `fs.existsSync` (opt-in; also avoids loadCatalogs' empty-entry + background ICU-loader side effects) + `try/catch`→`console.warn` (a malformed catalog is warned, not boot-fatal — loadCatalogs THROWS on bad JSON); `server.js` reads the matched bundle `content.settings.region.culture` (format-guarded vs an unresolved `${culture}`) as `defaultCulture`; the 8 dead reads → the live `getEnvVar('GINA_CULTURE')` (`typeof getEnvVar === 'function'`-guarded in the strict global-free `lib/i18n` + the filter modules so an isolated unit-require never ReferenceErrors). Precedence now live: URL / cookie / `Accept-Language` > bundle `settings.region.culture` > operator `GINA_CULTURE` > `'en'`. **`settings.region.culture` is the REAL per-bundle culture key** — bundle scaffold `core/template/boilerplate/bundle/config/settings.json` `"culture":"${culture}"` (full underscore culture resolved at `bundle:add`; the merged config carries it — `server.js`/`controller.js` already read `content.settings.region.{timeZone,shortCode}`), NOT `settings.locale.region` (a country code in the framework `settings.json`'s separate CLDR `locale` block). Blast radius: framework-wide — `req.culture`/`gina.config.culture` now reflect the configured culture, `t()` resolves real strings for any bundle shipping a `locales/` dir (others unaffected via the `existsSync` guard). Makes the #222 client validator-label overlay (gated on a truthy `gina.config.culture`) actually reachable; Slice 1 of the validator + i18n unification. **#B84 (same day) completes the activation on the WARM route path:** Slice 1 negotiated `req.culture` only on the COLD (uncached) path — `core/server.js handle()`'s cached-route fast-path (`if ( hasCachedRoute ) { isRoute = hasCachedRoute; … break; }` ~`:4964`) breaks the routing loop BEFORE the cold-path negotiation site (~`:5115`), and the route cache persists across requests (the module-scoped `routingLib` at `:91` is a stable gen-0 binding — server.js is load-once; `Routing._cached` is set at `:5198` on the cold request and read at `:4964` on every later hit to the same `method:pathname`), so the SECOND hit to any URL is warm and left `req.culture` unset → `controller.js` embeds `''` into `page.environment.culture` → `gina.config.culture === ''` → the #222 client overlay inert on warm reloads (a warm BROWSER reload reproduces; `curl` masks it — a fresh cold-only hit after a restart still negotiates). Fixed by extracting the negotiation into a per-request `var _negotiateReqCulture = function(req, routeBundle)` closure in `handle()` scope, called on BOTH the warm (`( req.routing && req.routing.bundle ) || bundle` — `getCached` already ran `compareUrls`→`checkRouteParams`, so `req.routing` incl. `bundle`/`culturePrefix` is populated) and cold (`routing[name].bundle`) paths. **The resolved culture is NEVER cached with the shared route entry** — it's per-request (cookie / Accept-Language), so pinning it would cross-request-bleed (the #B65/#B66 per-request-vs-worker-global class); the consumer's first suggestion "cache `req.culture` with the route" was rejected for exactly this, their second "re-negotiate on the warm path" shipped. **Rule: any per-request state derived after a route match must be re-derived on the cached fast-path too — `if ( hasCachedRoute ) { … break; }` bypasses everything below it in the loop.** Server-side, NO dist rebuild; surfaced by a consumer report-back that Slice 1's cold-only activation had missed. Tests: `test/core/server-culture-negotiation.test.js` (two-path source pins + a behavioural replica of the fast-path-breaks-before-cold-site structure driving the real `negotiateCulture` + a subtract proving the warm-path call is load-bearing) + a daemonless cold→warm `gina-container` boot (`req.culture === 'xx_XX'` on cold AND warm over real HTTP; `''` pre-fix). Established 2026-07-07.
979
979
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gina",
3
- "version": "0.5.12",
3
+ "version": "0.5.13",
4
4
  "description": "Node.js MVC framework with built-in HTTP/2, multi-bundle architecture, and scope-based data isolation — no Express dependency",
5
5
  "keywords": [
6
6
  "nodejs",
@@ -73,12 +73,12 @@
73
73
  "gina-container": "bin/gina-container",
74
74
  "gina-init": "bin/gina-init"
75
75
  },
76
- "main": "./framework/v0.5.12/core/gna",
76
+ "main": "./framework/v0.5.13/core/gna",
77
77
  "exports": {
78
78
  ".": {
79
79
  "types": "./types/index.d.ts",
80
80
  "import": "./index.mjs",
81
- "require": "./framework/v0.5.12/core/gna.js"
81
+ "require": "./framework/v0.5.13/core/gna.js"
82
82
  },
83
83
  "./gna": {
84
84
  "types": "./types/gna.d.ts",
@@ -1 +0,0 @@
1
- 0.5.12
File without changes
File without changes
File without changes
File without changes
File without changes