@metabase/cli 0.1.0-alpha.workspaces-commands.5ab9ca6 → 0.1.0-alpha.workspaces-commands.78747d1

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 (131) hide show
  1. package/README.md +138 -31
  2. package/dist/{api-key-aNbgDn-8.mjs → api-key-DJpqrAGZ.mjs} +1 -1
  3. package/dist/{archive-WGVkPuf8.mjs → archive-B6TbWbK1.mjs} +5 -5
  4. package/dist/auth-BZofbzqG.mjs +19 -0
  5. package/dist/{body-Diijawme.mjs → body-CPnypu0_.mjs} +2 -2
  6. package/dist/{branches-BlSi3TBx.mjs → branches-C_X-mZ8y.mjs} +5 -5
  7. package/dist/{cancel-task-IE1xGzfI.mjs → cancel-task-IPOp8B8w.mjs} +5 -5
  8. package/dist/{card-2XdaHHSS.mjs → card-BOGKT258.mjs} +22 -1
  9. package/dist/card-m-ve7168.mjs +20 -0
  10. package/dist/{cards-DnUcsvj8.mjs → cards-DbwnvuDl.mjs} +5 -5
  11. package/dist/cli.mjs +29 -20
  12. package/dist/collection-BsiGRKXh.mjs +170 -0
  13. package/dist/collection-D3B90qam.mjs +19 -0
  14. package/dist/{create-DmakvRrX.mjs → create-9c1KP2P_.mjs} +6 -6
  15. package/dist/create-BkjrL_vd.mjs +44 -0
  16. package/dist/{create-DYo4lbI2.mjs → create-BoA0MYoT.mjs} +7 -7
  17. package/dist/{create-D-ByDVsB.mjs → create-CWvjvAOe.mjs} +6 -6
  18. package/dist/{create-3d18k8Id.mjs → create-Ck-p0-JC.mjs} +7 -7
  19. package/dist/{create-QXhhxZr5.mjs → create-Iv9ear8t.mjs} +22 -9
  20. package/dist/{create-branch-C2Bdsd5R.mjs → create-branch-CiRVRb7v.mjs} +5 -5
  21. package/dist/{create-D62m-Ubn.mjs → create-dMsrFkvP.mjs} +6 -6
  22. package/dist/{credentials-QKZob37v.mjs → credentials-BXRf0UmM.mjs} +7 -7
  23. package/dist/{current-task-DGuhFVZr.mjs → current-task-gQAv_ckM.mjs} +5 -5
  24. package/dist/{dashboard-DVCLGg3X.mjs → dashboard-BJXi1tGr.mjs} +3 -1
  25. package/dist/dashboard-DE6DQnco.mjs +20 -0
  26. package/dist/{database-Bw72HWEJ.mjs → database-DXjVIlkG.mjs} +3 -3
  27. package/dist/{db-BA6VieA7.mjs → db-DGqKQygl.mjs} +2 -2
  28. package/dist/{delete-CYvfBnPq.mjs → delete-BYx2ESK6.mjs} +6 -6
  29. package/dist/{delete-CTl8JxXL.mjs → delete-BoysG9pE.mjs} +6 -6
  30. package/dist/{delete-runtime-ZDxlvZa6.mjs → delete-runtime-KieND_CX.mjs} +3 -5
  31. package/dist/{delete-table-CZZncGrk.mjs → delete-table-C5B5PRaE.mjs} +6 -6
  32. package/dist/{deprovision-C_UQ1JgA.mjs → deprovision-Dr32FAG9.mjs} +10 -10
  33. package/dist/{dirty-B798WgvJ.mjs → dirty-CID5k_DG.mjs} +5 -5
  34. package/dist/{docker-CJur3rjL.mjs → docker-BcabfnHb.mjs} +21 -7
  35. package/dist/{eid-DANih6Hk.mjs → eid-BnfaFBmk.mjs} +1 -1
  36. package/dist/{export-DdkQHl4m.mjs → export-BDUJ63cz.mjs} +25 -20
  37. package/dist/{field-CAvHQkzI.mjs → field-wJ5IyjF9.mjs} +1 -1
  38. package/dist/{get-C7lv9SOO.mjs → get-2TjBzT5V.mjs} +6 -6
  39. package/dist/{get-Ldui5Vyl.mjs → get-BGtgG85S.mjs} +5 -5
  40. package/dist/{get-D7DCc-zR.mjs → get-BN7AGZLk.mjs} +6 -6
  41. package/dist/{get-BIzIOb3U.mjs → get-BavuL0j2.mjs} +5 -5
  42. package/dist/{get-CuiofGwZ.mjs → get-BhmsDqFa.mjs} +5 -5
  43. package/dist/{get-HNKc0k5G.mjs → get-Br99VIyw.mjs} +5 -5
  44. package/dist/{get-soL4Z2jq.mjs → get-CEmt6JU1.mjs} +5 -5
  45. package/dist/get-Caif_PQa.mjs +41 -0
  46. package/dist/{get-BrpB_58I.mjs → get-gTFLoU81.mjs} +5 -5
  47. package/dist/{has-remote-changes-6bXwJa7C.mjs → has-remote-changes-DCfaGb5v.mjs} +5 -5
  48. package/dist/{import-ys-pzibQ.mjs → import-Dx6kme_2.mjs} +6 -6
  49. package/dist/{input-DkgCMNA9.mjs → input-DMcm_A5s.mjs} +1 -0
  50. package/dist/{is-dirty-AUZADvDx.mjs → is-dirty-DZBRX_uM.mjs} +3 -3
  51. package/dist/is-dirty-FkBul4cr.mjs +10 -0
  52. package/dist/items-BhLxpz31.mjs +123 -0
  53. package/dist/{license-Cr24Ibp3.mjs → license-DfgahRiB.mjs} +3 -3
  54. package/dist/list-B1nz8LEB.mjs +55 -0
  55. package/dist/{list-owVW2jma.mjs → list-B5KP2eXN.mjs} +4 -4
  56. package/dist/{list-SQESC1Z9.mjs → list-BN1iCMfc.mjs} +4 -4
  57. package/dist/{list-C737c643.mjs → list-BeNzesw7.mjs} +4 -4
  58. package/dist/{list-CeqlehZp.mjs → list-CXUd-LO7.mjs} +4 -4
  59. package/dist/{list-DD0dVVEl.mjs → list-Cjst618J.mjs} +6 -6
  60. package/dist/list-CqeNnBHu.mjs +52 -0
  61. package/dist/{list-Cwcz1wg7.mjs → list-DDWzIVi0.mjs} +4 -4
  62. package/dist/{list-DxOceJmQ.mjs → list-DfuhW3--.mjs} +4 -4
  63. package/dist/{list-DI9--PcL.mjs → list-kWLAMOPg.mjs} +4 -4
  64. package/dist/{login-Bw7TcgTG.mjs → login-xppXbffQ.mjs} +5 -5
  65. package/dist/{logout-DEzazQMO.mjs → logout-XtEgcO-n.mjs} +6 -7
  66. package/dist/{logs-QMdzAnlJ.mjs → logs-Dm86UFD5.mjs} +5 -5
  67. package/dist/{manifest-IMg51yb7.mjs → manifest-C7lnUosz.mjs} +1 -1
  68. package/dist/{package-ROuZ4tbw.mjs → package-B4PhZz9R.mjs} +1 -1
  69. package/dist/{parse-id-CGyF8OPI.mjs → parse-id-Dm8zjjx_.mjs} +1 -1
  70. package/dist/parse-ref-CyeuK_yM.mjs +17 -0
  71. package/dist/{poll-B5RO0ias.mjs → poll-DYp_Lzph.mjs} +1 -1
  72. package/dist/{poll-task-BU0gpBIk.mjs → poll-task-kULwF-eM.mjs} +3 -3
  73. package/dist/{provision-CH7aVxXn.mjs → provision-DzsbOQoP.mjs} +10 -10
  74. package/dist/ps-CUp-aAvT.mjs +10 -0
  75. package/dist/{ps-DP5XSIOy.mjs → ps-jLYH2ARi.mjs} +3 -3
  76. package/dist/{query-DwBWeir4.mjs → query-BkUL9HyQ.mjs} +7 -7
  77. package/dist/{query-DNiw6JKA.mjs → query-DCnXxe9y.mjs} +5 -5
  78. package/dist/{remove-CmF7i1Jq.mjs → remove-BXHoDhhy.mjs} +8 -8
  79. package/dist/{remove-WGIoTwsl.mjs → remove-DMRyYIs2.mjs} +6 -7
  80. package/dist/{render-CZNR2MNK.mjs → render-BYWlZPEH.mjs} +7 -4
  81. package/dist/{run-CabruqrJ.mjs → run-qmPGT-44.mjs} +7 -7
  82. package/dist/{runtime-8SAm0dHE.mjs → runtime-DyNvyYvx.mjs} +99 -3
  83. package/dist/{search-DNvad2hL.mjs → search-CiDweQ6X.mjs} +6 -20
  84. package/dist/{set-BclYXZNW.mjs → set-B_IyoHCE.mjs} +7 -7
  85. package/dist/{set-Cog7mkJT.mjs → set-DHdbtWuT.mjs} +5 -5
  86. package/dist/{setting-jFe6Zt2S.mjs → setting-Cp6Tw2QN.mjs} +3 -3
  87. package/dist/{setup-Cw5pIrBj.mjs → setup-4WZU9ihX.mjs} +5 -5
  88. package/dist/{start-CNn99SQU.mjs → start-DHWpzHu6.mjs} +10 -10
  89. package/dist/{stash-BWCuQzmR.mjs → stash-DXrx6JPU.mjs} +6 -6
  90. package/dist/{status-CSAGf0mB.mjs → status-B88vwQzu.mjs} +3 -3
  91. package/dist/{status-yZk5nUq3.mjs → status-C0lb8dVk.mjs} +6 -6
  92. package/dist/{status-CCqjWCFF.mjs → status-CsFspRut.mjs} +3 -3
  93. package/dist/{stop-DMZey9PG.mjs → stop-AYfxmMoS.mjs} +7 -7
  94. package/dist/sync-BpO2GELG.mjs +26 -0
  95. package/dist/{table-BGLcZjyq.mjs → table-BsdEHMog.mjs} +2 -2
  96. package/dist/{table-BbNgtqbd.mjs → table-y0J2_gix.mjs} +1 -1
  97. package/dist/transform-BP8y4jRr.mjs +21 -0
  98. package/dist/transform-job-CjH6-qNC.mjs +19 -0
  99. package/dist/{translate-p5_8y0R7.mjs → translate-DY6xrnmJ.mjs} +5 -5
  100. package/dist/tree-Db0BjcFK.mjs +32 -0
  101. package/dist/{update-Bh9gTZQA.mjs → update-DFlshvJ5.mjs} +7 -7
  102. package/dist/{update-Bz63bSR3.mjs → update-DK8856uS.mjs} +7 -7
  103. package/dist/{update-DbY0q1Ja.mjs → update-DMpYV7ev.mjs} +8 -8
  104. package/dist/update-I04IOKMm.mjs +57 -0
  105. package/dist/{update-dashcard-oH6KxEfS.mjs → update-dashcard-BM3GfQot.mjs} +7 -7
  106. package/dist/{update-CBaL4nmE.mjs → update-voSJcEL1.mjs} +10 -10
  107. package/dist/{url-rF80dSIr.mjs → url-Bdz6hIfi.mjs} +6 -6
  108. package/dist/{validate-query-DE4UouY3.mjs → validate-query-D0aAFTUs.mjs} +49 -3
  109. package/dist/{wait-BMxAPnb0.mjs → wait-DwjJh_Jp.mjs} +2 -2
  110. package/dist/{wait-flags-lGEHf-vx.mjs → wait-flags-jG_4uL02.mjs} +2 -2
  111. package/dist/{wait-CLNtd-on.mjs → wait-y8rVUrfH.mjs} +6 -6
  112. package/dist/workspace-CRVS-7vV.mjs +24 -0
  113. package/package.json +1 -1
  114. package/dist/auth-BV8kyXup.mjs +0 -18
  115. package/dist/card-Dj-6OZZT.mjs +0 -19
  116. package/dist/dashboard-DG6URsA8.mjs +0 -20
  117. package/dist/is-dirty-DG5Samxj.mjs +0 -10
  118. package/dist/ps-D930MtWo.mjs +0 -10
  119. package/dist/sync-BgVaAyuq.mjs +0 -26
  120. package/dist/transform-DpYeGyik.mjs +0 -21
  121. package/dist/transform-job-B1s0Q-rD.mjs +0 -19
  122. package/dist/workspace-BVCgMRZS.mjs +0 -24
  123. /package/dist/{database-B9-7QAXE.mjs → database-C5LkxQ5G.mjs} +0 -0
  124. /package/dist/{field-D_g4xvH9.mjs → field-C1ai7Y05.mjs} +0 -0
  125. /package/dist/{key-CpWh7W8M.mjs → key-CS6durfH.mjs} +0 -0
  126. /package/dist/{prompt-D8p00XDp.mjs → prompt-k9s4Ntk5.mjs} +0 -0
  127. /package/dist/{setting-Bm84ixxW.mjs → setting-DEHSnsEV.mjs} +0 -0
  128. /package/dist/{transform-CRRW0mFp.mjs → transform-MkVM3WhG.mjs} +0 -0
  129. /package/dist/{transform-job-BtCoVYsb.mjs → transform-job-DiK7MZXZ.mjs} +0 -0
  130. /package/dist/{workspace-C3tGVQ6_.mjs → workspace-C8Kgp6BZ.mjs} +0 -0
  131. /package/dist/{workspace-credentials-BxrU2xZb.mjs → workspace-credentials-DuTmzpvd.mjs} +0 -0
@@ -1,6 +1,6 @@
1
- import { ConfigError, errorMessage, isNotFoundError } from "./errors-C6w1eZ1F.mjs";
2
- import { parseJson } from "./runtime-8SAm0dHE.mjs";
3
- import { pollUntil } from "./poll-B5RO0ias.mjs";
1
+ import { ConfigError, MetabaseError, errorMessage, isNotFoundError } from "./errors-C6w1eZ1F.mjs";
2
+ import { parseJson } from "./runtime-DyNvyYvx.mjs";
3
+ import { pollUntil } from "./poll-DYp_Lzph.mjs";
4
4
  import { z } from "zod";
5
5
  import { spawn } from "node:child_process";
6
6
 
@@ -251,16 +251,30 @@ const CONTAINER_STATES = [
251
251
  "removing",
252
252
  "dead"
253
253
  ];
254
- var DockerError = class extends Error {
255
- exitCode;
254
+ var DockerError = class extends MetabaseError {
255
+ category = "docker";
256
+ isRetryable = false;
257
+ exitCode = 1;
258
+ developerDetail;
256
259
  stderr;
257
- constructor(message, exitCode, stderr) {
260
+ constructor(message, dockerExitCode, stderr) {
258
261
  super(message);
259
262
  this.name = "DockerError";
260
- this.exitCode = exitCode;
263
+ this.developerDetail = {
264
+ dockerExitCode,
265
+ stderr
266
+ };
261
267
  this.stderr = stderr;
262
268
  }
269
+ get userMessage() {
270
+ const trimmed = this.stderr.trim();
271
+ if (trimmed === "") return this.message;
272
+ return `${this.message}\n${indentLines(trimmed)}`;
273
+ }
263
274
  };
275
+ function indentLines(text) {
276
+ return text.split("\n").map((line) => ` ${line}`).join("\n");
277
+ }
264
278
  var DockerNotInstalledError = class extends Error {
265
279
  constructor() {
266
280
  super("docker is not installed or not on PATH — install Docker Desktop / OrbStack / Colima and retry");
@@ -6,7 +6,7 @@ var eid_default = defineCommand({
6
6
  name: "eid",
7
7
  description: "Translate Metabase entity ids (string EIDs) to numeric ids"
8
8
  },
9
- subCommands: { translate: () => import("./translate-p5_8y0R7.mjs").then((mod) => mod.default) }
9
+ subCommands: { translate: () => import("./translate-DY6xrnmJ.mjs").then((mod) => mod.default) }
10
10
  });
11
11
 
12
12
  //#endregion
@@ -1,11 +1,11 @@
1
- import "./package-ROuZ4tbw.mjs";
1
+ import "./package-B4PhZz9R.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { renderItem } from "./render-CZNR2MNK.mjs";
3
+ import { renderItem, warn } from "./render-BYWlZPEH.mjs";
4
4
  import "./errors-C6w1eZ1F.mjs";
5
- import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-8SAm0dHE.mjs";
6
- import { parseId } from "./parse-id-CGyF8OPI.mjs";
7
- import { REMOTE_SYNC_PATHS, SyncTask, pollFlags, pollSyncTask, throwIfFailedTask } from "./poll-task-BU0gpBIk.mjs";
8
- import "./poll-B5RO0ias.mjs";
5
+ import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-DyNvyYvx.mjs";
6
+ import { parseId } from "./parse-id-Dm8zjjx_.mjs";
7
+ import { REMOTE_SYNC_PATHS, SyncTask, pollFlags, pollSyncTask, throwIfFailedTask } from "./poll-task-kULwF-eM.mjs";
8
+ import "./poll-DYp_Lzph.mjs";
9
9
  import { z } from "zod";
10
10
 
11
11
  //#region src/commands/sync/export.ts
@@ -73,26 +73,31 @@ var export_default = defineMetabaseCommand({
73
73
  body
74
74
  });
75
75
  if (!args.wait) {
76
- const result$1 = {
76
+ const result = {
77
77
  message: kickoff.message,
78
78
  task_id: kickoff.task_id
79
79
  };
80
- renderItem(result$1, syncExportView, ctx);
81
- return;
80
+ renderItem(result, syncExportView, ctx);
81
+ } else {
82
+ const final = await pollSyncTask(client, {
83
+ timeoutMs,
84
+ intervalMs
85
+ });
86
+ const result = {
87
+ message: kickoff.message,
88
+ task_id: kickoff.task_id,
89
+ final
90
+ };
91
+ renderItem(result, syncExportView, ctx);
92
+ throwIfFailedTask(final, "export");
82
93
  }
83
- const final = await pollSyncTask(client, {
84
- timeoutMs,
85
- intervalMs
86
- });
87
- const result = {
88
- message: kickoff.message,
89
- task_id: kickoff.task_id,
90
- final
91
- };
92
- renderItem(result, syncExportView, ctx);
93
- throwIfFailedTask(final, "export");
94
+ emitRealignHint(ctx);
94
95
  }
95
96
  });
97
+ function emitRealignHint(ctx) {
98
+ if (ctx.format !== "text") return;
99
+ warn("\nNote: if exporting to a host-bound repo, realign the host working tree with:\n git -C <repo-path> restore --staged --worktree .");
100
+ }
96
101
 
97
102
  //#endregion
98
103
  export { export_default as default };
@@ -6,7 +6,7 @@ var field_default = defineCommand({
6
6
  name: "field",
7
7
  description: "Inspect Metabase fields"
8
8
  },
9
- subCommands: { get: () => import("./get-Ldui5Vyl.mjs").then((m) => m.default) }
9
+ subCommands: { get: () => import("./get-BGtgG85S.mjs").then((m) => m.default) }
10
10
  });
11
11
 
12
12
  //#endregion
@@ -1,11 +1,11 @@
1
- import "./package-ROuZ4tbw.mjs";
1
+ import "./package-B4PhZz9R.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { renderItem } from "./render-CZNR2MNK.mjs";
3
+ import { renderItem } from "./render-BYWlZPEH.mjs";
4
4
  import "./errors-C6w1eZ1F.mjs";
5
- import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-8SAm0dHE.mjs";
6
- import { parseId } from "./parse-id-CGyF8OPI.mjs";
7
- import "./field-D_g4xvH9.mjs";
8
- import { Table, tableView } from "./table-BbNgtqbd.mjs";
5
+ import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-DyNvyYvx.mjs";
6
+ import { parseId } from "./parse-id-Dm8zjjx_.mjs";
7
+ import "./field-C1ai7Y05.mjs";
8
+ import { Table, tableView } from "./table-y0J2_gix.mjs";
9
9
 
10
10
  //#region src/commands/table/get.ts
11
11
  var get_default = defineMetabaseCommand({
@@ -1,10 +1,10 @@
1
- import "./package-ROuZ4tbw.mjs";
1
+ import "./package-B4PhZz9R.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { renderItem } from "./render-CZNR2MNK.mjs";
3
+ import { renderItem } from "./render-BYWlZPEH.mjs";
4
4
  import "./errors-C6w1eZ1F.mjs";
5
- import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-8SAm0dHE.mjs";
6
- import { parseId } from "./parse-id-CGyF8OPI.mjs";
7
- import { Field, fieldView } from "./field-D_g4xvH9.mjs";
5
+ import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-DyNvyYvx.mjs";
6
+ import { parseId } from "./parse-id-Dm8zjjx_.mjs";
7
+ import { Field, fieldView } from "./field-C1ai7Y05.mjs";
8
8
 
9
9
  //#region src/commands/field/get.ts
10
10
  var get_default = defineMetabaseCommand({
@@ -1,10 +1,10 @@
1
- import "./package-ROuZ4tbw.mjs";
1
+ import "./package-B4PhZz9R.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { renderItem } from "./render-CZNR2MNK.mjs";
3
+ import { renderItem } from "./render-BYWlZPEH.mjs";
4
4
  import "./errors-C6w1eZ1F.mjs";
5
- import { connectionFlags, defineMetabaseCommand, outputFlags, parseJson, profileFlag } from "./runtime-8SAm0dHE.mjs";
6
- import { SettingValue, settingValueView } from "./setting-Bm84ixxW.mjs";
7
- import { parseSettingKey } from "./key-CpWh7W8M.mjs";
5
+ import { connectionFlags, defineMetabaseCommand, outputFlags, parseJsonOrPlain, profileFlag } from "./runtime-DyNvyYvx.mjs";
6
+ import { SettingValue, settingValueView } from "./setting-DEHSnsEV.mjs";
7
+ import { parseSettingKey } from "./key-CS6durfH.mjs";
8
8
  import { z } from "zod";
9
9
 
10
10
  //#region src/commands/setting/get.ts
@@ -43,7 +43,7 @@ async function fetchSettingValue(client, key) {
43
43
  });
44
44
  if (response.status === 204) return null;
45
45
  const text = await response.text();
46
- return parseJson(text, z.unknown(), { source: response.url });
46
+ return parseJsonOrPlain(text, response.headers.get("content-type"), z.unknown(), { source: response.url });
47
47
  }
48
48
 
49
49
  //#endregion
@@ -1,10 +1,10 @@
1
- import "./package-ROuZ4tbw.mjs";
1
+ import "./package-B4PhZz9R.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { renderItem } from "./render-CZNR2MNK.mjs";
3
+ import { renderItem } from "./render-BYWlZPEH.mjs";
4
4
  import "./errors-C6w1eZ1F.mjs";
5
- import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-8SAm0dHE.mjs";
6
- import { parseId } from "./parse-id-CGyF8OPI.mjs";
7
- import { Card, cardView } from "./card-2XdaHHSS.mjs";
5
+ import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-DyNvyYvx.mjs";
6
+ import { parseId } from "./parse-id-Dm8zjjx_.mjs";
7
+ import { Card, cardView } from "./card-BOGKT258.mjs";
8
8
 
9
9
  //#region src/commands/card/get.ts
10
10
  var get_default = defineMetabaseCommand({
@@ -1,10 +1,10 @@
1
- import "./package-ROuZ4tbw.mjs";
1
+ import "./package-B4PhZz9R.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { renderItem } from "./render-CZNR2MNK.mjs";
3
+ import { renderItem } from "./render-BYWlZPEH.mjs";
4
4
  import "./errors-C6w1eZ1F.mjs";
5
- import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-8SAm0dHE.mjs";
6
- import { parseId } from "./parse-id-CGyF8OPI.mjs";
7
- import { Transform, transformView } from "./transform-CRRW0mFp.mjs";
5
+ import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-DyNvyYvx.mjs";
6
+ import { parseId } from "./parse-id-Dm8zjjx_.mjs";
7
+ import { Transform, transformView } from "./transform-MkVM3WhG.mjs";
8
8
 
9
9
  //#region src/commands/transform/get.ts
10
10
  var get_default = defineMetabaseCommand({
@@ -1,10 +1,10 @@
1
- import "./package-ROuZ4tbw.mjs";
1
+ import "./package-B4PhZz9R.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { renderItem } from "./render-CZNR2MNK.mjs";
3
+ import { renderItem } from "./render-BYWlZPEH.mjs";
4
4
  import "./errors-C6w1eZ1F.mjs";
5
- import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-8SAm0dHE.mjs";
6
- import { parseId } from "./parse-id-CGyF8OPI.mjs";
7
- import { DashboardDetail, dashboardView } from "./dashboard-DVCLGg3X.mjs";
5
+ import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-DyNvyYvx.mjs";
6
+ import { parseId } from "./parse-id-Dm8zjjx_.mjs";
7
+ import { DashboardDetail, dashboardView } from "./dashboard-BJXi1tGr.mjs";
8
8
 
9
9
  //#region src/commands/dashboard/get.ts
10
10
  var get_default = defineMetabaseCommand({
@@ -1,10 +1,10 @@
1
- import "./package-ROuZ4tbw.mjs";
1
+ import "./package-B4PhZz9R.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { renderItem } from "./render-CZNR2MNK.mjs";
3
+ import { renderItem } from "./render-BYWlZPEH.mjs";
4
4
  import "./errors-C6w1eZ1F.mjs";
5
- import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-8SAm0dHE.mjs";
6
- import { parseId } from "./parse-id-CGyF8OPI.mjs";
7
- import { TransformJob, transformJobView } from "./transform-job-BtCoVYsb.mjs";
5
+ import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-DyNvyYvx.mjs";
6
+ import { parseId } from "./parse-id-Dm8zjjx_.mjs";
7
+ import { TransformJob, transformJobView } from "./transform-job-DiK7MZXZ.mjs";
8
8
 
9
9
  //#region src/commands/transform-job/get.ts
10
10
  var get_default = defineMetabaseCommand({
@@ -0,0 +1,41 @@
1
+ import "./package-B4PhZz9R.mjs";
2
+ import "./command-augment-D9pI9Vbh.mjs";
3
+ import { renderItem } from "./render-BYWlZPEH.mjs";
4
+ import "./errors-C6w1eZ1F.mjs";
5
+ import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-DyNvyYvx.mjs";
6
+ import { Collection, collectionView } from "./collection-BsiGRKXh.mjs";
7
+ import { parseCollectionRef } from "./parse-ref-CyeuK_yM.mjs";
8
+
9
+ //#region src/commands/collection/get.ts
10
+ var get_default = defineMetabaseCommand({
11
+ meta: {
12
+ name: "get",
13
+ description: "Get a collection by id, 21-char entity id, or \"root\"/\"trash\""
14
+ },
15
+ args: {
16
+ ...outputFlags,
17
+ ...profileFlag,
18
+ ...connectionFlags,
19
+ id: {
20
+ type: "positional",
21
+ description: "Collection id, 21-char entity id, or one of: \"root\", \"trash\"",
22
+ required: true
23
+ }
24
+ },
25
+ outputSchema: Collection,
26
+ examples: [
27
+ "metabase collection get 4",
28
+ "metabase collection get root --json",
29
+ "metabase collection get trash --json",
30
+ "metabase collection get voo1If9y8Sld0lXej6xl0 --json"
31
+ ],
32
+ async run({ args, ctx, getClient }) {
33
+ const ref = parseCollectionRef(args.id);
34
+ const client = await getClient();
35
+ const collection = await client.requestParsed(Collection, `/api/collection/${ref}`);
36
+ renderItem(collection, collectionView, ctx);
37
+ }
38
+ });
39
+
40
+ //#endregion
41
+ export { get_default as default };
@@ -1,10 +1,10 @@
1
- import "./package-ROuZ4tbw.mjs";
1
+ import "./package-B4PhZz9R.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { renderItem } from "./render-CZNR2MNK.mjs";
3
+ import { renderItem } from "./render-BYWlZPEH.mjs";
4
4
  import "./errors-C6w1eZ1F.mjs";
5
- import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-8SAm0dHE.mjs";
6
- import { parseId } from "./parse-id-CGyF8OPI.mjs";
7
- import { Database, databaseView } from "./database-B9-7QAXE.mjs";
5
+ import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-DyNvyYvx.mjs";
6
+ import { parseId } from "./parse-id-Dm8zjjx_.mjs";
7
+ import { Database, databaseView } from "./database-C5LkxQ5G.mjs";
8
8
 
9
9
  //#region src/commands/db/get.ts
10
10
  var get_default = defineMetabaseCommand({
@@ -1,10 +1,10 @@
1
- import "./package-ROuZ4tbw.mjs";
1
+ import "./package-B4PhZz9R.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { renderItem } from "./render-CZNR2MNK.mjs";
3
+ import { renderItem } from "./render-BYWlZPEH.mjs";
4
4
  import "./errors-C6w1eZ1F.mjs";
5
- import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-8SAm0dHE.mjs";
6
- import { REMOTE_SYNC_PATHS } from "./poll-task-BU0gpBIk.mjs";
7
- import "./poll-B5RO0ias.mjs";
5
+ import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-DyNvyYvx.mjs";
6
+ import { REMOTE_SYNC_PATHS } from "./poll-task-kULwF-eM.mjs";
7
+ import "./poll-DYp_Lzph.mjs";
8
8
  import { z } from "zod";
9
9
 
10
10
  //#region src/commands/sync/has-remote-changes.ts
@@ -1,11 +1,11 @@
1
- import "./package-ROuZ4tbw.mjs";
1
+ import "./package-B4PhZz9R.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { renderItem } from "./render-CZNR2MNK.mjs";
3
+ import { renderItem } from "./render-BYWlZPEH.mjs";
4
4
  import "./errors-C6w1eZ1F.mjs";
5
- import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-8SAm0dHE.mjs";
6
- import { parseId } from "./parse-id-CGyF8OPI.mjs";
7
- import { REMOTE_SYNC_PATHS, SyncTask, pollFlags, pollSyncTask, throwIfFailedTask } from "./poll-task-BU0gpBIk.mjs";
8
- import "./poll-B5RO0ias.mjs";
5
+ import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-DyNvyYvx.mjs";
6
+ import { parseId } from "./parse-id-Dm8zjjx_.mjs";
7
+ import { REMOTE_SYNC_PATHS, SyncTask, pollFlags, pollSyncTask, throwIfFailedTask } from "./poll-task-kULwF-eM.mjs";
8
+ import "./poll-DYp_Lzph.mjs";
9
9
  import { z } from "zod";
10
10
 
11
11
  //#region src/commands/sync/import.ts
@@ -16,6 +16,7 @@ async function readInput(sources) {
16
16
  return "";
17
17
  }
18
18
  async function readFileSource(path) {
19
+ if (path === "-") return await readStdin();
19
20
  try {
20
21
  return await readFile(path, "utf8");
21
22
  } catch (error) {
@@ -1,6 +1,6 @@
1
- import { renderItem } from "./render-CZNR2MNK.mjs";
2
- import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-8SAm0dHE.mjs";
3
- import { REMOTE_SYNC_PATHS } from "./poll-task-BU0gpBIk.mjs";
1
+ import { renderItem } from "./render-BYWlZPEH.mjs";
2
+ import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-DyNvyYvx.mjs";
3
+ import { REMOTE_SYNC_PATHS } from "./poll-task-kULwF-eM.mjs";
4
4
  import { z } from "zod";
5
5
 
6
6
  //#region src/commands/sync/is-dirty.ts
@@ -0,0 +1,10 @@
1
+ import "./package-B4PhZz9R.mjs";
2
+ import "./command-augment-D9pI9Vbh.mjs";
3
+ import "./render-BYWlZPEH.mjs";
4
+ import "./errors-C6w1eZ1F.mjs";
5
+ import "./runtime-DyNvyYvx.mjs";
6
+ import "./poll-task-kULwF-eM.mjs";
7
+ import "./poll-DYp_Lzph.mjs";
8
+ import { IsDirtyResult, is_dirty_default } from "./is-dirty-DZBRX_uM.mjs";
9
+
10
+ export { is_dirty_default as default };
@@ -0,0 +1,123 @@
1
+ import "./package-B4PhZz9R.mjs";
2
+ import "./command-augment-D9pI9Vbh.mjs";
3
+ import { renderList } from "./render-BYWlZPEH.mjs";
4
+ import "./errors-C6w1eZ1F.mjs";
5
+ import { connectionFlags, defineMetabaseCommand, listEnvelopeSchema, outputFlags, parseEnum, parseEnumCsv, profileFlag } from "./runtime-DyNvyYvx.mjs";
6
+ import { parseId } from "./parse-id-Dm8zjjx_.mjs";
7
+ import { COLLECTION_ITEM_MODELS, COLLECTION_PINNED_STATES, CollectionItem, CollectionItemCompact, CollectionItemModel, CollectionPinnedState, collectionItemView } from "./collection-BsiGRKXh.mjs";
8
+ import { parseCollectionRef } from "./parse-ref-CyeuK_yM.mjs";
9
+ import { z } from "zod";
10
+
11
+ //#region src/runtime/paginate.ts
12
+ const DEFAULT_PAGE_SIZE = 50;
13
+ async function* paginate(client, path, itemSchema, opts = {}) {
14
+ const envelopeSchema = paginatedEnvelopeSchema(itemSchema);
15
+ const pageSize = opts.pageSize ?? DEFAULT_PAGE_SIZE;
16
+ const baseQuery = opts.query ?? {};
17
+ const cap = opts.max;
18
+ let offset = 0;
19
+ let yielded = 0;
20
+ while (true) {
21
+ const remaining = cap === void 0 ? Number.POSITIVE_INFINITY : cap - yielded;
22
+ if (remaining <= 0) return;
23
+ const requested = Math.min(pageSize, remaining);
24
+ const envelope = await client.requestParsed(envelopeSchema, path, {
25
+ query: {
26
+ ...baseQuery,
27
+ limit: requested,
28
+ offset
29
+ },
30
+ ...opts.signal !== void 0 && { signal: opts.signal }
31
+ });
32
+ for (const item of envelope.data) {
33
+ yield item;
34
+ yielded += 1;
35
+ if (cap !== void 0 && yielded >= cap) return;
36
+ }
37
+ if (envelope.data.length < requested) return;
38
+ if (envelope.total !== void 0 && offset + envelope.data.length >= envelope.total) return;
39
+ offset += envelope.data.length;
40
+ }
41
+ }
42
+ async function collectPaginated(client, path, itemSchema, opts = {}) {
43
+ const items = [];
44
+ for await (const item of paginate(client, path, itemSchema, opts)) items.push(item);
45
+ return items;
46
+ }
47
+ function paginatedEnvelopeSchema(itemSchema) {
48
+ return z.object({
49
+ data: z.array(itemSchema),
50
+ total: z.number().int().nonnegative().optional(),
51
+ limit: z.number().int().nonnegative().optional(),
52
+ offset: z.number().int().nonnegative().optional()
53
+ }).passthrough();
54
+ }
55
+
56
+ //#endregion
57
+ //#region src/commands/collection/items.ts
58
+ const CollectionItemListEnvelope = listEnvelopeSchema(CollectionItemCompact);
59
+ var items_default = defineMetabaseCommand({
60
+ meta: {
61
+ name: "items",
62
+ description: "List items inside a collection"
63
+ },
64
+ args: {
65
+ ...outputFlags,
66
+ ...profileFlag,
67
+ ...connectionFlags,
68
+ id: {
69
+ type: "positional",
70
+ description: "Collection id, 21-char entity id, or one of: \"root\", \"trash\"",
71
+ required: true
72
+ },
73
+ models: {
74
+ type: "string",
75
+ description: `Comma-separated model filter: ${COLLECTION_ITEM_MODELS.join(",")}`,
76
+ alias: "m"
77
+ },
78
+ archived: {
79
+ type: "boolean",
80
+ description: "Return archived items instead of unarchived",
81
+ default: false
82
+ },
83
+ "pinned-state": {
84
+ type: "string",
85
+ description: `Pinned filter: ${COLLECTION_PINNED_STATES.join("|")}`
86
+ },
87
+ limit: {
88
+ type: "string",
89
+ description: "Cap total items returned (default: drain all pages)"
90
+ }
91
+ },
92
+ outputSchema: CollectionItemListEnvelope,
93
+ examples: [
94
+ "metabase collection items 4",
95
+ "metabase collection items root --json",
96
+ "metabase collection items 4 --models card,dashboard --json",
97
+ "metabase collection items 4 --pinned-state is_pinned --json"
98
+ ],
99
+ async run({ args, ctx, getClient }) {
100
+ const ref = parseCollectionRef(args.id);
101
+ const models = parseEnumCsv(args.models, CollectionItemModel, "--models");
102
+ const pinnedState = parseEnum(args["pinned-state"], CollectionPinnedState, "--pinned-state");
103
+ const max = args.limit === void 0 ? void 0 : parseId(args.limit, "--limit");
104
+ const client = await getClient();
105
+ const items = await collectPaginated(client, `/api/collection/${ref}/items`, CollectionItem, {
106
+ query: {
107
+ models,
108
+ archived: args.archived ? true : void 0,
109
+ pinned_state: pinnedState
110
+ },
111
+ ...max !== void 0 && { max }
112
+ });
113
+ const envelope = {
114
+ data: items,
115
+ returned: items.length,
116
+ ...max === void 0 ? { total: items.length } : { limit: max }
117
+ };
118
+ renderList(envelope, collectionItemView, ctx);
119
+ }
120
+ });
121
+
122
+ //#endregion
123
+ export { items_default as default };
@@ -7,9 +7,9 @@ var license_default = defineCommand({
7
7
  description: "Manage the Metabase license token"
8
8
  },
9
9
  subCommands: {
10
- set: () => import("./set-Cog7mkJT.mjs").then((m) => m.default),
11
- status: () => import("./status-CSAGf0mB.mjs").then((m) => m.default),
12
- remove: () => import("./remove-WGIoTwsl.mjs").then((m) => m.default)
10
+ set: () => import("./set-DHdbtWuT.mjs").then((m) => m.default),
11
+ status: () => import("./status-B88vwQzu.mjs").then((m) => m.default),
12
+ remove: () => import("./remove-DMRyYIs2.mjs").then((m) => m.default)
13
13
  }
14
14
  });
15
15
 
@@ -0,0 +1,55 @@
1
+ import "./package-B4PhZz9R.mjs";
2
+ import "./command-augment-D9pI9Vbh.mjs";
3
+ import { renderList } from "./render-BYWlZPEH.mjs";
4
+ import "./errors-C6w1eZ1F.mjs";
5
+ import { defineMetabaseCommand, listEnvelopeSchema, listProfileNames, originOnly, outputFlags, readProfile, wrapList } from "./runtime-DyNvyYvx.mjs";
6
+ import { z } from "zod";
7
+
8
+ //#region src/commands/auth/list.ts
9
+ const AuthProfile = z.object({
10
+ profile: z.string(),
11
+ url: z.string().nullable(),
12
+ present: z.boolean()
13
+ });
14
+ const AuthProfileListEnvelope = listEnvelopeSchema(AuthProfile);
15
+ const authProfileView = {
16
+ compactPick: AuthProfile,
17
+ tableColumns: [
18
+ {
19
+ key: "profile",
20
+ label: "Profile"
21
+ },
22
+ {
23
+ key: "url",
24
+ label: "URL"
25
+ },
26
+ {
27
+ key: "present",
28
+ label: "Authenticated"
29
+ }
30
+ ]
31
+ };
32
+ var list_default = defineMetabaseCommand({
33
+ meta: {
34
+ name: "list",
35
+ description: "List configured authentication profiles"
36
+ },
37
+ args: { ...outputFlags },
38
+ outputSchema: AuthProfileListEnvelope,
39
+ examples: ["metabase auth list", "metabase auth list --json"],
40
+ async run({ ctx }) {
41
+ const names = await listProfileNames();
42
+ const items = await Promise.all(names.map(async (name) => {
43
+ const profile = await readProfile(name);
44
+ return {
45
+ profile: name,
46
+ url: profile === null ? null : originOnly(profile.url),
47
+ present: profile !== null
48
+ };
49
+ }));
50
+ renderList(wrapList(items), authProfileView, ctx);
51
+ }
52
+ });
53
+
54
+ //#endregion
55
+ export { list_default as default };
@@ -1,9 +1,9 @@
1
- import "./package-ROuZ4tbw.mjs";
1
+ import "./package-B4PhZz9R.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { renderList } from "./render-CZNR2MNK.mjs";
3
+ import { renderList } from "./render-BYWlZPEH.mjs";
4
4
  import "./errors-C6w1eZ1F.mjs";
5
- import { connectionFlags, defineMetabaseCommand, listEnvelopeSchema, outputFlags, profileFlag, wrapList } from "./runtime-8SAm0dHE.mjs";
6
- import { Card, CardCompact, cardView } from "./card-2XdaHHSS.mjs";
5
+ import { connectionFlags, defineMetabaseCommand, listEnvelopeSchema, outputFlags, profileFlag, wrapList } from "./runtime-DyNvyYvx.mjs";
6
+ import { Card, CardCompact, cardView } from "./card-BOGKT258.mjs";
7
7
  import { z } from "zod";
8
8
 
9
9
  //#region src/commands/card/list.ts
@@ -1,9 +1,9 @@
1
- import "./package-ROuZ4tbw.mjs";
1
+ import "./package-B4PhZz9R.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { renderList } from "./render-CZNR2MNK.mjs";
3
+ import { renderList } from "./render-BYWlZPEH.mjs";
4
4
  import "./errors-C6w1eZ1F.mjs";
5
- import { connectionFlags, defineMetabaseCommand, listEnvelopeSchema, outputFlags, profileFlag, wrapList } from "./runtime-8SAm0dHE.mjs";
6
- import { Dashboard, DashboardCompact, dashboardView } from "./dashboard-DVCLGg3X.mjs";
5
+ import { connectionFlags, defineMetabaseCommand, listEnvelopeSchema, outputFlags, profileFlag, wrapList } from "./runtime-DyNvyYvx.mjs";
6
+ import { Dashboard, DashboardCompact, dashboardView } from "./dashboard-BJXi1tGr.mjs";
7
7
  import { z } from "zod";
8
8
 
9
9
  //#region src/commands/dashboard/list.ts
@@ -1,9 +1,9 @@
1
- import "./package-ROuZ4tbw.mjs";
1
+ import "./package-B4PhZz9R.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { renderList } from "./render-CZNR2MNK.mjs";
3
+ import { renderList } from "./render-BYWlZPEH.mjs";
4
4
  import "./errors-C6w1eZ1F.mjs";
5
- import { connectionFlags, defineMetabaseCommand, listEnvelopeSchema, outputFlags, profileFlag, wrapList } from "./runtime-8SAm0dHE.mjs";
6
- import { Setting, SettingCompact, settingView } from "./setting-Bm84ixxW.mjs";
5
+ import { connectionFlags, defineMetabaseCommand, listEnvelopeSchema, outputFlags, profileFlag, wrapList } from "./runtime-DyNvyYvx.mjs";
6
+ import { Setting, SettingCompact, settingView } from "./setting-DEHSnsEV.mjs";
7
7
  import { z } from "zod";
8
8
 
9
9
  //#region src/commands/setting/list.ts
@@ -1,9 +1,9 @@
1
- import "./package-ROuZ4tbw.mjs";
1
+ import "./package-B4PhZz9R.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { renderList } from "./render-CZNR2MNK.mjs";
3
+ import { renderList } from "./render-BYWlZPEH.mjs";
4
4
  import "./errors-C6w1eZ1F.mjs";
5
- import { connectionFlags, defineMetabaseCommand, listEnvelopeSchema, outputFlags, profileFlag } from "./runtime-8SAm0dHE.mjs";
6
- import { Database, DatabaseCompact, databaseView } from "./database-B9-7QAXE.mjs";
5
+ import { connectionFlags, defineMetabaseCommand, listEnvelopeSchema, outputFlags, profileFlag } from "./runtime-DyNvyYvx.mjs";
6
+ import { Database, DatabaseCompact, databaseView } from "./database-C5LkxQ5G.mjs";
7
7
  import { z } from "zod";
8
8
 
9
9
  //#region src/commands/db/list.ts