gina 0.6.0 → 0.6.1

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 (561) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +24 -31
  3. package/ROADMAP.md +2 -1
  4. package/context7.json +43 -0
  5. package/framework/v0.6.1/VERSION +1 -0
  6. package/framework/{v0.6.0 → v0.6.1}/core/asset/plugin/dist/vendor/gina/js/gina.js +200 -30
  7. package/framework/v0.6.1/core/asset/plugin/dist/vendor/gina/js/gina.min.js +603 -0
  8. package/framework/v0.6.1/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  9. package/framework/v0.6.1/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  10. package/framework/{v0.6.0 → v0.6.1}/core/connectors/couchbase/index.js +15 -0
  11. package/framework/v0.6.1/core/connectors/duckdb/index.js +478 -0
  12. package/framework/v0.6.1/core/connectors/duckdb/lib/connector.js +125 -0
  13. package/framework/{v0.6.0 → v0.6.1}/core/connectors/mongodb/index.js +9 -1
  14. package/framework/{v0.6.0 → v0.6.1}/core/connectors/mysql/index.js +9 -1
  15. package/framework/{v0.6.0 → v0.6.1}/core/connectors/postgresql/index.js +9 -1
  16. package/framework/{v0.6.0 → v0.6.1}/core/connectors/scylladb/index.js +9 -1
  17. package/framework/{v0.6.0 → v0.6.1}/core/connectors/sqlite/index.js +9 -1
  18. package/framework/{v0.6.0 → v0.6.1}/core/connectors/sqlite/lib/connector.js +4 -6
  19. package/framework/{v0.6.0 → v0.6.1}/core/connectors/sqlite/lib/job-store.js +5 -7
  20. package/framework/{v0.6.0 → v0.6.1}/core/connectors/sqlite/lib/session-store.js +5 -7
  21. package/framework/{v0.6.0 → v0.6.1}/core/controller/controller.render-json.js +17 -1
  22. package/framework/{v0.6.0 → v0.6.1}/core/model/entity.js +8 -3
  23. package/framework/{v0.6.0 → v0.6.1}/core/model/template/index.js +1 -1
  24. package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/validator/src/form-validator.js +71 -4
  25. package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/validator/src/main.js +129 -26
  26. package/framework/{v0.6.0 → v0.6.1}/core/server.isaac.js +47 -1
  27. package/framework/{v0.6.0 → v0.6.1}/core/server.js +10 -2
  28. package/framework/{v0.6.0 → v0.6.1}/lib/cmd/connector/add.js +1 -1
  29. package/framework/{v0.6.0 → v0.6.1}/lib/cmd/connector/help.txt +1 -0
  30. package/framework/{v0.6.0 → v0.6.1}/lib/cmd/connector/migrate.js +1 -1
  31. package/framework/{v0.6.0 → v0.6.1}/lib/cmd/connector/remove.js +1 -1
  32. package/framework/{v0.6.0 → v0.6.1}/lib/connector-registry/src/main.js +6 -1
  33. package/framework/{v0.6.0 → v0.6.1}/lib/model.js +2 -2
  34. package/framework/v0.6.1/lib/sqlite-driver.js +217 -0
  35. package/framework/{v0.6.0 → v0.6.1}/lib/state.js +5 -4
  36. package/framework/{v0.6.0 → v0.6.1}/package.json +1 -1
  37. package/gna.js +4 -4
  38. package/llms.txt +15 -4
  39. package/package.json +5 -5
  40. package/schema/connectors.json +9 -4
  41. package/script/smoke_in_container.js +401 -8
  42. package/types/index.d.ts +1 -1
  43. package/framework/v0.6.0/VERSION +0 -1
  44. package/framework/v0.6.0/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -601
  45. package/framework/v0.6.0/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  46. package/framework/v0.6.0/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  47. /package/framework/{v0.6.0 → v0.6.1}/AUTHORS +0 -0
  48. /package/framework/{v0.6.0 → v0.6.1}/LICENSE +0 -0
  49. /package/framework/{v0.6.0 → v0.6.1}/core/asset/html/nolayout.html +0 -0
  50. /package/framework/{v0.6.0 → v0.6.1}/core/asset/html/static.html +0 -0
  51. /package/framework/{v0.6.0 → v0.6.1}/core/asset/img/android-chrome-192x192.png +0 -0
  52. /package/framework/{v0.6.0 → v0.6.1}/core/asset/img/android-chrome-512x512.png +0 -0
  53. /package/framework/{v0.6.0 → v0.6.1}/core/asset/img/apple-touch-icon.png +0 -0
  54. /package/framework/{v0.6.0 → v0.6.1}/core/asset/img/favicon-16x16.png +0 -0
  55. /package/framework/{v0.6.0 → v0.6.1}/core/asset/img/favicon-32x32.png +0 -0
  56. /package/framework/{v0.6.0 → v0.6.1}/core/asset/img/favicon.ico +0 -0
  57. /package/framework/{v0.6.0 → v0.6.1}/core/asset/plugin/README.md +0 -0
  58. /package/framework/{v0.6.0 → v0.6.1}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  59. /package/framework/{v0.6.0 → v0.6.1}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  60. /package/framework/{v0.6.0 → v0.6.1}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  61. /package/framework/{v0.6.0 → v0.6.1}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  62. /package/framework/{v0.6.0 → v0.6.1}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  63. /package/framework/{v0.6.0 → v0.6.1}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  64. /package/framework/{v0.6.0 → v0.6.1}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
  65. /package/framework/{v0.6.0 → v0.6.1}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  66. /package/framework/{v0.6.0 → v0.6.1}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  67. /package/framework/{v0.6.0 → v0.6.1}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  68. /package/framework/{v0.6.0 → v0.6.1}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
  69. /package/framework/{v0.6.0 → v0.6.1}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
  70. /package/framework/{v0.6.0 → v0.6.1}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
  71. /package/framework/{v0.6.0 → v0.6.1}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  72. /package/framework/{v0.6.0 → v0.6.1}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
  73. /package/framework/{v0.6.0 → v0.6.1}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  74. /package/framework/{v0.6.0 → v0.6.1}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  75. /package/framework/{v0.6.0 → v0.6.1}/core/config.js +0 -0
  76. /package/framework/{v0.6.0 → v0.6.1}/core/connectors/ai/index.js +0 -0
  77. /package/framework/{v0.6.0 → v0.6.1}/core/connectors/ai/lib/connector.js +0 -0
  78. /package/framework/{v0.6.0 → v0.6.1}/core/connectors/couchbase/lib/connector.js +0 -0
  79. /package/framework/{v0.6.0 → v0.6.1}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  80. /package/framework/{v0.6.0 → v0.6.1}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  81. /package/framework/{v0.6.0 → v0.6.1}/core/connectors/couchbase/lib/n1ql.js +0 -0
  82. /package/framework/{v0.6.0 → v0.6.1}/core/connectors/couchbase/lib/session-store.js +0 -0
  83. /package/framework/{v0.6.0 → v0.6.1}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  84. /package/framework/{v0.6.0 → v0.6.1}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  85. /package/framework/{v0.6.0 → v0.6.1}/core/connectors/mongodb/lib/connector.js +0 -0
  86. /package/framework/{v0.6.0 → v0.6.1}/core/connectors/mongodb/lib/job-store.js +0 -0
  87. /package/framework/{v0.6.0 → v0.6.1}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
  88. /package/framework/{v0.6.0 → v0.6.1}/core/connectors/mongodb/lib/session-store.js +0 -0
  89. /package/framework/{v0.6.0 → v0.6.1}/core/connectors/mysql/lib/connector.js +0 -0
  90. /package/framework/{v0.6.0 → v0.6.1}/core/connectors/postgresql/lib/connector.js +0 -0
  91. /package/framework/{v0.6.0 → v0.6.1}/core/connectors/redis/index.js +0 -0
  92. /package/framework/{v0.6.0 → v0.6.1}/core/connectors/redis/lib/connector.js +0 -0
  93. /package/framework/{v0.6.0 → v0.6.1}/core/connectors/redis/lib/job-store.js +0 -0
  94. /package/framework/{v0.6.0 → v0.6.1}/core/connectors/redis/lib/render-cache-store.js +0 -0
  95. /package/framework/{v0.6.0 → v0.6.1}/core/connectors/redis/lib/session-store.js +0 -0
  96. /package/framework/{v0.6.0 → v0.6.1}/core/connectors/scylladb/lib/connector.js +0 -0
  97. /package/framework/{v0.6.0 → v0.6.1}/core/connectors/scylladb/lib/session-store.js +0 -0
  98. /package/framework/{v0.6.0 → v0.6.1}/core/connectors/sql-parser.js +0 -0
  99. /package/framework/{v0.6.0 → v0.6.1}/core/content.encoding +0 -0
  100. /package/framework/{v0.6.0 → v0.6.1}/core/controller/controller.framework.js +0 -0
  101. /package/framework/{v0.6.0 → v0.6.1}/core/controller/controller.js +0 -0
  102. /package/framework/{v0.6.0 → v0.6.1}/core/controller/controller.render-nunjucks-async.js +0 -0
  103. /package/framework/{v0.6.0 → v0.6.1}/core/controller/controller.render-nunjucks.js +0 -0
  104. /package/framework/{v0.6.0 → v0.6.1}/core/controller/controller.render-stream.js +0 -0
  105. /package/framework/{v0.6.0 → v0.6.1}/core/controller/controller.render-swig-async.js +0 -0
  106. /package/framework/{v0.6.0 → v0.6.1}/core/controller/controller.render-swig.js +0 -0
  107. /package/framework/{v0.6.0 → v0.6.1}/core/controller/controller.render-v1.js +0 -0
  108. /package/framework/{v0.6.0 → v0.6.1}/core/controller/index.js +0 -0
  109. /package/framework/{v0.6.0 → v0.6.1}/core/controller/inspector-window-emit.js +0 -0
  110. /package/framework/{v0.6.0 → v0.6.1}/core/controller/release-banner.js +0 -0
  111. /package/framework/{v0.6.0 → v0.6.1}/core/dev/index.js +0 -0
  112. /package/framework/{v0.6.0 → v0.6.1}/core/dev/lib/class.js +0 -0
  113. /package/framework/{v0.6.0 → v0.6.1}/core/dev/lib/factory.js +0 -0
  114. /package/framework/{v0.6.0 → v0.6.1}/core/dev/lib/tools.js +0 -0
  115. /package/framework/{v0.6.0 → v0.6.1}/core/gna.js +0 -0
  116. /package/framework/{v0.6.0 → v0.6.1}/core/locales/README.md +0 -0
  117. /package/framework/{v0.6.0 → v0.6.1}/core/locales/currency.json +0 -0
  118. /package/framework/{v0.6.0 → v0.6.1}/core/locales/dist/language/en.json +0 -0
  119. /package/framework/{v0.6.0 → v0.6.1}/core/locales/dist/language/fr.json +0 -0
  120. /package/framework/{v0.6.0 → v0.6.1}/core/locales/dist/region/en.json +0 -0
  121. /package/framework/{v0.6.0 → v0.6.1}/core/locales/dist/region/fr.json +0 -0
  122. /package/framework/{v0.6.0 → v0.6.1}/core/locales/index.js +0 -0
  123. /package/framework/{v0.6.0 → v0.6.1}/core/mime.types +0 -0
  124. /package/framework/{v0.6.0 → v0.6.1}/core/model/index.js +0 -0
  125. /package/framework/{v0.6.0 → v0.6.1}/core/model/template/entityFactory.js +0 -0
  126. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/README.md +0 -0
  127. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/index.js +0 -0
  128. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/csrf/README.md +0 -0
  129. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/csrf/package.json +0 -0
  130. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/csrf/src/main.js +0 -0
  131. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/README.md +0 -0
  132. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/coep/README.md +0 -0
  133. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/coep/package.json +0 -0
  134. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
  135. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/coop/README.md +0 -0
  136. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/coop/package.json +0 -0
  137. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
  138. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/corp/README.md +0 -0
  139. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/corp/package.json +0 -0
  140. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
  141. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/csp/README.md +0 -0
  142. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/csp/package.json +0 -0
  143. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
  144. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
  145. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
  146. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
  147. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/hsts/README.md +0 -0
  148. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/hsts/package.json +0 -0
  149. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
  150. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
  151. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
  152. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
  153. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/package.json +0 -0
  154. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
  155. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
  156. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
  157. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/src/main.js +0 -0
  158. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
  159. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
  160. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
  161. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
  162. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
  163. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
  164. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
  165. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
  166. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
  167. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
  168. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
  169. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
  170. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
  171. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
  172. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
  173. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
  174. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
  175. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
  176. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/session/README.md +0 -0
  177. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/session/package.json +0 -0
  178. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/session/src/main.js +0 -0
  179. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/storage/README.md +0 -0
  180. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/storage/build.json +0 -0
  181. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/storage/package.json +0 -0
  182. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/storage/src/main.js +0 -0
  183. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/validator/README.md +0 -0
  184. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/validator/build.json +0 -0
  185. /package/framework/{v0.6.0 → v0.6.1}/core/plugins/lib/validator/package.json +0 -0
  186. /package/framework/{v0.6.0 → v0.6.1}/core/router.js +0 -0
  187. /package/framework/{v0.6.0 → v0.6.1}/core/server.express.js +0 -0
  188. /package/framework/{v0.6.0 → v0.6.1}/core/status.codes +0 -0
  189. /package/framework/{v0.6.0 → v0.6.1}/core/template/_gitignore +0 -0
  190. /package/framework/{v0.6.0 → v0.6.1}/core/template/boilerplate/bundle/config/app.json +0 -0
  191. /package/framework/{v0.6.0 → v0.6.1}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  192. /package/framework/{v0.6.0 → v0.6.1}/core/template/boilerplate/bundle/config/routing.json +0 -0
  193. /package/framework/{v0.6.0 → v0.6.1}/core/template/boilerplate/bundle/config/settings.json +0 -0
  194. /package/framework/{v0.6.0 → v0.6.1}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  195. /package/framework/{v0.6.0 → v0.6.1}/core/template/boilerplate/bundle/config/templates.json +0 -0
  196. /package/framework/{v0.6.0 → v0.6.1}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  197. /package/framework/{v0.6.0 → v0.6.1}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  198. /package/framework/{v0.6.0 → v0.6.1}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  199. /package/framework/{v0.6.0 → v0.6.1}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  200. /package/framework/{v0.6.0 → v0.6.1}/core/template/boilerplate/bundle/index.js +0 -0
  201. /package/framework/{v0.6.0 → v0.6.1}/core/template/boilerplate/bundle/locales/en.json +0 -0
  202. /package/framework/{v0.6.0 → v0.6.1}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  203. /package/framework/{v0.6.0 → v0.6.1}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  204. /package/framework/{v0.6.0 → v0.6.1}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  205. /package/framework/{v0.6.0 → v0.6.1}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  206. /package/framework/{v0.6.0 → v0.6.1}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  207. /package/framework/{v0.6.0 → v0.6.1}/core/template/boilerplate/bundle_public/js/components/x-checklist.js +0 -0
  208. /package/framework/{v0.6.0 → v0.6.1}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  209. /package/framework/{v0.6.0 → v0.6.1}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
  210. /package/framework/{v0.6.0 → v0.6.1}/core/template/boilerplate/bundle_public/readme.md +0 -0
  211. /package/framework/{v0.6.0 → v0.6.1}/core/template/boilerplate/bundle_public/sw.js +0 -0
  212. /package/framework/{v0.6.0 → v0.6.1}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  213. /package/framework/{v0.6.0 → v0.6.1}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  214. /package/framework/{v0.6.0 → v0.6.1}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  215. /package/framework/{v0.6.0 → v0.6.1}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  216. /package/framework/{v0.6.0 → v0.6.1}/core/template/boilerplate/bundle_templates/html/includes/x-checklist.html +0 -0
  217. /package/framework/{v0.6.0 → v0.6.1}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  218. /package/framework/{v0.6.0 → v0.6.1}/core/template/command/gina.bat.tpl +0 -0
  219. /package/framework/{v0.6.0 → v0.6.1}/core/template/command/gina.tpl +0 -0
  220. /package/framework/{v0.6.0 → v0.6.1}/core/template/conf/env.json +0 -0
  221. /package/framework/{v0.6.0 → v0.6.1}/core/template/conf/manifest.json +0 -0
  222. /package/framework/{v0.6.0 → v0.6.1}/core/template/conf/package.json +0 -0
  223. /package/framework/{v0.6.0 → v0.6.1}/core/template/conf/settings.json +0 -0
  224. /package/framework/{v0.6.0 → v0.6.1}/core/template/conf/statics.json +0 -0
  225. /package/framework/{v0.6.0 → v0.6.1}/core/template/conf/templates.json +0 -0
  226. /package/framework/{v0.6.0 → v0.6.1}/core/template/error/client/json/401.json +0 -0
  227. /package/framework/{v0.6.0 → v0.6.1}/core/template/error/client/json/403.json +0 -0
  228. /package/framework/{v0.6.0 → v0.6.1}/core/template/error/client/json/404.json +0 -0
  229. /package/framework/{v0.6.0 → v0.6.1}/core/template/error/server/html/50x.html +0 -0
  230. /package/framework/{v0.6.0 → v0.6.1}/core/template/error/server/json/500.json +0 -0
  231. /package/framework/{v0.6.0 → v0.6.1}/core/template/error/server/json/503.json +0 -0
  232. /package/framework/{v0.6.0 → v0.6.1}/core/template/extensions/logger/config.json +0 -0
  233. /package/framework/{v0.6.0 → v0.6.1}/helpers/console.js +0 -0
  234. /package/framework/{v0.6.0 → v0.6.1}/helpers/context.js +0 -0
  235. /package/framework/{v0.6.0 → v0.6.1}/helpers/data/LICENSE +0 -0
  236. /package/framework/{v0.6.0 → v0.6.1}/helpers/data/README.md +0 -0
  237. /package/framework/{v0.6.0 → v0.6.1}/helpers/data/package.json +0 -0
  238. /package/framework/{v0.6.0 → v0.6.1}/helpers/data/src/main.js +0 -0
  239. /package/framework/{v0.6.0 → v0.6.1}/helpers/dateFormat.js +0 -0
  240. /package/framework/{v0.6.0 → v0.6.1}/helpers/index.js +0 -0
  241. /package/framework/{v0.6.0 → v0.6.1}/helpers/json/LICENSE +0 -0
  242. /package/framework/{v0.6.0 → v0.6.1}/helpers/json/README.md +0 -0
  243. /package/framework/{v0.6.0 → v0.6.1}/helpers/json/package.json +0 -0
  244. /package/framework/{v0.6.0 → v0.6.1}/helpers/json/src/main.js +0 -0
  245. /package/framework/{v0.6.0 → v0.6.1}/helpers/path.js +0 -0
  246. /package/framework/{v0.6.0 → v0.6.1}/helpers/plugins/README.md +0 -0
  247. /package/framework/{v0.6.0 → v0.6.1}/helpers/plugins/package.json +0 -0
  248. /package/framework/{v0.6.0 → v0.6.1}/helpers/plugins/src/api-error.js +0 -0
  249. /package/framework/{v0.6.0 → v0.6.1}/helpers/plugins/src/main.js +0 -0
  250. /package/framework/{v0.6.0 → v0.6.1}/helpers/prototypes.js +0 -0
  251. /package/framework/{v0.6.0 → v0.6.1}/helpers/task.js +0 -0
  252. /package/framework/{v0.6.0 → v0.6.1}/helpers/text.js +0 -0
  253. /package/framework/{v0.6.0 → v0.6.1}/lib/admin/package.json +0 -0
  254. /package/framework/{v0.6.0 → v0.6.1}/lib/admin/src/main.js +0 -0
  255. /package/framework/{v0.6.0 → v0.6.1}/lib/archiver/README.md +0 -0
  256. /package/framework/{v0.6.0 → v0.6.1}/lib/archiver/build.json +0 -0
  257. /package/framework/{v0.6.0 → v0.6.1}/lib/archiver/package.json +0 -0
  258. /package/framework/{v0.6.0 → v0.6.1}/lib/archiver/src/dep/jszip.min.js +0 -0
  259. /package/framework/{v0.6.0 → v0.6.1}/lib/archiver/src/main.js +0 -0
  260. /package/framework/{v0.6.0 → v0.6.1}/lib/async/package.json +0 -0
  261. /package/framework/{v0.6.0 → v0.6.1}/lib/async/src/main.js +0 -0
  262. /package/framework/{v0.6.0 → v0.6.1}/lib/audit/package.json +0 -0
  263. /package/framework/{v0.6.0 → v0.6.1}/lib/audit/src/main.js +0 -0
  264. /package/framework/{v0.6.0 → v0.6.1}/lib/audit-store.js +0 -0
  265. /package/framework/{v0.6.0 → v0.6.1}/lib/authn/package.json +0 -0
  266. /package/framework/{v0.6.0 → v0.6.1}/lib/authn/src/lockout.js +0 -0
  267. /package/framework/{v0.6.0 → v0.6.1}/lib/authn/src/main.js +0 -0
  268. /package/framework/{v0.6.0 → v0.6.1}/lib/authn/src/totp.js +0 -0
  269. /package/framework/{v0.6.0 → v0.6.1}/lib/authz-gate/package.json +0 -0
  270. /package/framework/{v0.6.0 → v0.6.1}/lib/authz-gate/src/main.js +0 -0
  271. /package/framework/{v0.6.0 → v0.6.1}/lib/cache/README.md +0 -0
  272. /package/framework/{v0.6.0 → v0.6.1}/lib/cache/build.json +0 -0
  273. /package/framework/{v0.6.0 → v0.6.1}/lib/cache/package.json +0 -0
  274. /package/framework/{v0.6.0 → v0.6.1}/lib/cache/src/main.js +0 -0
  275. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/aliases.json +0 -0
  276. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/audit/arguments.json +0 -0
  277. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/audit/help.txt +0 -0
  278. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/audit/verify.js +0 -0
  279. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/bundle/add.js +0 -0
  280. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/bundle/arguments.json +0 -0
  281. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/bundle/build.js +0 -0
  282. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/bundle/copy.js +0 -0
  283. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/bundle/cp.js +0 -0
  284. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/bundle/help.js +0 -0
  285. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/bundle/help.txt +0 -0
  286. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
  287. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/bundle/list.js +0 -0
  288. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/bundle/man.js +0 -0
  289. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/bundle/mcp-start.js +0 -0
  290. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/bundle/mcp.js +0 -0
  291. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/bundle/oas.js +0 -0
  292. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/bundle/openapi.js +0 -0
  293. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/bundle/remove.js +0 -0
  294. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/bundle/rename.js +0 -0
  295. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/bundle/restart.js +0 -0
  296. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/bundle/rm.js +0 -0
  297. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/bundle/start.js +0 -0
  298. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/bundle/status.js +0 -0
  299. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/bundle/stop.js +0 -0
  300. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/bundle/types.js +0 -0
  301. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/cache/arguments.json +0 -0
  302. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/cache/clear.js +0 -0
  303. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/cache/help.txt +0 -0
  304. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/cache/stats.js +0 -0
  305. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/connector/arguments.json +0 -0
  306. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/connector/help.js +0 -0
  307. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/connector/infer.js +0 -0
  308. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/connector/list.js +0 -0
  309. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/connector/models.js +0 -0
  310. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/connector/rm.js +0 -0
  311. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/connector/test.js +0 -0
  312. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/container/arguments.json +0 -0
  313. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/container/help.js +0 -0
  314. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/container/help.txt +0 -0
  315. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/container/man.js +0 -0
  316. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/container/ps.js +0 -0
  317. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/container/stop.js +0 -0
  318. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/controller/add.js +0 -0
  319. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/controller/arguments.json +0 -0
  320. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/controller/help.txt +0 -0
  321. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/controller/inc/args.js +0 -0
  322. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/controller/inc/namespace.js +0 -0
  323. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/controller/inc/reference-rewrite.js +0 -0
  324. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/controller/inc/reference-scan.js +0 -0
  325. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/controller/inc/scaffold.js +0 -0
  326. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/controller/remove.js +0 -0
  327. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/controller/rename.js +0 -0
  328. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/controller/rm.js +0 -0
  329. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/env/add.js +0 -0
  330. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/env/get.js +0 -0
  331. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/env/help.js +0 -0
  332. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/env/help.txt +0 -0
  333. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/env/link-dev.js +0 -0
  334. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/env/list.js +0 -0
  335. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/env/remove.js +0 -0
  336. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/env/rm.js +0 -0
  337. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/env/set.js +0 -0
  338. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/env/unset.js +0 -0
  339. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/env/use.js +0 -0
  340. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/framework/add.js +0 -0
  341. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/framework/arguments.json +0 -0
  342. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/framework/build.js +0 -0
  343. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/framework/dot.js +0 -0
  344. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/framework/get.js +0 -0
  345. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/framework/help.js +0 -0
  346. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/framework/help.txt +0 -0
  347. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/framework/init.js +0 -0
  348. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/framework/link-node-modules.js +0 -0
  349. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/framework/link.js +0 -0
  350. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/framework/list.js +0 -0
  351. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/framework/man.js +0 -0
  352. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/framework/msg.json +0 -0
  353. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/framework/open.js +0 -0
  354. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/framework/remove.js +0 -0
  355. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/framework/reset.js +0 -0
  356. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/framework/restart.js +0 -0
  357. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/framework/set.js +0 -0
  358. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/framework/start.js +0 -0
  359. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/framework/status.js +0 -0
  360. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/framework/stop.js +0 -0
  361. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/framework/tail.js +0 -0
  362. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/framework/update.js +0 -0
  363. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/framework/version.js +0 -0
  364. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/gina-dev.1.md +0 -0
  365. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/gina-framework.1.md +0 -0
  366. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/gina.1.md +0 -0
  367. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/helper.js +0 -0
  368. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/i18n/add.js +0 -0
  369. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/i18n/arguments.json +0 -0
  370. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/i18n/export.js +0 -0
  371. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/i18n/help.js +0 -0
  372. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/i18n/help.txt +0 -0
  373. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/i18n/import.js +0 -0
  374. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/i18n/scan.js +0 -0
  375. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/image/_host.js +0 -0
  376. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/image/arguments.json +0 -0
  377. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/image/build.js +0 -0
  378. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/image/help.js +0 -0
  379. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/image/help.txt +0 -0
  380. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/image/list.js +0 -0
  381. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/image/man.js +0 -0
  382. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/image/rm.js +0 -0
  383. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/image/run.js +0 -0
  384. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/index.js +0 -0
  385. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/inspector/help.js +0 -0
  386. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/inspector/help.txt +0 -0
  387. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/inspector/open.js +0 -0
  388. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/man-render.js +0 -0
  389. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/minion/arguments.json +0 -0
  390. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/minion/help.js +0 -0
  391. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/minion/help.txt +0 -0
  392. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/minion/kill.js +0 -0
  393. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/minion/list.js +0 -0
  394. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/msg.json +0 -0
  395. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/port/help.js +0 -0
  396. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/port/help.txt +0 -0
  397. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/port/inc/scan.js +0 -0
  398. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/port/list.js +0 -0
  399. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/port/reset.js +0 -0
  400. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/port/set.js +0 -0
  401. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/project/add.js +0 -0
  402. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/project/arguments.json +0 -0
  403. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/project/backup.js +0 -0
  404. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/project/build.js +0 -0
  405. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/project/help.js +0 -0
  406. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/project/help.txt +0 -0
  407. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/project/import.js +0 -0
  408. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/project/list.js +0 -0
  409. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/project/man.js +0 -0
  410. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/project/move.js +0 -0
  411. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/project/remove.js +0 -0
  412. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/project/rename.js +0 -0
  413. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/project/restart.js +0 -0
  414. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/project/restore.js +0 -0
  415. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/project/rm.js +0 -0
  416. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/project/start.js +0 -0
  417. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/project/status.js +0 -0
  418. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/project/stop.js +0 -0
  419. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/protocol/arguments.json +0 -0
  420. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/protocol/help.js +0 -0
  421. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/protocol/help.txt +0 -0
  422. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/protocol/list.js +0 -0
  423. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/protocol/remove.js +0 -0
  424. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/protocol/set.js +0 -0
  425. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/scope/add.js +0 -0
  426. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/scope/help.js +0 -0
  427. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/scope/help.txt +0 -0
  428. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/scope/link-local.js +0 -0
  429. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/scope/link-production.js +0 -0
  430. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/scope/list.js +0 -0
  431. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/scope/remove.js +0 -0
  432. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/scope/rm.js +0 -0
  433. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/scope/use.js +0 -0
  434. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/secrets/arguments.json +0 -0
  435. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/secrets/check.js +0 -0
  436. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/secrets/help.js +0 -0
  437. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/secrets/help.txt +0 -0
  438. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/secrets/scan.js +0 -0
  439. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/service/help.js +0 -0
  440. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/service/help.txt +0 -0
  441. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/service/list.js +0 -0
  442. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/service/man.js +0 -0
  443. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/service/start.js +0 -0
  444. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd/view/add.js +0 -0
  445. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd-status-format/package.json +0 -0
  446. /package/framework/{v0.6.0 → v0.6.1}/lib/cmd-status-format/src/main.js +0 -0
  447. /package/framework/{v0.6.0 → v0.6.1}/lib/collection/README.md +0 -0
  448. /package/framework/{v0.6.0 → v0.6.1}/lib/collection/build.json +0 -0
  449. /package/framework/{v0.6.0 → v0.6.1}/lib/collection/package.json +0 -0
  450. /package/framework/{v0.6.0 → v0.6.1}/lib/collection/src/main.js +0 -0
  451. /package/framework/{v0.6.0 → v0.6.1}/lib/config.js +0 -0
  452. /package/framework/{v0.6.0 → v0.6.1}/lib/connector-config/package.json +0 -0
  453. /package/framework/{v0.6.0 → v0.6.1}/lib/connector-config/src/main.js +0 -0
  454. /package/framework/{v0.6.0 → v0.6.1}/lib/connector-error/package.json +0 -0
  455. /package/framework/{v0.6.0 → v0.6.1}/lib/connector-error/src/main.js +0 -0
  456. /package/framework/{v0.6.0 → v0.6.1}/lib/connector-registry/package.json +0 -0
  457. /package/framework/{v0.6.0 → v0.6.1}/lib/cron/README.md +0 -0
  458. /package/framework/{v0.6.0 → v0.6.1}/lib/cron/package.json +0 -0
  459. /package/framework/{v0.6.0 → v0.6.1}/lib/cron/src/main.js +0 -0
  460. /package/framework/{v0.6.0 → v0.6.1}/lib/domain/LICENSE +0 -0
  461. /package/framework/{v0.6.0 → v0.6.1}/lib/domain/README.md +0 -0
  462. /package/framework/{v0.6.0 → v0.6.1}/lib/domain/package.json +0 -0
  463. /package/framework/{v0.6.0 → v0.6.1}/lib/domain/src/main.js +0 -0
  464. /package/framework/{v0.6.0 → v0.6.1}/lib/dto/package.json +0 -0
  465. /package/framework/{v0.6.0 → v0.6.1}/lib/dto/src/main.js +0 -0
  466. /package/framework/{v0.6.0 → v0.6.1}/lib/dto-pipe/package.json +0 -0
  467. /package/framework/{v0.6.0 → v0.6.1}/lib/dto-pipe/src/main.js +0 -0
  468. /package/framework/{v0.6.0 → v0.6.1}/lib/dto-types/package.json +0 -0
  469. /package/framework/{v0.6.0 → v0.6.1}/lib/dto-types/src/main.js +0 -0
  470. /package/framework/{v0.6.0 → v0.6.1}/lib/generator/index.js +0 -0
  471. /package/framework/{v0.6.0 → v0.6.1}/lib/i18n/package.json +0 -0
  472. /package/framework/{v0.6.0 → v0.6.1}/lib/i18n/src/main.js +0 -0
  473. /package/framework/{v0.6.0 → v0.6.1}/lib/image-build/package.json +0 -0
  474. /package/framework/{v0.6.0 → v0.6.1}/lib/image-build/src/main.js +0 -0
  475. /package/framework/{v0.6.0 → v0.6.1}/lib/index.js +0 -0
  476. /package/framework/{v0.6.0 → v0.6.1}/lib/inherits/LICENSE +0 -0
  477. /package/framework/{v0.6.0 → v0.6.1}/lib/inherits/README.md +0 -0
  478. /package/framework/{v0.6.0 → v0.6.1}/lib/inherits/package.json +0 -0
  479. /package/framework/{v0.6.0 → v0.6.1}/lib/inherits/src/main.js +0 -0
  480. /package/framework/{v0.6.0 → v0.6.1}/lib/inspector-events/package.json +0 -0
  481. /package/framework/{v0.6.0 → v0.6.1}/lib/inspector-events/src/main.js +0 -0
  482. /package/framework/{v0.6.0 → v0.6.1}/lib/inspector-redact/package.json +0 -0
  483. /package/framework/{v0.6.0 → v0.6.1}/lib/inspector-redact/src/main.js +0 -0
  484. /package/framework/{v0.6.0 → v0.6.1}/lib/instrument/package.json +0 -0
  485. /package/framework/{v0.6.0 → v0.6.1}/lib/instrument/src/main.js +0 -0
  486. /package/framework/{v0.6.0 → v0.6.1}/lib/job/package.json +0 -0
  487. /package/framework/{v0.6.0 → v0.6.1}/lib/job/src/main.js +0 -0
  488. /package/framework/{v0.6.0 → v0.6.1}/lib/job-store.js +0 -0
  489. /package/framework/{v0.6.0 → v0.6.1}/lib/json-config-header/package.json +0 -0
  490. /package/framework/{v0.6.0 → v0.6.1}/lib/json-config-header/src/main.js +0 -0
  491. /package/framework/{v0.6.0 → v0.6.1}/lib/logger/README.md +0 -0
  492. /package/framework/{v0.6.0 → v0.6.1}/lib/logger/package.json +0 -0
  493. /package/framework/{v0.6.0 → v0.6.1}/lib/logger/src/containers/default/index.js +0 -0
  494. /package/framework/{v0.6.0 → v0.6.1}/lib/logger/src/containers/file/index.js +0 -0
  495. /package/framework/{v0.6.0 → v0.6.1}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  496. /package/framework/{v0.6.0 → v0.6.1}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  497. /package/framework/{v0.6.0 → v0.6.1}/lib/logger/src/containers/mq/index.js +0 -0
  498. /package/framework/{v0.6.0 → v0.6.1}/lib/logger/src/containers/mq/listener.js +0 -0
  499. /package/framework/{v0.6.0 → v0.6.1}/lib/logger/src/containers/mq/speaker.js +0 -0
  500. /package/framework/{v0.6.0 → v0.6.1}/lib/logger/src/helper.js +0 -0
  501. /package/framework/{v0.6.0 → v0.6.1}/lib/logger/src/main.js +0 -0
  502. /package/framework/{v0.6.0 → v0.6.1}/lib/math/index.js +0 -0
  503. /package/framework/{v0.6.0 → v0.6.1}/lib/mcp-dispatch/package.json +0 -0
  504. /package/framework/{v0.6.0 → v0.6.1}/lib/mcp-dispatch/src/main.js +0 -0
  505. /package/framework/{v0.6.0 → v0.6.1}/lib/mcp-http/package.json +0 -0
  506. /package/framework/{v0.6.0 → v0.6.1}/lib/mcp-http/src/main.js +0 -0
  507. /package/framework/{v0.6.0 → v0.6.1}/lib/mcp-server/package.json +0 -0
  508. /package/framework/{v0.6.0 → v0.6.1}/lib/mcp-server/src/main.js +0 -0
  509. /package/framework/{v0.6.0 → v0.6.1}/lib/merge/README.md +0 -0
  510. /package/framework/{v0.6.0 → v0.6.1}/lib/merge/package.json +0 -0
  511. /package/framework/{v0.6.0 → v0.6.1}/lib/merge/src/main.js +0 -0
  512. /package/framework/{v0.6.0 → v0.6.1}/lib/metrics/package.json +0 -0
  513. /package/framework/{v0.6.0 → v0.6.1}/lib/metrics/src/main.js +0 -0
  514. /package/framework/{v0.6.0 → v0.6.1}/lib/net-locality/package.json +0 -0
  515. /package/framework/{v0.6.0 → v0.6.1}/lib/net-locality/src/main.js +0 -0
  516. /package/framework/{v0.6.0 → v0.6.1}/lib/nunjucks-filters/README.md +0 -0
  517. /package/framework/{v0.6.0 → v0.6.1}/lib/nunjucks-filters/package.json +0 -0
  518. /package/framework/{v0.6.0 → v0.6.1}/lib/nunjucks-filters/src/main.js +0 -0
  519. /package/framework/{v0.6.0 → v0.6.1}/lib/nunjucks-resolver/package.json +0 -0
  520. /package/framework/{v0.6.0 → v0.6.1}/lib/nunjucks-resolver/src/main.js +0 -0
  521. /package/framework/{v0.6.0 → v0.6.1}/lib/proc.js +0 -0
  522. /package/framework/{v0.6.0 → v0.6.1}/lib/release-watch/package.json +0 -0
  523. /package/framework/{v0.6.0 → v0.6.1}/lib/release-watch/src/main.js +0 -0
  524. /package/framework/{v0.6.0 → v0.6.1}/lib/render-cache/package.json +0 -0
  525. /package/framework/{v0.6.0 → v0.6.1}/lib/render-cache/src/main.js +0 -0
  526. /package/framework/{v0.6.0 → v0.6.1}/lib/render-cache-store.js +0 -0
  527. /package/framework/{v0.6.0 → v0.6.1}/lib/routing/README.md +0 -0
  528. /package/framework/{v0.6.0 → v0.6.1}/lib/routing/build.json +0 -0
  529. /package/framework/{v0.6.0 → v0.6.1}/lib/routing/package.json +0 -0
  530. /package/framework/{v0.6.0 → v0.6.1}/lib/routing/src/main.js +0 -0
  531. /package/framework/{v0.6.0 → v0.6.1}/lib/routing/src/radix.js +0 -0
  532. /package/framework/{v0.6.0 → v0.6.1}/lib/routing-introspect/package.json +0 -0
  533. /package/framework/{v0.6.0 → v0.6.1}/lib/routing-introspect/src/main.js +0 -0
  534. /package/framework/{v0.6.0 → v0.6.1}/lib/secrets/package.json +0 -0
  535. /package/framework/{v0.6.0 → v0.6.1}/lib/secrets/src/backends/env.js +0 -0
  536. /package/framework/{v0.6.0 → v0.6.1}/lib/secrets/src/main.js +0 -0
  537. /package/framework/{v0.6.0 → v0.6.1}/lib/session-store.js +0 -0
  538. /package/framework/{v0.6.0 → v0.6.1}/lib/shell.js +0 -0
  539. /package/framework/{v0.6.0 → v0.6.1}/lib/swig-filters/README.md +0 -0
  540. /package/framework/{v0.6.0 → v0.6.1}/lib/swig-filters/package.json +0 -0
  541. /package/framework/{v0.6.0 → v0.6.1}/lib/swig-filters/src/main.js +0 -0
  542. /package/framework/{v0.6.0 → v0.6.1}/lib/swig-resolver/package.json +0 -0
  543. /package/framework/{v0.6.0 → v0.6.1}/lib/swig-resolver/src/main.js +0 -0
  544. /package/framework/{v0.6.0 → v0.6.1}/lib/template-loaders/package.json +0 -0
  545. /package/framework/{v0.6.0 → v0.6.1}/lib/template-loaders/src/loaders/http.js +0 -0
  546. /package/framework/{v0.6.0 → v0.6.1}/lib/template-loaders/src/loaders/memory.js +0 -0
  547. /package/framework/{v0.6.0 → v0.6.1}/lib/template-loaders/src/main.js +0 -0
  548. /package/framework/{v0.6.0 → v0.6.1}/lib/url/README.md +0 -0
  549. /package/framework/{v0.6.0 → v0.6.1}/lib/url/index.js +0 -0
  550. /package/framework/{v0.6.0 → v0.6.1}/lib/url/routing.json +0 -0
  551. /package/framework/{v0.6.0 → v0.6.1}/lib/uuid/package.json +0 -0
  552. /package/framework/{v0.6.0 → v0.6.1}/lib/uuid/src/main.js +0 -0
  553. /package/framework/{v0.6.0 → v0.6.1}/lib/validator.js +0 -0
  554. /package/framework/{v0.6.0 → v0.6.1}/lib/watcher/package.json +0 -0
  555. /package/framework/{v0.6.0 → v0.6.1}/lib/watcher/src/main.js +0 -0
  556. /package/framework/{v0.6.0 → v0.6.1}/lib/ws-framing/package.json +0 -0
  557. /package/framework/{v0.6.0 → v0.6.1}/lib/ws-framing/src/main.js +0 -0
  558. /package/framework/{v0.6.0 → v0.6.1}/lib/ws-query/package.json +0 -0
  559. /package/framework/{v0.6.0 → v0.6.1}/lib/ws-query/src/main.js +0 -0
  560. /package/framework/{v0.6.0 → v0.6.1}/lib/ws-session/package.json +0 -0
  561. /package/framework/{v0.6.0 → v0.6.1}/lib/ws-session/src/main.js +0 -0
@@ -492,6 +492,21 @@ function Couchbase(conn, infos) {
492
492
  entities[entityName].prototype.getCluster = getCluster;
493
493
  }
494
494
 
495
+ // #B174: the attach below is deliberately UNCONDITIONAL — a colliding
496
+ // name overwrites/shadows the existing member (the documented exception
497
+ // to the six-connector skip guard, see #B173). Warn when that collision
498
+ // clobbers machinery: an own member (a stamped entity property like
499
+ // `name`/`getCluster`, or a previously attached query method) or an
500
+ // inherited member NOT on `Object.prototype` (the EventEmitter API —
501
+ // an `on.sql` file breaks event wiring for this entity). Shadowing
502
+ // gina's `Object.prototype` helpers (`count()`/`functionCount()`) is
503
+ // the desired outcome and stays silent. Warn only — never skip.
504
+ if (typeof entities[entityName].prototype[name] !== 'undefined') {
505
+ var _isOwnMember = Object.prototype.hasOwnProperty.call(entities[entityName].prototype, name);
506
+ if ( _isOwnMember || !Object.prototype.hasOwnProperty.call(Object.prototype, name) ) {
507
+ console.warn('[couchbase] query method \'' + name + '\' (' + source + ') on the ' + entityName + ' entity ' + (_isOwnMember ? 'overwrites an existing own member (a stamped entity property or a previously attached query method)' : 'shadows an inherited member on the prototype chain (e.g. the EventEmitter API)') + ' — the query file WINS and the original member becomes unreachable on this entity. Rename the file, e.g. \'' + name + 'Rows.sql\'.');
508
+ }
509
+ }
495
510
 
496
511
  entities[entityName].prototype[name] = function() {
497
512
  // #B11 fix: recover the entity singleton when called via util.promisify
@@ -0,0 +1,478 @@
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
+ var fs = require('fs');
11
+ var sqlParser = require('./../sql-parser'); // #SQL1 state-machine comment stripper
12
+ var lib = require('./../../../lib') || require.cache[require.resolve('./../../../lib')];
13
+ var inherits = lib.inherits;
14
+ var console = lib.logger;
15
+
16
+ /**
17
+ * DuckDB ORM connector — embedded analytical (columnar / OLAP) store.
18
+ *
19
+ * Wires entity classes with SQL methods read from the bundle's `sql/` directory.
20
+ * SQL files use DuckDB syntax with positional placeholders — `?` and `$1` are both
21
+ * accepted by the engine; args are bound positionally as an array either way.
22
+ * Backed by the DuckDBConnection passed from DuckdbConnector.onReady.
23
+ *
24
+ * Bundle model layout:
25
+ * ```
26
+ * models/
27
+ * <database>/
28
+ * entities/
29
+ * ReportEntity.js ← entity class
30
+ * sql/
31
+ * Report/
32
+ * findById.sql ← SELECT … WHERE id = ?
33
+ * totals.sql ← WITH … SELECT … (CTEs are fine)
34
+ * insert.sql
35
+ * ```
36
+ *
37
+ * SQL file format:
38
+ * ```sql
39
+ * / *
40
+ * * @param {string} $1 report id
41
+ * * @return {object}
42
+ * * /
43
+ * SELECT * FROM reports WHERE id = ?
44
+ * ```
45
+ *
46
+ * `@return` annotation controls result shape:
47
+ * {object} → first row or null
48
+ * {Array} → all rows (default for row-returning statements)
49
+ * {boolean} → rowsChanged > 0 (write) / rows.length > 0 (row-returning)
50
+ * {number} → first key of first row (COUNT(*) queries)
51
+ * (none) → { changes } for write ops; all rows otherwise
52
+ *
53
+ * Row values come from the driver's JSON-safe getter (`getRowObjectsJson()`):
54
+ * BIGINT / HUGEINT / DECIMAL / DATE / TIMESTAMP arrive as STRINGS (same behaviour
55
+ * as the pg driver's bigint/numeric handling) so results always survive
56
+ * JSON.stringify. `{number}` coercion Number()s the COUNT string.
57
+ *
58
+ * Row-returning statements are recognised beyond bare SELECT: WITH (CTEs),
59
+ * FROM-first, SUMMARIZE, PIVOT/UNPIVOT, DESCRIBE and SHOW all return rows in
60
+ * DuckDB's dialect — a bare ^SELECT test would route them to the write path,
61
+ * where the driver reports rowsChanged 0 and the rows would be silently lost.
62
+ *
63
+ * Methods return a native Promise with `.onComplete(cb)` for backward compatibility.
64
+ *
65
+ * @class Duckdb
66
+ * @constructor
67
+ * @param {object} conn - DuckDBConnection from DuckdbConnector.onReady
68
+ * @param {object} infos - { model, bundle, database, scope }
69
+ * @returns {object} - Entity class map: { ReportEntity: Constructor, … }
70
+ */
71
+ function Duckdb(conn, infos) {
72
+ var envIsDev = ( /^true$/i.test(process.env.NODE_ENV_IS_DEV) ) ? true : false;
73
+ var isCacheless = (process.env.NODE_ENV_IS_DEV == 'false') ? false : true;
74
+
75
+ // #QI1 — in-memory index map built from indexes.sql at startup.
76
+ // Keys are lowercase table names; values are [{ name, primary }].
77
+ // null when no indexes.sql exists (grey N/A badge in Inspector).
78
+ var _knownIndexes = null;
79
+ /** @type {boolean} #QI2 — true after live introspection has populated _knownIndexes */
80
+ var _liveIntrospected = false;
81
+
82
+ // -------------------------------------------------------------------------
83
+ // init — load entities + SQL methods
84
+ // -------------------------------------------------------------------------
85
+ var init = function(conn, infos) {
86
+ var EntitySuperClass = null;
87
+ var entitiesPath = getPath('bundle') + '/models/' + infos.database + '/entities';
88
+ var files = [];
89
+ var entities = {};
90
+ var entityName = '';
91
+ var Entity = null;
92
+ var className = null;
93
+ var filename = null;
94
+
95
+ // EntitySuperClass ────────────────────────────────────────────────────
96
+ filename = getPath('gina').core + '/model/entity.js';
97
+ if (isCacheless) {
98
+ delete require.cache[require.resolve(_(filename, true))];
99
+ }
100
+ EntitySuperClass = require(_(filename, true));
101
+
102
+ // Entity JS files ─────────────────────────────────────────────────────
103
+ if (!fs.existsSync(entitiesPath)) {
104
+ new _(entitiesPath).mkdirSync();
105
+ }
106
+ files = fs.readdirSync(entitiesPath);
107
+
108
+ for (var f = 0, fLen = files.length; f < fLen; ++f) {
109
+ if ( /^\./.test(files[f]) || !/\.js$/i.test(files[f]) ) continue;
110
+
111
+ if (isCacheless) {
112
+ delete require.cache[require.resolve(_(entitiesPath + '/' + files[f], true))];
113
+ }
114
+
115
+ entityName = files[f].replace(/\.js$/i, '');
116
+ className = entityName.substring(0, 1).toUpperCase() + entityName.substring(1);
117
+
118
+ Entity = require(_(entitiesPath + '/' + files[f], true));
119
+ if (typeof Entity !== 'function') continue;
120
+
121
+ Entity = inherits(Entity, EntitySuperClass);
122
+
123
+ Entity.prototype.name = className;
124
+ Entity.prototype.model = infos.model;
125
+ Entity.prototype.bundle = infos.bundle;
126
+ Entity.prototype.database = infos.database;
127
+ Entity.prototype._collection = entityName;
128
+ Entity.prototype._scope = infos.scope || process.env.NODE_SCOPE;
129
+ Entity.prototype._filename = _(entitiesPath + '/' + files[f], true);
130
+
131
+ entities[className] = Entity;
132
+ }
133
+
134
+ // SQL method files ────────────────────────────────────────────────────
135
+ var sqlDir = _(getPath('bundle') + '/models/' + infos.database + '/sql');
136
+ if (fs.existsSync(sqlDir)) {
137
+ var sqlEntries = fs.readdirSync(sqlDir);
138
+ for (var s = 0, sLen = sqlEntries.length; s < sLen; s++) {
139
+ if ( /^\./.test(sqlEntries[s]) ) continue;
140
+ loadSQL(entities, conn, _(sqlDir + '/' + sqlEntries[s]));
141
+ }
142
+
143
+ // #QI1 — load indexes.sql if present
144
+ var indexesFile = _(sqlDir + '/indexes.sql', true);
145
+ if (fs.existsSync(indexesFile)) {
146
+ try {
147
+ var indexesSrc = fs.readFileSync(indexesFile).toString();
148
+ _knownIndexes = sqlParser.parseCreateIndexes(indexesSrc);
149
+ } catch (e) {
150
+ console.warn('[duckdb] Failed to parse indexes.sql: ' + e.message);
151
+ _knownIndexes = {};
152
+ }
153
+ }
154
+ }
155
+
156
+ // #QI2 — live index introspection listener (dev mode only).
157
+ // The /_gina/indexes endpoint emits this event; the connector responds
158
+ // with live index data from duckdb_indexes(), updating _knownIndexes
159
+ // so all subsequent QI entries benefit automatically.
160
+ if (envIsDev) {
161
+ process.on('inspector#indexes', function(_cb) {
162
+ if (_liveIntrospected) {
163
+ return _cb(null, 'duckdb', infos.database, _knownIndexes);
164
+ }
165
+ try {
166
+ conn.runAndReadAll('SELECT index_name, table_name, is_unique, sql FROM duckdb_indexes()').then(
167
+ function(reader) {
168
+ var map = {};
169
+ var rows = reader.getRowObjectsJson();
170
+ for (var r = 0, rLen = rows.length; r < rLen; r++) {
171
+ var tbl = String(rows[r].table_name).toLowerCase();
172
+ var idx = rows[r].index_name;
173
+ var def = rows[r].sql || '';
174
+ if (!map[tbl]) map[tbl] = [];
175
+ map[tbl].push({
176
+ name: idx,
177
+ primary: /PRIMARY KEY/i.test(def),
178
+ // #QI Phase C.2 — parse the indexed columns out of the CREATE INDEX text
179
+ columns: sqlParser.parseIndexDefColumns(def)
180
+ });
181
+ }
182
+ // Merge live data into _knownIndexes (live wins)
183
+ if (_knownIndexes === null) _knownIndexes = {};
184
+ var tables = Object.keys(map);
185
+ for (var i = 0; i < tables.length; i++) {
186
+ _knownIndexes[tables[i]] = map[tables[i]];
187
+ }
188
+ _liveIntrospected = true;
189
+ _cb(null, 'duckdb', infos.database, _knownIndexes);
190
+ },
191
+ function(err) {
192
+ _cb(err, 'duckdb', infos.database, _knownIndexes);
193
+ }
194
+ );
195
+ } catch (e) {
196
+ _cb(e, 'duckdb', infos.database, _knownIndexes);
197
+ }
198
+ });
199
+ }
200
+
201
+ return entities;
202
+ };
203
+
204
+
205
+ // -------------------------------------------------------------------------
206
+ // loadSQL — walk the sql/ entry (directory per entity or flat file)
207
+ // -------------------------------------------------------------------------
208
+ var loadSQL = function(entities, conn, sqlPath) {
209
+ var stat = fs.statSync(sqlPath);
210
+
211
+ if (stat.isDirectory()) {
212
+ // sql/<EntityName>/methodName.sql
213
+ var arr = sqlPath.split(/\//g);
214
+ var entityName = arr[arr.length - 1];
215
+ entityName = entityName.charAt(0).toUpperCase() + entityName.slice(1);
216
+
217
+ var sqlFiles = fs.readdirSync(sqlPath);
218
+ for (var f = 0, fLen = sqlFiles.length; f < fLen; f++) {
219
+ if ( /^\./.test(sqlFiles[f]) || !/\.sql$/i.test(sqlFiles[f]) ) continue;
220
+ readSQL(entities, conn, entityName, _(sqlPath + '/' + sqlFiles[f], true));
221
+ }
222
+ } else {
223
+ // flat file: <EntityName>_<methodName>.sql
224
+ readSQL(entities, conn, null, sqlPath);
225
+ }
226
+ };
227
+
228
+
229
+ // -------------------------------------------------------------------------
230
+ // readSQL — parse one .sql file and attach a method to the entity
231
+ // -------------------------------------------------------------------------
232
+ var readSQL = function(entities, conn, entityName, source) {
233
+ var arr = source.split(/\//g);
234
+ var name = arr[arr.length - 1].replace(/\.sql$/i, '');
235
+
236
+ // Infer entity from flat filename prefix when not given
237
+ if (!entityName) {
238
+ var parts = name.split('_');
239
+ if (parts.length < 2) return;
240
+ entityName = parts[0].charAt(0).toUpperCase() + parts[0].slice(1);
241
+ name = parts.slice(1).join('_');
242
+ }
243
+
244
+ if (!entities[entityName]) return;
245
+ if (typeof entities[entityName].prototype[name] !== 'undefined') {
246
+ // Own property = user code in the entity .js wins (designed intent).
247
+ // Inherited name = the file is silently shadowed (e.g. gina's
248
+ // Object.prototype count()) — warn so the skip is diagnosable (#B173).
249
+ if ( !Object.prototype.hasOwnProperty.call(entities[entityName].prototype, name) ) {
250
+ console.warn('[duckdb] skipping query method \'' + name + '\' (' + source + '): the name is inherited on the ' + entityName + ' prototype chain (EventEmitter, entity base API, or gina\'s Object.prototype helpers like count()) — calls would run the inherited member instead. Rename the file, e.g. \'' + name + 'Rows.sql\'.');
251
+ }
252
+ return;
253
+ }
254
+
255
+ // ── Parse the SQL file ────────────────────────────────────────────────
256
+ var rawSource = fs.readFileSync(source).toString();
257
+
258
+ var returnType = null;
259
+ var retMatch = rawSource.match(/@return\s+\{([^}]+)\}/);
260
+ if (retMatch) returnType = retMatch[1].trim().toLowerCase();
261
+
262
+ var paramTypes = [];
263
+ var ptMatches = rawSource.match(/@param\s+\{([^}]+)\}/g);
264
+ if (ptMatches) {
265
+ for (var pt = 0; pt < ptMatches.length; pt++) {
266
+ paramTypes.push(ptMatches[pt].match(/\{([^}]+)\}/)[1].trim().toLowerCase());
267
+ }
268
+ }
269
+
270
+ // #SQL1 — state-machine stripper handles nested comments and
271
+ // -- / // inside string literals correctly
272
+ var queryString = sqlParser.stripComments(rawSource)
273
+ .replace(/\s+/g, ' ')
274
+ .trim();
275
+
276
+ if (!queryString) return;
277
+
278
+ // DuckDB-dialect row-returning detection. A bare ^SELECT test (the
279
+ // mysql/postgresql form) would route WITH (CTEs), FROM-first,
280
+ // SUMMARIZE, PIVOT/UNPIVOT, DESCRIBE and SHOW through the write path —
281
+ // measured on the driver: run() reports rowsChanged 0 for a WITH query
282
+ // and the rows are silently lost. Analytics SQL leans on CTEs, so the
283
+ // classifier covers the dialect's row-returning statement heads.
284
+ var isRowReturning = /^\s*(SELECT|WITH|FROM|SUMMARIZE|PIVOT|UNPIVOT|DESCRIBE|SHOW)\b/i.test(queryString);
285
+ var trigger = 'DUCKDB:' + entityName.toLowerCase() + '#' + name;
286
+
287
+ // ── Helper: coerce a driver result to the annotated return type ───────
288
+ //
289
+ // Row-returning → a DuckDBResultReader; rows via getRowObjectsJson()
290
+ // (JSON-safe: BIGINT/DECIMAL/DATE/TIMESTAMP as strings)
291
+ // Write → a DuckDBMaterializedResult; rowsChanged is the
292
+ // affected-row count (plain number)
293
+ // ─────────────────────────────────────────────────────────────────────
294
+ var coerce = function(result) {
295
+ if (isRowReturning) {
296
+ var rows = result.getRowObjectsJson();
297
+
298
+ if (returnType === 'object') {
299
+ return (rows.length > 0) ? rows[0] : null;
300
+ }
301
+ if (returnType === 'boolean') {
302
+ return rows.length > 0;
303
+ }
304
+ if (returnType === 'number' && /count\s*\(/i.test(queryString)) {
305
+ if (rows.length > 0 && typeof rows[0] === 'object') {
306
+ var keys = Object.keys(rows[0]);
307
+ return (keys.length > 0) ? Number(rows[0][keys[0]]) : 0;
308
+ }
309
+ return 0;
310
+ }
311
+ // {array} or no annotation — all rows, normalised to null when empty
312
+ return rows.length > 0 ? rows : null;
313
+ }
314
+
315
+ // Write op
316
+ if (returnType === 'boolean') return result.rowsChanged > 0;
317
+ if (returnType === 'number') return result.rowsChanged;
318
+ // Default: normalised write result (DuckDB has no insertId analog)
319
+ return { changes: result.rowsChanged };
320
+ };
321
+
322
+ // ── Entity method ─────────────────────────────────────────────────────
323
+ entities[entityName].prototype[name] = function() {
324
+ var args = Array.prototype.slice.call(arguments);
325
+ var _mainCallback = null;
326
+
327
+ // Trailing-function detection (util.promisify / explicit callback)
328
+ if (typeof args[args.length - 1] === 'function') {
329
+ _mainCallback = args.pop();
330
+ }
331
+
332
+ // Positional type casting from @param annotations
333
+ for (var t = 0, tLen = paramTypes.length; t < tLen && t < args.length; t++) {
334
+ switch (paramTypes[t]) {
335
+ case 'number':
336
+ case 'integer': args[t] = parseInt(args[t], 10); break;
337
+ case 'float': args[t] = parseFloat(String(args[t]).replace(/,/, '.')); break;
338
+ case 'string': args[t] = String(args[t]); break;
339
+ }
340
+ }
341
+
342
+ if (envIsDev) {
343
+ console.debug('[ ' + trigger + ' ] ' + queryString);
344
+ if (args.length > 0) {
345
+ console.debug('[ ' + trigger + ' ] params: ' + JSON.stringify(args));
346
+ }
347
+ }
348
+
349
+ // ── QI — dev-mode query instrumentation ──────────────────────────
350
+ var _devLog = null, _queryEntry = null;
351
+ // #INS10 — capture during a prod instrumentation window too (not just dev mode).
352
+ if (envIsDev || (process.gina && process.gina._inspectorWindowUntil > Date.now())) {
353
+ var _alsStore = process.gina && process.gina._queryALS
354
+ ? process.gina._queryALS.getStore() : null;
355
+ _devLog = _alsStore ? _alsStore._devQueryLog : null;
356
+ if (_devLog) {
357
+ // #QI1 — resolve indexes from _knownIndexes map
358
+ // #QI Phase C — annotate per-index column coverage vs the WHERE filter
359
+ var _indexes = null;
360
+ // #QI Phase C.3 - emit table + whereColumns even without indexes.sql
361
+ var _tbl = sqlParser.extractTargetTable(queryString);
362
+ var _whereColumns = sqlParser.extractWhereColumns(queryString);
363
+ if (_knownIndexes !== null) {
364
+ var _tblIdx = (_tbl && _knownIndexes[_tbl]) ? _knownIndexes[_tbl] : [];
365
+ var _cov = sqlParser.annotateCoverage(_tblIdx, queryString);
366
+ _indexes = _cov.indexes;
367
+ _whereColumns = _cov.whereColumns;
368
+ }
369
+ _queryEntry = {
370
+ type : 'DUCKDB',
371
+ trigger : entityName.toLowerCase() + '#' + name,
372
+ statement : String(queryString),
373
+ params : args.length > 0 ? args.slice() : [],
374
+ durationMs : 0,
375
+ resultCount : 0,
376
+ resultSize : 0,
377
+ indexes : _indexes,
378
+ whereColumns: _whereColumns,
379
+ table : _tbl || null,
380
+ error : null,
381
+ source : source || '',
382
+ origin : infos.bundle,
383
+ connector : 'duckdb'
384
+ };
385
+ _queryEntry._startMs = Date.now();
386
+ _devLog.push(_queryEntry);
387
+ }
388
+ }
389
+
390
+ // ── Option B — native Promise with .onComplete() shim ─────────────
391
+ //
392
+ // @duckdb/node-api is natively async (Promise-based) — no
393
+ // setTimeout(0) needed. The Promise resolves inside the driver's
394
+ // own then-chain, giving callers the same timing guarantees as the
395
+ // mysql / postgresql connectors.
396
+ // ─────────────────────────────────────────────────────────────────
397
+ if (_mainCallback === null) {
398
+ var _resolve, _reject, _internalData;
399
+
400
+ var _promise = new Promise(function(resolve, reject) {
401
+ _resolve = resolve;
402
+ _reject = reject;
403
+ });
404
+
405
+ _promise.onComplete = function(cb) {
406
+ _promise.then(
407
+ function() { cb(null, _internalData); },
408
+ function(err) { cb(err); }
409
+ );
410
+ return _promise;
411
+ };
412
+
413
+ var _driverCall = isRowReturning
414
+ ? conn.runAndReadAll(queryString, args)
415
+ : conn.run(queryString, args);
416
+
417
+ _driverCall.then(
418
+ function(result) {
419
+ if (_queryEntry) {
420
+ _queryEntry.durationMs = Date.now() - _queryEntry._startMs;
421
+ // _startMs is kept for the Flow tab timeline (#FI)
422
+ }
423
+ var raw = coerce(result);
424
+ if (_queryEntry) {
425
+ _queryEntry.resultCount = raw ? (Array.isArray(raw) ? raw.length : 1) : 0;
426
+ try { _queryEntry.resultSize = raw ? JSON.stringify(raw).length : 0; } catch(_e) { _queryEntry.resultSize = 0; }
427
+ }
428
+ _internalData = raw;
429
+ _resolve(raw);
430
+ },
431
+ function(err) {
432
+ if (_queryEntry) {
433
+ _queryEntry.durationMs = Date.now() - _queryEntry._startMs;
434
+ _queryEntry.error = err.message || String(err);
435
+ }
436
+ err.message = '[ ' + source + ' ]\n' + err.message;
437
+ _reject(lib.connectorError.stamp(err));
438
+ }
439
+ );
440
+
441
+ return _promise;
442
+
443
+ } else {
444
+ // Direct callback path (util.promisify or explicit callback)
445
+ var _driverCall2 = isRowReturning
446
+ ? conn.runAndReadAll(queryString, args)
447
+ : conn.run(queryString, args);
448
+
449
+ _driverCall2.then(
450
+ function(result) {
451
+ if (_queryEntry) {
452
+ _queryEntry.durationMs = Date.now() - _queryEntry._startMs;
453
+ }
454
+ var raw = coerce(result);
455
+ if (_queryEntry) {
456
+ _queryEntry.resultCount = raw ? (Array.isArray(raw) ? raw.length : 1) : 0;
457
+ try { _queryEntry.resultSize = raw ? JSON.stringify(raw).length : 0; } catch(_e) { _queryEntry.resultSize = 0; }
458
+ }
459
+ _mainCallback(null, raw);
460
+ },
461
+ function(err) {
462
+ if (_queryEntry) {
463
+ _queryEntry.durationMs = Date.now() - _queryEntry._startMs;
464
+ _queryEntry.error = err.message || String(err);
465
+ }
466
+ err.message = '[ ' + source + ' ]\n' + err.message;
467
+ _mainCallback(lib.connectorError.stamp(err));
468
+ }
469
+ );
470
+ }
471
+ };
472
+ };
473
+
474
+
475
+ return init(conn, infos);
476
+ }
477
+
478
+ module.exports = Duckdb;
@@ -0,0 +1,125 @@
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
+ var EventEmitter = require('events').EventEmitter;
11
+ var gina = require('../../../../core/gna');
12
+ var lib = gina.lib;
13
+ var console = lib.logger;
14
+ var inherits = lib.inherits;
15
+
16
+ /**
17
+ * DuckDB connector — opens an embedded analytical (columnar / OLAP) database.
18
+ *
19
+ * `@duckdb/node-api` is loaded from the **project's** node_modules so the
20
+ * framework has zero hard dependency on it. Install it in your project:
21
+ * npm install @duckdb/node-api
22
+ *
23
+ * connectors.json entry:
24
+ * {
25
+ * "analytics": {
26
+ * "connector": "duckdb",
27
+ * "database": "analytics",
28
+ * "file": "/optional/absolute/path/to/analytics.duckdb"
29
+ * }
30
+ * }
31
+ *
32
+ * `database` names the logical model directory (`models/<database>/entities/`).
33
+ * `file` is the actual DuckDB file path. Defaults to `~/.gina/{version}/{database}.duckdb`
34
+ * when absent. Use `':memory:'` for an ephemeral in-process database.
35
+ * `readOnly` opens the database in read-only mode (driver `access_mode: 'READ_ONLY'`) —
36
+ * writes are refused by the engine, and any number of read-only PROCESSES can share
37
+ * one file. DuckDB is single-writer across processes: while one process holds a file
38
+ * read-write, no other process can open it at all (not even read-only). Within one
39
+ * process, re-opening the same file is fine (merged-process bundles share cleanly).
40
+ *
41
+ * Unlike the SQLite connector (synchronous `node:sqlite`), the DuckDB driver is
42
+ * natively async — `onReady()` resolves after the instance + connection handshake.
43
+ *
44
+ * @class DuckdbConnector
45
+ * @constructor
46
+ * @param {object} conf - Connector config from connectors.json
47
+ * @param {string} conf.database - Logical database name (models/ directory)
48
+ * @param {string} [conf.file] - DuckDB file path (defaults to ~/.gina/{v}/{database}.duckdb; ':memory:' supported)
49
+ * @param {boolean} [conf.readOnly] - Open read-only (access_mode READ_ONLY; default false)
50
+ */
51
+ function DuckdbConnector(conf) {
52
+ var _conn = null;
53
+ var _err = null;
54
+ var _initPromise = null;
55
+
56
+ var init = function(conf) {
57
+ var duckdb;
58
+ try {
59
+ var duckdbPath = _(getPath('project') + '/node_modules/@duckdb/node-api', true);
60
+ duckdb = require(duckdbPath);
61
+ } catch (e) {
62
+ _err = new Error(
63
+ '[DuckdbConnector] @duckdb/node-api is not installed in your project.\n'
64
+ + 'Run: npm install @duckdb/node-api\n'
65
+ + e.message
66
+ );
67
+ return;
68
+ }
69
+
70
+ // Resolve file path: conf.file > ~/.gina/{version}/{database}.duckdb
71
+ // ':memory:' passes through to the driver verbatim.
72
+ var dbFile = conf.file || _(getPath('gina').home + '/' + conf.database + '.duckdb', true);
73
+
74
+ // `create(path)` and `create(path, config)` are both valid driver forms;
75
+ // only pass a config object when an option is actually set.
76
+ var pending = (conf.readOnly)
77
+ ? duckdb.DuckDBInstance.create(dbFile, { access_mode: 'READ_ONLY' })
78
+ : duckdb.DuckDBInstance.create(dbFile);
79
+
80
+ _initPromise = pending
81
+ .then(function(instance) {
82
+ return instance.connect();
83
+ })
84
+ .then(function(connection) {
85
+ _conn = connection;
86
+ // Expose metadata on the connection object for use by index.js.
87
+ _conn._file = dbFile;
88
+ _conn._name = conf.database;
89
+ console.debug('[DuckdbConnector] opened: ' + dbFile);
90
+ })
91
+ .catch(function(e) {
92
+ _err = new Error('[DuckdbConnector] Failed to open "' + dbFile + '": ' + e.message);
93
+ });
94
+ };
95
+
96
+ /**
97
+ * Register a one-time ready callback. Async — resolves once the DuckDB
98
+ * instance + connection handshake completes. No ping query is needed:
99
+ * the database is embedded, so a successful open IS the connectivity proof
100
+ * (SQLite precedent).
101
+ *
102
+ * @param {function} fn - `fn(err, conn)` where `conn` is the DuckDBConnection.
103
+ *
104
+ * @example
105
+ * var connector = new DuckdbConnector({ database: 'analytics' });
106
+ * connector.onReady(function(err, conn) {
107
+ * if (err) return console.error(err.message);
108
+ * // conn is ready — conn._name === 'analytics'
109
+ * });
110
+ */
111
+ this.onReady = function(fn) {
112
+ if (_err) return fn(_err, null);
113
+
114
+ _initPromise.then(function() {
115
+ if (_err) return fn(_err, null);
116
+ console.debug('[DuckdbConnector] connected to: ' + _conn._name);
117
+ fn(null, _conn);
118
+ });
119
+ };
120
+
121
+ init(conf);
122
+ }
123
+
124
+ DuckdbConnector = inherits(DuckdbConnector, EventEmitter);
125
+ module.exports = DuckdbConnector;
@@ -205,7 +205,15 @@ function Mongodb(conn, infos) {
205
205
  var name = arr[arr.length - 1].replace(/\.json$/i, '');
206
206
 
207
207
  if (!entities[entityName]) return;
208
- if (typeof entities[entityName].prototype[name] !== 'undefined') return;
208
+ if (typeof entities[entityName].prototype[name] !== 'undefined') {
209
+ // Own property = user code in the entity .js wins (designed intent).
210
+ // Inherited name = the file is silently shadowed (e.g. gina's
211
+ // Object.prototype count()) — warn so the skip is diagnosable (#B173).
212
+ if ( !Object.prototype.hasOwnProperty.call(entities[entityName].prototype, name) ) {
213
+ console.warn('[Mongodb] skipping pipeline method \'' + name + '\' (' + source + '): the name is inherited on the ' + entityName + ' prototype chain (EventEmitter, entity base API, or gina\'s Object.prototype helpers like count()) — calls would run the inherited member instead. Rename the file, e.g. \'' + name + 'Rows.json\'.');
214
+ }
215
+ return;
216
+ }
209
217
 
210
218
  var rawSource = fs.readFileSync(source).toString();
211
219
 
@@ -244,7 +244,15 @@ function Mysql(conn, infos) {
244
244
  }
245
245
 
246
246
  if (!entities[entityName]) return;
247
- if (typeof entities[entityName].prototype[name] !== 'undefined') return;
247
+ if (typeof entities[entityName].prototype[name] !== 'undefined') {
248
+ // Own property = user code in the entity .js wins (designed intent).
249
+ // Inherited name = the file is silently shadowed (e.g. gina's
250
+ // Object.prototype count()) — warn so the skip is diagnosable (#B173).
251
+ if ( !Object.prototype.hasOwnProperty.call(entities[entityName].prototype, name) ) {
252
+ console.warn('[mysql] skipping query method \'' + name + '\' (' + source + '): the name is inherited on the ' + entityName + ' prototype chain (EventEmitter, entity base API, or gina\'s Object.prototype helpers like count()) — calls would run the inherited member instead. Rename the file, e.g. \'' + name + 'Rows.sql\'.');
253
+ }
254
+ return;
255
+ }
248
256
 
249
257
  // ── Parse the SQL file ────────────────────────────────────────────────
250
258
  var rawSource = fs.readFileSync(source).toString();