gina 0.6.6 → 0.6.7

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 (580) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +26 -23
  3. package/ROADMAP.md +2 -0
  4. package/bin/cli +1 -0
  5. package/framework/v0.6.7/VERSION +1 -0
  6. package/framework/v0.6.7/core/asset/plugin/dist/vendor/gina/css/gina.min.css +1 -0
  7. package/framework/v0.6.7/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  8. package/framework/v0.6.7/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  9. package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +27 -0
  10. package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +93 -8
  11. package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/dist/vendor/gina/js/gina.js +443 -28
  12. package/framework/v0.6.7/core/asset/plugin/dist/vendor/gina/js/gina.min.js +647 -0
  13. package/framework/v0.6.7/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  14. package/framework/v0.6.7/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  15. package/framework/{v0.6.6 → v0.6.7}/core/config.js +22 -0
  16. package/framework/{v0.6.6 → v0.6.7}/core/connectors/couchbase/index.js +16 -4
  17. package/framework/{v0.6.6 → v0.6.7}/core/connectors/duckdb/index.js +5 -2
  18. package/framework/{v0.6.6 → v0.6.7}/core/connectors/mongodb/index.js +8 -3
  19. package/framework/{v0.6.6 → v0.6.7}/core/connectors/mysql/index.js +5 -2
  20. package/framework/v0.6.7/core/connectors/param-redact.js +177 -0
  21. package/framework/{v0.6.6 → v0.6.7}/core/connectors/postgresql/index.js +5 -2
  22. package/framework/{v0.6.6 → v0.6.7}/core/connectors/scylladb/index.js +5 -2
  23. package/framework/{v0.6.6 → v0.6.7}/core/connectors/sqlite/index.js +5 -2
  24. package/framework/{v0.6.6 → v0.6.7}/core/controller/controller.js +190 -23
  25. package/framework/{v0.6.6 → v0.6.7}/core/gna.js +186 -0
  26. package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/validator/src/form-validator.js +91 -7
  27. package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/validator/src/main.js +352 -21
  28. package/framework/{v0.6.6 → v0.6.7}/core/server.js +190 -1
  29. package/framework/{v0.6.6 → v0.6.7}/core/template/conf/settings.json +7 -8
  30. package/framework/v0.6.7/lib/cmd/storage/arguments.json +6 -0
  31. package/framework/v0.6.7/lib/cmd/storage/gc.js +418 -0
  32. package/framework/v0.6.7/lib/cmd/storage/help.txt +63 -0
  33. package/framework/v0.6.7/lib/cmd/storage/stats.js +396 -0
  34. package/framework/v0.6.7/lib/cmd/storage/verify.js +413 -0
  35. package/framework/{v0.6.6 → v0.6.7}/lib/index.js +14 -0
  36. package/framework/{v0.6.6 → v0.6.7}/lib/secrets/src/main.js +13 -6
  37. package/framework/v0.6.7/lib/storage/package.json +7 -0
  38. package/framework/v0.6.7/lib/storage/src/local-cas.js +1186 -0
  39. package/framework/v0.6.7/lib/storage/src/local.js +599 -0
  40. package/framework/v0.6.7/lib/storage/src/main.js +890 -0
  41. package/framework/v0.6.7/lib/storage/src/meta-store.js +506 -0
  42. package/framework/v0.6.7/lib/storage/src/util.js +336 -0
  43. package/framework/v0.6.7/lib/storage-store.js +110 -0
  44. package/framework/{v0.6.6 → v0.6.7}/package.json +1 -1
  45. package/gna.js +4 -4
  46. package/llms.txt +10 -9
  47. package/package.json +3 -3
  48. package/schema/settings.json +142 -2
  49. package/types/index.d.ts +7 -0
  50. package/framework/v0.6.6/VERSION +0 -1
  51. package/framework/v0.6.6/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -1
  52. package/framework/v0.6.6/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  53. package/framework/v0.6.6/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  54. package/framework/v0.6.6/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -643
  55. package/framework/v0.6.6/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  56. package/framework/v0.6.6/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  57. /package/framework/{v0.6.6 → v0.6.7}/AUTHORS +0 -0
  58. /package/framework/{v0.6.6 → v0.6.7}/LICENSE +0 -0
  59. /package/framework/{v0.6.6 → v0.6.7}/core/asset/html/nolayout.html +0 -0
  60. /package/framework/{v0.6.6 → v0.6.7}/core/asset/html/static.html +0 -0
  61. /package/framework/{v0.6.6 → v0.6.7}/core/asset/img/android-chrome-192x192.png +0 -0
  62. /package/framework/{v0.6.6 → v0.6.7}/core/asset/img/android-chrome-512x512.png +0 -0
  63. /package/framework/{v0.6.6 → v0.6.7}/core/asset/img/apple-touch-icon.png +0 -0
  64. /package/framework/{v0.6.6 → v0.6.7}/core/asset/img/favicon-16x16.png +0 -0
  65. /package/framework/{v0.6.6 → v0.6.7}/core/asset/img/favicon-32x32.png +0 -0
  66. /package/framework/{v0.6.6 → v0.6.7}/core/asset/img/favicon.ico +0 -0
  67. /package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/README.md +0 -0
  68. /package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  69. /package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  70. /package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  71. /package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
  72. /package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  73. /package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  74. /package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  75. /package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
  76. /package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  77. /package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
  78. /package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  79. /package/framework/{v0.6.6 → v0.6.7}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  80. /package/framework/{v0.6.6 → v0.6.7}/core/connectors/ai/index.js +0 -0
  81. /package/framework/{v0.6.6 → v0.6.7}/core/connectors/ai/lib/connector.js +0 -0
  82. /package/framework/{v0.6.6 → v0.6.7}/core/connectors/couchbase/lib/connector.js +0 -0
  83. /package/framework/{v0.6.6 → v0.6.7}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  84. /package/framework/{v0.6.6 → v0.6.7}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  85. /package/framework/{v0.6.6 → v0.6.7}/core/connectors/couchbase/lib/n1ql.js +0 -0
  86. /package/framework/{v0.6.6 → v0.6.7}/core/connectors/couchbase/lib/session-store.js +0 -0
  87. /package/framework/{v0.6.6 → v0.6.7}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  88. /package/framework/{v0.6.6 → v0.6.7}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  89. /package/framework/{v0.6.6 → v0.6.7}/core/connectors/duckdb/lib/connector.js +0 -0
  90. /package/framework/{v0.6.6 → v0.6.7}/core/connectors/mongodb/lib/connector.js +0 -0
  91. /package/framework/{v0.6.6 → v0.6.7}/core/connectors/mongodb/lib/job-store.js +0 -0
  92. /package/framework/{v0.6.6 → v0.6.7}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
  93. /package/framework/{v0.6.6 → v0.6.7}/core/connectors/mongodb/lib/session-store.js +0 -0
  94. /package/framework/{v0.6.6 → v0.6.7}/core/connectors/mysql/lib/connector.js +0 -0
  95. /package/framework/{v0.6.6 → v0.6.7}/core/connectors/postgresql/lib/connector.js +0 -0
  96. /package/framework/{v0.6.6 → v0.6.7}/core/connectors/redis/index.js +0 -0
  97. /package/framework/{v0.6.6 → v0.6.7}/core/connectors/redis/lib/connector.js +0 -0
  98. /package/framework/{v0.6.6 → v0.6.7}/core/connectors/redis/lib/job-store.js +0 -0
  99. /package/framework/{v0.6.6 → v0.6.7}/core/connectors/redis/lib/render-cache-store.js +0 -0
  100. /package/framework/{v0.6.6 → v0.6.7}/core/connectors/redis/lib/session-store.js +0 -0
  101. /package/framework/{v0.6.6 → v0.6.7}/core/connectors/scylladb/lib/connector.js +0 -0
  102. /package/framework/{v0.6.6 → v0.6.7}/core/connectors/scylladb/lib/session-store.js +0 -0
  103. /package/framework/{v0.6.6 → v0.6.7}/core/connectors/sql-parser.js +0 -0
  104. /package/framework/{v0.6.6 → v0.6.7}/core/connectors/sqlite/lib/connector.js +0 -0
  105. /package/framework/{v0.6.6 → v0.6.7}/core/connectors/sqlite/lib/job-store.js +0 -0
  106. /package/framework/{v0.6.6 → v0.6.7}/core/connectors/sqlite/lib/session-store.js +0 -0
  107. /package/framework/{v0.6.6 → v0.6.7}/core/content.encoding +0 -0
  108. /package/framework/{v0.6.6 → v0.6.7}/core/controller/controller.framework.js +0 -0
  109. /package/framework/{v0.6.6 → v0.6.7}/core/controller/controller.render-json.js +0 -0
  110. /package/framework/{v0.6.6 → v0.6.7}/core/controller/controller.render-nunjucks-async.js +0 -0
  111. /package/framework/{v0.6.6 → v0.6.7}/core/controller/controller.render-nunjucks.js +0 -0
  112. /package/framework/{v0.6.6 → v0.6.7}/core/controller/controller.render-stream.js +0 -0
  113. /package/framework/{v0.6.6 → v0.6.7}/core/controller/controller.render-swig-async.js +0 -0
  114. /package/framework/{v0.6.6 → v0.6.7}/core/controller/controller.render-swig.js +0 -0
  115. /package/framework/{v0.6.6 → v0.6.7}/core/controller/controller.render-v1.js +0 -0
  116. /package/framework/{v0.6.6 → v0.6.7}/core/controller/index.js +0 -0
  117. /package/framework/{v0.6.6 → v0.6.7}/core/controller/inspector-window-emit.js +0 -0
  118. /package/framework/{v0.6.6 → v0.6.7}/core/controller/release-banner.js +0 -0
  119. /package/framework/{v0.6.6 → v0.6.7}/core/dev/index.js +0 -0
  120. /package/framework/{v0.6.6 → v0.6.7}/core/dev/lib/class.js +0 -0
  121. /package/framework/{v0.6.6 → v0.6.7}/core/dev/lib/factory.js +0 -0
  122. /package/framework/{v0.6.6 → v0.6.7}/core/dev/lib/tools.js +0 -0
  123. /package/framework/{v0.6.6 → v0.6.7}/core/locales/README.md +0 -0
  124. /package/framework/{v0.6.6 → v0.6.7}/core/locales/currency.json +0 -0
  125. /package/framework/{v0.6.6 → v0.6.7}/core/locales/dist/language/en.json +0 -0
  126. /package/framework/{v0.6.6 → v0.6.7}/core/locales/dist/language/fr.json +0 -0
  127. /package/framework/{v0.6.6 → v0.6.7}/core/locales/dist/region/en.json +0 -0
  128. /package/framework/{v0.6.6 → v0.6.7}/core/locales/dist/region/fr.json +0 -0
  129. /package/framework/{v0.6.6 → v0.6.7}/core/locales/index.js +0 -0
  130. /package/framework/{v0.6.6 → v0.6.7}/core/mime.types +0 -0
  131. /package/framework/{v0.6.6 → v0.6.7}/core/model/entity.js +0 -0
  132. /package/framework/{v0.6.6 → v0.6.7}/core/model/index.js +0 -0
  133. /package/framework/{v0.6.6 → v0.6.7}/core/model/template/entityFactory.js +0 -0
  134. /package/framework/{v0.6.6 → v0.6.7}/core/model/template/index.js +0 -0
  135. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/README.md +0 -0
  136. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/index.js +0 -0
  137. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/csrf/README.md +0 -0
  138. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/csrf/package.json +0 -0
  139. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/csrf/src/main.js +0 -0
  140. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/README.md +0 -0
  141. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/coep/README.md +0 -0
  142. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/coep/package.json +0 -0
  143. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
  144. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/coop/README.md +0 -0
  145. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/coop/package.json +0 -0
  146. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
  147. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/corp/README.md +0 -0
  148. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/corp/package.json +0 -0
  149. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
  150. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/csp/README.md +0 -0
  151. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/csp/package.json +0 -0
  152. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
  153. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
  154. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
  155. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
  156. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/hsts/README.md +0 -0
  157. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/hsts/package.json +0 -0
  158. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
  159. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
  160. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
  161. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
  162. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/package.json +0 -0
  163. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
  164. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
  165. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
  166. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/src/main.js +0 -0
  167. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
  168. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
  169. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
  170. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
  171. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
  172. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
  173. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
  174. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
  175. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
  176. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
  177. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
  178. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
  179. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
  180. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
  181. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
  182. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
  183. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
  184. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
  185. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/session/README.md +0 -0
  186. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/session/package.json +0 -0
  187. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/session/src/main.js +0 -0
  188. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/storage/README.md +0 -0
  189. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/storage/build.json +0 -0
  190. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/storage/package.json +0 -0
  191. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/storage/src/main.js +0 -0
  192. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/validator/README.md +0 -0
  193. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/validator/build.json +0 -0
  194. /package/framework/{v0.6.6 → v0.6.7}/core/plugins/lib/validator/package.json +0 -0
  195. /package/framework/{v0.6.6 → v0.6.7}/core/router.js +0 -0
  196. /package/framework/{v0.6.6 → v0.6.7}/core/server.express.js +0 -0
  197. /package/framework/{v0.6.6 → v0.6.7}/core/server.isaac.js +0 -0
  198. /package/framework/{v0.6.6 → v0.6.7}/core/status.codes +0 -0
  199. /package/framework/{v0.6.6 → v0.6.7}/core/template/_gitignore +0 -0
  200. /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle/config/app.json +0 -0
  201. /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  202. /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle/config/routing.json +0 -0
  203. /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle/config/settings.json +0 -0
  204. /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  205. /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle/config/templates.json +0 -0
  206. /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  207. /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  208. /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  209. /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  210. /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle/index.js +0 -0
  211. /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle/locales/en.json +0 -0
  212. /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  213. /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  214. /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  215. /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  216. /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  217. /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_public/js/components/x-checklist.js +0 -0
  218. /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  219. /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
  220. /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_public/readme.md +0 -0
  221. /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_public/sw.js +0 -0
  222. /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  223. /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  224. /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  225. /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  226. /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_templates/html/includes/x-checklist.html +0 -0
  227. /package/framework/{v0.6.6 → v0.6.7}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  228. /package/framework/{v0.6.6 → v0.6.7}/core/template/command/gina.bat.tpl +0 -0
  229. /package/framework/{v0.6.6 → v0.6.7}/core/template/command/gina.tpl +0 -0
  230. /package/framework/{v0.6.6 → v0.6.7}/core/template/conf/env.json +0 -0
  231. /package/framework/{v0.6.6 → v0.6.7}/core/template/conf/manifest.json +0 -0
  232. /package/framework/{v0.6.6 → v0.6.7}/core/template/conf/package.json +0 -0
  233. /package/framework/{v0.6.6 → v0.6.7}/core/template/conf/statics.json +0 -0
  234. /package/framework/{v0.6.6 → v0.6.7}/core/template/conf/templates.json +0 -0
  235. /package/framework/{v0.6.6 → v0.6.7}/core/template/error/client/json/401.json +0 -0
  236. /package/framework/{v0.6.6 → v0.6.7}/core/template/error/client/json/403.json +0 -0
  237. /package/framework/{v0.6.6 → v0.6.7}/core/template/error/client/json/404.json +0 -0
  238. /package/framework/{v0.6.6 → v0.6.7}/core/template/error/server/html/50x.html +0 -0
  239. /package/framework/{v0.6.6 → v0.6.7}/core/template/error/server/json/500.json +0 -0
  240. /package/framework/{v0.6.6 → v0.6.7}/core/template/error/server/json/503.json +0 -0
  241. /package/framework/{v0.6.6 → v0.6.7}/core/template/extensions/logger/config.json +0 -0
  242. /package/framework/{v0.6.6 → v0.6.7}/helpers/console.js +0 -0
  243. /package/framework/{v0.6.6 → v0.6.7}/helpers/context.js +0 -0
  244. /package/framework/{v0.6.6 → v0.6.7}/helpers/data/LICENSE +0 -0
  245. /package/framework/{v0.6.6 → v0.6.7}/helpers/data/README.md +0 -0
  246. /package/framework/{v0.6.6 → v0.6.7}/helpers/data/package.json +0 -0
  247. /package/framework/{v0.6.6 → v0.6.7}/helpers/data/src/main.js +0 -0
  248. /package/framework/{v0.6.6 → v0.6.7}/helpers/dateFormat.js +0 -0
  249. /package/framework/{v0.6.6 → v0.6.7}/helpers/index.js +0 -0
  250. /package/framework/{v0.6.6 → v0.6.7}/helpers/json/LICENSE +0 -0
  251. /package/framework/{v0.6.6 → v0.6.7}/helpers/json/README.md +0 -0
  252. /package/framework/{v0.6.6 → v0.6.7}/helpers/json/package.json +0 -0
  253. /package/framework/{v0.6.6 → v0.6.7}/helpers/json/src/main.js +0 -0
  254. /package/framework/{v0.6.6 → v0.6.7}/helpers/path.js +0 -0
  255. /package/framework/{v0.6.6 → v0.6.7}/helpers/plugins/README.md +0 -0
  256. /package/framework/{v0.6.6 → v0.6.7}/helpers/plugins/package.json +0 -0
  257. /package/framework/{v0.6.6 → v0.6.7}/helpers/plugins/src/api-error.js +0 -0
  258. /package/framework/{v0.6.6 → v0.6.7}/helpers/plugins/src/main.js +0 -0
  259. /package/framework/{v0.6.6 → v0.6.7}/helpers/prototypes.js +0 -0
  260. /package/framework/{v0.6.6 → v0.6.7}/helpers/task.js +0 -0
  261. /package/framework/{v0.6.6 → v0.6.7}/helpers/text.js +0 -0
  262. /package/framework/{v0.6.6 → v0.6.7}/lib/admin/package.json +0 -0
  263. /package/framework/{v0.6.6 → v0.6.7}/lib/admin/src/main.js +0 -0
  264. /package/framework/{v0.6.6 → v0.6.7}/lib/archiver/README.md +0 -0
  265. /package/framework/{v0.6.6 → v0.6.7}/lib/archiver/build.json +0 -0
  266. /package/framework/{v0.6.6 → v0.6.7}/lib/archiver/package.json +0 -0
  267. /package/framework/{v0.6.6 → v0.6.7}/lib/archiver/src/dep/jszip.min.js +0 -0
  268. /package/framework/{v0.6.6 → v0.6.7}/lib/archiver/src/main.js +0 -0
  269. /package/framework/{v0.6.6 → v0.6.7}/lib/async/package.json +0 -0
  270. /package/framework/{v0.6.6 → v0.6.7}/lib/async/src/main.js +0 -0
  271. /package/framework/{v0.6.6 → v0.6.7}/lib/audit/package.json +0 -0
  272. /package/framework/{v0.6.6 → v0.6.7}/lib/audit/src/main.js +0 -0
  273. /package/framework/{v0.6.6 → v0.6.7}/lib/audit-store.js +0 -0
  274. /package/framework/{v0.6.6 → v0.6.7}/lib/authn/package.json +0 -0
  275. /package/framework/{v0.6.6 → v0.6.7}/lib/authn/src/lockout.js +0 -0
  276. /package/framework/{v0.6.6 → v0.6.7}/lib/authn/src/main.js +0 -0
  277. /package/framework/{v0.6.6 → v0.6.7}/lib/authn/src/totp.js +0 -0
  278. /package/framework/{v0.6.6 → v0.6.7}/lib/authz-gate/package.json +0 -0
  279. /package/framework/{v0.6.6 → v0.6.7}/lib/authz-gate/src/main.js +0 -0
  280. /package/framework/{v0.6.6 → v0.6.7}/lib/cache/README.md +0 -0
  281. /package/framework/{v0.6.6 → v0.6.7}/lib/cache/build.json +0 -0
  282. /package/framework/{v0.6.6 → v0.6.7}/lib/cache/package.json +0 -0
  283. /package/framework/{v0.6.6 → v0.6.7}/lib/cache/src/main.js +0 -0
  284. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/aliases.json +0 -0
  285. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/audit/arguments.json +0 -0
  286. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/audit/help.txt +0 -0
  287. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/audit/verify.js +0 -0
  288. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/add.js +0 -0
  289. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/arguments.json +0 -0
  290. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/build.js +0 -0
  291. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/copy.js +0 -0
  292. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/cp.js +0 -0
  293. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/help.js +0 -0
  294. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/help.txt +0 -0
  295. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
  296. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/list.js +0 -0
  297. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/man.js +0 -0
  298. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/mcp-start.js +0 -0
  299. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/mcp.js +0 -0
  300. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/oas.js +0 -0
  301. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/openapi.js +0 -0
  302. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/remove.js +0 -0
  303. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/rename.js +0 -0
  304. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/restart.js +0 -0
  305. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/rm.js +0 -0
  306. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/start.js +0 -0
  307. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/status.js +0 -0
  308. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/stop.js +0 -0
  309. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/bundle/types.js +0 -0
  310. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/cache/arguments.json +0 -0
  311. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/cache/clear.js +0 -0
  312. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/cache/help.txt +0 -0
  313. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/cache/stats.js +0 -0
  314. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/connector/add.js +0 -0
  315. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/connector/arguments.json +0 -0
  316. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/connector/help.js +0 -0
  317. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/connector/help.txt +0 -0
  318. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/connector/infer.js +0 -0
  319. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/connector/list.js +0 -0
  320. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/connector/migrate.js +0 -0
  321. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/connector/models.js +0 -0
  322. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/connector/remove.js +0 -0
  323. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/connector/rm.js +0 -0
  324. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/connector/test.js +0 -0
  325. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/container/arguments.json +0 -0
  326. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/container/help.js +0 -0
  327. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/container/help.txt +0 -0
  328. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/container/man.js +0 -0
  329. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/container/ps.js +0 -0
  330. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/container/stop.js +0 -0
  331. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/controller/add.js +0 -0
  332. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/controller/arguments.json +0 -0
  333. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/controller/help.txt +0 -0
  334. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/controller/inc/args.js +0 -0
  335. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/controller/inc/namespace.js +0 -0
  336. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/controller/inc/reference-rewrite.js +0 -0
  337. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/controller/inc/reference-scan.js +0 -0
  338. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/controller/inc/scaffold.js +0 -0
  339. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/controller/remove.js +0 -0
  340. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/controller/rename.js +0 -0
  341. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/controller/rm.js +0 -0
  342. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/env/add.js +0 -0
  343. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/env/get.js +0 -0
  344. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/env/help.js +0 -0
  345. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/env/help.txt +0 -0
  346. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/env/link-dev.js +0 -0
  347. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/env/list.js +0 -0
  348. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/env/remove.js +0 -0
  349. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/env/rm.js +0 -0
  350. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/env/set.js +0 -0
  351. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/env/unset.js +0 -0
  352. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/env/use.js +0 -0
  353. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/add.js +0 -0
  354. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/arguments.json +0 -0
  355. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/build.js +0 -0
  356. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/dot.js +0 -0
  357. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/get.js +0 -0
  358. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/help.js +0 -0
  359. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/help.txt +0 -0
  360. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/init.js +0 -0
  361. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/link-node-modules.js +0 -0
  362. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/link.js +0 -0
  363. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/list.js +0 -0
  364. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/man.js +0 -0
  365. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/msg.json +0 -0
  366. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/open.js +0 -0
  367. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/remove.js +0 -0
  368. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/reset.js +0 -0
  369. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/restart.js +0 -0
  370. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/set.js +0 -0
  371. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/start.js +0 -0
  372. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/status.js +0 -0
  373. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/stop.js +0 -0
  374. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/tail.js +0 -0
  375. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/update.js +0 -0
  376. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/framework/version.js +0 -0
  377. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/gina-dev.1.md +0 -0
  378. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/gina-framework.1.md +0 -0
  379. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/gina.1.md +0 -0
  380. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/helper.js +0 -0
  381. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/i18n/add.js +0 -0
  382. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/i18n/arguments.json +0 -0
  383. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/i18n/export.js +0 -0
  384. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/i18n/help.js +0 -0
  385. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/i18n/help.txt +0 -0
  386. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/i18n/import.js +0 -0
  387. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/i18n/scan.js +0 -0
  388. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/image/_host.js +0 -0
  389. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/image/arguments.json +0 -0
  390. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/image/build.js +0 -0
  391. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/image/help.js +0 -0
  392. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/image/help.txt +0 -0
  393. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/image/list.js +0 -0
  394. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/image/man.js +0 -0
  395. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/image/rm.js +0 -0
  396. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/image/run.js +0 -0
  397. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/index.js +0 -0
  398. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/inspector/help.js +0 -0
  399. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/inspector/help.txt +0 -0
  400. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/inspector/open.js +0 -0
  401. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/man-render.js +0 -0
  402. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/minion/arguments.json +0 -0
  403. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/minion/help.js +0 -0
  404. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/minion/help.txt +0 -0
  405. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/minion/kill.js +0 -0
  406. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/minion/list.js +0 -0
  407. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/msg.json +0 -0
  408. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/port/help.js +0 -0
  409. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/port/help.txt +0 -0
  410. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/port/inc/scan.js +0 -0
  411. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/port/list.js +0 -0
  412. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/port/reset.js +0 -0
  413. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/port/set.js +0 -0
  414. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/add.js +0 -0
  415. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/arguments.json +0 -0
  416. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/backup.js +0 -0
  417. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/build.js +0 -0
  418. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/help.js +0 -0
  419. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/help.txt +0 -0
  420. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/import.js +0 -0
  421. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/list.js +0 -0
  422. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/man.js +0 -0
  423. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/move.js +0 -0
  424. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/remove.js +0 -0
  425. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/rename.js +0 -0
  426. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/restart.js +0 -0
  427. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/restore.js +0 -0
  428. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/rm.js +0 -0
  429. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/start.js +0 -0
  430. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/status.js +0 -0
  431. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/project/stop.js +0 -0
  432. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/protocol/arguments.json +0 -0
  433. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/protocol/help.js +0 -0
  434. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/protocol/help.txt +0 -0
  435. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/protocol/list.js +0 -0
  436. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/protocol/remove.js +0 -0
  437. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/protocol/set.js +0 -0
  438. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/scope/add.js +0 -0
  439. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/scope/help.js +0 -0
  440. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/scope/help.txt +0 -0
  441. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/scope/link-local.js +0 -0
  442. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/scope/link-production.js +0 -0
  443. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/scope/list.js +0 -0
  444. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/scope/remove.js +0 -0
  445. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/scope/rm.js +0 -0
  446. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/scope/use.js +0 -0
  447. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/secrets/arguments.json +0 -0
  448. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/secrets/check.js +0 -0
  449. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/secrets/help.js +0 -0
  450. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/secrets/help.txt +0 -0
  451. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/secrets/scan.js +0 -0
  452. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/service/help.js +0 -0
  453. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/service/help.txt +0 -0
  454. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/service/list.js +0 -0
  455. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/service/man.js +0 -0
  456. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/service/start.js +0 -0
  457. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd/view/add.js +0 -0
  458. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd-status-format/package.json +0 -0
  459. /package/framework/{v0.6.6 → v0.6.7}/lib/cmd-status-format/src/main.js +0 -0
  460. /package/framework/{v0.6.6 → v0.6.7}/lib/collection/README.md +0 -0
  461. /package/framework/{v0.6.6 → v0.6.7}/lib/collection/build.json +0 -0
  462. /package/framework/{v0.6.6 → v0.6.7}/lib/collection/package.json +0 -0
  463. /package/framework/{v0.6.6 → v0.6.7}/lib/collection/src/main.js +0 -0
  464. /package/framework/{v0.6.6 → v0.6.7}/lib/config.js +0 -0
  465. /package/framework/{v0.6.6 → v0.6.7}/lib/connector-config/package.json +0 -0
  466. /package/framework/{v0.6.6 → v0.6.7}/lib/connector-config/src/main.js +0 -0
  467. /package/framework/{v0.6.6 → v0.6.7}/lib/connector-error/package.json +0 -0
  468. /package/framework/{v0.6.6 → v0.6.7}/lib/connector-error/src/main.js +0 -0
  469. /package/framework/{v0.6.6 → v0.6.7}/lib/connector-registry/package.json +0 -0
  470. /package/framework/{v0.6.6 → v0.6.7}/lib/connector-registry/src/main.js +0 -0
  471. /package/framework/{v0.6.6 → v0.6.7}/lib/cron/README.md +0 -0
  472. /package/framework/{v0.6.6 → v0.6.7}/lib/cron/package.json +0 -0
  473. /package/framework/{v0.6.6 → v0.6.7}/lib/cron/src/main.js +0 -0
  474. /package/framework/{v0.6.6 → v0.6.7}/lib/domain/LICENSE +0 -0
  475. /package/framework/{v0.6.6 → v0.6.7}/lib/domain/README.md +0 -0
  476. /package/framework/{v0.6.6 → v0.6.7}/lib/domain/package.json +0 -0
  477. /package/framework/{v0.6.6 → v0.6.7}/lib/domain/src/main.js +0 -0
  478. /package/framework/{v0.6.6 → v0.6.7}/lib/dto/package.json +0 -0
  479. /package/framework/{v0.6.6 → v0.6.7}/lib/dto/src/main.js +0 -0
  480. /package/framework/{v0.6.6 → v0.6.7}/lib/dto-pipe/package.json +0 -0
  481. /package/framework/{v0.6.6 → v0.6.7}/lib/dto-pipe/src/main.js +0 -0
  482. /package/framework/{v0.6.6 → v0.6.7}/lib/dto-types/package.json +0 -0
  483. /package/framework/{v0.6.6 → v0.6.7}/lib/dto-types/src/main.js +0 -0
  484. /package/framework/{v0.6.6 → v0.6.7}/lib/generator/index.js +0 -0
  485. /package/framework/{v0.6.6 → v0.6.7}/lib/i18n/package.json +0 -0
  486. /package/framework/{v0.6.6 → v0.6.7}/lib/i18n/src/main.js +0 -0
  487. /package/framework/{v0.6.6 → v0.6.7}/lib/image-build/package.json +0 -0
  488. /package/framework/{v0.6.6 → v0.6.7}/lib/image-build/src/main.js +0 -0
  489. /package/framework/{v0.6.6 → v0.6.7}/lib/inherits/LICENSE +0 -0
  490. /package/framework/{v0.6.6 → v0.6.7}/lib/inherits/README.md +0 -0
  491. /package/framework/{v0.6.6 → v0.6.7}/lib/inherits/package.json +0 -0
  492. /package/framework/{v0.6.6 → v0.6.7}/lib/inherits/src/main.js +0 -0
  493. /package/framework/{v0.6.6 → v0.6.7}/lib/inspector-events/package.json +0 -0
  494. /package/framework/{v0.6.6 → v0.6.7}/lib/inspector-events/src/main.js +0 -0
  495. /package/framework/{v0.6.6 → v0.6.7}/lib/inspector-redact/package.json +0 -0
  496. /package/framework/{v0.6.6 → v0.6.7}/lib/inspector-redact/src/main.js +0 -0
  497. /package/framework/{v0.6.6 → v0.6.7}/lib/instrument/package.json +0 -0
  498. /package/framework/{v0.6.6 → v0.6.7}/lib/instrument/src/main.js +0 -0
  499. /package/framework/{v0.6.6 → v0.6.7}/lib/job/package.json +0 -0
  500. /package/framework/{v0.6.6 → v0.6.7}/lib/job/src/main.js +0 -0
  501. /package/framework/{v0.6.6 → v0.6.7}/lib/job-store.js +0 -0
  502. /package/framework/{v0.6.6 → v0.6.7}/lib/json-config-header/package.json +0 -0
  503. /package/framework/{v0.6.6 → v0.6.7}/lib/json-config-header/src/main.js +0 -0
  504. /package/framework/{v0.6.6 → v0.6.7}/lib/loading-state/package.json +0 -0
  505. /package/framework/{v0.6.6 → v0.6.7}/lib/loading-state/src/main.js +0 -0
  506. /package/framework/{v0.6.6 → v0.6.7}/lib/logger/README.md +0 -0
  507. /package/framework/{v0.6.6 → v0.6.7}/lib/logger/package.json +0 -0
  508. /package/framework/{v0.6.6 → v0.6.7}/lib/logger/src/containers/default/index.js +0 -0
  509. /package/framework/{v0.6.6 → v0.6.7}/lib/logger/src/containers/file/index.js +0 -0
  510. /package/framework/{v0.6.6 → v0.6.7}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  511. /package/framework/{v0.6.6 → v0.6.7}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  512. /package/framework/{v0.6.6 → v0.6.7}/lib/logger/src/containers/mq/index.js +0 -0
  513. /package/framework/{v0.6.6 → v0.6.7}/lib/logger/src/containers/mq/listener.js +0 -0
  514. /package/framework/{v0.6.6 → v0.6.7}/lib/logger/src/containers/mq/speaker.js +0 -0
  515. /package/framework/{v0.6.6 → v0.6.7}/lib/logger/src/helper.js +0 -0
  516. /package/framework/{v0.6.6 → v0.6.7}/lib/logger/src/main.js +0 -0
  517. /package/framework/{v0.6.6 → v0.6.7}/lib/math/index.js +0 -0
  518. /package/framework/{v0.6.6 → v0.6.7}/lib/mcp-dispatch/package.json +0 -0
  519. /package/framework/{v0.6.6 → v0.6.7}/lib/mcp-dispatch/src/main.js +0 -0
  520. /package/framework/{v0.6.6 → v0.6.7}/lib/mcp-http/package.json +0 -0
  521. /package/framework/{v0.6.6 → v0.6.7}/lib/mcp-http/src/main.js +0 -0
  522. /package/framework/{v0.6.6 → v0.6.7}/lib/mcp-server/package.json +0 -0
  523. /package/framework/{v0.6.6 → v0.6.7}/lib/mcp-server/src/main.js +0 -0
  524. /package/framework/{v0.6.6 → v0.6.7}/lib/merge/README.md +0 -0
  525. /package/framework/{v0.6.6 → v0.6.7}/lib/merge/package.json +0 -0
  526. /package/framework/{v0.6.6 → v0.6.7}/lib/merge/src/main.js +0 -0
  527. /package/framework/{v0.6.6 → v0.6.7}/lib/metrics/package.json +0 -0
  528. /package/framework/{v0.6.6 → v0.6.7}/lib/metrics/src/main.js +0 -0
  529. /package/framework/{v0.6.6 → v0.6.7}/lib/model.js +0 -0
  530. /package/framework/{v0.6.6 → v0.6.7}/lib/net-locality/package.json +0 -0
  531. /package/framework/{v0.6.6 → v0.6.7}/lib/net-locality/src/main.js +0 -0
  532. /package/framework/{v0.6.6 → v0.6.7}/lib/nunjucks-filters/README.md +0 -0
  533. /package/framework/{v0.6.6 → v0.6.7}/lib/nunjucks-filters/package.json +0 -0
  534. /package/framework/{v0.6.6 → v0.6.7}/lib/nunjucks-filters/src/main.js +0 -0
  535. /package/framework/{v0.6.6 → v0.6.7}/lib/nunjucks-resolver/package.json +0 -0
  536. /package/framework/{v0.6.6 → v0.6.7}/lib/nunjucks-resolver/src/main.js +0 -0
  537. /package/framework/{v0.6.6 → v0.6.7}/lib/proc.js +0 -0
  538. /package/framework/{v0.6.6 → v0.6.7}/lib/release-watch/package.json +0 -0
  539. /package/framework/{v0.6.6 → v0.6.7}/lib/release-watch/src/main.js +0 -0
  540. /package/framework/{v0.6.6 → v0.6.7}/lib/render-cache/package.json +0 -0
  541. /package/framework/{v0.6.6 → v0.6.7}/lib/render-cache/src/main.js +0 -0
  542. /package/framework/{v0.6.6 → v0.6.7}/lib/render-cache-store.js +0 -0
  543. /package/framework/{v0.6.6 → v0.6.7}/lib/routing/README.md +0 -0
  544. /package/framework/{v0.6.6 → v0.6.7}/lib/routing/build.json +0 -0
  545. /package/framework/{v0.6.6 → v0.6.7}/lib/routing/package.json +0 -0
  546. /package/framework/{v0.6.6 → v0.6.7}/lib/routing/src/main.js +0 -0
  547. /package/framework/{v0.6.6 → v0.6.7}/lib/routing/src/radix.js +0 -0
  548. /package/framework/{v0.6.6 → v0.6.7}/lib/routing-introspect/package.json +0 -0
  549. /package/framework/{v0.6.6 → v0.6.7}/lib/routing-introspect/src/main.js +0 -0
  550. /package/framework/{v0.6.6 → v0.6.7}/lib/secrets/package.json +0 -0
  551. /package/framework/{v0.6.6 → v0.6.7}/lib/secrets/src/backends/env.js +0 -0
  552. /package/framework/{v0.6.6 → v0.6.7}/lib/secrets/src/backends/file.js +0 -0
  553. /package/framework/{v0.6.6 → v0.6.7}/lib/secrets/src/env-file.js +0 -0
  554. /package/framework/{v0.6.6 → v0.6.7}/lib/session-store.js +0 -0
  555. /package/framework/{v0.6.6 → v0.6.7}/lib/shell.js +0 -0
  556. /package/framework/{v0.6.6 → v0.6.7}/lib/sqlite-driver.js +0 -0
  557. /package/framework/{v0.6.6 → v0.6.7}/lib/state.js +0 -0
  558. /package/framework/{v0.6.6 → v0.6.7}/lib/swig-filters/README.md +0 -0
  559. /package/framework/{v0.6.6 → v0.6.7}/lib/swig-filters/package.json +0 -0
  560. /package/framework/{v0.6.6 → v0.6.7}/lib/swig-filters/src/main.js +0 -0
  561. /package/framework/{v0.6.6 → v0.6.7}/lib/swig-resolver/package.json +0 -0
  562. /package/framework/{v0.6.6 → v0.6.7}/lib/swig-resolver/src/main.js +0 -0
  563. /package/framework/{v0.6.6 → v0.6.7}/lib/template-loaders/package.json +0 -0
  564. /package/framework/{v0.6.6 → v0.6.7}/lib/template-loaders/src/loaders/http.js +0 -0
  565. /package/framework/{v0.6.6 → v0.6.7}/lib/template-loaders/src/loaders/memory.js +0 -0
  566. /package/framework/{v0.6.6 → v0.6.7}/lib/template-loaders/src/main.js +0 -0
  567. /package/framework/{v0.6.6 → v0.6.7}/lib/url/README.md +0 -0
  568. /package/framework/{v0.6.6 → v0.6.7}/lib/url/index.js +0 -0
  569. /package/framework/{v0.6.6 → v0.6.7}/lib/url/routing.json +0 -0
  570. /package/framework/{v0.6.6 → v0.6.7}/lib/uuid/package.json +0 -0
  571. /package/framework/{v0.6.6 → v0.6.7}/lib/uuid/src/main.js +0 -0
  572. /package/framework/{v0.6.6 → v0.6.7}/lib/validator.js +0 -0
  573. /package/framework/{v0.6.6 → v0.6.7}/lib/watcher/package.json +0 -0
  574. /package/framework/{v0.6.6 → v0.6.7}/lib/watcher/src/main.js +0 -0
  575. /package/framework/{v0.6.6 → v0.6.7}/lib/ws-framing/package.json +0 -0
  576. /package/framework/{v0.6.6 → v0.6.7}/lib/ws-framing/src/main.js +0 -0
  577. /package/framework/{v0.6.6 → v0.6.7}/lib/ws-query/package.json +0 -0
  578. /package/framework/{v0.6.6 → v0.6.7}/lib/ws-query/src/main.js +0 -0
  579. /package/framework/{v0.6.6 → v0.6.7}/lib/ws-session/package.json +0 -0
  580. /package/framework/{v0.6.6 → v0.6.7}/lib/ws-session/src/main.js +0 -0
@@ -3406,12 +3406,24 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
3406
3406
  * Files are published atomically (temp sibling + rename — #B223), so a
3407
3407
  * reader never observes a partially-written file under the final name.
3408
3408
  *
3409
- * @param {string} target is the upload dir destination
3409
+ * #STO1 (slice 1) — a file whose upload group carries a `driver` key
3410
+ * (`settings.json > upload.groups.<name>.driver`) is published through the
3411
+ * named `settings.storage` driver instead of moving to `target`; its result
3412
+ * entry then carries an OPAQUE `key` (+ `group`, `driver`, and the layer's
3413
+ * on-disk `size`) and NO `filename` — read it back via
3414
+ * `gina.storage(driver)`. Files in groups without a `driver` keep the
3415
+ * historical move path byte-for-byte, and one call may mix both kinds
3416
+ * (result slots stay 1:1 with the input array). `target` may be `null`
3417
+ * ONLY when every file routes to a driver.
3418
+ *
3419
+ * @param {?string} target is the upload dir destination (required when any
3420
+ * file is NOT driver-routed)
3410
3421
  * @param {array} [files]
3411
3422
  *
3412
3423
  * @callback [cb]
3413
- * @param {Error|boolean} error - `false` on success; the real move `Error`
3414
- * on failure (`No file to upload` only when there was nothing to store)
3424
+ * @param {Error|boolean} error - `false` on success; the real move/publish
3425
+ * `Error` on failure (`No file to upload` only when there was nothing to
3426
+ * store)
3415
3427
  * @param {array} files
3416
3428
  *
3417
3429
  * @event
@@ -3427,9 +3439,106 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
3427
3439
  * }
3428
3440
  * self.renderJSON({ files: files });
3429
3441
  * });
3442
+ *
3443
+ * @example
3444
+ * // a driver-routed group's entries carry a storage key, not a path
3445
+ * self.store(uploadDir, req.files, function onStored(err, files) {
3446
+ * if (err) { return self.throwError(500, err); }
3447
+ * // files[i] = { file, filename, size, type, encoding } (moved)
3448
+ * // files[i] = { file, group, driver, key, size, type, encoding } (driver-routed)
3449
+ * self.renderJSON({ files: files });
3450
+ * });
3430
3451
  * */
3431
3452
  this.store = async function(target, files, cb) {
3432
3453
 
3454
+ // #STO1 — per-group storage-driver routing (slice 1). Group config is
3455
+ // read DIRECTLY off the request's resolved bundle conf (a getConfig()
3456
+ // call would clone the whole settings block per store() call); only the
3457
+ // literal `driver` string is consumed here — every placeholder-bearing
3458
+ // upload key stays boot-side territory.
3459
+ var _uploadGroups = ( local.options
3460
+ && local.options.conf
3461
+ && local.options.conf.content
3462
+ && local.options.conf.content.settings
3463
+ && local.options.conf.content.settings.upload
3464
+ && local.options.conf.content.settings.upload.groups
3465
+ ) ? local.options.conf.content.settings.upload.groups : null;
3466
+
3467
+ /**
3468
+ * Resolve a file record's upload group to its configured storage driver
3469
+ * name, or `null` when the group is not driver-routed.
3470
+ *
3471
+ * A record with no `group` routes as `untagged` — the same default the
3472
+ * multipart gate applies — which also covers caller-synthesized file
3473
+ * lists that never went through the parser.
3474
+ *
3475
+ * @inner
3476
+ * @param {object} fileRecord - A `req.files`-shaped record.
3477
+ * @returns {?string} The driver name, or `null` (historical move path).
3478
+ */
3479
+ var getFileDriverName = function(fileRecord) {
3480
+ var g = ( fileRecord && fileRecord.group ) ? fileRecord.group : 'untagged';
3481
+ if ( _uploadGroups
3482
+ && _uploadGroups[g]
3483
+ && typeof(_uploadGroups[g].driver) == 'string'
3484
+ && _uploadGroups[g].driver.length > 0
3485
+ ) {
3486
+ return _uploadGroups[g].driver;
3487
+ }
3488
+ return null;
3489
+ };
3490
+
3491
+ /**
3492
+ * Publish driver-routed entries through `lib/storage`, sequentially —
3493
+ * mirroring `movefiles`: abort on the FIRST failure, keep
3494
+ * already-published objects, and tolerate a source consumed by the
3495
+ * upload tmp-cleanup timer AFTER a successful publish (ENOENT).
3496
+ *
3497
+ * Each entry's pre-filled result slot receives the layer's opaque `key`
3498
+ * and its on-disk `size` on publish.
3499
+ *
3500
+ * @inner
3501
+ * @param {object[]} entries - `{ record, fileName, driverName, slot }` tuples.
3502
+ * @param {function} done - `done(err)` — `false` once every entry published.
3503
+ * @returns {void}
3504
+ */
3505
+ var putfiles = function(entries, done) {
3506
+ var e = 0;
3507
+ var next = function() {
3508
+ if ( e >= entries.length ) {
3509
+ return done(false);
3510
+ }
3511
+ var entry = entries[e];
3512
+ var driver = null;
3513
+ try {
3514
+ driver = lib.storage.get(entry.driverName);
3515
+ } catch (resolveErr) {
3516
+ return done(resolveErr);
3517
+ }
3518
+ driver.put(fs.createReadStream(entry.record.path), {
3519
+ originalName : entry.fileName,
3520
+ contentType : entry.record.type
3521
+ }, function (putErr, putRes) {
3522
+ if (putErr) {
3523
+ return done(putErr);
3524
+ }
3525
+ try {
3526
+ fs.unlinkSync(entry.record.path);
3527
+ } catch (unlinkErr) {
3528
+ // the source vanishing AFTER a successful publish is not
3529
+ // a failure (e.g. the upload tmp-cleanup timer took it)
3530
+ if (unlinkErr.code != 'ENOENT') {
3531
+ return done(unlinkErr);
3532
+ }
3533
+ }
3534
+ entry.slot.key = putRes.key;
3535
+ entry.slot.size = putRes.size;
3536
+ ++e;
3537
+ next();
3538
+ });
3539
+ };
3540
+ next();
3541
+ };
3433
3542
 
3434
3543
  var start = function(target, files, cb) {
3435
3544
 
@@ -3463,10 +3572,57 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
3463
3572
  }
3464
3573
  } else {
3465
3574
  // saving files
3466
- var uploadDir = new _(target)
3575
+ var uploadDir = null
3467
3576
  , list = []
3468
3577
  , i = 0
3469
- , folder = uploadDir.mkdirSync();
3578
+ , folder = null;
3579
+
3580
+ // #STO1 — partition FIRST: a driver-routed file never touches
3581
+ // `target`, so the target dir is only required — and only
3582
+ // created — when at least one file stays on the historical
3583
+ // move path.
3584
+ var fileName = null
3585
+ , routed = []
3586
+ , unrouted = [];
3587
+ for (var len = files.length; i < len; ++i ){
3588
+
3589
+ fileName = files[i].filename || files[i].originalFilename
3590
+
3591
+ var _driverName = getFileDriverName(files[i]);
3592
+ if ( _driverName ) {
3593
+ // slot filled now so the result keeps 1:1 index parity
3594
+ // with `files`; `key`/`size` land on publish
3595
+ uploadedFiles[i] = {
3596
+ file : fileName,
3597
+ group : ( files[i].group ) ? files[i].group : 'untagged',
3598
+ driver : _driverName,
3599
+ key : null,
3600
+ size : files[i].size,
3601
+ type : files[i].type,
3602
+ encoding : files[i].encoding
3603
+ };
3604
+ routed.push({ record: files[i], fileName: fileName, driverName: _driverName, slot: uploadedFiles[i] });
3605
+ continue;
3606
+ }
3607
+ unrouted.push({ record: files[i], fileName: fileName, slotIndex: i });
3608
+ }
3609
+
3610
+ if ( unrouted.length && (target == null || target === '') ) {
3611
+ // #STO1 — an all-routed call may omit the target; a call
3612
+ // with files on the move path cannot
3613
+ var _targetErr = new Error('Controller::store — a target directory is required: `'+ unrouted[0].fileName +'` (group `'+ (( unrouted[0].record.group ) ? unrouted[0].record.group : 'untagged') +'`) is not routed to a storage driver');
3614
+ if (cb) {
3615
+ cb(_targetErr)
3616
+ } else {
3617
+ self.emit('uploaded', _targetErr)
3618
+ }
3619
+ return;
3620
+ }
3621
+
3622
+ if ( unrouted.length ) {
3623
+ uploadDir = new _(target);
3624
+ folder = uploadDir.mkdirSync();
3625
+ }
3470
3626
 
3471
3627
  if (folder instanceof Error) {
3472
3628
  if (cb) {
@@ -3476,22 +3632,19 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
3476
3632
  }
3477
3633
  } else {
3478
3634
  // files list
3479
- var fileName = null;
3480
- for (var len = files.length; i < len; ++i ){
3481
-
3482
- fileName = files[i].filename || files[i].originalFilename
3635
+ for (var u = 0, uLen = unrouted.length; u < uLen; ++u ){
3483
3636
 
3484
- list[i] = {
3485
- source: files[i].path,
3486
- target: _(uploadDir.toString() + '/' + fileName)
3637
+ list[u] = {
3638
+ source: unrouted[u].record.path,
3639
+ target: _(uploadDir.toString() + '/' + unrouted[u].fileName)
3487
3640
  };
3488
3641
 
3489
- uploadedFiles[i] = {
3490
- file : fileName,
3491
- filename : list[i].target,
3492
- size : files[i].size,
3493
- type : files[i].type,
3494
- encoding : files[i].encoding
3642
+ uploadedFiles[unrouted[u].slotIndex] = {
3643
+ file : unrouted[u].fileName,
3644
+ filename : list[u].target,
3645
+ size : unrouted[u].record.size,
3646
+ type : unrouted[u].record.type,
3647
+ encoding : unrouted[u].record.encoding
3495
3648
  };
3496
3649
 
3497
3650
  }
@@ -3509,11 +3662,25 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
3509
3662
  self.emit('uploaded', _moveErr)
3510
3663
  }
3511
3664
  } else {
3512
- if (cb) {
3513
- cb(false, uploadedFiles)
3514
- } else {
3515
- self.emit('uploaded', false, uploadedFiles)
3516
- }
3665
+ // #STO1 — then the driver-routed files; abort on the
3666
+ // first failure, keep already-published objects (the
3667
+ // mover's partial-success semantics — no rollback)
3668
+ putfiles(routed, function (putErr) {
3669
+ if (putErr) {
3670
+ var _putErr = ( putErr instanceof Error ) ? putErr : new Error(String(putErr));
3671
+ if (cb) {
3672
+ cb(_putErr)
3673
+ } else {
3674
+ self.emit('uploaded', _putErr)
3675
+ }
3676
+ } else {
3677
+ if (cb) {
3678
+ cb(false, uploadedFiles)
3679
+ } else {
3680
+ self.emit('uploaded', false, uploadedFiles)
3681
+ }
3682
+ }
3683
+ })
3517
3684
  }
3518
3685
  })
3519
3686
  }
@@ -1406,6 +1406,29 @@ isBundleMounted(projects, bundlesPath, getContext('bundle'), function onBundleMo
1406
1406
  process.gina._inspectorEventTopics = [];
1407
1407
  }
1408
1408
 
1409
+ // #B350 — opt-in from settings.json `inspector.queries.captureValues`
1410
+ // (default false). Query statements + timing/shape metadata are always
1411
+ // captured under the dev/window gate; bound parameter VALUES — and
1412
+ // value-bearing statement bodies (a document database's resolved body,
1413
+ // a bulk-insert's inlined records) — reach the console lines and the
1414
+ // Inspector query log only when this is true. A positional bind array
1415
+ // has no key names, so the key-based redact library structurally cannot
1416
+ // cover it; the gate + opt-in are the protection (same contract as the
1417
+ // AI captureText and events captureArgs opt-ins above). Stored on
1418
+ // process.gina so connectors read a cheap slot. Fail-closed.
1419
+ try {
1420
+ var _qInspSettings = (typeof gna.getConfig === 'function') ? gna.getConfig('settings') : null;
1421
+ var _qInspConf = (_qInspSettings && _qInspSettings.inspector && _qInspSettings.inspector.queries && typeof _qInspSettings.inspector.queries === 'object')
1422
+ ? _qInspSettings.inspector.queries
1423
+ : {};
1424
+ if (!process.gina) process.gina = {};
1425
+ process.gina._inspectorQueryCaptureValues = (_qInspConf.captureValues === true);
1426
+ } catch (qInspErr) {
1427
+ console.warn('[inspector-queries] init skipped: ' + (qInspErr.message || qInspErr));
1428
+ if (!process.gina) process.gina = {};
1429
+ process.gina._inspectorQueryCaptureValues = false;
1430
+ }
1431
+
1409
1432
  // #INS8 — dev-only auto-start of the standalone Inspector
1410
1433
  // bundle (inspector@gina). Best-effort + fail-closed.
1411
1434
  // Gated on:
@@ -1564,6 +1587,142 @@ isBundleMounted(projects, bundlesPath, getContext('bundle'), function onBundleMo
1564
1587
  console.warn('[render-cache] config validation skipped: ' + (rcErr.message || rcErr));
1565
1588
  }
1566
1589
 
1590
+ // #STO1 — pluggable object storage. Validate the bundle's
1591
+ // `storage` block, build any connector-backed metadata
1592
+ // stores, then install the drivers before the first
1593
+ // request. FATAL (#B57 shape) on an unbuildable config:
1594
+ // unlike a cache, a storage layer has no safe degraded
1595
+ // mode — a driver that cannot build would leave put()
1596
+ // writing nowhere, and a root inside a web-served tree
1597
+ // would publish every stored object, and the metadata
1598
+ // database beside them, to anonymous callers.
1599
+ //
1600
+ // NOTE this band runs inside server.on('started'), i.e.
1601
+ // AFTER listen() — so a refusal here exits on an
1602
+ // already-bound port, exactly as the #AI6 and #RC4 blocks
1603
+ // above do. A pre-listen refusal means moving the lint
1604
+ // into core/server.js init() (where the audit trail does
1605
+ // it); kept here for slice 0 so the feature touches one
1606
+ // core file instead of two.
1607
+ try {
1608
+ var _stoAll = config.getInstance();
1609
+ var _stoSettings = null;
1610
+ try {
1611
+ _stoSettings = _stoAll[gna.core.startingApp][env].content.settings.storage;
1612
+ } catch (stoConfErr) { _stoSettings = null; }
1613
+
1614
+ // #STO1 slice 1 — driver-routed upload groups: collect
1615
+ // every bundle's `upload.groups.<g>.driver` bindings as
1616
+ // NEUTRAL tuples (owner/driver/path) so the storage lint
1617
+ // can refuse a dangling reference. The driver set is
1618
+ // process-global (built from the starting app's `storage`
1619
+ // block), so EVERY bundle's groups validate against that
1620
+ // one set. Built BEFORE the `_stoSettings` gate: a
1621
+ // binding with NO storage block at all must fatal, not
1622
+ // silently no-op.
1623
+ var _stoBindings = [];
1624
+ try {
1625
+ for (var _stoBb in _stoAll) {
1626
+ var _stoBup = ( _stoAll[_stoBb] && _stoAll[_stoBb][env]
1627
+ && _stoAll[_stoBb][env].content
1628
+ && _stoAll[_stoBb][env].content.settings
1629
+ && _stoAll[_stoBb][env].content.settings.upload
1630
+ ) ? _stoAll[_stoBb][env].content.settings.upload : null;
1631
+ if ( !_stoBup || !_stoBup.groups || typeof(_stoBup.groups) != 'object' ) { continue; }
1632
+ for (var _stoBg in _stoBup.groups) {
1633
+ var _stoBgrp = _stoBup.groups[_stoBg];
1634
+ if ( _stoBgrp && typeof(_stoBgrp.driver) == 'string' && _stoBgrp.driver.length > 0 ) {
1635
+ _stoBindings.push({
1636
+ owner : _stoBb + '/upload.groups/' + _stoBg,
1637
+ driver : _stoBgrp.driver,
1638
+ path : ( typeof(_stoBgrp.path) == 'string' ) ? _stoBgrp.path : null
1639
+ });
1640
+ }
1641
+ }
1642
+ }
1643
+ } catch (stoBindErr) {
1644
+ console.warn('[storage] could not enumerate upload-group driver bindings — the binding lint is degraded for this boot: ' + (stoBindErr.message || stoBindErr));
1645
+ }
1646
+
1647
+ if ( _stoSettings || _stoBindings.length ) {
1648
+ // Web-served roots, INJECTED into the validator so
1649
+ // lib/storage stays free of gina core (its
1650
+ // import-boundary test enforces that). BOTH
1651
+ // surfaces count: a bundle's publicPath, and any
1652
+ // content.statics target — a statics mapping can
1653
+ // point anywhere on disk, so checking publicPath
1654
+ // alone would leave a hole.
1655
+ var _stoServed = [];
1656
+ try {
1657
+ for (var _stoB in _stoAll) {
1658
+ var _stoBc = _stoAll[_stoB] && _stoAll[_stoB][env];
1659
+ if ( !_stoBc ) { continue; }
1660
+ if ( typeof(_stoBc.publicPath) == 'string' && _stoBc.publicPath && !/\$\{/.test(_stoBc.publicPath) ) {
1661
+ _stoServed.push(_stoBc.publicPath);
1662
+ }
1663
+ var _stoStatics = _stoBc.content && _stoBc.content.statics;
1664
+ for (var _stoU in _stoStatics) {
1665
+ if ( typeof(_stoStatics[_stoU]) == 'string' && _stoStatics[_stoU] && !/\$\{/.test(_stoStatics[_stoU]) ) {
1666
+ _stoServed.push(_stoStatics[_stoU]);
1667
+ }
1668
+ }
1669
+ }
1670
+ } catch (stoServedErr) {
1671
+ console.warn('[storage] could not enumerate every web-served root — the served-root check is degraded for this boot: ' + (stoServedErr.message || stoServedErr));
1672
+ }
1673
+
1674
+ var _stoCheck = lib.storage.validateConfig(_stoSettings, { servedRoots: _stoServed, groupBindings: _stoBindings });
1675
+ for (var _stoW = 0; _stoW < _stoCheck.warnings.length; _stoW++) {
1676
+ console.warn('[storage] ' + _stoCheck.warnings[_stoW]);
1677
+ }
1678
+ if (_stoCheck.fatal) {
1679
+ var _stoFatalMsg = '[storage] invalid storage configuration — aborting boot: ' + _stoCheck.fatal;
1680
+ console.emerg(_stoFatalMsg);
1681
+ // boot-exit-flush: process.exit() truncates async stdio on a pipe.
1682
+ try { fs.writeSync(2, _stoFatalMsg + '\n'); } catch (_e) {}
1683
+ process.exit(1);
1684
+ }
1685
+
1686
+ if (_stoCheck.driverCount > 0) {
1687
+ var _stoDrivers = _stoSettings.drivers;
1688
+ var _stoStores = {};
1689
+ for (var _stoN in _stoDrivers) {
1690
+ if ( typeof(_stoDrivers[_stoN].store) == 'string' && _stoDrivers[_stoN].store.length > 0 ) {
1691
+ try {
1692
+ _stoStores[_stoN] = lib.StorageStore(_stoDrivers[_stoN].store);
1693
+ } catch (stoStoreErr) {
1694
+ var _stoStoreMsg = '[storage] driver `' + _stoN + '` names store `' + _stoDrivers[_stoN].store + '`, which could not be built — aborting boot: ' + (stoStoreErr.message || stoStoreErr);
1695
+ console.emerg(_stoStoreMsg + '\n' + (stoStoreErr.stack || ''));
1696
+ try { fs.writeSync(2, _stoStoreMsg + '\n'); } catch (_e) {}
1697
+ process.exit(1);
1698
+ }
1699
+ }
1700
+ }
1701
+ try {
1702
+ // `warn` surfaces the per-root strategy-stamp checks
1703
+ // (§4 — a strategy flip on populated storage warns
1704
+ // every boot; a hash change warns once). Same sink as
1705
+ // the validateConfig warnings above.
1706
+ if ( lib.storage.start({ drivers: _stoDrivers, default: _stoSettings.default, stores: _stoStores, warn: function(stoWarnMsg) { console.warn('[storage] ' + stoWarnMsg); } }) ) {
1707
+ // console.info, NOT debug — the shipped
1708
+ // default log level filters debug, and an
1709
+ // operator needs to see which roots went live.
1710
+ console.info('[storage] ' + _stoCheck.driverCount + ' driver(s) ready' + ( _stoSettings.default ? ' (default: ' + _stoSettings.default + ')' : '' ));
1711
+ } else {
1712
+ console.warn('[storage] drivers were already installed — this boot wiring was ignored');
1713
+ }
1714
+ } catch (stoStartErr) {
1715
+ var _stoStartMsg = '[storage] drivers could not be built — aborting boot: ' + (stoStartErr.message || stoStartErr);
1716
+ console.emerg(_stoStartMsg + '\n' + (stoStartErr.stack || ''));
1717
+ try { fs.writeSync(2, _stoStartMsg + '\n'); } catch (_e) {}
1718
+ process.exit(1);
1719
+ }
1720
+ }
1721
+ }
1722
+ } catch (stoErr) {
1723
+ console.warn('[storage] config validation skipped: ' + (stoErr.message || stoErr));
1724
+ }
1725
+
1567
1726
  // #CE1 — `server.transientErrors` boot-time shape check
1568
1727
  // (warn-only, NEVER fatal: the opt-in governs how a
1569
1728
  // transient datastore error RENDERS — a bad value must
@@ -2273,6 +2432,33 @@ gna.getModelEntity = getModelEntity;
2273
2432
  */
2274
2433
  gna.registerBusyProbe = lib.releaseWatch.registerBusyProbe;
2275
2434
 
2435
+ /**
2436
+ * #STO1 — get a configured object-storage driver.
2437
+ *
2438
+ * The producer surface for server-GENERATED files (rendered PDFs, exports,
2439
+ * archives): anything that is not an inbound upload. The upload path keeps its
2440
+ * own `self.store()` route for now.
2441
+ *
2442
+ * Assigned UNCONDITIONALLY, so a bundle with no `storage` block gets a named
2443
+ * error naming the fix instead of `gna.storage is not a function` — and so the
2444
+ * declaration is a plain function rather than one the caller must narrow.
2445
+ *
2446
+ * @param {string} [name] - Driver name; omitted returns the `storage.default` driver.
2447
+ * @returns {object} The driver (`put` / `get` / `stat` / `release` / `resolve` / `capabilities`).
2448
+ * @throws {Error} When storage is not configured, when no default is declared and `name`
2449
+ * was omitted, or when `name` is not a configured driver.
2450
+ * @example
2451
+ * gna.storage().put(pdfStream, { originalName: 'invoice.pdf' }, function (err, res) {
2452
+ * if (err) { return next(err); }
2453
+ * invoice.storageKey = res.key; // opaque — store it, never parse it
2454
+ * });
2455
+ * @example
2456
+ * gina.storage('archives'); // a named driver
2457
+ */
2458
+ gna.storage = function(name) {
2459
+ return lib.storage.get(name);
2460
+ };
2461
+
2276
2462
  // ── JSON helper (framework/v*/helpers/json/src/main.js) ──────────────────
2277
2463
 
2278
2464
  /**
@@ -417,7 +417,22 @@ function FormValidatorUtil(data, $fields, xhrOptions, fieldsSet, culture) {
417
417
  // - previous error detected
418
418
  if ( !self.isValid() ) {
419
419
  console.debug('stopping on errors ...');
420
- triggerEvent(gina, this.target, 'asyncCompleted.' + id, self[this['name']]);
420
+ // #B338 — release ASYNCHRONOUSLY. A synchronous trigger fires the
421
+ // completion waiter MID-FIELD-LOOP (inside this very field's rule
422
+ // application), so the pass composed its payload before LATER
423
+ // fields were adjudicated — a field declared after the query field
424
+ // vanished from the submit verdict, its rendered error was then
425
+ // CLEARED by the render pass, and the outcome depended on field
426
+ // ORDER. A microtask runs once the call stack empties — after the
427
+ // whole field loop and its terminal block — which is exactly the
428
+ // shape a real XHR settle already has: one completion timing for
429
+ // every release path. (`_skipTarget`/`_skipField` are snapshotted:
430
+ // `this` is not the field object inside the deferred call.)
431
+ // was: triggerEvent(gina, this.target, 'asyncCompleted.' + id, self[this['name']]);
432
+ var _skipTarget = this.target, _skipFieldName = this['name'];
433
+ queueMicrotask(function deferredKnownInvalidRelease() {
434
+ triggerEvent(gina, _skipTarget, 'asyncCompleted.' + id, self[_skipFieldName]);
435
+ });
421
436
  //return self[this.name];
422
437
  return;
423
438
  }
@@ -452,6 +467,20 @@ function FormValidatorUtil(data, $fields, xhrOptions, fieldsSet, culture) {
452
467
 
453
468
  }
454
469
  } else if (testedValue === this.value) {
470
+ // #B332 — while an XHR for this very (field, value) is still IN FLIGHT the
471
+ // cache below has no verdict yet, and the immediate release at the end of
472
+ // this branch woke every armed waiter with a verdict-less field object —
473
+ // the submit pass then completed on its sync-only rules and sent while the
474
+ // authoritative answer was still on the wire. Do nothing here: the pending
475
+ // request's settle (processQueryResult / releaseQueryWaiter — both clear
476
+ // the marker first) triggers `asyncCompleted.<id>` and wakes every waiter
477
+ // with the real verdict. Marker is set right before xhr.send() below.
478
+ if (
479
+ this.target && this.target.dataset
480
+ && this.target.dataset.ginaFormValidatorQueryPending === this.value
481
+ ) {
482
+ return self[this.name];
483
+ }
455
484
  // not resending to backend, but in case of cached errors, re display same error message
456
485
  var hasCachedErrors = false;
457
486
  if (
@@ -472,7 +501,18 @@ function FormValidatorUtil(data, $fields, xhrOptions, fieldsSet, culture) {
472
501
  }
473
502
  // Do not remove this test
474
503
  if ( typeof( gina.events[_evt]) != 'undefined' ) {
475
- triggerEvent(gina, this.target, _evt, self[this['name']]);
504
+ // #B338 — same deferral as the known-invalid release above: a
505
+ // cached-verdict re-check fires synchronously mid-field-loop,
506
+ // and the waiter it wakes must not compose the pass verdict
507
+ // before the remaining fields are adjudicated (measured: the
508
+ // second click on an unchanged registered value delivered a
509
+ // payload missing every field declared after the query field,
510
+ // clearing their rendered errors).
511
+ // was: triggerEvent(gina, this.target, _evt, self[this['name']]);
512
+ var _cacheTarget = this.target, _cacheFieldName = this['name'];
513
+ queueMicrotask(function deferredCachedVerdictRelease() {
514
+ triggerEvent(gina, _cacheTarget, _evt, self[_cacheFieldName]);
515
+ });
476
516
  }
477
517
 
478
518
  return self[this.name];
@@ -607,6 +647,17 @@ function FormValidatorUtil(data, $fields, xhrOptions, fieldsSet, culture) {
607
647
 
608
648
  var processQueryResult = function(result) {
609
649
 
650
+ // #B332 — this request has settled: release the in-flight marker BEFORE any
651
+ // processing (a throw below routes to releaseQueryWaiter, which also clears).
652
+ // Value-guarded so a newer request's marker — a keystroke re-fired the query
653
+ // while this one was on the wire — is never cleared by a stale settle.
654
+ if (
655
+ _this.target && _this.target.dataset
656
+ && _this.target.dataset.ginaFormValidatorQueryPending === String(_this.value)
657
+ ) {
658
+ delete _this.target.dataset.ginaFormValidatorQueryPending;
659
+ }
660
+
610
661
  // #B87: a boolean checkbox routed through a `query` rule carries a real
611
662
  // boolean — `.toLowerCase()` only applies to string values
612
663
  _this.value = local['data'][_this.name] = (_this.value && typeof(_this.value) == 'string') ? _this.value.toLowerCase() : _this.value;
@@ -737,6 +788,17 @@ function FormValidatorUtil(data, $fields, xhrOptions, fieldsSet, culture) {
737
788
  */
738
789
  var releaseQueryWaiter = function(err) {
739
790
  console.warn('[ FormValidator ] `query` result handling failed for field `'+ (_this && _this.name) +'`: '+ ( err && err.message || err ));
791
+ // #B332 — the failed settle still ends this request: clear the in-flight
792
+ // marker (value-guarded, same as processQueryResult) or the same-value
793
+ // fast path would treat the field as pending forever.
794
+ try {
795
+ if (
796
+ _this.target && _this.target.dataset
797
+ && _this.target.dataset.ginaFormValidatorQueryPending === String(_this.value)
798
+ ) {
799
+ delete _this.target.dataset.ginaFormValidatorQueryPending;
800
+ }
801
+ } catch (ignorePendingClear) {}
740
802
  try {
741
803
  var _releaseId = _this.target && (_this.target.id || _this.target.getAttribute('id'));
742
804
  if (_releaseId) {
@@ -876,6 +938,13 @@ function FormValidatorUtil(data, $fields, xhrOptions, fieldsSet, culture) {
876
938
  }
877
939
  }// xhr.onload = function () {
878
940
 
941
+ // #B332 — mark the (field, value) as in flight BEFORE the wire call: the
942
+ // same-value fast path above must not immediate-release a verdict-less
943
+ // field while this request is pending. Cleared at both settle chokepoints
944
+ // (processQueryResult / releaseQueryWaiter), value-guarded.
945
+ if ( _this.target && _this.target.dataset ) {
946
+ _this.target.dataset.ginaFormValidatorQueryPending = _this.value;
947
+ }
879
948
  if (data) {
880
949
  xhr.send( queryData ); // stringyfied
881
950
  } else {
@@ -1212,15 +1281,14 @@ function FormValidatorUtil(data, $fields, xhrOptions, fieldsSet, culture) {
1212
1281
  }
1213
1282
 
1214
1283
  try {
1215
- // security checks
1216
- compiledCondition = compiledCondition.replace(/(\(|\)|return)/g, '');
1217
1284
  // #SCS1e (2026-04-24) — replaced the two `eval(...)` calls below with
1218
- // auditable equivalents. After `$var` substitution (lines 910-920) and
1219
- // paren/return strip above, `compiledCondition` is either:
1285
+ // auditable equivalents. After `$var` substitution (lines 910-920),
1286
+ // `compiledCondition` is either:
1220
1287
  // (a) a regex literal `/<body>/<flags>` (when `/^\//` matches), or
1221
1288
  // (b) a binary comparison `<operand><op><operand>` where operand ∈
1222
1289
  // {number, "string", true, false, null, undefined} and op ∈
1223
- // {===, !==, ==, !=, <, >, <=, >=}.
1290
+ // {===, !==, ==, !=, <, >, <=, >=} — paren/`return`-stripped
1291
+ // inside its branch, before the grammar match.
1224
1292
  // Old eval executed arbitrary JS; any value reaching `$var` substitution
1225
1293
  // that contained a quote (e.g. user input `bar"; process.exit();//`)
1226
1294
  // could escape the `"..."` wrapper at line 916 and reach eval as
@@ -1231,6 +1299,18 @@ function FormValidatorUtil(data, $fields, xhrOptions, fieldsSet, culture) {
1231
1299
  // } else {
1232
1300
  // isValid = eval(compiledCondition)
1233
1301
  // }
1302
+ // #B345 — the paren/`return` strip used to run HERE, before the branch
1303
+ // decision, so it also mangled every parenthesized regex literal:
1304
+ // groups were destroyed (`^(a|b)$` compiled as `^a|b$`, rebinding the
1305
+ // anchors and turning middle alternatives substring-permissive),
1306
+ // quantified groups were requantified (`(#TAG)?` became `#TA` plus an
1307
+ // optional `G`), and a literal `return` inside a pattern was deleted —
1308
+ // all silently, because the stripped text still compiled as a valid
1309
+ // regex. The strip protects the BINARY-COMPARISON shape only, so it
1310
+ // now lives inside that branch; the regex branch never evaluates the
1311
+ // condition as JS (`new RegExp(body, flags).test(value)` — no eval),
1312
+ // so parentheses there are legitimate syntax and a regex literal is
1313
+ // compiled exactly as authored.
1234
1314
  if ( /^\//.test(compiledCondition) ) {
1235
1315
  var _scsRegexMatch = compiledCondition.match(/^\/(.+)\/([a-z]*)$/);
1236
1316
  if (!_scsRegexMatch) {
@@ -1238,6 +1318,10 @@ function FormValidatorUtil(data, $fields, xhrOptions, fieldsSet, culture) {
1238
1318
  }
1239
1319
  isValid = new RegExp(_scsRegexMatch[1], _scsRegexMatch[2]).test(this.value);
1240
1320
  } else {
1321
+ // security checks (#SCS1e) — strip parens/`return` before the
1322
+ // grammar-locked match; authored parens in a comparison stay
1323
+ // tolerated (`("a") === ("a")` strips to `"a" === "a"`).
1324
+ compiledCondition = compiledCondition.replace(/(\(|\)|return)/g, '');
1241
1325
  var _SCS_BINARY_RE = /^\s*(null|undefined|true|false|"[^"]*"|-?\d+(?:\.\d+)?)\s*(===|!==|<=|>=|==|!=|<|>)\s*(null|undefined|true|false|"[^"]*"|-?\d+(?:\.\d+)?)\s*$/;
1242
1326
  var _scsBinMatch = (typeof(compiledCondition) == 'string') ? compiledCondition.match(_SCS_BINARY_RE) : null;
1243
1327
  if (!_scsBinMatch) {