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
@@ -0,0 +1,413 @@
1
+ var fs = require('fs');
2
+ var http = require('http');
3
+ var https = require('https');
4
+ var nodePath = require('path');
5
+
6
+ var CmdHelper = require('./../helper');
7
+ var storageLib = require('../../index').storage;
8
+ var console = lib.logger;
9
+
10
+ /**
11
+ * @module gina/lib/cmd/storage/verify
12
+ */
13
+ /**
14
+ * Files ↔ rows consistency scan for a bundle's cas storage drivers. Two
15
+ * finding classes, asymmetric by design:
16
+ * - `file-without-row` — the sweep's documented crash residue. Harmless,
17
+ * and FIXABLE: `--fix` unlinks it (OFFLINE ONLY);
18
+ * - `row-without-file` — LOSS EVIDENCE. Reported, never auto-fixed:
19
+ * deleting the row would destroy the only signal that content vanished.
20
+ * Both directions are age-gated past `sweepGrace` inside the driver, so
21
+ * in-flight work is never reported. Drivers without verify (sharded, v1) are
22
+ * named-and-skipped.
23
+ *
24
+ * Who does the work depends on who OWNS the store (#STO1):
25
+ * - bundle RUNNING — `GET /_gina/storage/verify` (REPORT-ONLY over HTTP —
26
+ * the endpoint does not even parse a fix flag). `--fix` while the bundle
27
+ * runs is REFUSED: stop the bundle, then re-run;
28
+ * - bundle DOWN (every assigned port ECONNREFUSED) — the REAL driver is
29
+ * built offline (`sweepInterval: 0`) and `verify({fix})` runs here;
30
+ * - anything else (timeout, socket error) — reported as unknown, the
31
+ * store is NOT opened.
32
+ *
33
+ * Usage:
34
+ * gina storage:verify <bundle> @<project>
35
+ * gina storage:verify @<project> — every bundle in the project
36
+ * gina storage:verify <bundle> @<project> --fix
37
+ * gina storage:verify <bundle> @<project> --driver=<name> --format=json
38
+ *
39
+ * @class Verify
40
+ * @constructor
41
+ * @param {object} opt - Parsed command-line options
42
+ * @param {object} opt.client - Socket client for terminal output
43
+ * @param {string[]} opt.argv - Full argv array
44
+ * @param {object} cmd - The cmd dispatcher object (lib/cmd/index.js)
45
+ *
46
+ * @example
47
+ * // report-only scan (works running or stopped)
48
+ * $ gina storage:verify api @myproject
49
+ *
50
+ * @example
51
+ * // scrub sweep crash residue — the bundle must be STOPPED
52
+ * $ gina storage:verify api @myproject --fix
53
+ */
54
+ function Verify(opt, cmd) {
55
+ var self = { format: null, driver: null, fix: false, results: [] };
56
+
57
+ var init = function(opt, cmd) {
58
+ // import CMD helpers
59
+ new CmdHelper(self, opt.client, { port: opt.debugPort, brkEnabled: opt.debugBrkEnabled });
60
+ // check CMD configuration
61
+ if (!isCmdConfigured()) return false;
62
+
63
+ // Full pre-scan of argv for --format, --driver and --fix —
64
+ // whitelisted in `storage/arguments.json` (mirrors cache:clear).
65
+ for (let i = 3, len = process.argv.length; i < len; i++) {
66
+ if ( /^\-\-format\=/.test(process.argv[i]) ) {
67
+ self.format = process.argv[i].split(/\=/)[1];
68
+ } else if ( /^\-\-driver\=/.test(process.argv[i]) ) {
69
+ self.driver = process.argv[i].split(/\=/)[1];
70
+ } else if ( /^\-\-fix$/.test(process.argv[i]) ) {
71
+ self.fix = true;
72
+ }
73
+ }
74
+
75
+ if (!self.name) {
76
+ // No bundle specified — verify every bundle in the project.
77
+ runAll(opt, cmd, 0);
78
+ } else {
79
+ runOne(self.name, opt, cmd, false);
80
+ }
81
+ }
82
+
83
+ /**
84
+ * Runs every bundle in the project sequentially, then reports.
85
+ * @inner
86
+ */
87
+ var runAll = function(opt, cmd, index) {
88
+ if (index >= self.bundles.length) {
89
+ report(opt, cmd);
90
+ return;
91
+ }
92
+ runOne(self.bundles[index], opt, cmd, true, function() {
93
+ runAll(opt, cmd, index + 1);
94
+ });
95
+ }
96
+
97
+ /**
98
+ * Resolves one bundle (running → endpoint report, down → offline verify),
99
+ * records the result, then advances / reports. A RUNNING bundle under
100
+ * `--fix` becomes a refusal: the racy half of verify only exists offline,
101
+ * where it is safe by construction.
102
+ * @inner
103
+ */
104
+ var runOne = function(bundle, opt, cmd, isBulk, next) {
105
+ var advance = function(result) {
106
+ self.results.push(result);
107
+ if (isBulk && next) return next();
108
+ report(opt, cmd);
109
+ };
110
+ probeAndVerify(bundle, function(outcome) {
111
+ if ( outcome.mode === 'down' ) {
112
+ return verifyOffline(bundle, advance);
113
+ }
114
+ if ( outcome.mode === 'running' && self.fix && !outcome.error ) {
115
+ return advance({ bundle: bundle, mode: 'running', error: '--fix refused while the bundle runs — the running process owns the store; stop the bundle, then re-run' });
116
+ }
117
+ advance(outcome);
118
+ });
119
+ }
120
+
121
+ /**
122
+ * Sends `GET /_gina/storage/verify` (report-only — the request IS the
123
+ * probe, and it mutates nothing): a response classifies the bundle
124
+ * RUNNING and carries the report; ECONNREFUSED advances; every candidate
125
+ * refused classifies it DOWN. The response timeout is 120s, not the 5s
126
+ * probe class: the server walks the whole tree before answering (the
127
+ * walk is chunked server-side, the response is not).
128
+ *
129
+ * @inner
130
+ * @param {string} bundle
131
+ * @param {function(object)} done - Result object, or `{mode:'down'}`.
132
+ */
133
+ var probeAndVerify = function(bundle, done) {
134
+ var env = self.projects[self.projectName].def_env;
135
+ var portsRev = self.portsReverseData[bundle + '@' + self.projectName];
136
+
137
+ if (!portsRev || !portsRev[env]) {
138
+ return done({ bundle: bundle, mode: 'error', error: 'no port assignment found — is the bundle registered?' });
139
+ }
140
+
141
+ var candidates = [];
142
+ for (var protocol in portsRev[env]) {
143
+ for (var s in portsRev[env][protocol]) {
144
+ candidates.push({ port: portsRev[env][protocol][s], scheme: s });
145
+ }
146
+ }
147
+ if (!candidates.length) {
148
+ return done({ bundle: bundle, mode: 'error', error: 'could not determine port' });
149
+ }
150
+
151
+ var endpointPath = '/_gina/storage/verify'
152
+ + ( self.driver ? '?driver=' + encodeURIComponent(self.driver) : '' );
153
+
154
+ var tryNext = function(index) {
155
+ if (index >= candidates.length) {
156
+ return done({ mode: 'down' }); // refused on every assigned port — the offline path owns it
157
+ }
158
+
159
+ var candidate = candidates[index];
160
+ var transport = (candidate.scheme === 'https') ? https : http;
161
+ var reqOptions = {
162
+ hostname : '127.0.0.1',
163
+ port : candidate.port,
164
+ path : endpointPath,
165
+ method : 'GET',
166
+ timeout : 120000,
167
+ rejectUnauthorized : false // allow self-signed certs on internal endpoints
168
+ };
169
+
170
+ var req = transport.request(reqOptions, function(res) {
171
+ var raw = '';
172
+ res.on('data', function(chunk) { raw += chunk; });
173
+ res.on('end', function() {
174
+ var parsed = null;
175
+ try {
176
+ parsed = JSON.parse(raw);
177
+ } catch (e) {
178
+ return done({ bundle: bundle, mode: 'error', error: 'invalid response from /_gina/storage/verify' });
179
+ }
180
+ if ( parsed && parsed.error ) {
181
+ return done({ bundle: bundle, mode: 'running', error: ( parsed.error === 'forbidden' )
182
+ ? 'reachable but admin-gated (app.json admin.allowFrom?)'
183
+ : (parsed.message || parsed.error) });
184
+ }
185
+ done({ bundle: bundle, mode: 'running', configured: !!parsed.configured, drivers: parsed.drivers || [] });
186
+ });
187
+ });
188
+
189
+ req.on('timeout', function() {
190
+ req.destroy();
191
+ done({ bundle: bundle, mode: 'error', error: 'request timed out — bundle state unknown; not opening its store offline (a live process may own it)' });
192
+ });
193
+
194
+ req.on('error', function(err) {
195
+ if (err.code === 'ECONNREFUSED') {
196
+ return tryNext(index + 1); // this port is not listening — try the next
197
+ }
198
+ done({ bundle: bundle, mode: 'error', error: err.message + ' — bundle state unknown; not opening its store offline' });
199
+ });
200
+
201
+ req.end();
202
+ };
203
+
204
+ tryNext(0);
205
+ }
206
+
207
+ /**
208
+ * The DOWN path: resolve the bundle's `storage` block offline, build each
209
+ * local cas driver through the boot's own resolver/factories, and run
210
+ * `verify({fix})` — the ONLY place `--fix` is honoured.
211
+ *
212
+ * @inner
213
+ * @param {string} bundle
214
+ * @param {function(object)} done
215
+ */
216
+ var verifyOffline = function(bundle, done) {
217
+ var byProject = self.bundlesByProject[self.projectName] || {};
218
+ var bundleMeta = byProject[bundle];
219
+ var settingsPath = ( bundleMeta && bundleMeta.configPaths ) ? bundleMeta.configPaths.settings : null;
220
+ if ( !settingsPath || !fs.existsSync(settingsPath) ) {
221
+ return done({ bundle: bundle, mode: 'offline', error: 'no config/settings.json found for this bundle' });
222
+ }
223
+ var settings = null;
224
+ try {
225
+ settings = requireJSON(settingsPath);
226
+ } catch (e) {
227
+ return done({ bundle: bundle, mode: 'offline', error: 'could not parse settings.json: ' + (e.message || e) });
228
+ }
229
+ var block = settings ? settings.storage : null;
230
+ if ( !block || !block.drivers || !Object.keys(block.drivers).length ) {
231
+ return done({ bundle: bundle, mode: 'offline', configured: false, drivers: [] });
232
+ }
233
+ var lint = storageLib.validateConfig(block);
234
+ if ( lint.fatal ) {
235
+ return done({ bundle: bundle, mode: 'offline', error: 'invalid storage config: ' + lint.fatal });
236
+ }
237
+
238
+ var names = Object.keys(block.drivers);
239
+ if ( self.driver ) {
240
+ if ( names.indexOf(self.driver) < 0 ) {
241
+ return done({ bundle: bundle, mode: 'offline', error: 'no driver `' + self.driver + '` (configured: ' + names.join(', ') + ')' });
242
+ }
243
+ names = [ self.driver ];
244
+ }
245
+
246
+ var out = { bundle: bundle, mode: 'offline', configured: true, fix: self.fix, drivers: [] };
247
+ var nextDriver = function(i) {
248
+ if ( i >= names.length ) { return done(out); }
249
+ var name = names[i];
250
+ var d = block.drivers[name];
251
+ if ( d.store ) {
252
+ out.drivers.push({ name: name, skipped: true, reason: 'connector-backed store (`' + d.store + '`) — nothing local to open; start the bundle and re-run' });
253
+ return nextDriver(i + 1);
254
+ }
255
+ if ( d.strategy !== 'cas' ) {
256
+ out.drivers.push({ name: name, skipped: true, reason: 'verify is cas-only in v1' });
257
+ return nextDriver(i + 1);
258
+ }
259
+ if ( !fs.existsSync(d.root) ) {
260
+ out.drivers.push({ name: name, skipped: true, reason: 'root not created yet (nothing stored)' });
261
+ return nextDriver(i + 1);
262
+ }
263
+ var driver = null;
264
+ try {
265
+ var resolved = storageLib._resolveDriverConf(d);
266
+ resolved.sweepInterval = 0; // no GC timer in a CLI process
267
+ var metaStore = storageLib._createEmbeddedMetaStore(nodePath.join(d.root, '.meta.db'));
268
+ driver = storageLib._FACTORIES[d.strategy](name, resolved, metaStore);
269
+ } catch (buildErr) {
270
+ out.drivers.push({ name: name, error: buildErr.message || String(buildErr) });
271
+ return nextDriver(i + 1);
272
+ }
273
+ driver.verify({ fix: self.fix }, function(err, rep) {
274
+ try { driver.close(); } catch (e) { /* already closed */ }
275
+ out.drivers.push(err ? { name: name, error: err.message || String(err) } : rep);
276
+ nextDriver(i + 1);
277
+ });
278
+ };
279
+ nextDriver(0);
280
+ }
281
+
282
+ /**
283
+ * Builds the `--format=json` envelope. Pure. Single-bundle → flattened;
284
+ * all-bundles → a `bundles` array.
285
+ *
286
+ * @inner
287
+ * @param {string} project
288
+ * @param {Array<object>} results
289
+ * @param {string|null} singleBundle
290
+ * @param {string|null} driver
291
+ * @returns {object}
292
+ */
293
+ var buildEnvelope = function(project, results, singleBundle, driver) {
294
+ var base = { project: project, fix: self.fix };
295
+ if (driver) {
296
+ base.driver = driver;
297
+ }
298
+ if (singleBundle && results.length === 1) {
299
+ var r = results[0];
300
+ for (var k in r) { base[k] = r[k]; }
301
+ return base;
302
+ }
303
+ base.bundles = results;
304
+ return base;
305
+ }
306
+
307
+ /**
308
+ * Formats the per-bundle results as a human-readable summary. Pure.
309
+ * A driver report line names both finding classes with their counts; the
310
+ * itemised list prints each finding's full key (an operator pastes it
311
+ * back into an investigation verbatim).
312
+ *
313
+ * @inner
314
+ * @param {Array<object>} results
315
+ * @param {string} project
316
+ * @returns {string}
317
+ */
318
+ var formatText = function(results, project) {
319
+ var SEP = '------------------------------------------------------------\n\r';
320
+ var str = '\n\r' + SEP;
321
+ str += (self.fix ? '[ fix ] ' : '') + 'storage:verify @' + project + ( self.driver ? ' --driver=' + self.driver : '' ) + '\n\r';
322
+ str += SEP;
323
+
324
+ if (!results.length) {
325
+ str += ' (no bundles)\n\r\n\r';
326
+ return str;
327
+ }
328
+
329
+ for (var i = 0; i < results.length; i++) {
330
+ var r = results[i];
331
+ str += '\n\r [ ' + r.bundle + '@' + project + ' ]' + ( r.mode ? ' (' + r.mode + ')' : '' ) + '\n\r';
332
+ if (r.error) {
333
+ str += ' ' + r.error + '\n\r';
334
+ continue;
335
+ }
336
+ if ( r.configured === false ) {
337
+ str += ' storage not configured (no `storage` block)\n\r';
338
+ continue;
339
+ }
340
+ for (var j = 0; j < r.drivers.length; j++) {
341
+ var d = r.drivers[j];
342
+ if (d.error) {
343
+ str += ' driver `' + (d.name || d.driver) + '`: ' + d.error + '\n\r';
344
+ continue;
345
+ }
346
+ if (d.skipped) {
347
+ str += ' driver `' + d.name + '`: skipped — ' + d.reason + '\n\r';
348
+ continue;
349
+ }
350
+ // a driver verify report: {driver, strategy, checked, findings, findingCounts, …}
351
+ var counts = d.findingCounts || { filesWithoutRows: 0, rowsWithoutFiles: 0 };
352
+ var totalFindings = counts.filesWithoutRows + counts.rowsWithoutFiles;
353
+ str += ' driver `' + d.driver + '` (' + d.strategy + '): files ' + d.checked.files
354
+ + ' / rows ' + d.checked.rows + ' checked — '
355
+ + ( totalFindings === 0
356
+ ? 'clean'
357
+ : totalFindings + ' finding(s): files-without-rows ' + counts.filesWithoutRows
358
+ + ( self.fix && typeof d.fixedCount === 'number' ? ' (fixed ' + d.fixedCount + ')' : ' (fixable)' )
359
+ + ', rows-without-files ' + counts.rowsWithoutFiles + ' (LOSS EVIDENCE — never auto-fixed)' )
360
+ + '\n\r';
361
+ if ( d.rowsChecked === false ) {
362
+ str += ' rows direction skipped: the store cannot enumerate rows\n\r';
363
+ }
364
+ for (var f = 0; f < (d.findings || []).length; f++) {
365
+ var finding = d.findings[f];
366
+ if ( finding['class'] === 'file-without-row' ) {
367
+ str += ' file-without-row ' + finding.key + ' (' + finding.size + ' B)'
368
+ + ( finding.fixed === true ? ' [fixed]' : ( finding.fixed === false ? ' [fix FAILED: ' + finding.error + ']' : '' ) ) + '\n\r';
369
+ } else {
370
+ str += ' row-without-file ' + finding.key + ' refs=' + finding.refs
371
+ + ( finding.originalName ? ' (' + finding.originalName + ')' : '' )
372
+ + ' — loss evidence\n\r';
373
+ }
374
+ }
375
+ if ( d.findingsTruncated ) {
376
+ str += ' (findings list truncated — the counts above are exact)\n\r';
377
+ }
378
+ }
379
+ }
380
+
381
+ str += '\n\r';
382
+ return str;
383
+ }
384
+
385
+ /**
386
+ * Emits the result — JSON synchronously via fs.writeSync (pipe-safe
387
+ * against the `process.exit` in `end()` — llms.txt #180), else text via
388
+ * `opt.client` — then terminates. Exit code 1 when any per-bundle result
389
+ * carries an error (a FINDING is a report, not a command failure).
390
+ * @inner
391
+ */
392
+ var report = function(opt, cmd) {
393
+ var single = (self.results.length === 1 && !!self.name) ? self.name : null;
394
+ var hasError = self.results.some(function(r) { return !!r.error; });
395
+
396
+ if ( /^json/i.test(String(self.format || '')) ) {
397
+ var envelope = buildEnvelope(self.projectName, self.results, single, self.driver);
398
+ fs.writeSync(1, JSON.stringify(envelope) + '\n');
399
+ return end(opt, cmd, hasError);
400
+ }
401
+
402
+ opt.client.write(formatText(self.results, self.projectName));
403
+ end(opt, cmd, hasError);
404
+ }
405
+
406
+ var end = function(opt, cmd, error) {
407
+ if (!opt.client.destroyed) opt.client.emit('end');
408
+ process.exit(error ? 1 : 0);
409
+ }
410
+
411
+ init(opt, cmd);
412
+ }
413
+ module.exports = Verify;
@@ -98,6 +98,12 @@ function Lib() {
98
98
  // like JobStore/SessionStore (no instance/singleton state to protect from
99
99
  // eviction). No connector ships an implementation yet — demand-gated.
100
100
  AuditStore : _require('./audit-store'),
101
+ // #STO1 — connector-backed storage metadata-store factory (lib/storage
102
+ // `start({stores})`). Stateless dispatcher invoked ONCE at boot from
103
+ // gna.js; _require like JobStore/AuditStore (no instance/singleton state
104
+ // to protect from eviction). No connector ships an implementation yet —
105
+ // demand-gated, the audit-store shipping order.
106
+ StorageStore : _require('./storage-store'),
101
107
  SwigFilters : _require('./swig-filters'),
102
108
  Cache : require('./cache'), // #B32-residual — plain require (leaf class held at gen-0 via server.isaac.js:35; Cache._events is a Collection). See Collection note above.
103
109
  RenderCache : require('./render-cache'), // #B32-residual — plain require (server-only render-cache strategy dispatcher; wraps lib/cache and is held at gen-0 in server.isaac.js + the render delegates). See Cache above.
@@ -304,6 +310,14 @@ function Lib() {
304
310
  // accepted session AFTER lib.wsSession.accept (so ws-session stays
305
311
  // controller-free). Pure factory (no module-scope state), so _require is safe.
306
312
  wsQuery : _require('./ws-query'),
313
+ // #STO1 — pluggable object storage (adapter x strategy). PLAIN require,
314
+ // NOT _require: the module holds the built drivers and their open SQLite
315
+ // metadata handles at module scope. refreshCore() re-runs Lib() on every
316
+ // dev-mode HTTP request, and _require would delete + re-require the
317
+ // module, discarding the drivers and leaking a file handle per request —
318
+ // the same reason job / State / audit are plain requires. Plain require =
319
+ // cache hit = the singleton survives.
320
+ storage : require('./storage'),
307
321
  };
308
322
 
309
323
  /**
@@ -287,12 +287,19 @@ function getRequiredKeys(config) {
287
287
  * backend is returned **unchanged**, so a config that does not opt in behaves
288
288
  * exactly as it did before this seam existed.
289
289
  *
290
- * Reads `content.settings` and not `settings`: `core/config.js` binds
291
- * `conf[bundle][env].settings` *before* the `${…}` substitution pass and
292
- * `conf[bundle][env].content` *after* it, and the substitution returns a new
293
- * object rather than mutating in place — so only the `content` copy has its
294
- * `${homedir}` / `${scope}` tokens resolved. Reading the other one would hand
295
- * the backend a literal `'${homedir}/secrets.env'` to open.
290
+ * Reads `content.settings` and not `settings`. For a config built by
291
+ * `core/config.js::loadBundleConfig` the two are now the same object — since
292
+ * #B257 the `.settings` alias is re-pointed at the post-substitution copy — so
293
+ * either would do. `content.settings` stays the canonical read because this
294
+ * function accepts any config-shaped object, including ones assembled by other
295
+ * paths, where only `content` is guaranteed to have been through the `${…}`
296
+ * substitution pass.
297
+ *
298
+ * Note the reason is NOT that `.settings` is unsubstituted wholesale (#B273): a
299
+ * first substitution pass runs earlier still, so `${homedir}` / `${scope}` were
300
+ * always resolved in both copies. What used to differ was the tokens only the
301
+ * later pass knows — `${bundlePath}`, `${libPath}`, `${publicPath}`, … — which
302
+ * is what #B257 closed.
296
303
  *
297
304
  * @memberof module:lib/secrets
298
305
  * @function selectBackend
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "storage",
3
+ "description": "Pluggable object storage (#STO1): adapter × strategy over an opaque key, with a per-object metadata row written through a connector-backed seam. Ships the `local` adapter and the `sharded` strategy",
4
+ "version": "0.0.1",
5
+ "private": true,
6
+ "main": "src/main"
7
+ }