@vibesdotdev/localdb 0.0.1 → 1.0.0-rc.2

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 (199) hide show
  1. package/LICENSE +18 -0
  2. package/README.md +134 -112
  3. package/dist/cli/commands/_shared.consumer.d.ts +1 -3
  4. package/dist/cli/commands/_shared.consumer.d.ts.map +1 -1
  5. package/dist/cli/commands/_shared.consumer.js +1 -11
  6. package/dist/cli/commands/_shared.consumer.js.map +1 -1
  7. package/dist/cli/commands/migrate/dev.localdb.migrate.cli-command.descriptor.js +1 -1
  8. package/dist/cli/commands/migrate/dev.localdb.migrate.cli-command.descriptor.js.map +1 -1
  9. package/dist/cli/commands/migrate/dev.localdb.migrate.cli-command.impl.consumer.d.ts +9 -3
  10. package/dist/cli/commands/migrate/dev.localdb.migrate.cli-command.impl.consumer.d.ts.map +1 -1
  11. package/dist/cli/commands/migrate/dev.localdb.migrate.cli-command.impl.consumer.js +59 -45
  12. package/dist/cli/commands/migrate/dev.localdb.migrate.cli-command.impl.consumer.js.map +1 -1
  13. package/dist/cli/commands/namespaces/dev.localdb.namespaces.cli-command.descriptor.js +1 -1
  14. package/dist/cli/commands/namespaces/dev.localdb.namespaces.cli-command.descriptor.js.map +1 -1
  15. package/dist/cli/commands/namespaces/dev.localdb.namespaces.cli-command.impl.d.ts +8 -3
  16. package/dist/cli/commands/namespaces/dev.localdb.namespaces.cli-command.impl.d.ts.map +1 -1
  17. package/dist/cli/commands/namespaces/dev.localdb.namespaces.cli-command.impl.js +12 -10
  18. package/dist/cli/commands/namespaces/dev.localdb.namespaces.cli-command.impl.js.map +1 -1
  19. package/dist/cli/commands/pools/dev.localdb.pools.cli-command.descriptor.js +1 -1
  20. package/dist/cli/commands/pools/dev.localdb.pools.cli-command.descriptor.js.map +1 -1
  21. package/dist/cli/commands/pools/dev.localdb.pools.cli-command.impl.d.ts +6 -3
  22. package/dist/cli/commands/pools/dev.localdb.pools.cli-command.impl.d.ts.map +1 -1
  23. package/dist/cli/commands/pools/dev.localdb.pools.cli-command.impl.js +8 -7
  24. package/dist/cli/commands/pools/dev.localdb.pools.cli-command.impl.js.map +1 -1
  25. package/dist/cli/commands/query/dev.localdb.query.cli-command.descriptor.js +1 -1
  26. package/dist/cli/commands/query/dev.localdb.query.cli-command.descriptor.js.map +1 -1
  27. package/dist/cli/commands/query/dev.localdb.query.cli-command.impl.consumer.d.ts +13 -3
  28. package/dist/cli/commands/query/dev.localdb.query.cli-command.impl.consumer.d.ts.map +1 -1
  29. package/dist/cli/commands/query/dev.localdb.query.cli-command.impl.consumer.js +66 -51
  30. package/dist/cli/commands/query/dev.localdb.query.cli-command.impl.consumer.js.map +1 -1
  31. package/dist/cli/commands/status/dev.localdb.status.cli-command.descriptor.js +1 -1
  32. package/dist/cli/commands/status/dev.localdb.status.cli-command.descriptor.js.map +1 -1
  33. package/dist/cli/commands/status/dev.localdb.status.cli-command.impl.consumer.d.ts +9 -3
  34. package/dist/cli/commands/status/dev.localdb.status.cli-command.impl.consumer.d.ts.map +1 -1
  35. package/dist/cli/commands/status/dev.localdb.status.cli-command.impl.consumer.js +41 -29
  36. package/dist/cli/commands/status/dev.localdb.status.cli-command.impl.consumer.js.map +1 -1
  37. package/dist/cli/inputs.d.ts +25 -0
  38. package/dist/cli/inputs.d.ts.map +1 -0
  39. package/dist/cli/inputs.js +81 -0
  40. package/dist/cli/inputs.js.map +1 -0
  41. package/dist/cli/types.d.ts +45 -0
  42. package/dist/cli/types.d.ts.map +1 -0
  43. package/dist/cli/types.js +14 -0
  44. package/dist/cli/types.js.map +1 -0
  45. package/dist/core/connection-pool.d.ts +204 -46
  46. package/dist/core/connection-pool.d.ts.map +1 -1
  47. package/dist/core/connection-pool.js +610 -101
  48. package/dist/core/connection-pool.js.map +1 -1
  49. package/dist/core/database.d.ts +243 -63
  50. package/dist/core/database.d.ts.map +1 -1
  51. package/dist/core/database.js +937 -203
  52. package/dist/core/database.js.map +1 -1
  53. package/dist/core/holders.d.ts +15 -0
  54. package/dist/core/holders.d.ts.map +1 -0
  55. package/dist/core/holders.js +4 -0
  56. package/dist/core/holders.js.map +1 -0
  57. package/dist/core/host-kinds.d.ts +22 -0
  58. package/dist/core/host-kinds.d.ts.map +1 -0
  59. package/dist/core/host-kinds.js +52 -0
  60. package/dist/core/host-kinds.js.map +1 -0
  61. package/dist/core/live-runtime.d.ts +17 -0
  62. package/dist/core/live-runtime.d.ts.map +1 -0
  63. package/dist/core/live-runtime.js +28 -0
  64. package/dist/core/live-runtime.js.map +1 -0
  65. package/dist/core/migration-registry.d.ts +115 -80
  66. package/dist/core/migration-registry.d.ts.map +1 -1
  67. package/dist/core/migration-registry.js +340 -199
  68. package/dist/core/migration-registry.js.map +1 -1
  69. package/dist/core/open-connection.d.ts +11 -0
  70. package/dist/core/open-connection.d.ts.map +1 -0
  71. package/dist/core/open-connection.js +70 -0
  72. package/dist/core/open-connection.js.map +1 -0
  73. package/dist/core/outcome.d.ts +21 -0
  74. package/dist/core/outcome.d.ts.map +1 -0
  75. package/dist/core/outcome.js +22 -0
  76. package/dist/core/outcome.js.map +1 -0
  77. package/dist/core/pool-api.d.ts +19 -0
  78. package/dist/core/pool-api.d.ts.map +1 -0
  79. package/dist/core/pool-api.js +59 -0
  80. package/dist/core/pool-api.js.map +1 -0
  81. package/dist/core/slow-statement.d.ts +81 -0
  82. package/dist/core/slow-statement.d.ts.map +1 -0
  83. package/dist/core/slow-statement.js +149 -0
  84. package/dist/core/slow-statement.js.map +1 -0
  85. package/dist/core/wal-policy.d.ts +86 -0
  86. package/dist/core/wal-policy.d.ts.map +1 -0
  87. package/dist/core/wal-policy.js +115 -0
  88. package/dist/core/wal-policy.js.map +1 -0
  89. package/dist/dev.localdb.cli-group.descriptor.d.ts +1 -1
  90. package/dist/dev.localdb.cli-group.descriptor.d.ts.map +1 -1
  91. package/dist/dev.localdb.context.descriptor.d.ts +15 -1
  92. package/dist/dev.localdb.context.descriptor.d.ts.map +1 -1
  93. package/dist/dev.localdb.context.descriptor.js +1 -1
  94. package/dist/dev.localdb.context.descriptor.js.map +1 -1
  95. package/dist/dev.localdb.context.impl.consumer.d.ts +12 -5
  96. package/dist/dev.localdb.context.impl.consumer.d.ts.map +1 -1
  97. package/dist/dev.localdb.context.impl.consumer.js +14 -5
  98. package/dist/dev.localdb.context.impl.consumer.js.map +1 -1
  99. package/dist/driver/sqlite-driver.base.d.ts +107 -0
  100. package/dist/driver/sqlite-driver.base.d.ts.map +1 -0
  101. package/dist/driver/sqlite-driver.base.js +426 -0
  102. package/dist/driver/sqlite-driver.base.js.map +1 -0
  103. package/dist/driver/sqlite-driver.d.ts +154 -0
  104. package/dist/driver/sqlite-driver.d.ts.map +1 -0
  105. package/dist/driver/sqlite-driver.js +103 -0
  106. package/dist/driver/sqlite-driver.js.map +1 -0
  107. package/dist/index.d.ts +11 -5
  108. package/dist/index.d.ts.map +1 -1
  109. package/dist/index.js +8 -4
  110. package/dist/index.js.map +1 -1
  111. package/dist/localdb.client.descriptor.d.ts +10 -0
  112. package/dist/localdb.client.descriptor.d.ts.map +1 -0
  113. package/dist/localdb.client.descriptor.js +13 -0
  114. package/dist/localdb.client.descriptor.js.map +1 -0
  115. package/dist/localdb.client.impl.consumer.d.ts +11 -0
  116. package/dist/localdb.client.impl.consumer.d.ts.map +1 -0
  117. package/dist/localdb.client.impl.consumer.js +11 -0
  118. package/dist/localdb.client.impl.consumer.js.map +1 -0
  119. package/dist/localdb.plugin.d.ts +2 -2
  120. package/dist/localdb.plugin.d.ts.map +1 -1
  121. package/dist/localdb.plugin.js +58 -10
  122. package/dist/localdb.plugin.js.map +1 -1
  123. package/dist/location.d.ts +6 -0
  124. package/dist/location.d.ts.map +1 -0
  125. package/dist/location.js +6 -0
  126. package/dist/location.js.map +1 -0
  127. package/dist/migrations/load-sql.d.ts +25 -21
  128. package/dist/migrations/load-sql.d.ts.map +1 -1
  129. package/dist/migrations/load-sql.js +91 -76
  130. package/dist/migrations/load-sql.js.map +1 -1
  131. package/dist/pool.d.ts +3 -0
  132. package/dist/pool.d.ts.map +1 -0
  133. package/dist/pool.js +3 -0
  134. package/dist/pool.js.map +1 -0
  135. package/dist/schemas/api.d.ts +133 -59
  136. package/dist/schemas/api.d.ts.map +1 -1
  137. package/dist/schemas/api.js +1 -1
  138. package/dist/schemas/api.js.map +1 -1
  139. package/dist/schemas/migrations.d.ts +123 -0
  140. package/dist/schemas/migrations.d.ts.map +1 -0
  141. package/dist/schemas/migrations.js +55 -0
  142. package/dist/schemas/migrations.js.map +1 -0
  143. package/dist/schemas/pool.d.ts +27 -0
  144. package/dist/schemas/pool.d.ts.map +1 -0
  145. package/dist/schemas/pool.js +7 -0
  146. package/dist/schemas/pool.js.map +1 -0
  147. package/dist/schemas/sqlite-driver-base.d.ts +50 -0
  148. package/dist/schemas/sqlite-driver-base.d.ts.map +1 -0
  149. package/dist/schemas/sqlite-driver-base.js +2 -0
  150. package/dist/schemas/sqlite-driver-base.js.map +1 -0
  151. package/dist/testing/sqlite-driver-conformance.d.ts +42 -0
  152. package/dist/testing/sqlite-driver-conformance.d.ts.map +1 -0
  153. package/dist/testing/sqlite-driver-conformance.js +471 -0
  154. package/dist/testing/sqlite-driver-conformance.js.map +1 -0
  155. package/package.json +79 -106
  156. package/SPEC.md +0 -119
  157. package/dist/core/error-context.d.ts +0 -2
  158. package/dist/core/error-context.d.ts.map +0 -1
  159. package/dist/core/error-context.js +0 -17
  160. package/dist/core/error-context.js.map +0 -1
  161. package/dist/core/runtime.d.ts +0 -3
  162. package/dist/core/runtime.d.ts.map +0 -1
  163. package/dist/core/runtime.js +0 -17
  164. package/dist/core/runtime.js.map +0 -1
  165. package/dist/localdb.cloud.plugin.d.ts +0 -17
  166. package/dist/localdb.cloud.plugin.d.ts.map +0 -1
  167. package/dist/localdb.cloud.plugin.js +0 -23
  168. package/dist/localdb.cloud.plugin.js.map +0 -1
  169. package/src/cli/commands/_shared.consumer.ts +0 -20
  170. package/src/cli/commands/migrate/dev.localdb.migrate.cli-command.descriptor.ts +0 -20
  171. package/src/cli/commands/migrate/dev.localdb.migrate.cli-command.impl.consumer.ts +0 -97
  172. package/src/cli/commands/namespaces/dev.localdb.namespaces.cli-command.descriptor.ts +0 -17
  173. package/src/cli/commands/namespaces/dev.localdb.namespaces.cli-command.impl.ts +0 -46
  174. package/src/cli/commands/pools/dev.localdb.pools.cli-command.descriptor.ts +0 -16
  175. package/src/cli/commands/pools/dev.localdb.pools.cli-command.impl.ts +0 -37
  176. package/src/cli/commands/query/dev.localdb.query.cli-command.descriptor.ts +0 -21
  177. package/src/cli/commands/query/dev.localdb.query.cli-command.impl.consumer.ts +0 -69
  178. package/src/cli/commands/status/dev.localdb.status.cli-command.descriptor.ts +0 -20
  179. package/src/cli/commands/status/dev.localdb.status.cli-command.impl.consumer.ts +0 -93
  180. package/src/core/connection-pool.ts +0 -240
  181. package/src/core/database.ts +0 -419
  182. package/src/core/error-context.ts +0 -19
  183. package/src/core/migration-registry.ts +0 -321
  184. package/src/core/runtime.ts +0 -17
  185. package/src/dev.localdb.cli-group.descriptor.ts +0 -20
  186. package/src/dev.localdb.context.descriptor.ts +0 -13
  187. package/src/dev.localdb.context.impl.consumer.ts +0 -12
  188. package/src/index.ts +0 -28
  189. package/src/localdb.cloud.plugin.ts +0 -24
  190. package/src/localdb.plugin.ts +0 -43
  191. package/src/migrations/atlas/001-initial-schema.sql +0 -173
  192. package/src/migrations/atlas/002-lang-server-fields.sql +0 -12
  193. package/src/migrations/atlas/003-config-id-dedup.sql +0 -31
  194. package/src/migrations/atlas/004-fix-on-conflict-constraints.sql +0 -25
  195. package/src/migrations/atlas/005-diagnostics.sql +0 -66
  196. package/src/migrations/atlas/006-diagnostic-summaries.sql +0 -65
  197. package/src/migrations/atlas/007-diagnostic-slice.sql +0 -83
  198. package/src/migrations/load-sql.ts +0 -133
  199. package/src/schemas/api.ts +0 -92
@@ -1,5 +1,8 @@
1
- declare const _default: {
2
- execute(_args: Record<string, unknown>, _opts: Record<string, unknown>): Promise<void>;
1
+ import type { LocalDbCliCommandContext, LocalDbCliNoArguments } from '../../types.ts';
2
+ /** `vibes dev localdb pools` declares no options. */
3
+ type PoolsOptions = Readonly<Record<string, never>>;
4
+ declare const defaultExport: {
5
+ execute(_args: LocalDbCliNoArguments, _opts: PoolsOptions, context: LocalDbCliCommandContext): Promise<void>;
3
6
  };
4
- export default _default;
7
+ export default defaultExport;
5
8
  //# sourceMappingURL=dev.localdb.pools.cli-command.impl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev.localdb.pools.cli-command.impl.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/pools/dev.localdb.pools.cli-command.impl.ts"],"names":[],"mappings":";mBAMsB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;;AAD7F,wBA+BE"}
1
+ {"version":3,"file":"dev.localdb.pools.cli-command.impl.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/pools/dev.localdb.pools.cli-command.impl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,qBAAqB,EAAuB,MAAM,gBAAgB,CAAC;AAI3G,qDAAqD;AACrD,KAAK,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAGpD,QAAA,MAAM,aAAa;mBACG,qBAAqB,SAAS,YAAY,WAAW,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;CA8BlH,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -1,10 +1,10 @@
1
- import { getVibesRuntime } from '@vibesdotdev/runtime';
2
- import { formatAgeMs } from '../_shared.consumer.js';
3
- export default {
4
- async execute(_args, _opts) {
5
- const runtime = getVibesRuntime();
6
- const ui = (await runtime.context('cli/ui'));
7
- const localdb = (await runtime.context('dev/localdb'));
1
+ import { formatAgeMs } from "../_shared.consumer.js";
2
+ // Hoisted const: tsc rewriteRelativeImportExtensions does not rewrite `.ts` specifiers inside `export default <expr>` (TS 6.0.3).
3
+ const defaultExport = {
4
+ async execute(_args, _opts, context) {
5
+ const runtime = context.runtime;
6
+ const ui = await runtime.context('cli/ui');
7
+ const localdb = await runtime.context('dev/localdb');
8
8
  ui.log('\n=== Connection Pool Statistics ===\n');
9
9
  const stats = localdb.getPoolStats();
10
10
  ui.log(`Total Connections: ${stats.total}`);
@@ -25,4 +25,5 @@ export default {
25
25
  ui.log('');
26
26
  }
27
27
  };
28
+ export default defaultExport;
28
29
  //# sourceMappingURL=dev.localdb.pools.cli-command.impl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev.localdb.pools.cli-command.impl.js","sourceRoot":"","sources":["../../../../src/cli/commands/pools/dev.localdb.pools.cli-command.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,eAAe;IACd,KAAK,CAAC,OAAO,CAAC,KAA8B,EAAE,KAA8B;QAC3E,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;QAClC,MAAM,EAAE,GAAG,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAc,CAAC;QAC1D,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAe,CAAC;QAErE,EAAE,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QAEjD,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;QAErC,EAAE,CAAC,GAAG,CAAC,sBAAsB,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC5C,EAAE,CAAC,GAAG,CAAC,sBAAsB,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7C,EAAE,CAAC,GAAG,CAAC,sBAAsB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAE3C,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YACtC,OAAO;QACR,CAAC;QAED,EAAE,CAAC,GAAG,CAAC,kBAAkB,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5C,EAAE,CAAC,KAAK,CACP,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7B,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,MAAM,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;YAC1C,IAAI,EAAE,CAAC,CAAC,QAAQ;YAChB,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;YACzB,QAAQ,EAAE,CAAC,CAAC,QAAQ;SACpB,CAAC,CAAC,CACH,CAAC;QACF,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACZ,CAAC;CACD,CAAC"}
1
+ {"version":3,"file":"dev.localdb.pools.cli-command.impl.js","sourceRoot":"","sources":["../../../../src/cli/commands/pools/dev.localdb.pools.cli-command.impl.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAKrD,kIAAkI;AAClI,MAAM,aAAa,GAAG;IACrB,KAAK,CAAC,OAAO,CAAC,KAA4B,EAAE,KAAmB,EAAE,OAAiC;QACjG,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,OAAO,CAAsB,QAAQ,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAa,aAAa,CAAC,CAAC;QAEjE,EAAE,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QAEjD,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;QAErC,EAAE,CAAC,GAAG,CAAC,sBAAsB,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC5C,EAAE,CAAC,GAAG,CAAC,sBAAsB,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7C,EAAE,CAAC,GAAG,CAAC,sBAAsB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAE3C,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YACtC,OAAO;QACR,CAAC;QAED,EAAE,CAAC,GAAG,CAAC,kBAAkB,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5C,EAAE,CAAC,KAAK,CACP,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7B,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,MAAM,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;YAC1C,IAAI,EAAE,CAAC,CAAC,QAAQ;YAChB,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;YACzB,QAAQ,EAAE,CAAC,CAAC,QAAQ;SACpB,CAAC,CAAC,CACH,CAAC;QACF,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACZ,CAAC;CACD,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Dev LocalDB Query CLI Command Descriptor
3
3
  */
4
- import { createRuntimeAsset } from '@vibesdotdev/runtime';
4
+ import { createRuntimeAsset } from '@vibesdotdev/kernel';
5
5
  export default createRuntimeAsset({
6
6
  id: 'dev.localdb.query',
7
7
  kind: 'cli/command',
@@ -1 +1 @@
1
- {"version":3,"file":"dev.localdb.query.cli-command.descriptor.js","sourceRoot":"","sources":["../../../../src/cli/commands/query/dev.localdb.query.cli-command.descriptor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,eAAe,kBAAkB,CAAC;IACjC,EAAE,EAAE,mBAAmB;IACvB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,oCAAoC;IACjD,KAAK,EAAE,aAAa;IACpB,QAAQ,EAAE,CAAC,KAAK,CAAC;IACjB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,0BAA0B,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACrF,OAAO,EAAE;QACR,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,+BAA+B,EAAE;QACtE,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;KAC1D;CACD,CAAC,CAAC"}
1
+ {"version":3,"file":"dev.localdb.query.cli-command.descriptor.js","sourceRoot":"","sources":["../../../../src/cli/commands/query/dev.localdb.query.cli-command.descriptor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,eAAe,kBAAkB,CAAC;IACjC,EAAE,EAAE,mBAAmB;IACvB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,oCAAoC;IACjD,KAAK,EAAE,aAAa;IACpB,QAAQ,EAAE,CAAC,KAAK,CAAC;IACjB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,0BAA0B,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACrF,OAAO,EAAE;QACR,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,+BAA+B,EAAE;QACtE,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;KAC1D;CACD,CAAC,CAAC"}
@@ -1,5 +1,15 @@
1
- declare const _default: {
2
- execute(args: Record<string, unknown>, opts: Record<string, unknown>): Promise<void>;
1
+ import type { LocalDbCliCommandContext } from '../../types.ts';
2
+ /** The positional argument the CLI parses from this command's descriptor (required). */
3
+ interface QueryArguments {
4
+ sql: string;
5
+ }
6
+ /** The options the CLI parses from this command's descriptor. */
7
+ interface QueryOptions {
8
+ db?: string;
9
+ json?: boolean;
10
+ }
11
+ declare const defaultExport: {
12
+ execute(args: QueryArguments, opts: QueryOptions, context: LocalDbCliCommandContext): Promise<void>;
3
13
  };
4
- export default _default;
14
+ export default defaultExport;
5
15
  //# sourceMappingURL=dev.localdb.query.cli-command.impl.consumer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev.localdb.query.cli-command.impl.consumer.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/query/dev.localdb.query.cli-command.impl.consumer.ts"],"names":[],"mappings":";kBAOqB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;;AAD3F,wBA8DE"}
1
+ {"version":3,"file":"dev.localdb.query.cli-command.impl.consumer.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/query/dev.localdb.query.cli-command.impl.consumer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEX,wBAAwB,EAGxB,MAAM,gBAAgB,CAAC;AAKxB,wFAAwF;AACxF,UAAU,cAAc;IACvB,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,iEAAiE;AACjE,UAAU,YAAY;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AA2CD,QAAA,MAAM,aAAa;kBACE,cAAc,QAAQ,YAAY,WAAW,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;CA2CzG,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -1,63 +1,78 @@
1
- import { existsSync } from 'node:fs';
2
- import { getVibesRuntime } from '@vibesdotdev/runtime';
3
- import { resolveFromCwd } from '../_shared.consumer.js';
4
- export default {
5
- async execute(args, opts) {
6
- const runtime = getVibesRuntime();
7
- const ui = (await runtime.context('cli/ui'));
8
- const localdb = (await runtime.context('dev/localdb'));
9
- const sql = typeof args.sql === 'string' ? args.sql : '';
10
- const dbOpt = typeof opts.db === 'string' ? opts.db : '';
1
+ import { CaughtFailureSchema, isCapabilityError } from '@vibesdotdev/kernel';
2
+ import { settle } from "../../../core/outcome.js";
3
+ import { existingFiles, readCliFlag, readCliText, resolveCliDatabasePath } from "../../inputs.js";
4
+ /** Run `sql` and print its rows (a SELECT) or its change count; a failing statement rejects. */
5
+ async function runQuery(runtime, localdb, ui, fullPath, sql, json) {
6
+ const db = await localdb.getRawDatabase(runtime, fullPath, 'localdb-query');
7
+ const isSelect = sql.trim().toLowerCase().startsWith('select');
8
+ if (isSelect) {
9
+ const results = db.prepare(sql).all();
10
+ if (json) {
11
+ ui.json(results);
12
+ }
13
+ else if (results.length === 0) {
14
+ ui.info('No results.');
15
+ }
16
+ else {
17
+ ui.table(results);
18
+ ui.info(`(${results.length} row${results.length !== 1 ? 's' : ''})`);
19
+ }
20
+ return;
21
+ }
22
+ const result = db.prepare(sql).run();
23
+ const payload = {
24
+ changes: result.changes,
25
+ lastInsertRowid: result.lastInsertRowid
26
+ };
27
+ if (json) {
28
+ ui.json(payload);
29
+ }
30
+ else {
31
+ ui.success('Query executed successfully.');
32
+ ui.log(`Changes: ${payload.changes}`);
33
+ if (payload.lastInsertRowid)
34
+ ui.log(`Last Insert Row ID: ${String(payload.lastInsertRowid)}`);
35
+ }
36
+ }
37
+ // Hoisted const: tsc rewriteRelativeImportExtensions does not rewrite `.ts` specifiers inside `export default <expr>` (TS 6.0.3).
38
+ const defaultExport = {
39
+ async execute(args, opts, context) {
40
+ const runtime = context.runtime;
41
+ const ui = await runtime.context('cli/ui');
42
+ const app = await runtime.context('cli/app');
43
+ const localdb = await runtime.context('dev/localdb');
44
+ const sql = readCliText(args, 'sql') ?? '';
45
+ const dbOpt = readCliText(opts, 'db') ?? '';
46
+ const json = readCliFlag(opts, 'json');
11
47
  if (!sql.trim()) {
12
48
  ui.error('Missing SQL statement');
13
- process.exit(1);
49
+ app.exit(1);
50
+ return;
14
51
  }
15
52
  if (!dbOpt.trim()) {
16
53
  ui.error('Missing required option: --db <path>');
17
- process.exit(1);
54
+ app.exit(1);
55
+ return;
18
56
  }
19
- const fullPath = resolveFromCwd(dbOpt);
20
- if (!existsSync(fullPath)) {
57
+ // A relative --db resolves against the runtime's workspace through the
58
+ // host's path mechanics, never an ambient cwd (#011 ruling 3). LocalDB
59
+ // itself never computes database paths; owners declare them.
60
+ const fullPath = await resolveCliDatabasePath(runtime, dbOpt);
61
+ if ((await existingFiles(runtime, [fullPath])).length === 0) {
21
62
  ui.error(`Database not found: ${dbOpt}`);
22
- process.exit(1);
23
- }
24
- try {
25
- const db = localdb.getRawDatabase(fullPath, 'localdb-query');
26
- const isSelect = sql.trim().toLowerCase().startsWith('select');
27
- if (isSelect) {
28
- const results = db.query(sql).all();
29
- if (opts.json) {
30
- ui.json(results);
31
- }
32
- else if (results.length === 0) {
33
- ui.info('No results.');
34
- }
35
- else {
36
- ui.table(results);
37
- ui.info(`(${results.length} row${results.length !== 1 ? 's' : ''})`);
38
- }
39
- return;
40
- }
41
- const stmt = db.prepare(sql);
42
- const result = stmt.run();
43
- const payload = {
44
- changes: result.changes,
45
- lastInsertRowid: result.lastInsertRowid
46
- };
47
- if (opts.json) {
48
- ui.json(payload);
49
- }
50
- else {
51
- ui.success('Query executed successfully.');
52
- ui.log(`Changes: ${payload.changes}`);
53
- if (payload.lastInsertRowid)
54
- ui.log(`Last Insert Row ID: ${String(payload.lastInsertRowid)}`);
55
- }
63
+ app.exit(1);
64
+ return;
56
65
  }
57
- catch (error) {
58
- ui.error(`Error executing query: ${String(error)}`);
59
- process.exit(1);
66
+ const ran = await settle(runQuery(runtime, localdb, ui, fullPath, sql, json));
67
+ if (ran.failed) {
68
+ // The typed refusal, never SQLite's own text: that quotes the statement's literals and names.
69
+ const failure = CaughtFailureSchema.parse(ran.cause);
70
+ ui.error(isCapabilityError(failure)
71
+ ? `Error executing query: ${failure.message} (${failure.code} ${failure.reason})`
72
+ : 'Error executing query: the statement failed.');
73
+ app.exit(1);
60
74
  }
61
75
  }
62
76
  };
77
+ export default defaultExport;
63
78
  //# sourceMappingURL=dev.localdb.query.cli-command.impl.consumer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev.localdb.query.cli-command.impl.consumer.js","sourceRoot":"","sources":["../../../../src/cli/commands/query/dev.localdb.query.cli-command.impl.consumer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev.localdb.query.cli-command.impl.consumer.js","sourceRoot":"","sources":["../../../../src/cli/commands/query/dev.localdb.query.cli-command.impl.consumer.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Dev LocalDB Status CLI Command Descriptor
3
3
  */
4
- import { createRuntimeAsset } from '@vibesdotdev/runtime';
4
+ import { createRuntimeAsset } from '@vibesdotdev/kernel';
5
5
  export default createRuntimeAsset({
6
6
  id: 'dev.localdb.status',
7
7
  kind: 'cli/command',
@@ -1 +1 @@
1
- {"version":3,"file":"dev.localdb.status.cli-command.descriptor.js","sourceRoot":"","sources":["../../../../src/cli/commands/status/dev.localdb.status.cli-command.descriptor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,eAAe,kBAAkB,CAAC;IACjC,EAAE,EAAE,oBAAoB;IACxB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,oCAAoC;IACjD,KAAK,EAAE,aAAa;IACpB,QAAQ,EAAE,CAAC,KAAK,CAAC;IACjB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,OAAO,EAAE,IAAI;IACb,OAAO,EAAE;QACR,EAAE,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,oCAAoC,EAAE;QAClF,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,oDAAoD,EAAE;KACzF;CACD,CAAC,CAAC"}
1
+ {"version":3,"file":"dev.localdb.status.cli-command.descriptor.js","sourceRoot":"","sources":["../../../../src/cli/commands/status/dev.localdb.status.cli-command.descriptor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,eAAe,kBAAkB,CAAC;IACjC,EAAE,EAAE,oBAAoB;IACxB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,oCAAoC;IACjD,KAAK,EAAE,aAAa;IACpB,QAAQ,EAAE,CAAC,KAAK,CAAC;IACjB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,OAAO,EAAE,IAAI;IACb,OAAO,EAAE;QACR,EAAE,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,oCAAoC,EAAE;QAClF,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,oDAAoD,EAAE;KACzF;CACD,CAAC,CAAC"}
@@ -1,5 +1,11 @@
1
- declare const _default: {
2
- execute(_args: Record<string, unknown>, opts: Record<string, unknown>): Promise<void>;
1
+ import type { LocalDbCliCommandContext, LocalDbCliNoArguments } from '../../types.ts';
2
+ /** The options the CLI parses from this command's descriptor. */
3
+ interface StatusOptions {
4
+ namespace?: string;
5
+ verbose?: boolean;
6
+ }
7
+ declare const defaultExport: {
8
+ execute(_args: LocalDbCliNoArguments, opts: StatusOptions, context: LocalDbCliCommandContext): Promise<void>;
3
9
  };
4
- export default _default;
10
+ export default defaultExport;
5
11
  //# sourceMappingURL=dev.localdb.status.cli-command.impl.consumer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev.localdb.status.cli-command.impl.consumer.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/status/dev.localdb.status.cli-command.impl.consumer.ts"],"names":[],"mappings":";mBAOsB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;;AAD5F,wBAsFE"}
1
+ {"version":3,"file":"dev.localdb.status.cli-command.impl.consumer.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/status/dev.localdb.status.cli-command.impl.consumer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEX,wBAAwB,EACxB,qBAAqB,EAErB,MAAM,gBAAgB,CAAC;AAOxB,iEAAiE;AACjE,UAAU,aAAa;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAGD,QAAA,MAAM,aAAa;mBACG,qBAAqB,QAAQ,aAAa,WAAW,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;CA6FlH,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -1,46 +1,60 @@
1
- import { existsSync } from 'node:fs';
2
- import { getVibesRuntime } from '@vibesdotdev/runtime';
3
- import { requestCLIExit } from '@vibesdotdev/cli/providers';
4
- import { formatAgeMs, resolveDatabasePathForNamespace, resolveFromCwd } from '../_shared.consumer';
5
- export default {
6
- async execute(_args, opts) {
7
- const runtime = getVibesRuntime();
8
- const ui = (await runtime.context('cli/ui'));
9
- const localdb = (await runtime.context('dev/localdb'));
10
- const namespaceOpt = typeof opts.namespace === 'string' ? opts.namespace : undefined;
11
- const verbose = Boolean(opts.verbose);
1
+ import { migrationRegistry } from "../../../core/migration-registry.js";
2
+ import { attempt, settle } from "../../../core/outcome.js";
3
+ import { formatAgeMs, resolveDatabaseLocationForNamespace } from "../_shared.consumer.js";
4
+ import { existingFiles, readCliFlag, readCliText } from "../../inputs.js";
5
+ // Hoisted const: tsc rewriteRelativeImportExtensions does not rewrite `.ts` specifiers inside `export default <expr>` (TS 6.0.3).
6
+ const defaultExport = {
7
+ async execute(_args, opts, context) {
8
+ const runtime = context.runtime;
9
+ const ui = await runtime.context('cli/ui');
10
+ const app = await runtime.context('cli/app');
11
+ const localdb = await runtime.context('dev/localdb');
12
+ const namespaceOpt = readCliText(opts, 'namespace');
13
+ const verbose = readCliFlag(opts, 'verbose');
12
14
  ui.log('\n=== LocalDB Status ===\n');
13
- const namespaces = localdb.listNamespaces();
15
+ // Declarations belong to this runtime. Absence here says nothing about files on disk.
16
+ const namespaces = localdb.listNamespaces(runtime);
14
17
  if (namespaces.length === 0) {
15
- ui.info('No migration namespaces registered.');
18
+ ui.info('No migration namespaces registered on this runtime.');
16
19
  return;
17
20
  }
21
+ ui.info(`Namespaces registered on this runtime: ${namespaces.join(', ')}`);
18
22
  const namespacesToShow = namespaceOpt
19
23
  ? namespaces.filter((ns) => ns === namespaceOpt)
20
24
  : namespaces;
21
25
  if (namespacesToShow.length === 0) {
22
26
  ui.error(`Namespace '${namespaceOpt}' not found.`);
23
27
  ui.info(`Available namespaces: ${namespaces.join(', ')}`);
24
- requestCLIExit(1);
28
+ app.exit(1);
29
+ return;
25
30
  }
26
- const { migrationRegistry } = (await import('../../../core/migration-registry'));
27
31
  for (const ns of namespacesToShow) {
28
32
  ui.log(`\nNamespace: ${ns}`);
29
33
  ui.log('─'.repeat(50));
30
- const dbPath = resolveDatabasePathForNamespace(ns);
31
- if (!dbPath) {
32
- ui.warn('No known database path for this namespace');
34
+ const located = attempt(() => resolveDatabaseLocationForNamespace(runtime, ns));
35
+ if (located.failed) {
36
+ ui.error(`Database location unresolvable: ${String(located.cause)}`);
33
37
  continue;
34
38
  }
35
- const fullPath = resolveFromCwd(dbPath);
36
- const exists = existsSync(fullPath);
37
- ui.log(`Database: ${dbPath}`);
38
- ui.log(`Exists: ${exists ? 'yes' : 'no'}`);
39
- if (!exists)
39
+ const location = located.value;
40
+ if (!location) {
41
+ ui.info('No declared database location (the owning package has not registered one).');
40
42
  continue;
41
- try {
42
- const db = localdb.getRawDatabase(fullPath, 'localdb-status');
43
- const status = migrationRegistry.getDatabaseStatus(db, ns);
43
+ }
44
+ ui.log(`Convention: ${location.description}`);
45
+ const present = new Set(await existingFiles(runtime, location.expectedPaths));
46
+ for (const fullPath of location.expectedPaths) {
47
+ const exists = present.has(fullPath);
48
+ ui.log(`Database: ${fullPath}`);
49
+ ui.log(`Exists: ${exists ? 'yes' : 'no'}`);
50
+ if (!exists)
51
+ continue;
52
+ const read = await settle(localdb.getRawDatabase(runtime, fullPath, 'localdb-status').then((db) => migrationRegistry.getDatabaseStatus(runtime, db, ns)));
53
+ if (read.failed) {
54
+ ui.error(`Error reading migration status: ${String(read.cause)}`);
55
+ continue;
56
+ }
57
+ const status = read.value;
44
58
  ui.log(`Schema Version: v${status.currentVersion}`);
45
59
  ui.log(`Target Version: v${status.targetVersion}`);
46
60
  ui.log(`Status: ${status.pendingMigrations > 0 ? 'migrations pending' : 'up to date'}`);
@@ -51,9 +65,6 @@ export default {
51
65
  }
52
66
  }
53
67
  }
54
- catch (error) {
55
- ui.error(`Error reading migration status: ${String(error)}`);
56
- }
57
68
  }
58
69
  if (verbose) {
59
70
  ui.log('\n\n=== Connection Pool ===\n');
@@ -70,4 +81,5 @@ export default {
70
81
  }
71
82
  }
72
83
  };
84
+ export default defaultExport;
73
85
  //# sourceMappingURL=dev.localdb.status.cli-command.impl.consumer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev.localdb.status.cli-command.impl.consumer.js","sourceRoot":"","sources":["../../../../src/cli/commands/status/dev.localdb.status.cli-command.impl.consumer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev.localdb.status.cli-command.impl.consumer.js","sourceRoot":"","sources":["../../../../src/cli/commands/status/dev.localdb.status.cli-command.impl.consumer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * The one guard LocalDB's CLI commands read their arguments and options
3
+ * through. The CLI parses argv into plain objects of strings and booleans;
4
+ * each field is parsed once by its schema, and anything else (a value of
5
+ * another type, a throwing getter, a revoked Proxy, a Zod failure while
6
+ * reading it) refuses `INVALID_INPUT localdb-option-invalid` instead of
7
+ * throwing into the command.
8
+ */
9
+ import { type RuntimeRef } from '@vibesdotdev/kernel';
10
+ /** The text field `key` of a parsed argument or option object: the string, or `undefined` when absent. */
11
+ export declare function readCliText<TInputs extends object>(source: TInputs, key: keyof TInputs & string): string | undefined;
12
+ /** The flag `key` of a parsed option object: `true` only for a present `true`. */
13
+ export declare function readCliFlag<TInputs extends object>(source: TInputs, key: keyof TInputs & string): boolean;
14
+ /**
15
+ * Resolve a user-supplied database path the way the runtime resolves paths:
16
+ * an absolute path stands; a relative one resolves against the runtime's
17
+ * workspace (`runtime/workspace-path`, which refuses `NOT_FOUND
18
+ * workspace-unbound` on an unbound runtime), never against a cwd. Path
19
+ * mechanics come from the host's `paths/runtime-path` kind; a runtime without
20
+ * it refuses `UNAVAILABLE runtime-path-unavailable`.
21
+ */
22
+ export declare function resolveCliDatabasePath(runtime: RuntimeRef, path: string): Promise<string>;
23
+ /** The paths among `paths` that exist, through the runtime's filesystem (`filesystem/adapter`). */
24
+ export declare function existingFiles(runtime: RuntimeRef, paths: readonly string[]): Promise<string[]>;
25
+ //# sourceMappingURL=inputs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../../src/cli/inputs.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAkBvE,0GAA0G;AAC1G,wBAAgB,WAAW,CAAC,OAAO,SAAS,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAEpH;AAED,kFAAkF;AAClF,wBAAgB,WAAW,CAAC,OAAO,SAAS,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,GAAG,MAAM,GAAG,OAAO,CAEzG;AAoBD;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkB/F;AAED,mGAAmG;AACnG,wBAAsB,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAOpG"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * The one guard LocalDB's CLI commands read their arguments and options
3
+ * through. The CLI parses argv into plain objects of strings and booleans;
4
+ * each field is parsed once by its schema, and anything else (a value of
5
+ * another type, a throwing getter, a revoked Proxy, a Zod failure while
6
+ * reading it) refuses `INVALID_INPUT localdb-option-invalid` instead of
7
+ * throwing into the command.
8
+ */
9
+ import { CapabilityError } from '@vibesdotdev/kernel';
10
+ import * as z from 'zod/v4';
11
+ import { fileSystemOf } from "../core/host-kinds.js";
12
+ /** Run one read of a parsed CLI input; whatever it throws becomes the typed refusal naming `key`. */
13
+ function guardCliInput(key, read) {
14
+ try {
15
+ return read();
16
+ }
17
+ catch (cause) {
18
+ throw new CapabilityError(`The '${key}' input is not what the command declares.`, 'INVALID_INPUT', {
19
+ reason: 'localdb-option-invalid',
20
+ retryable: false,
21
+ details: { key },
22
+ cause
23
+ });
24
+ }
25
+ }
26
+ /** The text field `key` of a parsed argument or option object: the string, or `undefined` when absent. */
27
+ export function readCliText(source, key) {
28
+ return guardCliInput(key, () => z.object({ [key]: z.string().optional() }).parse(source)[key]);
29
+ }
30
+ /** The flag `key` of a parsed option object: `true` only for a present `true`. */
31
+ export function readCliFlag(source, key) {
32
+ return guardCliInput(key, () => z.object({ [key]: z.boolean().optional() }).parse(source)[key] === true);
33
+ }
34
+ const CliRuntimePathMembersSchema = z.object({
35
+ isAbsolute: z.custom((member) => member instanceof Function),
36
+ resolve: z.custom((member) => member instanceof Function)
37
+ });
38
+ /** The resolved implementation itself (its methods keep their receiver), once its shape is checked. */
39
+ const CliRuntimePathSchema = z.custom((paths) => CliRuntimePathMembersSchema.safeParse(paths).success);
40
+ const WorkspacePathSchema = z.string().min(1);
41
+ const RUNTIME_PATH_KIND = 'paths/runtime-path';
42
+ /**
43
+ * Resolve a user-supplied database path the way the runtime resolves paths:
44
+ * an absolute path stands; a relative one resolves against the runtime's
45
+ * workspace (`runtime/workspace-path`, which refuses `NOT_FOUND
46
+ * workspace-unbound` on an unbound runtime), never against a cwd. Path
47
+ * mechanics come from the host's `paths/runtime-path` kind; a runtime without
48
+ * it refuses `UNAVAILABLE runtime-path-unavailable`.
49
+ */
50
+ export async function resolveCliDatabasePath(runtime, path) {
51
+ const unavailable = () => new CapabilityError('This runtime offers no host path mechanics (paths/runtime-path).', 'UNAVAILABLE', {
52
+ reason: 'runtime-path-unavailable',
53
+ retryable: false
54
+ });
55
+ if (!runtime.hasKind(RUNTIME_PATH_KIND))
56
+ throw unavailable();
57
+ const paths = CliRuntimePathSchema.safeParse(await runtime.query(RUNTIME_PATH_KIND).resolve());
58
+ if (!paths.success)
59
+ throw unavailable();
60
+ if (paths.data.isAbsolute(path))
61
+ return paths.data.resolve(path);
62
+ const workspace = WorkspacePathSchema.safeParse(await runtime.context('runtime/workspace-path'));
63
+ if (!workspace.success) {
64
+ throw new CapabilityError('The runtime answered no workspace path.', 'UNAVAILABLE', {
65
+ reason: 'workspace-path-invalid',
66
+ retryable: false
67
+ });
68
+ }
69
+ return paths.data.resolve(workspace.data, path);
70
+ }
71
+ /** The paths among `paths` that exist, through the runtime's filesystem (`filesystem/adapter`). */
72
+ export async function existingFiles(runtime, paths) {
73
+ const files = await fileSystemOf(runtime);
74
+ const present = [];
75
+ for (const path of paths) {
76
+ if (await files.exists(path))
77
+ present.push(path);
78
+ }
79
+ return present;
80
+ }
81
+ //# sourceMappingURL=inputs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputs.js","sourceRoot":"","sources":["../../src/cli/inputs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Local CLI Types (localdb)
3
+ *
4
+ * LocalDB's CLI command implementations consume the runtime contexts `cli/ui`
5
+ * and `cli/app`, whose canonical shapes live in `@vibesdotdev/cli/providers`.
6
+ * `@vibesdotdev/cli` itself depends on `@vibesdotdev/localdb`, so a back-import
7
+ * here would form a package cycle (`localdb#build ↔ cli#build`). Following the
8
+ * same convention as `@vibesdotdev/storage`, this module declares a structural
9
+ * subset that matches only the methods the localdb commands actually call. The
10
+ * full contexts live in `@vibesdotdev/cli`; the runtime resolves them at run
11
+ * time via `runtime.context('cli/ui' | 'cli/app')`.
12
+ */
13
+ import type { RuntimeRef } from '@vibesdotdev/kernel';
14
+ /**
15
+ * Structural subset of the CLI `CommandContext`: the runtime the CLI hands
16
+ * each command's `execute`. Commands read `cli/ui`, `cli/app` and
17
+ * `dev/localdb` from this runtime, and every LocalDB call they make reports
18
+ * on it, never on an ambient one.
19
+ */
20
+ export interface LocalDbCliCommandContext {
21
+ runtime: RuntimeRef;
22
+ }
23
+ /** Positional arguments of a command that declares none. */
24
+ export type LocalDbCliNoArguments = Readonly<Record<string, never>>;
25
+ /** One value a SQLite row column can hold. */
26
+ export type LocalDbCliCell = string | number | bigint | boolean | null | Uint8Array;
27
+ /** One row the commands print: a table row, a query result row, or a statement result. */
28
+ export type LocalDbCliRow = Readonly<Record<string, LocalDbCliCell>>;
29
+ /** Structural subset of `UIContext` used by localdb CLI commands. */
30
+ export interface LocalDbCliUIContext {
31
+ info(message: string): void;
32
+ success(message: string): void;
33
+ warn(message: string): void;
34
+ error(message: string): void;
35
+ log(message: string): void;
36
+ table(rows: readonly LocalDbCliRow[], options?: {
37
+ columns?: string[];
38
+ } | string | string[]): void;
39
+ json(data: readonly LocalDbCliRow[] | LocalDbCliRow): void;
40
+ }
41
+ /** Structural subset of `AppContext` used by localdb CLI commands. */
42
+ export interface LocalDbCliAppContext {
43
+ exit(code?: number): void;
44
+ }
45
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACxC,OAAO,EAAE,UAAU,CAAC;CACpB;AAED,4DAA4D;AAC5D,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAEpE,8CAA8C;AAC9C,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,UAAU,CAAC;AAEpF,0FAA0F;AAC1F,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;AAErE,qEAAqE;AACrE,MAAM,WAAW,mBAAmB;IACnC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,IAAI,EAAE,SAAS,aAAa,EAAE,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IAClG,IAAI,CAAC,IAAI,EAAE,SAAS,aAAa,EAAE,GAAG,aAAa,GAAG,IAAI,CAAC;CAC3D;AAED,sEAAsE;AACtE,MAAM,WAAW,oBAAoB;IACpC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Local CLI Types (localdb)
3
+ *
4
+ * LocalDB's CLI command implementations consume the runtime contexts `cli/ui`
5
+ * and `cli/app`, whose canonical shapes live in `@vibesdotdev/cli/providers`.
6
+ * `@vibesdotdev/cli` itself depends on `@vibesdotdev/localdb`, so a back-import
7
+ * here would form a package cycle (`localdb#build ↔ cli#build`). Following the
8
+ * same convention as `@vibesdotdev/storage`, this module declares a structural
9
+ * subset that matches only the methods the localdb commands actually call. The
10
+ * full contexts live in `@vibesdotdev/cli`; the runtime resolves them at run
11
+ * time via `runtime.context('cli/ui' | 'cli/app')`.
12
+ */
13
+ export {};
14
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}