gina 0.6.12 → 0.6.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (591) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/README.md +24 -17
  3. package/ROADMAP.md +3 -2
  4. package/framework/v0.6.13/VERSION +1 -0
  5. package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/js/gina.js +8 -0
  6. package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/js/gina.min.js +165 -165
  7. package/framework/v0.6.13/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  8. package/framework/v0.6.13/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  9. package/framework/{v0.6.12 → v0.6.13}/core/config.js +26 -0
  10. package/framework/v0.6.13/core/connectors/redis/index.js +62 -0
  11. package/framework/v0.6.13/core/connectors/redis/lib/kv-store.js +394 -0
  12. package/framework/v0.6.13/core/connectors/sqlite/lib/kv-store.js +316 -0
  13. package/framework/{v0.6.12 → v0.6.13}/core/controller/controller.js +202 -0
  14. package/framework/{v0.6.12 → v0.6.13}/core/gna.js +85 -0
  15. package/framework/{v0.6.12 → v0.6.13}/core/model/entity.js +13 -5
  16. package/framework/{v0.6.12 → v0.6.13}/core/router.js +147 -56
  17. package/framework/{v0.6.12 → v0.6.13}/core/server.js +61 -0
  18. package/framework/{v0.6.12 → v0.6.13}/lib/cmd/service/help.txt +8 -2
  19. package/framework/{v0.6.12 → v0.6.13}/lib/cmd/service/start.js +1 -1
  20. package/framework/{v0.6.12 → v0.6.13}/lib/index.js +18 -0
  21. package/framework/v0.6.13/lib/kv/package.json +7 -0
  22. package/framework/v0.6.13/lib/kv/src/main.js +862 -0
  23. package/framework/v0.6.13/lib/kv-store.js +112 -0
  24. package/framework/v0.6.13/lib/rate-limit/package.json +6 -0
  25. package/framework/v0.6.13/lib/rate-limit/src/main.js +399 -0
  26. package/framework/{v0.6.12 → v0.6.13}/lib/routing/src/main.js +8 -0
  27. package/framework/{v0.6.12 → v0.6.13}/package.json +1 -1
  28. package/gna.js +4 -4
  29. package/llms.txt +13 -3
  30. package/package.json +3 -3
  31. package/schema/routing.json +30 -0
  32. package/schema/settings.json +101 -0
  33. package/types/index.d.ts +9 -0
  34. package/framework/v0.6.12/VERSION +0 -1
  35. package/framework/v0.6.12/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  36. package/framework/v0.6.12/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  37. package/framework/v0.6.12/core/connectors/redis/index.js +0 -36
  38. /package/framework/{v0.6.12 → v0.6.13}/AUTHORS +0 -0
  39. /package/framework/{v0.6.12 → v0.6.13}/LICENSE +0 -0
  40. /package/framework/{v0.6.12 → v0.6.13}/core/asset/html/nolayout.html +0 -0
  41. /package/framework/{v0.6.12 → v0.6.13}/core/asset/html/static.html +0 -0
  42. /package/framework/{v0.6.12 → v0.6.13}/core/asset/img/android-chrome-192x192.png +0 -0
  43. /package/framework/{v0.6.12 → v0.6.13}/core/asset/img/android-chrome-512x512.png +0 -0
  44. /package/framework/{v0.6.12 → v0.6.13}/core/asset/img/apple-touch-icon.png +0 -0
  45. /package/framework/{v0.6.12 → v0.6.13}/core/asset/img/favicon-16x16.png +0 -0
  46. /package/framework/{v0.6.12 → v0.6.13}/core/asset/img/favicon-32x32.png +0 -0
  47. /package/framework/{v0.6.12 → v0.6.13}/core/asset/img/favicon.ico +0 -0
  48. /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/README.md +0 -0
  49. /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  50. /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  51. /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  52. /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  53. /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  54. /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  55. /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
  56. /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  57. /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  58. /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  59. /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
  60. /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
  61. /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
  62. /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  63. /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
  64. /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  65. /package/framework/{v0.6.12 → v0.6.13}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  66. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/ai/index.js +0 -0
  67. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/ai/lib/connector.js +0 -0
  68. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/couchbase/index.js +0 -0
  69. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/couchbase/lib/connector.js +0 -0
  70. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  71. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  72. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/couchbase/lib/n1ql.js +0 -0
  73. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/couchbase/lib/session-store.js +0 -0
  74. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  75. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  76. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/couchbase/lib/storage-store.js +0 -0
  77. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/duckdb/index.js +0 -0
  78. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/duckdb/lib/connector.js +0 -0
  79. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/mongodb/index.js +0 -0
  80. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/mongodb/lib/connector.js +0 -0
  81. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/mongodb/lib/job-store.js +0 -0
  82. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
  83. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/mongodb/lib/session-store.js +0 -0
  84. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/mysql/index.js +0 -0
  85. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/mysql/lib/connector.js +0 -0
  86. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/param-redact.js +0 -0
  87. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/postgresql/index.js +0 -0
  88. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/postgresql/lib/connector.js +0 -0
  89. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/redis/lib/connector.js +0 -0
  90. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/redis/lib/job-store.js +0 -0
  91. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/redis/lib/render-cache-store.js +0 -0
  92. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/redis/lib/session-store.js +0 -0
  93. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/scylladb/index.js +0 -0
  94. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/scylladb/lib/connector.js +0 -0
  95. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/scylladb/lib/session-store.js +0 -0
  96. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/sql-parser.js +0 -0
  97. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/sqlite/index.js +0 -0
  98. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/sqlite/lib/connector.js +0 -0
  99. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/sqlite/lib/job-store.js +0 -0
  100. /package/framework/{v0.6.12 → v0.6.13}/core/connectors/sqlite/lib/session-store.js +0 -0
  101. /package/framework/{v0.6.12 → v0.6.13}/core/content.encoding +0 -0
  102. /package/framework/{v0.6.12 → v0.6.13}/core/controller/controller.framework.js +0 -0
  103. /package/framework/{v0.6.12 → v0.6.13}/core/controller/controller.render-json.js +0 -0
  104. /package/framework/{v0.6.12 → v0.6.13}/core/controller/controller.render-nunjucks-async.js +0 -0
  105. /package/framework/{v0.6.12 → v0.6.13}/core/controller/controller.render-nunjucks.js +0 -0
  106. /package/framework/{v0.6.12 → v0.6.13}/core/controller/controller.render-stream.js +0 -0
  107. /package/framework/{v0.6.12 → v0.6.13}/core/controller/controller.render-swig-async.js +0 -0
  108. /package/framework/{v0.6.12 → v0.6.13}/core/controller/controller.render-swig.js +0 -0
  109. /package/framework/{v0.6.12 → v0.6.13}/core/controller/controller.render-v1.js +0 -0
  110. /package/framework/{v0.6.12 → v0.6.13}/core/controller/index.js +0 -0
  111. /package/framework/{v0.6.12 → v0.6.13}/core/controller/inspector-window-emit.js +0 -0
  112. /package/framework/{v0.6.12 → v0.6.13}/core/controller/release-banner.js +0 -0
  113. /package/framework/{v0.6.12 → v0.6.13}/core/dev/index.js +0 -0
  114. /package/framework/{v0.6.12 → v0.6.13}/core/dev/lib/class.js +0 -0
  115. /package/framework/{v0.6.12 → v0.6.13}/core/dev/lib/factory.js +0 -0
  116. /package/framework/{v0.6.12 → v0.6.13}/core/dev/lib/tools.js +0 -0
  117. /package/framework/{v0.6.12 → v0.6.13}/core/locales/README.md +0 -0
  118. /package/framework/{v0.6.12 → v0.6.13}/core/locales/currency.json +0 -0
  119. /package/framework/{v0.6.12 → v0.6.13}/core/locales/dist/language/en.json +0 -0
  120. /package/framework/{v0.6.12 → v0.6.13}/core/locales/dist/language/fr.json +0 -0
  121. /package/framework/{v0.6.12 → v0.6.13}/core/locales/dist/region/en.json +0 -0
  122. /package/framework/{v0.6.12 → v0.6.13}/core/locales/dist/region/fr.json +0 -0
  123. /package/framework/{v0.6.12 → v0.6.13}/core/locales/index.js +0 -0
  124. /package/framework/{v0.6.12 → v0.6.13}/core/mime.types +0 -0
  125. /package/framework/{v0.6.12 → v0.6.13}/core/model/index.js +0 -0
  126. /package/framework/{v0.6.12 → v0.6.13}/core/model/template/entityFactory.js +0 -0
  127. /package/framework/{v0.6.12 → v0.6.13}/core/model/template/index.js +0 -0
  128. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/README.md +0 -0
  129. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/index.js +0 -0
  130. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/csrf/README.md +0 -0
  131. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/csrf/package.json +0 -0
  132. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/csrf/src/main.js +0 -0
  133. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/README.md +0 -0
  134. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/coep/README.md +0 -0
  135. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/coep/package.json +0 -0
  136. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
  137. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/coop/README.md +0 -0
  138. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/coop/package.json +0 -0
  139. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
  140. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/corp/README.md +0 -0
  141. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/corp/package.json +0 -0
  142. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
  143. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/csp/README.md +0 -0
  144. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/csp/package.json +0 -0
  145. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
  146. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
  147. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
  148. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
  149. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/hsts/README.md +0 -0
  150. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/hsts/package.json +0 -0
  151. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
  152. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
  153. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
  154. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
  155. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/package.json +0 -0
  156. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
  157. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
  158. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
  159. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/src/main.js +0 -0
  160. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
  161. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
  162. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
  163. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
  164. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
  165. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
  166. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
  167. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
  168. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
  169. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
  170. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
  171. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
  172. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
  173. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
  174. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
  175. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
  176. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
  177. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
  178. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/session/README.md +0 -0
  179. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/session/package.json +0 -0
  180. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/session/src/main.js +0 -0
  181. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/storage/README.md +0 -0
  182. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/storage/build.json +0 -0
  183. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/storage/package.json +0 -0
  184. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/storage/src/main.js +0 -0
  185. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/validator/README.md +0 -0
  186. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/validator/build.json +0 -0
  187. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/validator/package.json +0 -0
  188. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/validator/src/form-validator.js +0 -0
  189. /package/framework/{v0.6.12 → v0.6.13}/core/plugins/lib/validator/src/main.js +0 -0
  190. /package/framework/{v0.6.12 → v0.6.13}/core/server.express.js +0 -0
  191. /package/framework/{v0.6.12 → v0.6.13}/core/server.isaac.js +0 -0
  192. /package/framework/{v0.6.12 → v0.6.13}/core/status.codes +0 -0
  193. /package/framework/{v0.6.12 → v0.6.13}/core/template/_gitignore +0 -0
  194. /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle/config/app.json +0 -0
  195. /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  196. /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle/config/routing.json +0 -0
  197. /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle/config/settings.json +0 -0
  198. /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  199. /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle/config/templates.json +0 -0
  200. /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  201. /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  202. /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  203. /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  204. /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle/index.js +0 -0
  205. /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle/locales/en.json +0 -0
  206. /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  207. /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  208. /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  209. /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  210. /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  211. /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_public/js/components/x-checklist.js +0 -0
  212. /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  213. /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
  214. /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_public/readme.md +0 -0
  215. /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_public/sw.js +0 -0
  216. /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  217. /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  218. /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  219. /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  220. /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_templates/html/includes/x-checklist.html +0 -0
  221. /package/framework/{v0.6.12 → v0.6.13}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  222. /package/framework/{v0.6.12 → v0.6.13}/core/template/command/gina.bat.tpl +0 -0
  223. /package/framework/{v0.6.12 → v0.6.13}/core/template/command/gina.tpl +0 -0
  224. /package/framework/{v0.6.12 → v0.6.13}/core/template/conf/env.json +0 -0
  225. /package/framework/{v0.6.12 → v0.6.13}/core/template/conf/manifest.json +0 -0
  226. /package/framework/{v0.6.12 → v0.6.13}/core/template/conf/package.json +0 -0
  227. /package/framework/{v0.6.12 → v0.6.13}/core/template/conf/settings.json +0 -0
  228. /package/framework/{v0.6.12 → v0.6.13}/core/template/conf/statics.json +0 -0
  229. /package/framework/{v0.6.12 → v0.6.13}/core/template/conf/templates.json +0 -0
  230. /package/framework/{v0.6.12 → v0.6.13}/core/template/error/client/json/401.json +0 -0
  231. /package/framework/{v0.6.12 → v0.6.13}/core/template/error/client/json/403.json +0 -0
  232. /package/framework/{v0.6.12 → v0.6.13}/core/template/error/client/json/404.json +0 -0
  233. /package/framework/{v0.6.12 → v0.6.13}/core/template/error/server/html/50x.html +0 -0
  234. /package/framework/{v0.6.12 → v0.6.13}/core/template/error/server/json/500.json +0 -0
  235. /package/framework/{v0.6.12 → v0.6.13}/core/template/error/server/json/503.json +0 -0
  236. /package/framework/{v0.6.12 → v0.6.13}/core/template/extensions/logger/config.json +0 -0
  237. /package/framework/{v0.6.12 → v0.6.13}/helpers/console.js +0 -0
  238. /package/framework/{v0.6.12 → v0.6.13}/helpers/context.js +0 -0
  239. /package/framework/{v0.6.12 → v0.6.13}/helpers/data/LICENSE +0 -0
  240. /package/framework/{v0.6.12 → v0.6.13}/helpers/data/README.md +0 -0
  241. /package/framework/{v0.6.12 → v0.6.13}/helpers/data/package.json +0 -0
  242. /package/framework/{v0.6.12 → v0.6.13}/helpers/data/src/main.js +0 -0
  243. /package/framework/{v0.6.12 → v0.6.13}/helpers/dateFormat.js +0 -0
  244. /package/framework/{v0.6.12 → v0.6.13}/helpers/index.js +0 -0
  245. /package/framework/{v0.6.12 → v0.6.13}/helpers/json/LICENSE +0 -0
  246. /package/framework/{v0.6.12 → v0.6.13}/helpers/json/README.md +0 -0
  247. /package/framework/{v0.6.12 → v0.6.13}/helpers/json/package.json +0 -0
  248. /package/framework/{v0.6.12 → v0.6.13}/helpers/json/src/main.js +0 -0
  249. /package/framework/{v0.6.12 → v0.6.13}/helpers/path.js +0 -0
  250. /package/framework/{v0.6.12 → v0.6.13}/helpers/plugins/README.md +0 -0
  251. /package/framework/{v0.6.12 → v0.6.13}/helpers/plugins/package.json +0 -0
  252. /package/framework/{v0.6.12 → v0.6.13}/helpers/plugins/src/api-error.js +0 -0
  253. /package/framework/{v0.6.12 → v0.6.13}/helpers/plugins/src/main.js +0 -0
  254. /package/framework/{v0.6.12 → v0.6.13}/helpers/prototypes.js +0 -0
  255. /package/framework/{v0.6.12 → v0.6.13}/helpers/task.js +0 -0
  256. /package/framework/{v0.6.12 → v0.6.13}/helpers/text.js +0 -0
  257. /package/framework/{v0.6.12 → v0.6.13}/lib/admin/package.json +0 -0
  258. /package/framework/{v0.6.12 → v0.6.13}/lib/admin/src/main.js +0 -0
  259. /package/framework/{v0.6.12 → v0.6.13}/lib/archiver/README.md +0 -0
  260. /package/framework/{v0.6.12 → v0.6.13}/lib/archiver/build.json +0 -0
  261. /package/framework/{v0.6.12 → v0.6.13}/lib/archiver/package.json +0 -0
  262. /package/framework/{v0.6.12 → v0.6.13}/lib/archiver/src/dep/jszip.min.js +0 -0
  263. /package/framework/{v0.6.12 → v0.6.13}/lib/archiver/src/main.js +0 -0
  264. /package/framework/{v0.6.12 → v0.6.13}/lib/async/package.json +0 -0
  265. /package/framework/{v0.6.12 → v0.6.13}/lib/async/src/main.js +0 -0
  266. /package/framework/{v0.6.12 → v0.6.13}/lib/audit/package.json +0 -0
  267. /package/framework/{v0.6.12 → v0.6.13}/lib/audit/src/main.js +0 -0
  268. /package/framework/{v0.6.12 → v0.6.13}/lib/audit-store.js +0 -0
  269. /package/framework/{v0.6.12 → v0.6.13}/lib/authn/package.json +0 -0
  270. /package/framework/{v0.6.12 → v0.6.13}/lib/authn/src/lockout.js +0 -0
  271. /package/framework/{v0.6.12 → v0.6.13}/lib/authn/src/main.js +0 -0
  272. /package/framework/{v0.6.12 → v0.6.13}/lib/authn/src/totp.js +0 -0
  273. /package/framework/{v0.6.12 → v0.6.13}/lib/authz-gate/package.json +0 -0
  274. /package/framework/{v0.6.12 → v0.6.13}/lib/authz-gate/src/main.js +0 -0
  275. /package/framework/{v0.6.12 → v0.6.13}/lib/cache/README.md +0 -0
  276. /package/framework/{v0.6.12 → v0.6.13}/lib/cache/build.json +0 -0
  277. /package/framework/{v0.6.12 → v0.6.13}/lib/cache/package.json +0 -0
  278. /package/framework/{v0.6.12 → v0.6.13}/lib/cache/src/main.js +0 -0
  279. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/aliases.json +0 -0
  280. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/audit/arguments.json +0 -0
  281. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/audit/help.txt +0 -0
  282. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/audit/verify.js +0 -0
  283. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/add.js +0 -0
  284. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/arguments.json +0 -0
  285. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/build.js +0 -0
  286. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/copy.js +0 -0
  287. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/cp.js +0 -0
  288. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/help.js +0 -0
  289. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/help.txt +0 -0
  290. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
  291. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/list.js +0 -0
  292. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/man.js +0 -0
  293. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/mcp-start.js +0 -0
  294. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/mcp.js +0 -0
  295. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/oas.js +0 -0
  296. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/openapi.js +0 -0
  297. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/remove.js +0 -0
  298. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/rename.js +0 -0
  299. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/restart.js +0 -0
  300. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/rm.js +0 -0
  301. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/start.js +0 -0
  302. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/status.js +0 -0
  303. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/stop.js +0 -0
  304. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/bundle/types.js +0 -0
  305. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/cache/arguments.json +0 -0
  306. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/cache/clear.js +0 -0
  307. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/cache/help.txt +0 -0
  308. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/cache/stats.js +0 -0
  309. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/connector/add.js +0 -0
  310. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/connector/arguments.json +0 -0
  311. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/connector/help.js +0 -0
  312. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/connector/help.txt +0 -0
  313. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/connector/infer.js +0 -0
  314. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/connector/list.js +0 -0
  315. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/connector/migrate.js +0 -0
  316. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/connector/models.js +0 -0
  317. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/connector/remove.js +0 -0
  318. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/connector/rm.js +0 -0
  319. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/connector/test.js +0 -0
  320. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/container/arguments.json +0 -0
  321. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/container/help.js +0 -0
  322. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/container/help.txt +0 -0
  323. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/container/man.js +0 -0
  324. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/container/ps.js +0 -0
  325. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/container/stop.js +0 -0
  326. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/controller/add.js +0 -0
  327. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/controller/arguments.json +0 -0
  328. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/controller/help.txt +0 -0
  329. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/controller/inc/args.js +0 -0
  330. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/controller/inc/namespace.js +0 -0
  331. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/controller/inc/reference-rewrite.js +0 -0
  332. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/controller/inc/reference-scan.js +0 -0
  333. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/controller/inc/scaffold.js +0 -0
  334. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/controller/remove.js +0 -0
  335. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/controller/rename.js +0 -0
  336. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/controller/rm.js +0 -0
  337. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/env/add.js +0 -0
  338. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/env/get.js +0 -0
  339. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/env/help.js +0 -0
  340. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/env/help.txt +0 -0
  341. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/env/link-dev.js +0 -0
  342. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/env/list.js +0 -0
  343. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/env/remove.js +0 -0
  344. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/env/rm.js +0 -0
  345. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/env/set.js +0 -0
  346. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/env/unset.js +0 -0
  347. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/env/use.js +0 -0
  348. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/add.js +0 -0
  349. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/arguments.json +0 -0
  350. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/build.js +0 -0
  351. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/dot.js +0 -0
  352. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/get.js +0 -0
  353. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/help.js +0 -0
  354. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/help.txt +0 -0
  355. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/init.js +0 -0
  356. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/link-node-modules.js +0 -0
  357. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/link.js +0 -0
  358. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/list.js +0 -0
  359. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/man.js +0 -0
  360. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/msg.json +0 -0
  361. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/open.js +0 -0
  362. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/remove.js +0 -0
  363. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/reset.js +0 -0
  364. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/restart.js +0 -0
  365. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/set.js +0 -0
  366. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/start.js +0 -0
  367. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/status.js +0 -0
  368. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/stop.js +0 -0
  369. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/tail.js +0 -0
  370. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/update.js +0 -0
  371. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/framework/version.js +0 -0
  372. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/gina-dev.1.md +0 -0
  373. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/gina-framework.1.md +0 -0
  374. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/gina.1.md +0 -0
  375. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/helper.js +0 -0
  376. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/i18n/add.js +0 -0
  377. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/i18n/arguments.json +0 -0
  378. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/i18n/export.js +0 -0
  379. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/i18n/help.js +0 -0
  380. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/i18n/help.txt +0 -0
  381. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/i18n/import.js +0 -0
  382. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/i18n/scan.js +0 -0
  383. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/image/_host.js +0 -0
  384. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/image/arguments.json +0 -0
  385. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/image/build.js +0 -0
  386. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/image/help.js +0 -0
  387. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/image/help.txt +0 -0
  388. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/image/list.js +0 -0
  389. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/image/man.js +0 -0
  390. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/image/rm.js +0 -0
  391. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/image/run.js +0 -0
  392. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/index.js +0 -0
  393. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/inspector/help.js +0 -0
  394. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/inspector/help.txt +0 -0
  395. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/inspector/open.js +0 -0
  396. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/man-render.js +0 -0
  397. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/minion/arguments.json +0 -0
  398. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/minion/help.js +0 -0
  399. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/minion/help.txt +0 -0
  400. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/minion/kill.js +0 -0
  401. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/minion/list.js +0 -0
  402. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/msg.json +0 -0
  403. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/port/help.js +0 -0
  404. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/port/help.txt +0 -0
  405. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/port/inc/scan.js +0 -0
  406. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/port/list.js +0 -0
  407. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/port/reset.js +0 -0
  408. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/port/set.js +0 -0
  409. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/add.js +0 -0
  410. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/arguments.json +0 -0
  411. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/backup.js +0 -0
  412. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/build.js +0 -0
  413. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/help.js +0 -0
  414. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/help.txt +0 -0
  415. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/import.js +0 -0
  416. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/list.js +0 -0
  417. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/man.js +0 -0
  418. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/move.js +0 -0
  419. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/remove.js +0 -0
  420. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/rename.js +0 -0
  421. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/restart.js +0 -0
  422. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/restore.js +0 -0
  423. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/rm.js +0 -0
  424. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/start.js +0 -0
  425. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/status.js +0 -0
  426. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/project/stop.js +0 -0
  427. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/protocol/arguments.json +0 -0
  428. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/protocol/help.js +0 -0
  429. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/protocol/help.txt +0 -0
  430. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/protocol/list.js +0 -0
  431. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/protocol/remove.js +0 -0
  432. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/protocol/set.js +0 -0
  433. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/scope/add.js +0 -0
  434. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/scope/help.js +0 -0
  435. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/scope/help.txt +0 -0
  436. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/scope/link-local.js +0 -0
  437. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/scope/link-production.js +0 -0
  438. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/scope/list.js +0 -0
  439. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/scope/remove.js +0 -0
  440. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/scope/rm.js +0 -0
  441. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/scope/use.js +0 -0
  442. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/secrets/arguments.json +0 -0
  443. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/secrets/check.js +0 -0
  444. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/secrets/help.js +0 -0
  445. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/secrets/help.txt +0 -0
  446. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/secrets/scan.js +0 -0
  447. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/service/help.js +0 -0
  448. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/service/list.js +0 -0
  449. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/service/man.js +0 -0
  450. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/storage/arguments.json +0 -0
  451. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/storage/gc.js +0 -0
  452. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/storage/help.txt +0 -0
  453. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/storage/stats.js +0 -0
  454. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/storage/verify.js +0 -0
  455. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd/view/add.js +0 -0
  456. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd-status-format/package.json +0 -0
  457. /package/framework/{v0.6.12 → v0.6.13}/lib/cmd-status-format/src/main.js +0 -0
  458. /package/framework/{v0.6.12 → v0.6.13}/lib/collection/README.md +0 -0
  459. /package/framework/{v0.6.12 → v0.6.13}/lib/collection/build.json +0 -0
  460. /package/framework/{v0.6.12 → v0.6.13}/lib/collection/package.json +0 -0
  461. /package/framework/{v0.6.12 → v0.6.13}/lib/collection/src/main.js +0 -0
  462. /package/framework/{v0.6.12 → v0.6.13}/lib/config.js +0 -0
  463. /package/framework/{v0.6.12 → v0.6.13}/lib/connector-config/package.json +0 -0
  464. /package/framework/{v0.6.12 → v0.6.13}/lib/connector-config/src/main.js +0 -0
  465. /package/framework/{v0.6.12 → v0.6.13}/lib/connector-error/package.json +0 -0
  466. /package/framework/{v0.6.12 → v0.6.13}/lib/connector-error/src/main.js +0 -0
  467. /package/framework/{v0.6.12 → v0.6.13}/lib/connector-registry/package.json +0 -0
  468. /package/framework/{v0.6.12 → v0.6.13}/lib/connector-registry/src/main.js +0 -0
  469. /package/framework/{v0.6.12 → v0.6.13}/lib/cron/README.md +0 -0
  470. /package/framework/{v0.6.12 → v0.6.13}/lib/cron/package.json +0 -0
  471. /package/framework/{v0.6.12 → v0.6.13}/lib/cron/src/main.js +0 -0
  472. /package/framework/{v0.6.12 → v0.6.13}/lib/domain/LICENSE +0 -0
  473. /package/framework/{v0.6.12 → v0.6.13}/lib/domain/README.md +0 -0
  474. /package/framework/{v0.6.12 → v0.6.13}/lib/domain/package.json +0 -0
  475. /package/framework/{v0.6.12 → v0.6.13}/lib/domain/src/main.js +0 -0
  476. /package/framework/{v0.6.12 → v0.6.13}/lib/dto/package.json +0 -0
  477. /package/framework/{v0.6.12 → v0.6.13}/lib/dto/src/main.js +0 -0
  478. /package/framework/{v0.6.12 → v0.6.13}/lib/dto-pipe/package.json +0 -0
  479. /package/framework/{v0.6.12 → v0.6.13}/lib/dto-pipe/src/main.js +0 -0
  480. /package/framework/{v0.6.12 → v0.6.13}/lib/dto-types/package.json +0 -0
  481. /package/framework/{v0.6.12 → v0.6.13}/lib/dto-types/src/main.js +0 -0
  482. /package/framework/{v0.6.12 → v0.6.13}/lib/generator/index.js +0 -0
  483. /package/framework/{v0.6.12 → v0.6.13}/lib/i18n/package.json +0 -0
  484. /package/framework/{v0.6.12 → v0.6.13}/lib/i18n/src/main.js +0 -0
  485. /package/framework/{v0.6.12 → v0.6.13}/lib/image-build/package.json +0 -0
  486. /package/framework/{v0.6.12 → v0.6.13}/lib/image-build/src/main.js +0 -0
  487. /package/framework/{v0.6.12 → v0.6.13}/lib/inherits/LICENSE +0 -0
  488. /package/framework/{v0.6.12 → v0.6.13}/lib/inherits/README.md +0 -0
  489. /package/framework/{v0.6.12 → v0.6.13}/lib/inherits/package.json +0 -0
  490. /package/framework/{v0.6.12 → v0.6.13}/lib/inherits/src/main.js +0 -0
  491. /package/framework/{v0.6.12 → v0.6.13}/lib/inspector-events/package.json +0 -0
  492. /package/framework/{v0.6.12 → v0.6.13}/lib/inspector-events/src/main.js +0 -0
  493. /package/framework/{v0.6.12 → v0.6.13}/lib/inspector-redact/package.json +0 -0
  494. /package/framework/{v0.6.12 → v0.6.13}/lib/inspector-redact/src/main.js +0 -0
  495. /package/framework/{v0.6.12 → v0.6.13}/lib/instrument/package.json +0 -0
  496. /package/framework/{v0.6.12 → v0.6.13}/lib/instrument/src/main.js +0 -0
  497. /package/framework/{v0.6.12 → v0.6.13}/lib/job/package.json +0 -0
  498. /package/framework/{v0.6.12 → v0.6.13}/lib/job/src/main.js +0 -0
  499. /package/framework/{v0.6.12 → v0.6.13}/lib/job-store.js +0 -0
  500. /package/framework/{v0.6.12 → v0.6.13}/lib/json-config-header/package.json +0 -0
  501. /package/framework/{v0.6.12 → v0.6.13}/lib/json-config-header/src/main.js +0 -0
  502. /package/framework/{v0.6.12 → v0.6.13}/lib/loading-state/package.json +0 -0
  503. /package/framework/{v0.6.12 → v0.6.13}/lib/loading-state/src/main.js +0 -0
  504. /package/framework/{v0.6.12 → v0.6.13}/lib/logger/README.md +0 -0
  505. /package/framework/{v0.6.12 → v0.6.13}/lib/logger/package.json +0 -0
  506. /package/framework/{v0.6.12 → v0.6.13}/lib/logger/src/containers/default/index.js +0 -0
  507. /package/framework/{v0.6.12 → v0.6.13}/lib/logger/src/containers/file/index.js +0 -0
  508. /package/framework/{v0.6.12 → v0.6.13}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  509. /package/framework/{v0.6.12 → v0.6.13}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  510. /package/framework/{v0.6.12 → v0.6.13}/lib/logger/src/containers/mq/index.js +0 -0
  511. /package/framework/{v0.6.12 → v0.6.13}/lib/logger/src/containers/mq/listener.js +0 -0
  512. /package/framework/{v0.6.12 → v0.6.13}/lib/logger/src/containers/mq/speaker.js +0 -0
  513. /package/framework/{v0.6.12 → v0.6.13}/lib/logger/src/helper.js +0 -0
  514. /package/framework/{v0.6.12 → v0.6.13}/lib/logger/src/main.js +0 -0
  515. /package/framework/{v0.6.12 → v0.6.13}/lib/maintenance/package.json +0 -0
  516. /package/framework/{v0.6.12 → v0.6.13}/lib/maintenance/src/main.js +0 -0
  517. /package/framework/{v0.6.12 → v0.6.13}/lib/math/index.js +0 -0
  518. /package/framework/{v0.6.12 → v0.6.13}/lib/mcp-dispatch/package.json +0 -0
  519. /package/framework/{v0.6.12 → v0.6.13}/lib/mcp-dispatch/src/main.js +0 -0
  520. /package/framework/{v0.6.12 → v0.6.13}/lib/mcp-http/package.json +0 -0
  521. /package/framework/{v0.6.12 → v0.6.13}/lib/mcp-http/src/main.js +0 -0
  522. /package/framework/{v0.6.12 → v0.6.13}/lib/mcp-server/package.json +0 -0
  523. /package/framework/{v0.6.12 → v0.6.13}/lib/mcp-server/src/main.js +0 -0
  524. /package/framework/{v0.6.12 → v0.6.13}/lib/merge/README.md +0 -0
  525. /package/framework/{v0.6.12 → v0.6.13}/lib/merge/package.json +0 -0
  526. /package/framework/{v0.6.12 → v0.6.13}/lib/merge/src/main.js +0 -0
  527. /package/framework/{v0.6.12 → v0.6.13}/lib/metrics/package.json +0 -0
  528. /package/framework/{v0.6.12 → v0.6.13}/lib/metrics/src/main.js +0 -0
  529. /package/framework/{v0.6.12 → v0.6.13}/lib/model.js +0 -0
  530. /package/framework/{v0.6.12 → v0.6.13}/lib/net-locality/package.json +0 -0
  531. /package/framework/{v0.6.12 → v0.6.13}/lib/net-locality/src/main.js +0 -0
  532. /package/framework/{v0.6.12 → v0.6.13}/lib/nunjucks-filters/README.md +0 -0
  533. /package/framework/{v0.6.12 → v0.6.13}/lib/nunjucks-filters/package.json +0 -0
  534. /package/framework/{v0.6.12 → v0.6.13}/lib/nunjucks-filters/src/main.js +0 -0
  535. /package/framework/{v0.6.12 → v0.6.13}/lib/nunjucks-resolver/package.json +0 -0
  536. /package/framework/{v0.6.12 → v0.6.13}/lib/nunjucks-resolver/src/main.js +0 -0
  537. /package/framework/{v0.6.12 → v0.6.13}/lib/proc.js +0 -0
  538. /package/framework/{v0.6.12 → v0.6.13}/lib/push/package.json +0 -0
  539. /package/framework/{v0.6.12 → v0.6.13}/lib/push/src/main.js +0 -0
  540. /package/framework/{v0.6.12 → v0.6.13}/lib/release-watch/package.json +0 -0
  541. /package/framework/{v0.6.12 → v0.6.13}/lib/release-watch/src/main.js +0 -0
  542. /package/framework/{v0.6.12 → v0.6.13}/lib/render-cache/package.json +0 -0
  543. /package/framework/{v0.6.12 → v0.6.13}/lib/render-cache/src/main.js +0 -0
  544. /package/framework/{v0.6.12 → v0.6.13}/lib/render-cache-store.js +0 -0
  545. /package/framework/{v0.6.12 → v0.6.13}/lib/routing/README.md +0 -0
  546. /package/framework/{v0.6.12 → v0.6.13}/lib/routing/build.json +0 -0
  547. /package/framework/{v0.6.12 → v0.6.13}/lib/routing/package.json +0 -0
  548. /package/framework/{v0.6.12 → v0.6.13}/lib/routing/src/radix.js +0 -0
  549. /package/framework/{v0.6.12 → v0.6.13}/lib/routing-introspect/package.json +0 -0
  550. /package/framework/{v0.6.12 → v0.6.13}/lib/routing-introspect/src/main.js +0 -0
  551. /package/framework/{v0.6.12 → v0.6.13}/lib/secrets/package.json +0 -0
  552. /package/framework/{v0.6.12 → v0.6.13}/lib/secrets/src/backends/env.js +0 -0
  553. /package/framework/{v0.6.12 → v0.6.13}/lib/secrets/src/backends/file.js +0 -0
  554. /package/framework/{v0.6.12 → v0.6.13}/lib/secrets/src/env-file.js +0 -0
  555. /package/framework/{v0.6.12 → v0.6.13}/lib/secrets/src/main.js +0 -0
  556. /package/framework/{v0.6.12 → v0.6.13}/lib/session-store.js +0 -0
  557. /package/framework/{v0.6.12 → v0.6.13}/lib/shell.js +0 -0
  558. /package/framework/{v0.6.12 → v0.6.13}/lib/sqlite-driver.js +0 -0
  559. /package/framework/{v0.6.12 → v0.6.13}/lib/state.js +0 -0
  560. /package/framework/{v0.6.12 → v0.6.13}/lib/storage/package.json +0 -0
  561. /package/framework/{v0.6.12 → v0.6.13}/lib/storage/src/local-cas.js +0 -0
  562. /package/framework/{v0.6.12 → v0.6.13}/lib/storage/src/local-stream.js +0 -0
  563. /package/framework/{v0.6.12 → v0.6.13}/lib/storage/src/local.js +0 -0
  564. /package/framework/{v0.6.12 → v0.6.13}/lib/storage/src/main.js +0 -0
  565. /package/framework/{v0.6.12 → v0.6.13}/lib/storage/src/meta-store.js +0 -0
  566. /package/framework/{v0.6.12 → v0.6.13}/lib/storage/src/s3.js +0 -0
  567. /package/framework/{v0.6.12 → v0.6.13}/lib/storage/src/util.js +0 -0
  568. /package/framework/{v0.6.12 → v0.6.13}/lib/storage-store.js +0 -0
  569. /package/framework/{v0.6.12 → v0.6.13}/lib/swig-filters/README.md +0 -0
  570. /package/framework/{v0.6.12 → v0.6.13}/lib/swig-filters/package.json +0 -0
  571. /package/framework/{v0.6.12 → v0.6.13}/lib/swig-filters/src/main.js +0 -0
  572. /package/framework/{v0.6.12 → v0.6.13}/lib/swig-resolver/package.json +0 -0
  573. /package/framework/{v0.6.12 → v0.6.13}/lib/swig-resolver/src/main.js +0 -0
  574. /package/framework/{v0.6.12 → v0.6.13}/lib/template-loaders/package.json +0 -0
  575. /package/framework/{v0.6.12 → v0.6.13}/lib/template-loaders/src/loaders/http.js +0 -0
  576. /package/framework/{v0.6.12 → v0.6.13}/lib/template-loaders/src/loaders/memory.js +0 -0
  577. /package/framework/{v0.6.12 → v0.6.13}/lib/template-loaders/src/main.js +0 -0
  578. /package/framework/{v0.6.12 → v0.6.13}/lib/url/README.md +0 -0
  579. /package/framework/{v0.6.12 → v0.6.13}/lib/url/index.js +0 -0
  580. /package/framework/{v0.6.12 → v0.6.13}/lib/url/routing.json +0 -0
  581. /package/framework/{v0.6.12 → v0.6.13}/lib/uuid/package.json +0 -0
  582. /package/framework/{v0.6.12 → v0.6.13}/lib/uuid/src/main.js +0 -0
  583. /package/framework/{v0.6.12 → v0.6.13}/lib/validator.js +0 -0
  584. /package/framework/{v0.6.12 → v0.6.13}/lib/watcher/package.json +0 -0
  585. /package/framework/{v0.6.12 → v0.6.13}/lib/watcher/src/main.js +0 -0
  586. /package/framework/{v0.6.12 → v0.6.13}/lib/ws-framing/package.json +0 -0
  587. /package/framework/{v0.6.12 → v0.6.13}/lib/ws-framing/src/main.js +0 -0
  588. /package/framework/{v0.6.12 → v0.6.13}/lib/ws-query/package.json +0 -0
  589. /package/framework/{v0.6.12 → v0.6.13}/lib/ws-query/src/main.js +0 -0
  590. /package/framework/{v0.6.12 → v0.6.13}/lib/ws-session/package.json +0 -0
  591. /package/framework/{v0.6.12 → v0.6.13}/lib/ws-session/src/main.js +0 -0
@@ -0,0 +1,316 @@
1
+ /*
2
+ * This file is part of the gina package.
3
+ * Copyright (c) 2009-2026 Rhinostone <contact@gina.io>
4
+ *
5
+ * For the full copyright and license information, please view the LICENSE
6
+ * file that was distributed with this source code.
7
+ */
8
+ 'use strict';
9
+
10
+ /**
11
+ * @module gina/core/connectors/sqlite/kv-store
12
+ * @description SQLite backend for the general-purpose KV primitive (#KV1,
13
+ * slice 2) — the zero-dependency durable backend, sitting between the
14
+ * in-memory default (fast, process-local, lost on restart) and redis (shared
15
+ * across hosts, needs a server).
16
+ *
17
+ * Backed by `node:sqlite` through the shared `lib/sqlite-driver` seam (the
18
+ * built-in on Node, a `bun:sqlite` adapter under Bun), the same substrate as
19
+ * `lib/state`, the SQLite session/job stores and the storage metadata store.
20
+ *
21
+ * **What it buys over memory:** namespace contents survive a bundle restart,
22
+ * and any process opening the same file sees them — so a single-host
23
+ * multi-bundle deployment can share a namespace without running redis. **What
24
+ * it does not buy:** cross-HOST sharing; that is what the redis backend is
25
+ * for.
26
+ *
27
+ * **Namespaces share a file by a composite key**, not a key prefix: the table
28
+ * is keyed `(ns, key)`, so two namespaces pointing at one `connectors.json`
29
+ * entry never collide and `clear()` is a single `DELETE ... WHERE ns = ?`.
30
+ * (The redis backend prefixes instead, because redis has no composite key.)
31
+ *
32
+ * **Atomicity comes from IMMEDIATE transactions, not from the driver being
33
+ * synchronous.** Being synchronous makes each verb indivisible *within this
34
+ * process*, which is exactly the guarantee that does NOT hold once a second
35
+ * process opens the same file — and multi-process sharing is the reason to
36
+ * choose this backend at all. So every read-modify-write verb (`del`,
37
+ * `setnx`, `consume`, `incrby`, `compareDel`) runs inside
38
+ * `BEGIN IMMEDIATE` / `COMMIT`, which takes SQLite's write lock up front and
39
+ * makes the pair atomic against other processes too. Single-statement verbs
40
+ * need no transaction.
41
+ *
42
+ * **Expiry is lazy on read plus a periodic sweep**, mirroring the in-memory
43
+ * backend: every read filters on `exp`, so an unswept expired row is never
44
+ * observable; the sweep only bounds file growth. `clear()` deliberately counts
45
+ * expired-but-unswept rows, because the in-memory backend's `clear()` reports
46
+ * `map.size` on the same basis.
47
+ *
48
+ * `file` is the PATH key by the sqlite DB-connector convention — the model
49
+ * layer scans every `connectors.json` entry at boot and treats `database` as a
50
+ * NAME, so a path in `database` fails the boot before this store is built.
51
+ *
52
+ * @example
53
+ * // connectors.json: { "kvDb": { "connector": "sqlite", "file": "/data/kv.db" } }
54
+ * // settings.json: { "kv": { "namespaces": { "tokens": { "store": "kvDb" } } } }
55
+ * // (wired automatically at boot by gna.js via lib/kv-store)
56
+ */
57
+
58
+ /**
59
+ * Default expired-row sweep cadence, ms.
60
+ * @constant
61
+ * @inner
62
+ * @type {number}
63
+ */
64
+ var DEFAULT_SWEEP_MS = 30000;
65
+
66
+ /**
67
+ * Build the SQLite KV backend for one namespace.
68
+ *
69
+ * @class SqliteKvStore
70
+ * @constructor
71
+ *
72
+ * @param {object} connConf - Resolved `connectors.json` entry.
73
+ * @param {string} [connConf.file] - SQLite file path, or `':memory:'` (volatile —
74
+ * only useful in tests). Defaults to
75
+ * `~/.gina/{version}/kv-{bundle}.db`.
76
+ * @param {number} [connConf.sweepInterval] - Expired-row sweep cadence in ms (default 30000).
77
+ * @param {string} bundle - Bundle name — used for the default file name.
78
+ * @param {string} namespaceName - KV namespace this store backs (the `ns` column).
79
+ * @returns {object} - A `KvStoreContract` instance (see `lib/kv`).
80
+ * @throws {Error} - When no SQLite driver is available, or the
81
+ * database file cannot be opened.
82
+ */
83
+ module.exports = function SqliteKvStore(connConf, bundle, namespaceName) {
84
+ connConf = connConf || {};
85
+
86
+ var DatabaseSync;
87
+ try {
88
+ DatabaseSync = require('./../../../../lib/sqlite-driver').getDatabaseSync();
89
+ } catch (e) {
90
+ throw new Error('[SqliteKvStore] ' + e.message);
91
+ }
92
+
93
+ // Resolve the DB path: connectors.json `file` > default per-bundle file.
94
+ // The default branch is the only place the injected `_` / `getPath`
95
+ // globals are read, so a test passing an explicit `file` stays standalone.
96
+ var dbPath = connConf.file
97
+ || _(getPath('gina').home + '/kv-' + (bundle || 'bundle') + '.db', true);
98
+
99
+ var ns = String(namespaceName || 'default');
100
+ var db = new DatabaseSync(dbPath);
101
+
102
+ // WAL + synchronous=NORMAL — the same trade-off as the sibling SQLite
103
+ // stores: concurrent readers never block the writer; a crash can lose the
104
+ // last committed transaction but never corrupts the file.
105
+ db.exec('PRAGMA journal_mode=WAL');
106
+ db.exec('PRAGMA synchronous=NORMAL');
107
+
108
+ // Schema bootstrap — idempotent. `exp` is epoch MILLISECONDS or NULL for
109
+ // "no expiry"; the composite primary key is what isolates namespaces
110
+ // sharing one file.
111
+ db.exec(
112
+ 'CREATE TABLE IF NOT EXISTS kv ('
113
+ + ' ns TEXT NOT NULL,'
114
+ + ' key TEXT NOT NULL,'
115
+ + ' value TEXT NOT NULL,'
116
+ + ' exp INTEGER,'
117
+ + ' PRIMARY KEY (ns, key)'
118
+ + ')'
119
+ );
120
+ db.exec('CREATE INDEX IF NOT EXISTS kv_exp ON kv (exp)');
121
+
122
+ var stmtGet = db.prepare('SELECT value, exp FROM kv WHERE ns = ? AND key = ?');
123
+ var stmtPut = db.prepare('INSERT OR REPLACE INTO kv (ns, key, value, exp) VALUES (?, ?, ?, ?)');
124
+ var stmtDel = db.prepare('DELETE FROM kv WHERE ns = ? AND key = ?');
125
+ var stmtExpire = db.prepare('UPDATE kv SET exp = ? WHERE ns = ? AND key = ?');
126
+ var stmtClear = db.prepare('DELETE FROM kv WHERE ns = ?');
127
+ var stmtSweep = db.prepare('DELETE FROM kv WHERE ns = ? AND exp IS NOT NULL AND exp <= ?');
128
+
129
+ /**
130
+ * The live row for a key, or `null` when absent or expired.
131
+ * @inner
132
+ * @param {string} key - Caller key.
133
+ * @returns {?{value: string, exp: ?number}}
134
+ */
135
+ function live(key) {
136
+ var row = stmtGet.get(ns, key);
137
+ if (!row) { return null; }
138
+ if (row.exp !== null && typeof row.exp !== 'undefined' && row.exp <= Date.now()) { return null; }
139
+ return row;
140
+ }
141
+
142
+ /**
143
+ * Run `fn` inside `BEGIN IMMEDIATE` / `COMMIT`, rolling back on a throw.
144
+ * IMMEDIATE takes the write lock up front, so a read-modify-write pair is
145
+ * atomic against OTHER PROCESSES sharing the file — the guarantee the
146
+ * synchronous driver alone does not provide.
147
+ *
148
+ * @inner
149
+ * @param {function} fn - Body; its return value is returned.
150
+ * @returns {*} Whatever `fn` returns.
151
+ */
152
+ function tx(fn) {
153
+ db.exec('BEGIN IMMEDIATE');
154
+ var out;
155
+ try {
156
+ out = fn();
157
+ } catch (err) {
158
+ try { db.exec('ROLLBACK'); } catch (rbErr) { /* the throw below is the real error */ }
159
+ throw err;
160
+ }
161
+ db.exec('COMMIT');
162
+ return out;
163
+ }
164
+
165
+ /**
166
+ * Lift a synchronous body into the contract's promise shape.
167
+ * @inner
168
+ * @param {function} fn - Body.
169
+ * @returns {Promise<*>}
170
+ */
171
+ function P(fn) {
172
+ try {
173
+ return Promise.resolve(fn());
174
+ } catch (err) {
175
+ return Promise.reject(err);
176
+ }
177
+ }
178
+
179
+ var sweepMs = (Number.isSafeInteger(connConf.sweepInterval) && connConf.sweepInterval > 0)
180
+ ? connConf.sweepInterval
181
+ : DEFAULT_SWEEP_MS;
182
+
183
+ // Bounds file growth only — reads already filter on `exp`, so an unswept
184
+ // row is never observable. Never keeps the process alive.
185
+ var timer = setInterval(function sweepExpired() {
186
+ try { stmtSweep.run(ns, Date.now()); } catch (sweepErr) { /* next tick retries */ }
187
+ }, sweepMs);
188
+ if (timer.unref) { timer.unref(); }
189
+
190
+ return {
191
+ get: function (key) {
192
+ return P(function () {
193
+ var row = live(key);
194
+ return row ? row.value : null;
195
+ });
196
+ },
197
+
198
+ set: function (key, s, ttlMs) {
199
+ return P(function () {
200
+ stmtPut.run(ns, key, s, ttlMs ? Date.now() + ttlMs : null);
201
+ return undefined;
202
+ });
203
+ },
204
+
205
+ del: function (key) {
206
+ return P(function () {
207
+ return tx(function () {
208
+ var existed = !!live(key);
209
+ // Unconditional: an expired row is swept opportunistically
210
+ // here too, while `existed` keeps the contract's
211
+ // live-only semantics.
212
+ stmtDel.run(ns, key);
213
+ return existed;
214
+ });
215
+ });
216
+ },
217
+
218
+ has: function (key) {
219
+ return P(function () { return !!live(key); });
220
+ },
221
+
222
+ pttl: function (key) {
223
+ return P(function () {
224
+ var row = live(key);
225
+ if (!row) { return null; }
226
+ if (row.exp === null || typeof row.exp === 'undefined') { return -1; }
227
+ return Math.max(0, row.exp - Date.now());
228
+ });
229
+ },
230
+
231
+ pexpire: function (key, ttlMs) {
232
+ return P(function () {
233
+ return tx(function () {
234
+ if (!live(key)) { return false; }
235
+ stmtExpire.run(Date.now() + ttlMs, ns, key);
236
+ return true;
237
+ });
238
+ });
239
+ },
240
+
241
+ setnx: function (key, s, ttlMs) {
242
+ return P(function () {
243
+ return tx(function () {
244
+ // An EXPIRED row must lose, not win: plain INSERT ... ON
245
+ // CONFLICT DO NOTHING would see the dead row as a conflict
246
+ // and refuse a write that should succeed.
247
+ if (live(key)) { return false; }
248
+ stmtPut.run(ns, key, s, ttlMs ? Date.now() + ttlMs : null);
249
+ return true;
250
+ });
251
+ });
252
+ },
253
+
254
+ consume: function (key) {
255
+ return P(function () {
256
+ return tx(function () {
257
+ var row = live(key);
258
+ stmtDel.run(ns, key);
259
+ return row ? row.value : null;
260
+ });
261
+ });
262
+ },
263
+
264
+ incrby: function (key, by, ttlMs) {
265
+ return P(function () {
266
+ return tx(function () {
267
+ var row = live(key);
268
+ var cur = 0;
269
+ if (row) {
270
+ cur = Number(row.value);
271
+ if (!Number.isSafeInteger(cur)) {
272
+ throw new Error('[kv] value at key `' + key + '` is not an integer — incr/decr need an integer value');
273
+ }
274
+ }
275
+ var next = cur + by;
276
+ if (!Number.isSafeInteger(next)) {
277
+ throw new Error('[kv] increment leaves the safe-integer range at key `' + key + '`');
278
+ }
279
+ // TTL applies on CREATE only — an existing counter keeps
280
+ // whatever expiry it already had.
281
+ var exp = row ? ((typeof row.exp === 'undefined') ? null : row.exp)
282
+ : (ttlMs ? Date.now() + ttlMs : null);
283
+ stmtPut.run(ns, key, String(next), exp);
284
+ return next;
285
+ });
286
+ });
287
+ },
288
+
289
+ compareDel: function (key, s) {
290
+ return P(function () {
291
+ return tx(function () {
292
+ var row = live(key);
293
+ if (row && row.value === s) {
294
+ stmtDel.run(ns, key);
295
+ return true;
296
+ }
297
+ return false;
298
+ });
299
+ });
300
+ },
301
+
302
+ clear: function () {
303
+ return P(function () {
304
+ // Counts expired-but-unswept rows, matching the in-memory
305
+ // backend's `map.size` basis.
306
+ var res = stmtClear.run(ns);
307
+ return res.changes;
308
+ });
309
+ },
310
+
311
+ close: function () {
312
+ clearInterval(timer);
313
+ try { db.close(); } catch (closeErr) { /* already closed */ }
314
+ }
315
+ };
316
+ };
@@ -4514,6 +4514,50 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
4514
4514
  if ( !/http2/.test(httpLib) && /https/.test(options.scheme) ) {
4515
4515
  httpLib += 's';
4516
4516
  }
4517
+
4518
+ // #MS5 — per-authority circuit breaker (opt-in: settings.json
4519
+ // `server.query.circuitBreaker`, boot-resolved onto the engine
4520
+ // instance by server.js `start()`). Gating happens HERE, above the
4521
+ // protocol dispatch, so an open circuit rejects before any
4522
+ // connection, retry or pre-flight machinery runs: the #B34/#B52/#B53
4523
+ // invariants inside the handlers are untouched, and retries can
4524
+ // never hammer an open circuit.
4525
+ var _cbConf = self.serverInstance && self.serverInstance._queryCircuitBreaker;
4526
+ if ( _cbConf && _cbConf.enabled ) {
4527
+ var _cbAuthority = options.hostname + ':' + options.port;
4528
+ var _cbEntry = _getCircuitEntry(_cbAuthority);
4529
+ var _cbGate = _circuitAdmit(_cbEntry, _cbConf, isCritical);
4530
+ if ( !_cbGate.admitted ) {
4531
+ var _cbErr = new GinaCircuitOpenError(_cbAuthority, _cbGate.retryAfterMs);
4532
+ if (!isCritical) {
4533
+ // mirror the H3 `_swallowIfNonCritical` contract: log-only, no callback
4534
+ console.warn('[QUERY][circuit-open][non-critical] swallowed '+ (options.method || '') +' '+ (options.path || '') +' to '+ _cbAuthority);
4535
+ return;
4536
+ }
4537
+ if (callback) {
4538
+ return callback(_cbErr);
4539
+ }
4540
+ return self.emit('query#complete', _cbErr);
4541
+ }
4542
+ if ( typeof(callback) == 'function' ) {
4543
+ var _cbOriginalCallback = callback;
4544
+ var _cbSettled = false;
4545
+ callback = function onCircuitObservedOutcome(err) {
4546
+ if (!_cbSettled) { // record once, whatever the terminal
4547
+ _cbSettled = true;
4548
+ _circuitRecord(_cbEntry, _cbConf, _cbGate.probe, err);
4549
+ }
4550
+ return _cbOriginalCallback.apply(this, arguments);
4551
+ };
4552
+ } else if (_cbGate.probe) {
4553
+ // No callback → the outcome is unobservable (the shared
4554
+ // `query#complete` emitter would misattribute concurrent
4555
+ // queries) → release the probe slot immediately rather than
4556
+ // wedge the half-open state.
4557
+ _cbEntry.probeInFlight = false;
4558
+ }
4559
+ }
4560
+
4517
4561
  browser = require(''+ httpLib);
4518
4562
  // #FI — capture query call start time for Flow timeline
4519
4563
  if (_isDev && local._timeline) {
@@ -4689,6 +4733,164 @@ if ( /^local$/i.test(process.env.NODE_SCOPE) ) {
4689
4733
  // });
4690
4734
  // };
4691
4735
 
4736
+ /**
4737
+ * Error surfaced by `query()` when the target authority's circuit is OPEN (#MS5).
4738
+ *
4739
+ * Minted ABOVE the HTTP/1.x / HTTP/2 dispatch — before any connection attempt,
4740
+ * retry or pre-flight PING runs — so it applies identically to both client
4741
+ * paths. The field shape mirrors `GinaHttp2Error` (`code`, `retryable`,
4742
+ * `status`, `retryCount`) so machine consumers can switch on `code` without
4743
+ * caring which transport would have been used; the name is protocol-neutral
4744
+ * on purpose.
4745
+ *
4746
+ * @constructor
4747
+ * @param {string} authority - `hostname:port` whose circuit is open
4748
+ * @param {number} retryAfterMs - Milliseconds until the next half-open probe may be admitted (0 = a probe slot is free now)
4749
+ */
4750
+ function GinaCircuitOpenError(authority, retryAfterMs) {
4751
+ Error.call(this);
4752
+ this.name = 'GinaCircuitOpenError';
4753
+ this.message = 'Controller::query() circuit is OPEN for [ '+ authority +' ] — failing fast'+ ( retryAfterMs > 0 ? ' (next probe allowed in '+ retryAfterMs +'ms)' : '' );
4754
+ if (Error.captureStackTrace) {
4755
+ Error.captureStackTrace(this, GinaCircuitOpenError);
4756
+ } else {
4757
+ this.stack = (new Error(this.message)).stack;
4758
+ }
4759
+ this.code = 'CIRCUIT_OPEN';
4760
+ this.retryable = false;
4761
+ this.status = 503;
4762
+ this.retryCount = 0;
4763
+ this.authority = authority;
4764
+ this.retryAfterMs = retryAfterMs;
4765
+ }
4766
+ GinaCircuitOpenError.prototype = Object.create(Error.prototype);
4767
+ GinaCircuitOpenError.prototype.constructor = GinaCircuitOpenError;
4768
+
4769
+ /**
4770
+ * Transport-failure classifier for the #MS5 circuit breaker.
4771
+ *
4772
+ * Counts ONLY errors that indicate the upstream (or the path to it) is
4773
+ * unhealthy: every `GinaHttp2Error` (all of its codes are transport-class —
4774
+ * post-#B34 an application response, whatever its status, flows through the
4775
+ * SUCCESS terminus as data, never as `err`) plus the HTTP/1.x socket-level
4776
+ * codes, checked on `err.code` and `err.cause.code` (the HTTP/1.x error path
4777
+ * annotates both shapes). Anything else — a caller bug surfacing through the
4778
+ * sync dispatch `catch`, a malformed option, an app-level error — is NEUTRAL:
4779
+ * it neither trips nor resets the circuit, because it says nothing about
4780
+ * upstream health.
4781
+ *
4782
+ * @inner
4783
+ * @param {*} err - Whatever the client path surfaced to the query callback
4784
+ * @returns {boolean} `true` when the error counts toward opening the circuit
4785
+ */
4786
+ var _CB_TRANSPORT_CODES = /^(ECONNREFUSED|ECONNRESET|ETIMEDOUT|EPIPE|ECONNABORTED|EHOSTUNREACH|ENETUNREACH)$/;
4787
+ var _isCircuitTransportFailure = function(err) {
4788
+ if (!err) return false;
4789
+ if (err.name === 'GinaHttp2Error') return true;
4790
+ var code = err.code || (err.cause && err.cause.code);
4791
+ return _CB_TRANSPORT_CODES.test(String(code || ''));
4792
+ };
4793
+
4794
+ /**
4795
+ * Lazily fetch (or mint) the per-authority breaker entry (#MS5).
4796
+ *
4797
+ * State lives on the SERVER instance — the same home as `_http2Sessions` —
4798
+ * because dev mode re-requires this module per request (see the #B52 note):
4799
+ * module- or controller-level state would reset on every hot-reload, while
4800
+ * instance state survives reloads and dies on restart, which is exactly the
4801
+ * lifetime circuit state wants. Entries are keyed per distinct
4802
+ * `hostname:port`; query targets come from bundle config and app code (a
4803
+ * trusted surface), so cardinality is not attacker-controlled.
4804
+ *
4805
+ * @inner
4806
+ * @param {string} authority - `hostname:port`
4807
+ * @returns {object} `{ state, consecutiveFailures, openedAt, probeInFlight }`
4808
+ */
4809
+ var _getCircuitEntry = function(authority) {
4810
+ if (!self.serverInstance._queryCircuitBreakers) {
4811
+ self.serverInstance._queryCircuitBreakers = {};
4812
+ }
4813
+ var registry = self.serverInstance._queryCircuitBreakers;
4814
+ if (!registry[authority]) {
4815
+ registry[authority] = { state: 'closed', consecutiveFailures: 0, openedAt: 0, probeInFlight: false };
4816
+ }
4817
+ return registry[authority];
4818
+ };
4819
+
4820
+ /**
4821
+ * Admission decision for one outgoing query under the #MS5 breaker.
4822
+ *
4823
+ * Runs the lazy OPEN → HALF-OPEN transition first (the breaker owns NO
4824
+ * timers: elapsed time is computed on access), then answers:
4825
+ *
4826
+ * - CLOSED → admit
4827
+ * - OPEN, cooling → reject, reporting the remaining cooldown
4828
+ * - OPEN, cooled down → become HALF-OPEN and fall through
4829
+ * - HALF-OPEN → admit exactly ONE probe, and only for a CRITICAL
4830
+ * request: a non-critical failure is swallowed by `_swallowIfNonCritical`
4831
+ * (its callback never fires), so a non-critical probe could never report
4832
+ * back and would wedge `probeInFlight` forever. Everything else is
4833
+ * rejected until the probe settles.
4834
+ *
4835
+ * @inner
4836
+ * @param {object} entry - Breaker entry from `_getCircuitEntry()`
4837
+ * @param {object} conf - Resolved policy (`failureThreshold`, `cooldownMs`)
4838
+ * @param {boolean} isCritical - The query's H3 criticality flag
4839
+ * @returns {object} `{ admitted, probe, retryAfterMs }`
4840
+ */
4841
+ var _circuitAdmit = function(entry, conf, isCritical) {
4842
+ if (entry.state === 'open') {
4843
+ var elapsed = Date.now() - entry.openedAt;
4844
+ if (elapsed < conf.cooldownMs) {
4845
+ return { admitted: false, probe: false, retryAfterMs: conf.cooldownMs - elapsed };
4846
+ }
4847
+ entry.state = 'half-open';
4848
+ entry.probeInFlight = false;
4849
+ }
4850
+ if (entry.state === 'half-open') {
4851
+ if (entry.probeInFlight || !isCritical) {
4852
+ return { admitted: false, probe: false, retryAfterMs: 0 };
4853
+ }
4854
+ entry.probeInFlight = true;
4855
+ return { admitted: true, probe: true, retryAfterMs: 0 };
4856
+ }
4857
+ return { admitted: true, probe: false, retryAfterMs: 0 };
4858
+ };
4859
+
4860
+ /**
4861
+ * Record one settled query outcome against its authority's circuit (#MS5).
4862
+ *
4863
+ * - success → CLOSED, counter reset (a settling probe closes the circuit)
4864
+ * - transport failure → counter + 1; reaching `failureThreshold` — or failing
4865
+ * the half-open probe — re-opens with a fresh cooldown
4866
+ * - neutral (non-transport) error → releases a probe slot but otherwise
4867
+ * changes nothing (see `_isCircuitTransportFailure`)
4868
+ *
4869
+ * @inner
4870
+ * @param {object} entry - Breaker entry
4871
+ * @param {object} conf - Resolved policy
4872
+ * @param {boolean} isProbe - Whether this outcome settles the half-open probe
4873
+ * @param {*} err - The callback's error argument (`false` on success — see §9's sentinel)
4874
+ */
4875
+ var _circuitRecord = function(entry, conf, isProbe, err) {
4876
+ if (isProbe) {
4877
+ entry.probeInFlight = false;
4878
+ }
4879
+ if (!err) {
4880
+ entry.state = 'closed';
4881
+ entry.consecutiveFailures = 0;
4882
+ return;
4883
+ }
4884
+ if ( !_isCircuitTransportFailure(err) ) {
4885
+ return; // neutral — caller bug or app-level error
4886
+ }
4887
+ entry.consecutiveFailures++;
4888
+ if (isProbe || entry.consecutiveFailures >= conf.failureThreshold) {
4889
+ entry.state = 'open';
4890
+ entry.openedAt = Date.now();
4891
+ }
4892
+ };
4893
+
4692
4894
  /**
4693
4895
  * #B53 — Idempotency guard for inter-bundle client retries.
4694
4896
  *
@@ -1748,6 +1748,62 @@ isBundleMounted(projects, bundlesPath, getContext('bundle'), function onBundleMo
1748
1748
  console.warn('[storage] config validation skipped: ' + (stoErr.message || stoErr));
1749
1749
  }
1750
1750
 
1751
+ // #KV1 — general-purpose KV primitive. Validate the starting
1752
+ // bundle's `kv` block, build any connector-backed namespace stores,
1753
+ // then install the namespaces before the first request. FATAL on an
1754
+ // unbuildable config (the #STO1 shape above): a namespace whose
1755
+ // declared store cannot build would leave gina.kv() handing out a
1756
+ // backend the operator did not ask for. Dormant — zero cost — when
1757
+ // the block is absent.
1758
+ try {
1759
+ var _kvAll = config.getInstance();
1760
+ var _kvSettings = null;
1761
+ try {
1762
+ _kvSettings = _kvAll[gna.core.startingApp][env].content.settings.kv;
1763
+ } catch (kvConfErr) { _kvSettings = null; }
1764
+ if ( _kvSettings ) {
1765
+ var _kvCheck = lib.kv.validateConfig(_kvSettings);
1766
+ for (var _kvW = 0; _kvW < _kvCheck.warnings.length; _kvW++) {
1767
+ console.warn('[kv] ' + _kvCheck.warnings[_kvW]);
1768
+ }
1769
+ if (_kvCheck.fatal) {
1770
+ var _kvFatalMsg = '[kv] invalid kv configuration — aborting boot: ' + _kvCheck.fatal;
1771
+ console.emerg(_kvFatalMsg);
1772
+ // boot-exit-flush: process.exit() truncates async stdio on a pipe.
1773
+ try { fs.writeSync(2, _kvFatalMsg + '\n'); } catch (_e) {}
1774
+ process.exit(1);
1775
+ }
1776
+ if (_kvCheck.namespaceCount > 0) {
1777
+ var _kvNamespaces = _kvSettings.namespaces;
1778
+ var _kvStores = {};
1779
+ for (var _kvN in _kvNamespaces) {
1780
+ if ( typeof(_kvNamespaces[_kvN].store) == 'string' && _kvNamespaces[_kvN].store.length > 0 ) {
1781
+ try {
1782
+ // the namespace name is passed so an implementation
1783
+ // prefixes its keys — two namespaces may share one
1784
+ // connectors.json entry without colliding
1785
+ _kvStores[_kvN] = lib.KvStore(_kvNamespaces[_kvN].store, _kvN);
1786
+ } catch (kvStoreErr) {
1787
+ var _kvStoreMsg = '[kv] namespace `' + _kvN + '` names store `' + _kvNamespaces[_kvN].store + '`, which could not be built — aborting boot: ' + (kvStoreErr.message || kvStoreErr);
1788
+ console.emerg(_kvStoreMsg + '\n' + (kvStoreErr.stack || ''));
1789
+ try { fs.writeSync(2, _kvStoreMsg + '\n'); } catch (_e) {}
1790
+ process.exit(1);
1791
+ }
1792
+ }
1793
+ }
1794
+ if ( lib.kv.start(_kvSettings, { stores: _kvStores, warn: function(kvWarnMsg) { console.warn('[kv] ' + kvWarnMsg); } }) ) {
1795
+ // console.info, NOT debug — an operator needs to see
1796
+ // which namespaces went live (the #STO1 precedent).
1797
+ console.info('[kv] ' + _kvCheck.namespaceCount + ' namespace(s) ready' + ( _kvSettings.default ? ' (default: ' + _kvSettings.default + ')' : '' ));
1798
+ } else {
1799
+ console.warn('[kv] namespaces were already installed — this boot wiring was ignored');
1800
+ }
1801
+ }
1802
+ }
1803
+ } catch (kvErr) {
1804
+ console.warn('[kv] setup skipped: ' + (kvErr.message || kvErr));
1805
+ }
1806
+
1751
1807
  // #CE1 — `server.transientErrors` boot-time shape check
1752
1808
  // (warn-only, NEVER fatal: the opt-in governs how a
1753
1809
  // transient datastore error RENDERS — a bad value must
@@ -2561,6 +2617,35 @@ gna.storage = function(name) {
2561
2617
  return lib.storage.get(name);
2562
2618
  };
2563
2619
 
2620
+ /**
2621
+ * #KV1 — get a configured KV namespace.
2622
+ *
2623
+ * The general-purpose key-value surface (counters, one-shot tokens,
2624
+ * fetch-or-compute caching, lease primitives) — strict-declared: a namespace
2625
+ * must exist under `settings.json > kv.namespaces` or this throws at the
2626
+ * call site, which is what surfaces a typo (the `gna.storage` stance).
2627
+ *
2628
+ * Assigned UNCONDITIONALLY, so a bundle with no `kv` block gets a named
2629
+ * error naming the fix instead of `gna.kv is not a function` — and so the
2630
+ * declaration is a plain function rather than one the caller must narrow.
2631
+ *
2632
+ * @param {string} [name] - Namespace name; omitted returns the `kv.default` namespace.
2633
+ * @returns {object} The namespace handle (`get` / `set` / `del` / `has` / `ttl` /
2634
+ * `expire` / `setnx` / `consume` / `incr` / `decr` /
2635
+ * `delIfEquals` / `clear` / `getOrSet` — all promise-returning).
2636
+ * @throws {Error} When kv is not configured, when no default is declared and `name`
2637
+ * was omitted, or when `name` is not a declared namespace.
2638
+ * @example
2639
+ * gna.kv('tokens').consume('t:' + hash).then(function (record) {
2640
+ * if (record === null) { return self.throwError(410, 'link already used'); }
2641
+ * });
2642
+ * @example
2643
+ * gina.kv(); // the `kv.default` namespace
2644
+ */
2645
+ gna.kv = function(name) {
2646
+ return lib.kv.get(name);
2647
+ };
2648
+
2564
2649
  /**
2565
2650
  * #B366 — push a payload to ONE named session from OUTSIDE a request.
2566
2651
  *