@metabase/cli 0.1.7 → 0.1.8-alpha.cleanup-workspaces.75fe1d5

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 (205) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/README.md +2 -224
  3. package/dist/add-collection-BGifL-7Y.mjs +10 -0
  4. package/dist/{add-collection-DQjTlDNF.mjs → add-collection-C5ijC4e-.mjs} +5 -5
  5. package/dist/{archive-De8jzzq7.mjs → archive-2GZVq0n2.mjs} +6 -7
  6. package/dist/{archive-DTN9tLGT.mjs → archive-C5pXDf6a.mjs} +5 -6
  7. package/dist/{archive-CBGKzEAl.mjs → archive-CTEybKPq.mjs} +5 -6
  8. package/dist/{archive-BXzghEQX.mjs → archive-DEtOH_jf.mjs} +6 -7
  9. package/dist/{archive-B3qiL-kK.mjs → archive-DTrn90If.mjs} +5 -6
  10. package/dist/{archive-CuVk8iwN.mjs → archive-nqKJOyOt.mjs} +6 -7
  11. package/dist/auth-Divr9vkY.mjs +19 -0
  12. package/dist/{body-tcURGnGh.mjs → body-BMyDvOjf.mjs} +2 -2
  13. package/dist/{branches-CIGkjXIk.mjs → branches-B7Zf-nxr.mjs} +5 -6
  14. package/dist/{cancel-pPsvgJ0Z.mjs → cancel-WwjcCE2R.mjs} +4 -5
  15. package/dist/{cancel-task-BLGE4UlL.mjs → cancel-task-E4cCeJTc.mjs} +5 -6
  16. package/dist/{render-0_GsapXa.mjs → capabilities-Dj3NgPHg.mjs} +28 -2
  17. package/dist/card-BHAcovSB.mjs +20 -0
  18. package/dist/{card-ezYiriML.mjs → card-BtPiKjbB.mjs} +1 -1
  19. package/dist/{cards-Dq3nx_9n.mjs → cards-BW0Spirk.mjs} +5 -6
  20. package/dist/cli.mjs +23 -24
  21. package/dist/collection-DZx-vWb2.mjs +20 -0
  22. package/dist/{create-BIphz0kO.mjs → create-BV_VpyyI.mjs} +10 -11
  23. package/dist/{create-w3mQg9n4.mjs → create-B_Ysb6Ex.mjs} +7 -8
  24. package/dist/{create-BcgoukG4.mjs → create-BgeD2GMZ.mjs} +9 -10
  25. package/dist/{create-DHscDhRd.mjs → create-Bxkik5Fs.mjs} +9 -10
  26. package/dist/{create-aPaUEGdr.mjs → create-CZfHpi_I.mjs} +7 -8
  27. package/dist/{create-BrUqxreg.mjs → create-CbwFOL9h.mjs} +7 -8
  28. package/dist/{create-9DBTkbMq.mjs → create-CbyY4xTG.mjs} +11 -12
  29. package/dist/{create-BdPoSk_7.mjs → create-HCCdsuZR.mjs} +9 -10
  30. package/dist/{create-branch-DGoc9CUU.mjs → create-branch-BNRq3tO2.mjs} +5 -6
  31. package/dist/{current-task-DZM28rnr.mjs → current-task-ZvTjL4hP.mjs} +5 -6
  32. package/dist/dashboard-DCWGcx3e.mjs +21 -0
  33. package/dist/{database-BXiue1in.mjs → database-_Td7rG4o.mjs} +1 -1
  34. package/dist/db-bD6fwLwc.mjs +22 -0
  35. package/dist/{delete-BPaFdHZP.mjs → delete-D5-ITH10.mjs} +6 -7
  36. package/dist/{delete-BrJOotpW.mjs → delete-DvmHTMwf.mjs} +6 -7
  37. package/dist/{delete-runtime-uuYbd4k2.mjs → delete-runtime-Bo7v-0au.mjs} +2 -2
  38. package/dist/{delete-table-CNupWUO0.mjs → delete-table-DjmO5Qe4.mjs} +6 -7
  39. package/dist/{dirty-BCkNOY8c.mjs → dirty-BJgU1SGQ.mjs} +5 -6
  40. package/dist/{eid-CLY5X0Uw.mjs → eid-pqSVgO2g.mjs} +6 -7
  41. package/dist/{error-ZsFeevV2.mjs → error-Br6irjpM.mjs} +1 -1
  42. package/dist/{export-CgHgWW3I.mjs → export-gVXTOxC2.mjs} +7 -8
  43. package/dist/field-BFWc8q2W.mjs +18 -0
  44. package/dist/{fields-RkRWU-u9.mjs → fields-DK2TYRK2.mjs} +6 -7
  45. package/dist/{get-y17zJMnU.mjs → get-BjArD6Er.mjs} +5 -6
  46. package/dist/{get-42tJ7BNp.mjs → get-C1RSXOhf.mjs} +5 -6
  47. package/dist/{get-C9O_aEGo.mjs → get-C3RI_hKG.mjs} +5 -6
  48. package/dist/{get-DmzgSgrl.mjs → get-C7UEEICF.mjs} +6 -7
  49. package/dist/{get-B9kwSs6U.mjs → get-D-3tOuWQ.mjs} +5 -6
  50. package/dist/{get-CvmqPN30.mjs → get-DDF7_apz.mjs} +5 -6
  51. package/dist/{get-B8l4t4Pz.mjs → get-DYgLtHb8.mjs} +5 -6
  52. package/dist/{get-sMpa-X4E.mjs → get-DnK3WGDH.mjs} +6 -7
  53. package/dist/{get-CTDqioaj.mjs → get-DnyZMx-0.mjs} +5 -6
  54. package/dist/{get-Bo4Cpd_c.mjs → get-DtG5ytvs.mjs} +5 -7
  55. package/dist/{get-CiZrZJLt.mjs → get-Dy4NedW5.mjs} +7 -8
  56. package/dist/{get-DsqGHNHN.mjs → get-_JI4GiPa.mjs} +5 -6
  57. package/dist/{get-run-CBwcRc8E.mjs → get-run-CZwIo5QR.mjs} +5 -6
  58. package/dist/{get-CRvbChoX.mjs → get-xo5_PD1n.mjs} +5 -6
  59. package/dist/git-sync-Ch00miSa.mjs +28 -0
  60. package/dist/{has-remote-changes-CfRidwXT.mjs → has-remote-changes-tuuoPdHV.mjs} +5 -6
  61. package/dist/{import-BZV0Z2KR.mjs → import-BOzyRPTk.mjs} +7 -8
  62. package/dist/{is-dirty-hKcB4OH9.mjs → is-dirty-BXN1F9yR.mjs} +4 -4
  63. package/dist/is-dirty-Bc1UHnBU.mjs +9 -0
  64. package/dist/{items-C94eW2Yd.mjs → items-CC4sSWv7.mjs} +7 -8
  65. package/dist/{list-BFlzLGlw.mjs → list-BUpOvQsd.mjs} +4 -5
  66. package/dist/{list-B0V7FeL2.mjs → list-BlMpI88r.mjs} +4 -6
  67. package/dist/{list-BJXaGk-z.mjs → list-BqTdYtOW.mjs} +4 -5
  68. package/dist/{list-CF1pMN4S.mjs → list-BvTuDJZp.mjs} +4 -5
  69. package/dist/{list-BS_Bxejg.mjs → list-C48ZZLM5.mjs} +6 -7
  70. package/dist/{list-DfDZr55C.mjs → list-CJe45jFT.mjs} +6 -7
  71. package/dist/{list-C-oZe1_p.mjs → list-CMoG5_mh.mjs} +5 -6
  72. package/dist/{list-BmHoYJr7.mjs → list-CkI3hESA.mjs} +4 -5
  73. package/dist/{list-DuSoEk_J.mjs → list-CybLzPZw.mjs} +6 -7
  74. package/dist/{list-HS15y_WN.mjs → list-DLhU81LP.mjs} +4 -5
  75. package/dist/{list-CU6sOfI-.mjs → list-Ddyb5T-7.mjs} +5 -6
  76. package/dist/{list-CqN4gvCk.mjs → list-tveV3LKh.mjs} +5 -6
  77. package/dist/{list-DrINpVLM.mjs → list-u7cmunGG.mjs} +4 -5
  78. package/dist/{login-enh9Yimb.mjs → login-Bfsf6jLq.mjs} +9 -10
  79. package/dist/{logout-BWLPLDh8.mjs → logout-BCsE_1Yg.mjs} +4 -5
  80. package/dist/{manifest-BNh0Lw6p.mjs → manifest-B_OfG-Ss.mjs} +1 -2
  81. package/dist/measure-D_eiCKq9.mjs +19 -0
  82. package/dist/{metadata-BTTEBWdS.mjs → metadata-Cbqx1-yW.mjs} +7 -8
  83. package/dist/{metadata-D2TxboMm.mjs → metadata-CzbGy4b-.mjs} +6 -7
  84. package/dist/{parse-id-0_tOPvfI.mjs → parse-id-DBwNYb4Y.mjs} +1 -1
  85. package/dist/{path-C8GrBdgT.mjs → path-DJ-DfUGC.mjs} +4 -6
  86. package/dist/{poll-4eoh5J0r.mjs → poll-DWkVceIk.mjs} +1 -1
  87. package/dist/{poll-task-51WRdugU.mjs → poll-task-DOvUDrgL.mjs} +2 -2
  88. package/dist/{preflight-BhsErYz3.mjs → preflight-D-l6sLCX.mjs} +3 -3
  89. package/dist/{query-DYVBnu9d.mjs → query--05TZxmk.mjs} +7 -8
  90. package/dist/{query-BBCAF-tG.mjs → query-BbbDpt3u.mjs} +11 -12
  91. package/dist/{query-result-ABPLz6I4.mjs → query-result-PoQE05Pe.mjs} +1 -1
  92. package/dist/{remove-collection-CBAHz0Dk.mjs → remove-collection-Dco3yXa-.mjs} +7 -8
  93. package/dist/{rescan-values-cfTSNQZo.mjs → rescan-values-B1vE6I62.mjs} +7 -8
  94. package/dist/{run-qgdEJv-I.mjs → run-CWb_yZbK.mjs} +7 -8
  95. package/dist/{runs-BFIIH4GL.mjs → runs-BLwEO5sW.mjs} +6 -7
  96. package/dist/{runtime-Duawf5lE.mjs → runtime-DKLBPRhd.mjs} +10 -77
  97. package/dist/{schema-tables-C2xM3dho.mjs → schema-tables-D1qE25GS.mjs} +6 -7
  98. package/dist/{schemas-BP7xiktH.mjs → schemas-CFuYnQDg.mjs} +4 -5
  99. package/dist/{search-DYP3lOlq.mjs → search-CF4A051Z.mjs} +4 -5
  100. package/dist/segment-BP_vDpYM.mjs +19 -0
  101. package/dist/{set-DpRQqdo7.mjs → set-BJ8Rs-vI.mjs} +7 -8
  102. package/dist/{setting-DUa96KF3.mjs → setting-EYI0HqTq.mjs} +3 -3
  103. package/dist/{setup-BPlllnim.mjs → setup-DI6EGOdH.mjs} +6 -7
  104. package/dist/{skills-BkregMyb.mjs → skills-BDPVoBWU.mjs} +33 -2
  105. package/dist/{skills-SqbPo0BI.mjs → skills-CRECMGAo.mjs} +3 -3
  106. package/dist/snippet-BwK58D1F.mjs +19 -0
  107. package/dist/{stash-C89zNKxo.mjs → stash-BpPS0uG8.mjs} +7 -8
  108. package/dist/{status-B1EJ_jv0.mjs → status-BqFA7Tqr.mjs} +6 -7
  109. package/dist/{status-BNvFPemM.mjs → status-CU5LYX0i.mjs} +4 -5
  110. package/dist/{summary-Cihbx0Qs.mjs → summary-CraRyIM_.mjs} +5 -6
  111. package/dist/{sync-schema-C3odu0ZH.mjs → sync-schema-DkfwPESH.mjs} +7 -8
  112. package/dist/table-CJMN6ql8.mjs +19 -0
  113. package/dist/{table-qDD2kApF.mjs → table-CkWja2UH.mjs} +1 -1
  114. package/dist/transform-BqV5ssDN.mjs +24 -0
  115. package/dist/transform-job-DvdOLV9b.mjs +19 -0
  116. package/dist/{tree-mvq9gM9w.mjs → tree-Bd1i-Y4U.mjs} +4 -5
  117. package/dist/{update-CbBnHz42.mjs → update-BLZHmA0X.mjs} +10 -11
  118. package/dist/{update-Rr4usmCo.mjs → update-BncGqeWt.mjs} +8 -9
  119. package/dist/{update-DwRxdflw.mjs → update-C4f-8fsU.mjs} +8 -9
  120. package/dist/{update-VvKMnwsM.mjs → update-CgpgyDjd.mjs} +10 -11
  121. package/dist/{update-DCrOQ1PW.mjs → update-CsYa--Eb.mjs} +11 -12
  122. package/dist/{update-BoIiuC70.mjs → update-DA9aPhRr.mjs} +10 -11
  123. package/dist/{update-CtOo3LsX.mjs → update-DtO-1_tj.mjs} +9 -10
  124. package/dist/{update-tRparnUs.mjs → update-IPsv9Pj0.mjs} +12 -13
  125. package/dist/{update-C0jP0AKT.mjs → update-OZoOTnlY.mjs} +8 -9
  126. package/dist/{update-dashcard-DFvIz8Qj.mjs → update-dashcard-D0VAwfNO.mjs} +8 -9
  127. package/dist/{upgrade-D-Rl_fH9.mjs → upgrade-Bb_q7hJ7.mjs} +34 -7
  128. package/dist/{uuid-BSVUk8u2.mjs → uuid-DTdRruiz.mjs} +3 -4
  129. package/dist/{validate-dPEOnOf8.mjs → validate-CqVB_3_p.mjs} +1 -1
  130. package/dist/{validate-query-CYvOP8Ld.mjs → validate-query-BUTNK00f.mjs} +2 -2
  131. package/dist/{values-D1RJE4H6.mjs → values-Bpt6obVW.mjs} +5 -6
  132. package/dist/{verify-A7BWfBPZ.mjs → verify-COt2q73-.mjs} +1 -1
  133. package/dist/{wait-DK5QDZ8n.mjs → wait-DoKPlspq.mjs} +6 -7
  134. package/dist/{wait-flags-DlfbIXHw.mjs → wait-flags-D1jNm0JK.mjs} +2 -2
  135. package/package.json +1 -1
  136. package/skill-data/core/SKILL.md +15 -28
  137. package/skill-data/git-sync/SKILL.md +8 -63
  138. package/skill-data/mbql/SKILL.md +2 -0
  139. package/skill-data/transform/SKILL.md +16 -6
  140. package/skill-data/visualization/SKILL.md +158 -0
  141. package/skill-data/visualization/references/settings.md +414 -0
  142. package/skills/metabase-cli/SKILL.md +1 -1
  143. package/dist/add-collection-C9BdVBs2.mjs +0 -11
  144. package/dist/auth-D9eAyVoG.mjs +0 -19
  145. package/dist/capabilities-7e9MgquN.mjs +0 -29
  146. package/dist/card-DDDrWcDU.mjs +0 -20
  147. package/dist/collection-DkEvCDar.mjs +0 -20
  148. package/dist/create-B1dyuL9Y.mjs +0 -54
  149. package/dist/credentials-qryRLUed.mjs +0 -88
  150. package/dist/dashboard-BLf1RZlk.mjs +0 -21
  151. package/dist/database-Ce1gOJF7.mjs +0 -17
  152. package/dist/db-CWTFe_FZ.mjs +0 -22
  153. package/dist/delete-FFj1xQWO.mjs +0 -104
  154. package/dist/deprovision-BNr9fPDY.mjs +0 -67
  155. package/dist/docker-Ds252Mwc.mjs +0 -515
  156. package/dist/field-LL6W_c-c.mjs +0 -18
  157. package/dist/git-sync-CrWTo3YX.mjs +0 -28
  158. package/dist/is-dirty-CPzOnnH6.mjs +0 -10
  159. package/dist/license-B37055sr.mjs +0 -17
  160. package/dist/list-DUXdt0XI.mjs +0 -36
  161. package/dist/logs-Cu3QtvPs.mjs +0 -60
  162. package/dist/measure-CDlEPFtB.mjs +0 -19
  163. package/dist/parse-schemas-D-qVLl4z.mjs +0 -12
  164. package/dist/process-CM7Uu5q_.mjs +0 -105
  165. package/dist/provision-Chf86BF0.mjs +0 -83
  166. package/dist/ps-CEYtsKBj.mjs +0 -80
  167. package/dist/ps-CIDwaubS.mjs +0 -11
  168. package/dist/remove-2yInufA6.mjs +0 -64
  169. package/dist/segment-B6HnNGDs.mjs +0 -19
  170. package/dist/set-Tt-ioa4L.mjs +0 -68
  171. package/dist/snippet-dJ68tGsl.mjs +0 -19
  172. package/dist/start-DJZA67WF.mjs +0 -414
  173. package/dist/status-D5wSqYV_.mjs +0 -34
  174. package/dist/stop-5rCLmkCQ.mjs +0 -87
  175. package/dist/table-J2f0STnB.mjs +0 -19
  176. package/dist/transform-job-OW4SDhsQ.mjs +0 -19
  177. package/dist/transform-q1LYWQtW.mjs +0 -24
  178. package/dist/update-DEZayTb4.mjs +0 -78
  179. package/dist/url-BB6jeNQj.mjs +0 -56
  180. package/dist/wait-B17I_pWy.mjs +0 -19
  181. package/dist/workspace-D8HtUN0y.mjs +0 -72
  182. package/dist/workspace-credentials-8CBMQJFz.mjs +0 -100
  183. package/dist/workspace-ri6r3zWo.mjs +0 -25
  184. package/dist/yaml-Gv6wRFMF.mjs +0 -43
  185. package/skill-data/viz/SKILL.md +0 -137
  186. package/skill-data/viz/references/settings.md +0 -312
  187. package/skill-data/workspace/SKILL.md +0 -390
  188. /package/dist/{body-flags-D7q87Btw.mjs → body-flags-D78h_-Ua.mjs} +0 -0
  189. /package/dist/{collection-Bcy8cWYH.mjs → collection-B3sPXRLs.mjs} +0 -0
  190. /package/dist/{dashboard-B4bn3z6t.mjs → dashboard-FY5UzJ_Z.mjs} +0 -0
  191. /package/dist/{field-E0IBy4Uw.mjs → field-MGxpNQUH.mjs} +0 -0
  192. /package/dist/{input-cMSEqISy.mjs → input-xewHccej.mjs} +0 -0
  193. /package/dist/{key-vkNkH82H.mjs → key-C2XG394c.mjs} +0 -0
  194. /package/dist/{measure-Bt3InQsA.mjs → measure-ClESGxIb.mjs} +0 -0
  195. /package/dist/{paginate-BexjkjbY.mjs → paginate-Dfm9eO9A.mjs} +0 -0
  196. /package/dist/{parse-enum-CrEWOhuY.mjs → parse-enum-Dr7ACrTR.mjs} +0 -0
  197. /package/dist/{parse-ref-DKag6a6I.mjs → parse-ref-BiETXmvm.mjs} +0 -0
  198. /package/dist/{prompt-CFKoys7k.mjs → prompt-u4WhE4T5.mjs} +0 -0
  199. /package/dist/{render-khznBlla.mjs → render-BQHJhSP1.mjs} +0 -0
  200. /package/dist/{revision-message-flag-DY29-cgz.mjs → revision-message-flag-WmsIzUOM.mjs} +0 -0
  201. /package/dist/{segment-DhBmcr_E.mjs → segment-Be2v4ilr.mjs} +0 -0
  202. /package/dist/{setting-BzCng1Ub.mjs → setting-oL97SNeO.mjs} +0 -0
  203. /package/dist/{snippet-bi_0XbNT.mjs → snippet-xh42tYly.mjs} +0 -0
  204. /package/dist/{transform-BKahefz_.mjs → transform-DyJb0bV0.mjs} +0 -0
  205. /package/dist/{transform-job-DjhoJbiV.mjs → transform-job-DpDGoqQt.mjs} +0 -0
@@ -1,19 +0,0 @@
1
- import { defineCommand } from "citty";
2
-
3
- //#region src/commands/measure/index.ts
4
- var measure_default = defineCommand({
5
- meta: {
6
- name: "measure",
7
- description: "Manage Metabase measures"
8
- },
9
- subCommands: {
10
- list: () => import("./list-HS15y_WN.mjs").then((mod) => mod.default),
11
- get: () => import("./get-y17zJMnU.mjs").then((mod) => mod.default),
12
- create: () => import("./create-BdPoSk_7.mjs").then((mod) => mod.default),
13
- update: () => import("./update-CbBnHz42.mjs").then((mod) => mod.default),
14
- archive: () => import("./archive-CuVk8iwN.mjs").then((mod) => mod.default)
15
- }
16
- });
17
-
18
- //#endregion
19
- export { measure_default as default };
@@ -1,12 +0,0 @@
1
- import { ConfigError } from "./command-augment-BH9qgQ5u.mjs";
2
- import { parseCsv } from "./runtime-Duawf5lE.mjs";
3
-
4
- //#region src/commands/workspace/database/parse-schemas.ts
5
- function parseSchemasCsv(raw) {
6
- const parts = parseCsv(raw);
7
- if (parts.length === 0) throw new ConfigError("--schemas must contain at least one schema name");
8
- return parts;
9
- }
10
-
11
- //#endregion
12
- export { parseSchemasCsv };
@@ -1,105 +0,0 @@
1
- import { isNotFoundError } from "./command-augment-BH9qgQ5u.mjs";
2
- import { spawn } from "node:child_process";
3
-
4
- //#region src/runtime/process.ts
5
- var ProcessNotFoundError = class extends Error {
6
- command;
7
- constructor(command) {
8
- super(`command not found: ${command}`);
9
- this.name = "ProcessNotFoundError";
10
- this.command = command;
11
- }
12
- };
13
- var ProcessTimeoutError = class extends Error {
14
- command;
15
- timeoutMs;
16
- constructor(command, timeoutMs) {
17
- super(`command timed out after ${timeoutMs}ms: ${command}`);
18
- this.name = "ProcessTimeoutError";
19
- this.command = command;
20
- this.timeoutMs = timeoutMs;
21
- }
22
- };
23
- function spawnAndCollect(command, args, options) {
24
- const timeoutSignal = options.timeoutMs !== void 0 && options.timeoutMs > 0 ? AbortSignal.timeout(options.timeoutMs) : void 0;
25
- return new Promise((resolve, reject) => {
26
- const child = spawn(command, args, {
27
- stdio: [
28
- "pipe",
29
- "pipe",
30
- "pipe"
31
- ],
32
- env: options.env ?? process.env,
33
- ...options.cwd !== void 0 ? { cwd: options.cwd } : {},
34
- ...timeoutSignal !== void 0 ? {
35
- signal: timeoutSignal,
36
- killSignal: "SIGKILL"
37
- } : {},
38
- ...options.shell === true ? { shell: true } : {}
39
- });
40
- const stdoutChunks = [];
41
- let stderr = "";
42
- child.stdout.on("data", (chunk) => {
43
- stdoutChunks.push(chunk);
44
- });
45
- child.stderr.on("data", (chunk) => {
46
- stderr += chunk.toString("utf8");
47
- });
48
- child.on("error", (error) => {
49
- if (isNotFoundError(error)) {
50
- reject(new ProcessNotFoundError(command));
51
- return;
52
- }
53
- if (timeoutSignal?.aborted) {
54
- reject(new ProcessTimeoutError(command, options.timeoutMs ?? 0));
55
- return;
56
- }
57
- reject(error);
58
- });
59
- child.on("close", (code) => {
60
- if (timeoutSignal?.aborted) {
61
- reject(new ProcessTimeoutError(command, options.timeoutMs ?? 0));
62
- return;
63
- }
64
- const stdoutBuffer = Buffer.concat(stdoutChunks);
65
- resolve({
66
- stdout: new Uint8Array(stdoutBuffer.buffer, stdoutBuffer.byteOffset, stdoutBuffer.length),
67
- stderr,
68
- exitCode: code
69
- });
70
- });
71
- if (options.stdin === void 0) child.stdin.end();
72
- else child.stdin.end(options.stdin);
73
- });
74
- }
75
- const stdoutDecoder = new TextDecoder("utf-8");
76
- async function runProcess(command, args, options = {}) {
77
- const result = await spawnAndCollect(command, args, options);
78
- return {
79
- stdout: stdoutDecoder.decode(result.stdout),
80
- stderr: result.stderr,
81
- exitCode: result.exitCode
82
- };
83
- }
84
- function runProcessBinary(command, args, options = {}) {
85
- return spawnAndCollect(command, args, options);
86
- }
87
- function streamProcess(command, args, options = {}) {
88
- return new Promise((resolve, reject) => {
89
- const child = spawn(command, args, {
90
- stdio: "inherit",
91
- ...options.shell === true ? { shell: true } : {}
92
- });
93
- child.on("error", (error) => {
94
- if (isNotFoundError(error)) {
95
- reject(new ProcessNotFoundError(command));
96
- return;
97
- }
98
- reject(error);
99
- });
100
- child.on("close", (code) => resolve(code));
101
- });
102
- }
103
-
104
- //#endregion
105
- export { ProcessNotFoundError, runProcess, runProcessBinary, streamProcess };
@@ -1,83 +0,0 @@
1
- import { ConfigError } from "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-ZsFeevV2.mjs";
3
- import { defineMetabaseCommand } from "./runtime-Duawf5lE.mjs";
4
- import "./capabilities-7e9MgquN.mjs";
5
- import { renderSummary } from "./render-0_GsapXa.mjs";
6
- import "./input-cMSEqISy.mjs";
7
- import { parseId } from "./parse-id-0_tOPvfI.mjs";
8
- import { readBody } from "./body-tcURGnGh.mjs";
9
- import { bodyInputFlags } from "./body-flags-D7q87Btw.mjs";
10
- import "./poll-4eoh5J0r.mjs";
11
- import { parseWaitFlags, waitFlags } from "./wait-flags-DlfbIXHw.mjs";
12
- import { Workspace, WorkspaceProvisionInput, workspaceView } from "./workspace-D8HtUN0y.mjs";
13
- import { waitForDatabaseProvisioned } from "./wait-B17I_pWy.mjs";
14
- import { parseSchemasCsv } from "./parse-schemas-D-qVLl4z.mjs";
15
-
16
- //#region src/commands/workspace/database/provision.ts
17
- var provision_default = defineMetabaseCommand({
18
- meta: {
19
- name: "provision",
20
- description: "Provision a database into a workspace"
21
- },
22
- capabilities: {
23
- minVersion: 62,
24
- tokenFeature: "workspaces"
25
- },
26
- args: {
27
- ...outputFlags,
28
- ...profileFlag,
29
- ...connectionFlags,
30
- ...bodyInputFlags,
31
- ...waitFlags,
32
- schemas: {
33
- type: "string",
34
- description: "Comma-separated input schemas (alternative to --body / --file)"
35
- },
36
- id: {
37
- type: "positional",
38
- description: "Workspace id",
39
- required: true
40
- },
41
- "db-id": {
42
- type: "positional",
43
- description: "Database id (alternative to --body / --file)",
44
- required: false
45
- }
46
- },
47
- outputSchema: Workspace,
48
- examples: [
49
- "mb workspace database provision 1 5 --schemas analytics,github",
50
- "mb workspace database provision 1 5 --schemas analytics --wait",
51
- "mb workspace database provision 1 --file provision.json"
52
- ],
53
- async run({ args, ctx, getClient }) {
54
- const workspaceId = parseId(args.id);
55
- const databaseIdArg = args["db-id"];
56
- const schemasFlag = args.schemas;
57
- const wait = parseWaitFlags(args);
58
- let body;
59
- if (databaseIdArg !== void 0 && databaseIdArg !== "") {
60
- const databaseId = parseId(databaseIdArg, "db-id");
61
- if (schemasFlag === void 0 || schemasFlag === "") throw new ConfigError("--schemas is required when providing a db-id");
62
- const input_schemas = parseSchemasCsv(schemasFlag);
63
- body = WorkspaceProvisionInput.parse({
64
- database_id: databaseId,
65
- input_schemas
66
- });
67
- } else body = await readBody({
68
- flag: args.body,
69
- file: args.file
70
- }, WorkspaceProvisionInput);
71
- const client = await getClient();
72
- const initial = await client.requestParsed(Workspace, `/api/ee/workspace-manager/${workspaceId}/database`, {
73
- method: "POST",
74
- body
75
- });
76
- const final = wait.enabled ? await waitForDatabaseProvisioned(client, workspaceId, body.database_id, wait.schedule) : initial;
77
- const message = wait.enabled ? `Provisioned database ${body.database_id} into workspace ${workspaceId}.` : `Started provisioning database ${body.database_id} into workspace ${workspaceId}; rerun with --wait to block until ready.`;
78
- renderSummary(final, workspaceView, message, ctx);
79
- }
80
- });
81
-
82
- //#endregion
83
- export { provision_default as default };
@@ -1,80 +0,0 @@
1
- import { listEnvelopeSchema, outputFlags, wrapList } from "./error-ZsFeevV2.mjs";
2
- import { defineMetabaseCommand, localUrl } from "./runtime-Duawf5lE.mjs";
3
- import { renderList } from "./render-0_GsapXa.mjs";
4
- import { CONTAINER_STATES, checkDockerReady, listWorkspaceContainers } from "./docker-Ds252Mwc.mjs";
5
- import { z } from "zod";
6
-
7
- //#region src/commands/workspace/ps.ts
8
- const LocalWorkspaceState = z.enum(CONTAINER_STATES);
9
- const LocalWorkspace = z.object({
10
- workspace_id: z.number().int().positive(),
11
- workspace_name: z.string(),
12
- container_name: z.string(),
13
- state: LocalWorkspaceState,
14
- status: z.string(),
15
- image: z.string(),
16
- profile: z.string().nullable(),
17
- parent_url: z.string().nullable(),
18
- host_port: z.number().int().positive().nullable(),
19
- url: z.string().nullable()
20
- });
21
- const LocalWorkspaceCompact = LocalWorkspace.pick({
22
- workspace_id: true,
23
- workspace_name: true,
24
- state: true,
25
- url: true
26
- }).strip();
27
- const localWorkspaceView = {
28
- compactPick: LocalWorkspaceCompact,
29
- tableColumns: [
30
- {
31
- key: "workspace_id",
32
- label: "ID"
33
- },
34
- {
35
- key: "workspace_name",
36
- label: "Name"
37
- },
38
- {
39
- key: "state",
40
- label: "State"
41
- },
42
- {
43
- key: "url",
44
- label: "URL",
45
- format: (value) => typeof value === "string" ? value : "—"
46
- }
47
- ]
48
- };
49
- const LocalWorkspaceListEnvelope = listEnvelopeSchema(LocalWorkspaceCompact);
50
- var ps_default = defineMetabaseCommand({
51
- meta: {
52
- name: "ps",
53
- description: "List workspaces with a local container (running or stopped)"
54
- },
55
- capabilities: null,
56
- args: { ...outputFlags },
57
- outputSchema: LocalWorkspaceListEnvelope,
58
- examples: ["mb workspace ps", "mb workspace ps --json"],
59
- async run({ ctx }) {
60
- await checkDockerReady();
61
- const summaries = await listWorkspaceContainers();
62
- const items = summaries.map((summary) => ({
63
- workspace_id: summary.workspaceId,
64
- workspace_name: summary.workspaceName,
65
- container_name: summary.name,
66
- state: summary.state,
67
- status: summary.status,
68
- image: summary.image,
69
- profile: summary.profile,
70
- parent_url: summary.parentUrl,
71
- host_port: summary.hostPort,
72
- url: summary.hostPort !== null && summary.state === "running" ? localUrl(summary.hostPort) : null
73
- }));
74
- items.sort((a, b) => a.workspace_id - b.workspace_id);
75
- renderList(wrapList(items), localWorkspaceView, ctx);
76
- }
77
- });
78
-
79
- //#endregion
80
- export { LocalWorkspace, LocalWorkspaceCompact, LocalWorkspaceListEnvelope, LocalWorkspaceState, localWorkspaceView, ps_default };
@@ -1,11 +0,0 @@
1
- import "./command-augment-BH9qgQ5u.mjs";
2
- import "./error-ZsFeevV2.mjs";
3
- import "./runtime-Duawf5lE.mjs";
4
- import "./capabilities-7e9MgquN.mjs";
5
- import "./render-0_GsapXa.mjs";
6
- import "./poll-4eoh5J0r.mjs";
7
- import "./process-CM7Uu5q_.mjs";
8
- import "./docker-Ds252Mwc.mjs";
9
- import { LocalWorkspace, LocalWorkspaceCompact, LocalWorkspaceListEnvelope, LocalWorkspaceState, localWorkspaceView, ps_default } from "./ps-CEYtsKBj.mjs";
10
-
11
- export { ps_default as default };
@@ -1,64 +0,0 @@
1
- import "./command-augment-BH9qgQ5u.mjs";
2
- import { outputFlags } from "./error-ZsFeevV2.mjs";
3
- import { clearLicense, defineMetabaseCommand } from "./runtime-Duawf5lE.mjs";
4
- import "./capabilities-7e9MgquN.mjs";
5
- import { renderSummary } from "./render-0_GsapXa.mjs";
6
- import { promptConfirm } from "./prompt-CFKoys7k.mjs";
7
- import { z } from "zod";
8
-
9
- //#region src/commands/workspace/license/remove.ts
10
- const LicenseRemoveResult = z.object({
11
- removed: z.boolean(),
12
- aborted: z.boolean()
13
- });
14
- const licenseRemoveView = {
15
- compactPick: LicenseRemoveResult,
16
- tableColumns: [{
17
- key: "removed",
18
- label: "Removed"
19
- }, {
20
- key: "aborted",
21
- label: "Aborted"
22
- }]
23
- };
24
- var remove_default = defineMetabaseCommand({
25
- meta: {
26
- name: "remove",
27
- description: "Remove the stored license token"
28
- },
29
- capabilities: null,
30
- args: {
31
- ...outputFlags,
32
- yes: {
33
- type: "boolean",
34
- description: "Skip confirmation",
35
- default: false
36
- }
37
- },
38
- outputSchema: LicenseRemoveResult,
39
- examples: ["mb workspace license remove --yes"],
40
- async run({ args, ctx }) {
41
- if (!args.yes && process.stdin.isTTY === true) {
42
- const ok = await promptConfirm({
43
- message: "Remove stored license token?",
44
- initialValue: false
45
- });
46
- if (!ok) {
47
- renderSummary({
48
- removed: false,
49
- aborted: true
50
- }, licenseRemoveView, "Left the stored license token in place.", ctx);
51
- return;
52
- }
53
- }
54
- const removed = await clearLicense();
55
- const message = removed ? "License token removed." : "No license token was stored.";
56
- renderSummary({
57
- removed,
58
- aborted: false
59
- }, licenseRemoveView, message, ctx);
60
- }
61
- });
62
-
63
- //#endregion
64
- export { remove_default as default };
@@ -1,19 +0,0 @@
1
- import { defineCommand } from "citty";
2
-
3
- //#region src/commands/segment/index.ts
4
- var segment_default = defineCommand({
5
- meta: {
6
- name: "segment",
7
- description: "Manage Metabase segments"
8
- },
9
- subCommands: {
10
- list: () => import("./list-BFlzLGlw.mjs").then((mod) => mod.default),
11
- get: () => import("./get-B9kwSs6U.mjs").then((mod) => mod.default),
12
- create: () => import("./create-DHscDhRd.mjs").then((mod) => mod.default),
13
- update: () => import("./update-VvKMnwsM.mjs").then((mod) => mod.default),
14
- archive: () => import("./archive-BXzghEQX.mjs").then((mod) => mod.default)
15
- }
16
- });
17
-
18
- //#endregion
19
- export { segment_default as default };
@@ -1,68 +0,0 @@
1
- import { ConfigError } from "./command-augment-BH9qgQ5u.mjs";
2
- import { outputFlags } from "./error-ZsFeevV2.mjs";
3
- import { defineMetabaseCommand, keyringFallbackWarning, readEnvLicenseToken, writeLicense } from "./runtime-Duawf5lE.mjs";
4
- import { warn } from "./capabilities-7e9MgquN.mjs";
5
- import { renderSummary } from "./render-0_GsapXa.mjs";
6
- import { promptPassword } from "./prompt-CFKoys7k.mjs";
7
- import { readInput } from "./input-cMSEqISy.mjs";
8
- import { z } from "zod";
9
-
10
- //#region src/commands/workspace/license/set.ts
11
- const LicenseSetResult = z.object({ stored: z.literal(true) });
12
- const licenseSetView = {
13
- compactPick: LicenseSetResult,
14
- tableColumns: [{
15
- key: "stored",
16
- label: "Stored"
17
- }]
18
- };
19
- var set_default = defineMetabaseCommand({
20
- meta: {
21
- name: "set",
22
- description: "Store a Metabase license token"
23
- },
24
- capabilities: null,
25
- args: {
26
- ...outputFlags,
27
- token: {
28
- type: "positional",
29
- description: "License token (visible in shell history; pipe on stdin instead)",
30
- required: false
31
- }
32
- },
33
- outputSchema: LicenseSetResult,
34
- examples: [
35
- "echo $METABASE_LICENSE_TOKEN | mb workspace license set",
36
- "mb workspace license set < token.txt",
37
- "mb workspace license set $METABASE_LICENSE_TOKEN"
38
- ],
39
- async run({ args, ctx }) {
40
- const token = await resolveToken(args.token);
41
- const location = await writeLicense(token);
42
- if (location.backend === "file") warn(keyringFallbackWarning(location, "license"));
43
- const result = { stored: true };
44
- renderSummary(result, licenseSetView, "License token stored.", ctx);
45
- }
46
- });
47
- async function resolveToken(positional) {
48
- if (positional) {
49
- warn("warning: license token passed as positional is visible in shell history and process listings — pipe the token on stdin or set METABASE_LICENSE_TOKEN instead");
50
- return positional;
51
- }
52
- const piped = (await readInput({ required: false })).trim();
53
- if (piped) return piped;
54
- const envToken = readEnvLicenseToken();
55
- if (envToken) return envToken;
56
- return promptForToken();
57
- }
58
- async function promptForToken() {
59
- if (!process.stdin.isTTY) throw new ConfigError("license token, piped stdin, or METABASE_LICENSE_TOKEN required when stdin is not a TTY");
60
- return promptPassword({
61
- message: "License token",
62
- mask: "•",
63
- validate: (input) => input ? void 0 : "License token is required"
64
- });
65
- }
66
-
67
- //#endregion
68
- export { set_default as default };
@@ -1,19 +0,0 @@
1
- import { defineCommand } from "citty";
2
-
3
- //#region src/commands/snippet/index.ts
4
- var snippet_default = defineCommand({
5
- meta: {
6
- name: "snippet",
7
- description: "Manage Metabase native query snippets"
8
- },
9
- subCommands: {
10
- list: () => import("./list-DrINpVLM.mjs").then((mod) => mod.default),
11
- get: () => import("./get-DsqGHNHN.mjs").then((mod) => mod.default),
12
- create: () => import("./create-BrUqxreg.mjs").then((mod) => mod.default),
13
- update: () => import("./update-C0jP0AKT.mjs").then((mod) => mod.default),
14
- archive: () => import("./archive-CBGKzEAl.mjs").then((mod) => mod.default)
15
- }
16
- });
17
-
18
- //#endregion
19
- export { snippet_default as default };