@metabase/cli 0.1.6 → 0.1.8-alpha.drop-workspaces.a42f32e

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 (197) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/README.md +16 -238
  3. package/dist/{add-collection-BU8r3r2M.mjs → add-collection-CuLyFlrE.mjs} +8 -6
  4. package/dist/add-collection-DkucDB2N.mjs +10 -0
  5. package/dist/{archive-DMPS8Kih.mjs → archive-C1lk1rR7.mjs} +5 -6
  6. package/dist/{archive-C1enZgKV.mjs → archive-C2AfP9G_.mjs} +6 -7
  7. package/dist/{archive-lWgqiFAt.mjs → archive-COAWrOVp.mjs} +5 -6
  8. package/dist/{archive-BNinrUak.mjs → archive-DNVqPMhp.mjs} +7 -8
  9. package/dist/{archive-CRhiBpPJ.mjs → archive-Dt1qDaIF.mjs} +5 -6
  10. package/dist/{archive-CDA0KxL8.mjs → archive-mdSqCzVw.mjs} +5 -6
  11. package/dist/auth-WILFa6Xf.mjs +19 -0
  12. package/dist/{body-DjdFxjpg.mjs → body-b76dLVpL.mjs} +2 -2
  13. package/dist/{branches-B1WRfG7-.mjs → branches-DwV1q-4h.mjs} +5 -6
  14. package/dist/{cancel-Dl_Ho056.mjs → cancel-DDKstWQM.mjs} +6 -7
  15. package/dist/{cancel-task-CdigdCaO.mjs → cancel-task-DX_OdGan.mjs} +6 -7
  16. package/dist/{render-CfznwleY.mjs → capabilities-Dj3NgPHg.mjs} +66 -10
  17. package/dist/card-Bd8jLmZW.mjs +20 -0
  18. package/dist/{card-DlCAaAPq.mjs → card-BtPiKjbB.mjs} +1 -1
  19. package/dist/{cards-BGiJS675.mjs → cards-CYKPNOp3.mjs} +4 -5
  20. package/dist/cli.mjs +23 -24
  21. package/dist/collection-gz4k8jWl.mjs +20 -0
  22. package/dist/{create-Be_0Vier.mjs → create-B4aKAWaQ.mjs} +8 -9
  23. package/dist/{create-dhxPxfF3.mjs → create-BfRIHlHk.mjs} +12 -13
  24. package/dist/{create-CzzrbL0u.mjs → create-BfseKO3F.mjs} +8 -9
  25. package/dist/{create-BTcpaop_.mjs → create-BqiR1kvi.mjs} +7 -8
  26. package/dist/{create-BYlIju0b.mjs → create-BscN4jFB.mjs} +10 -11
  27. package/dist/{create-CwGtmwqm.mjs → create-CE1WZ4du.mjs} +9 -10
  28. package/dist/{create-DGth_uOp.mjs → create-CQxJpVXk.mjs} +9 -10
  29. package/dist/{create-BNiva__H.mjs → create-DRhRPfD-.mjs} +11 -12
  30. package/dist/{create-branch-DKZkoQ64.mjs → create-branch-2yEa7-9x.mjs} +6 -7
  31. package/dist/{current-task-CCRzm0_7.mjs → current-task-5buIatuG.mjs} +7 -8
  32. package/dist/dashboard-BL8_Ysst.mjs +21 -0
  33. package/dist/{database-lH-B3G1I.mjs → database-_Td7rG4o.mjs} +1 -1
  34. package/dist/db-Bw8m4M2J.mjs +22 -0
  35. package/dist/{delete-Dimc-2y8.mjs → delete-C3i5dE4s.mjs} +8 -7
  36. package/dist/{delete-ZjnV35OJ.mjs → delete-CF8in6gw.mjs} +8 -7
  37. package/dist/{delete-runtime-B6RQo_pw.mjs → delete-runtime-Bo7v-0au.mjs} +6 -6
  38. package/dist/{delete-table-agZJpivt.mjs → delete-table-m-6cOPnX.mjs} +8 -7
  39. package/dist/{dirty-D4d0yHqj.mjs → dirty-hGWiemB-.mjs} +5 -6
  40. package/dist/{eid-BXzaQh0o.mjs → eid-BP0H-LTl.mjs} +12 -8
  41. package/dist/{error-C9S6PN3-.mjs → error-BLukG0Vf.mjs} +3 -2
  42. package/dist/{export-DTygoXBP.mjs → export-wh9l0s7F.mjs} +10 -10
  43. package/dist/field-GgVH-HUD.mjs +18 -0
  44. package/dist/{field-yomXlkvl.mjs → field-MGxpNQUH.mjs} +12 -3
  45. package/dist/{fields-CoQi99gv.mjs → fields-BD52yx5k.mjs} +6 -7
  46. package/dist/{get-C2p383Qc.mjs → get-436DayeX.mjs} +5 -6
  47. package/dist/{get-D3SbEQSE.mjs → get-B1jyFBkg.mjs} +4 -5
  48. package/dist/{get-C3HdQ91a.mjs → get-BLUldOxi.mjs} +5 -6
  49. package/dist/{get-CP3Z3NiH.mjs → get-BVMyLnhh.mjs} +6 -7
  50. package/dist/{get-Bzys7vgp.mjs → get-BhFiIyyH.mjs} +4 -5
  51. package/dist/{get-lb7q3JYs.mjs → get-C5PKCCzj.mjs} +3 -4
  52. package/dist/{get-DQTZG_NP.mjs → get-C_LAPJ7J.mjs} +4 -5
  53. package/dist/{get-CzuzeKSe.mjs → get-CgdzDOTX.mjs} +7 -8
  54. package/dist/{get-C_w1kvN3.mjs → get-Cu7Om0g2.mjs} +6 -7
  55. package/dist/{get-Ddr0XLh7.mjs → get-DETcYP1F.mjs} +5 -6
  56. package/dist/{get-DFxZXaKz.mjs → get-DSmnRBrw.mjs} +5 -7
  57. package/dist/{get-Hc93A0Yz.mjs → get-EJOWmpkC.mjs} +5 -6
  58. package/dist/{get-run-B7sKdaDU.mjs → get-run-BEvwTmr7.mjs} +5 -6
  59. package/dist/{get-DSWFjy7O.mjs → get-z9XIWbVG.mjs} +4 -5
  60. package/dist/git-sync-oYYp_Z6v.mjs +28 -0
  61. package/dist/{has-remote-changes-BY10-nnE.mjs → has-remote-changes-BNjTil7k.mjs} +7 -7
  62. package/dist/{import-CiMz4Wz-.mjs → import-C0iBM0UR.mjs} +11 -10
  63. package/dist/is-dirty-C_RyVkc1.mjs +9 -0
  64. package/dist/{is-dirty-BZOaryxT.mjs → is-dirty-D_e5Xoke.mjs} +5 -5
  65. package/dist/{items-BWfvkY-J.mjs → items-D6h0ejme.mjs} +4 -5
  66. package/dist/{list-BI4zr8LW.mjs → list-B3CgwSU4.mjs} +6 -7
  67. package/dist/{list-DZ8fNUoQ.mjs → list-BJxm0-6m.mjs} +6 -7
  68. package/dist/{list-sD5N3fGk.mjs → list-BZkOPBmK.mjs} +6 -7
  69. package/dist/{list-2j7GsXsl.mjs → list-CSX_xieo.mjs} +3 -4
  70. package/dist/{list-D4sFiqX8.mjs → list-CWItVq2v.mjs} +5 -6
  71. package/dist/{list-Brgh-Z2v.mjs → list-CkCgkJFh.mjs} +4 -5
  72. package/dist/{list-d58BprgJ.mjs → list-CmVbbX3f.mjs} +4 -5
  73. package/dist/{list--OYdUTtu.mjs → list-D0ZVA1e1.mjs} +4 -5
  74. package/dist/{list-CL7eCOQE.mjs → list-DLC82gFo.mjs} +3 -4
  75. package/dist/{list-SOG0whQ-.mjs → list-DcV2bfg8.mjs} +3 -4
  76. package/dist/{list-Clz5igWg.mjs → list-ZX3ooQ9h.mjs} +4 -6
  77. package/dist/{list-C3hfovHv.mjs → list-pXgd_HTy.mjs} +4 -5
  78. package/dist/{list-DXH7TlkU.mjs → list-r3gm10tz.mjs} +4 -5
  79. package/dist/{login-Bm2AnCez.mjs → login-DSS8QywX.mjs} +17 -14
  80. package/dist/{logout-BlyRJODO.mjs → logout-B6acbVng.mjs} +9 -9
  81. package/dist/{manifest-BBR46KFM.mjs → manifest-B_OfG-Ss.mjs} +1 -2
  82. package/dist/measure-DDn0jAB8.mjs +19 -0
  83. package/dist/{metadata-DqiI2q9q.mjs → metadata-C-bcafH-.mjs} +6 -7
  84. package/dist/{metadata-B8ZSF9LA.mjs → metadata-D_wFDaCb.mjs} +7 -8
  85. package/dist/{parse-id-lk_K-CEF.mjs → parse-id-BapRoz4R.mjs} +1 -1
  86. package/dist/{path-AEtZ3mBq.mjs → path-DmYXSF59.mjs} +4 -6
  87. package/dist/{poll-DHKDpCiq.mjs → poll-CYFFYOiB.mjs} +1 -1
  88. package/dist/{poll-task-Cooi0lQV.mjs → poll-task-Dalt24ov.mjs} +19 -3
  89. package/dist/{preflight-aXV5LyDs.mjs → preflight-G7NUAKod.mjs} +3 -3
  90. package/dist/{query-BlsVNZpD.mjs → query-COWTai5j.mjs} +12 -12
  91. package/dist/{query-AaKzYnTY.mjs → query-DRosi9Ha.mjs} +9 -8
  92. package/dist/query-result-PoQE05Pe.mjs +19 -0
  93. package/dist/{remove-collection-CoCmrrQs.mjs → remove-collection-CLWw-48s.mjs} +10 -9
  94. package/dist/{render-OQn3iRsI.mjs → render-BQHJhSP1.mjs} +1 -1
  95. package/dist/{rescan-values-C0FDsjT7.mjs → rescan-values-C3L03Crf.mjs} +9 -10
  96. package/dist/{run-B4Wn43zm.mjs → run-PL8TRDGx.mjs} +14 -14
  97. package/dist/{runs-Bbaszr18.mjs → runs-B86YP36a.mjs} +5 -6
  98. package/dist/{runtime-Dmv5VtUK.mjs → runtime-C2EDX9E7.mjs} +16 -87
  99. package/dist/{schema-tables-CaWinbuK.mjs → schema-tables-CZr0QT1g.mjs} +6 -7
  100. package/dist/{schemas-DUgGpAyB.mjs → schemas-DnGJlmQl.mjs} +4 -5
  101. package/dist/{search-BLrBXLUk.mjs → search-thFe-n3F.mjs} +4 -5
  102. package/dist/segment-ydERbF0L.mjs +19 -0
  103. package/dist/{set-DfGsta5O.mjs → set-CDQE4s8H.mjs} +7 -7
  104. package/dist/setting-BTMmbmKB.mjs +17 -0
  105. package/dist/{setup-C9ikBRw_.mjs → setup-mOHveOFI.mjs} +7 -8
  106. package/dist/{skills-CiN1OQ8W.mjs → skills-BDPVoBWU.mjs} +33 -2
  107. package/dist/{skills-CUHIcQS6.mjs → skills-d2iLclsk.mjs} +3 -3
  108. package/dist/snippet-i1Z8-yJQ.mjs +19 -0
  109. package/dist/{stash-EIDcSvpF.mjs → stash-B4RTStPo.mjs} +11 -10
  110. package/dist/{status-95ElRAu9.mjs → status-B7H0JH52.mjs} +10 -8
  111. package/dist/{status-B0_MiZEf.mjs → status-DoVvjifV.mjs} +4 -5
  112. package/dist/{summary-C12LiEuJ.mjs → summary-BsdiF7LZ.mjs} +5 -6
  113. package/dist/{sync-schema-Ba8M3DiX.mjs → sync-schema-CvXkT9Rg.mjs} +9 -10
  114. package/dist/{table-C7a5V6Zn.mjs → table-CkWja2UH.mjs} +1 -1
  115. package/dist/table-DoAu2iwB.mjs +19 -0
  116. package/dist/transform-JzFSQdFi.mjs +24 -0
  117. package/dist/transform-job-C8q3Fcf7.mjs +19 -0
  118. package/dist/{tree-Des2ZG9d.mjs → tree-CGBtDXfk.mjs} +3 -4
  119. package/dist/{update-DzAN4SPj.mjs → update-B89kI8l9.mjs} +10 -11
  120. package/dist/{update-_QfgNa53.mjs → update-BA48uHRd.mjs} +10 -11
  121. package/dist/{update-DBi5U8zb.mjs → update-BHit5RyS.mjs} +12 -13
  122. package/dist/{update-mYVnoYNV.mjs → update-BJhk_A4R.mjs} +11 -12
  123. package/dist/{update-Bx54nWEI.mjs → update-BJn9ZitD.mjs} +12 -13
  124. package/dist/{update-F6DmZncY.mjs → update-C44bumhM.mjs} +9 -10
  125. package/dist/{update-CyIZdbIQ.mjs → update-DqAKFmkw.mjs} +9 -10
  126. package/dist/{update-njHe3j-s.mjs → update-JpO3b8g3.mjs} +10 -11
  127. package/dist/{update-DSgceARZ.mjs → update-WMzbyUw2.mjs} +9 -10
  128. package/dist/{update-dashcard-wpSjv4M7.mjs → update-dashcard-C8BGZtY7.mjs} +8 -9
  129. package/dist/{upgrade-iAuvhX-W.mjs → upgrade-DeiR3fjf.mjs} +41 -28
  130. package/dist/{uuid-CMKnS8-z.mjs → uuid-BWvbC2Z8.mjs} +3 -4
  131. package/dist/{validate-dPEOnOf8.mjs → validate-CqVB_3_p.mjs} +1 -1
  132. package/dist/{validate-query-Cw6WE5Y8.mjs → validate-query-BUTNK00f.mjs} +2 -2
  133. package/dist/values-07BZxAK5.mjs +44 -0
  134. package/dist/{verify-D5YtTqqp.mjs → verify-D2q5RI4i.mjs} +1 -1
  135. package/dist/{wait-Bv3Tsnv4.mjs → wait-DWyuBO_X.mjs} +8 -9
  136. package/dist/{wait-flags-Dzq9BGQY.mjs → wait-flags-Crs-j7Z8.mjs} +2 -2
  137. package/package.json +1 -1
  138. package/skill-data/core/SKILL.md +13 -26
  139. package/skill-data/git-sync/SKILL.md +8 -63
  140. package/skill-data/transform/SKILL.md +3 -4
  141. package/skill-data/visualization/SKILL.md +158 -0
  142. package/skill-data/visualization/references/settings.md +414 -0
  143. package/skills/metabase-cli/SKILL.md +1 -1
  144. package/dist/add-collection-C0w6ACQF.mjs +0 -11
  145. package/dist/auth-CzXb_zB2.mjs +0 -19
  146. package/dist/capabilities-7e9MgquN.mjs +0 -29
  147. package/dist/card-DP4rfoOi.mjs +0 -21
  148. package/dist/collection-tY18ezvn.mjs +0 -21
  149. package/dist/create-CHF313Qg.mjs +0 -52
  150. package/dist/credentials-dzeq7ckm.mjs +0 -88
  151. package/dist/dashboard-ChM_Tu0l.mjs +0 -22
  152. package/dist/database-CIXwHKjK.mjs +0 -17
  153. package/dist/db-DrQn_i3W.mjs +0 -22
  154. package/dist/delete-CM3jnAeQ.mjs +0 -100
  155. package/dist/deprovision-CwxcIT3k.mjs +0 -65
  156. package/dist/docker-Oq80q3tu.mjs +0 -515
  157. package/dist/field-Z6Pcxf4n.mjs +0 -19
  158. package/dist/git-sync-CiGAad76.mjs +0 -28
  159. package/dist/is-dirty-Ume4oV0j.mjs +0 -10
  160. package/dist/license-Dxarh-gG.mjs +0 -17
  161. package/dist/list-zSO0DMw-.mjs +0 -36
  162. package/dist/logs-CywPikkL.mjs +0 -60
  163. package/dist/measure-C44EK_xt.mjs +0 -20
  164. package/dist/parse-schemas-BqUdWUwq.mjs +0 -12
  165. package/dist/process-C7V8LJ-j.mjs +0 -105
  166. package/dist/provision-UWcNDoDe.mjs +0 -82
  167. package/dist/ps-CJU0EbrC.mjs +0 -80
  168. package/dist/ps-DEroLgbI.mjs +0 -11
  169. package/dist/remove-BFWun0e8.mjs +0 -63
  170. package/dist/segment-B3Uwwcsm.mjs +0 -20
  171. package/dist/set-B8cUbRLD.mjs +0 -68
  172. package/dist/setting-D2p2MA7f.mjs +0 -18
  173. package/dist/snippet-B7D0uWlz.mjs +0 -20
  174. package/dist/start-3PX3ahjT.mjs +0 -413
  175. package/dist/status-CEplmC44.mjs +0 -34
  176. package/dist/stop-CQ0XGrN8.mjs +0 -83
  177. package/dist/table-e6h8SLVX.mjs +0 -20
  178. package/dist/transform-BMYh1lsC.mjs +0 -25
  179. package/dist/transform-job-Cm7z5TfH.mjs +0 -20
  180. package/dist/update-DHZubok3.mjs +0 -77
  181. package/dist/url-DWaT6WIZ.mjs +0 -56
  182. package/dist/values-BfSTAbzc.mjs +0 -37
  183. package/dist/wait-8yV9_WIo.mjs +0 -19
  184. package/dist/workspace-BBXJczJK.mjs +0 -72
  185. package/dist/workspace-CKLZrR7l.mjs +0 -26
  186. package/dist/workspace-credentials-BXpABsNZ.mjs +0 -100
  187. package/dist/yaml-YTQiYJ9s.mjs +0 -43
  188. package/skill-data/viz/SKILL.md +0 -137
  189. package/skill-data/viz/references/settings.md +0 -312
  190. package/skill-data/workspace/SKILL.md +0 -390
  191. /package/dist/{body-flags-D7q87Btw.mjs → body-flags-D78h_-Ua.mjs} +0 -0
  192. /package/dist/{input-cMSEqISy.mjs → input-xewHccej.mjs} +0 -0
  193. /package/dist/{parse-enum-CrEWOhuY.mjs → parse-enum-Dr7ACrTR.mjs} +0 -0
  194. /package/dist/{prompt-CFKoys7k.mjs → prompt-u4WhE4T5.mjs} +0 -0
  195. /package/dist/{snippet-COggaWxx.mjs → snippet-xh42tYly.mjs} +0 -0
  196. /package/dist/{transform-GTW3G-01.mjs → transform-DyJb0bV0.mjs} +0 -0
  197. /package/dist/{transform-job-DeTDPMxt.mjs → transform-job-DpDGoqQt.mjs} +0 -0
@@ -1,7 +1,25 @@
1
1
  import { ConfigError } from "./command-augment-BH9qgQ5u.mjs";
2
- import { isPlainObject, itemOversizeMessage, listTruncationNotice, warn } from "./capabilities-7e9MgquN.mjs";
2
+ import { z } from "zod";
3
3
  import Table from "cli-table3";
4
4
 
5
+ //#region src/runtime/predicates.ts
6
+ function isPlainObject(value) {
7
+ return typeof value === "object" && value !== null && !Array.isArray(value);
8
+ }
9
+
10
+ //#endregion
11
+ //#region src/output/notice.ts
12
+ function warn(message) {
13
+ process.stderr.write(message + "\n");
14
+ }
15
+ function listTruncationNotice(bytes) {
16
+ return `… cut at ${bytes} bytes; rerun with --max-bytes 0`;
17
+ }
18
+ function itemOversizeMessage(bytes, maxBytes) {
19
+ return `output is ${bytes} bytes, over the ${maxBytes}-byte --max-bytes cap; narrow with --fields, or pass --max-bytes 0 to disable`;
20
+ }
21
+
22
+ //#endregion
5
23
  //#region src/output/cap.ts
6
24
  function capListEnvelope(envelope, maxBytes) {
7
25
  if (maxBytes <= 0) return envelope;
@@ -81,17 +99,33 @@ function setPath(target, parts, value) {
81
99
 
82
100
  //#endregion
83
101
  //#region src/output/table.ts
102
+ const PLAIN_TABLE_STYLE = {
103
+ head: [],
104
+ border: []
105
+ };
84
106
  function renderTable(rows, columns) {
85
107
  const head = columns.map((column) => column.label ?? column.key);
86
108
  const widths = columns.map((column) => column.width ?? null);
87
109
  const hasWidth = widths.some((width) => width !== null);
88
110
  const table = new Table(hasWidth ? {
89
111
  head,
90
- colWidths: widths
91
- } : { head });
112
+ colWidths: widths,
113
+ style: PLAIN_TABLE_STYLE
114
+ } : {
115
+ head,
116
+ style: PLAIN_TABLE_STYLE
117
+ });
92
118
  for (const row of rows) table.push(columns.map((column) => formatCell(row, column)));
93
119
  return table.toString();
94
120
  }
121
+ function renderRows(head, rows) {
122
+ const table = new Table({
123
+ head: [...head],
124
+ style: PLAIN_TABLE_STYLE
125
+ });
126
+ for (const row of rows) table.push([...row]);
127
+ return table.toString();
128
+ }
95
129
  function formatCell(row, column) {
96
130
  const value = row[column.key];
97
131
  if (column.format !== void 0) return column.format(value);
@@ -117,17 +151,17 @@ function renderItem(item, view, opts) {
117
151
  assertItemWithinMaxBytes(body, opts.maxBytes);
118
152
  process.stdout.write(body);
119
153
  }
120
- function renderScalar(item, view, scalarText, opts) {
154
+ function renderSummary(item, view, summaryText, opts) {
121
155
  if (opts.format === "json" || opts.fields !== void 0 || opts.full) {
122
156
  renderItem(item, view, opts);
123
157
  return;
124
158
  }
125
- const body = scalarText + "\n";
159
+ const body = (typeof summaryText === "function" ? summaryText() : summaryText) + "\n";
126
160
  assertItemWithinMaxBytes(body, opts.maxBytes);
127
161
  process.stdout.write(body);
128
162
  }
129
163
  function renderList(envelope, view, opts) {
130
- if (opts.format === "json" || opts.fields !== void 0) {
164
+ if (opts.format === "json") {
131
165
  renderJsonEnvelope(envelope, view, opts);
132
166
  return;
133
167
  }
@@ -135,10 +169,24 @@ function renderList(envelope, view, opts) {
135
169
  process.stdout.write("(no results)\n");
136
170
  return;
137
171
  }
172
+ if (opts.fields !== void 0) {
173
+ renderProjectedTable(envelope, view, opts.fields, opts.maxBytes);
174
+ return;
175
+ }
138
176
  const capped = capListEnvelope(envelope, opts.maxBytes);
139
177
  process.stdout.write(renderTable(capped.data, view.tableColumns) + "\n");
140
178
  if (capped.truncated !== void 0) warn(listTruncationNotice(capped.truncated.bytes));
141
179
  }
180
+ function renderProjectedTable(envelope, view, fields, maxBytes) {
181
+ const projectedItems = envelope.data.map((item) => applyProjection(item, view, false, fields));
182
+ const capped = capListEnvelope({
183
+ ...envelope,
184
+ data: projectedItems
185
+ }, maxBytes);
186
+ const rows = capped.data.map((item) => fields.map((path) => formatScalar(pickPath(item, path.split(".")))));
187
+ process.stdout.write(renderRows(fields, rows) + "\n");
188
+ if (capped.truncated !== void 0) warn(listTruncationNotice(capped.truncated.bytes));
189
+ }
142
190
  function renderJsonEnvelope(envelope, view, opts) {
143
191
  const projectedItems = envelope.data.map((item) => applyProjection(item, view, opts.full, opts.fields));
144
192
  const projectedEnvelope = {
@@ -150,9 +198,9 @@ function renderJsonEnvelope(envelope, view, opts) {
150
198
  if (capped.truncated !== void 0) warn(listTruncationNotice(capped.truncated.bytes));
151
199
  }
152
200
  function renderItemBody(item, view, projected, opts) {
153
- if (opts.format === "json" || opts.fields !== void 0) return JSON.stringify(projected, null, 2);
154
- if (!opts.full) return renderKeyValueLines(columnPairs(item, view.tableColumns));
155
- return renderKeyValueLines(objectPairs(projected));
201
+ if (opts.format === "json") return JSON.stringify(projected, null, 2);
202
+ if (opts.fields !== void 0 || opts.full) return renderKeyValueLines(objectPairs(projected));
203
+ return renderKeyValueLines(columnPairs(item, view.tableColumns));
156
204
  }
157
205
  function columnPairs(item, columns) {
158
206
  return columns.map((column) => [column.label ?? column.key, formatCell(item, column)]);
@@ -177,4 +225,12 @@ function assertItemWithinMaxBytes(body, maxBytes) {
177
225
  }
178
226
 
179
227
  //#endregion
180
- export { formatScalar, renderItem, renderList, renderScalar, writeJson, writeText };
228
+ //#region src/runtime/capabilities.ts
229
+ const Capabilities = z.object({
230
+ minVersion: z.number(),
231
+ tokenFeature: z.string().optional()
232
+ });
233
+ const BASELINE_CAPABILITIES = Object.freeze({ minVersion: 58 });
234
+
235
+ //#endregion
236
+ export { BASELINE_CAPABILITIES, Capabilities, formatScalar, isPlainObject, renderItem, renderList, renderRows, renderSummary, warn, writeJson, writeText };
@@ -0,0 +1,20 @@
1
+ import { defineCommand } from "citty";
2
+
3
+ //#region src/commands/card/index.ts
4
+ var card_default = defineCommand({
5
+ meta: {
6
+ name: "card",
7
+ description: "Manage Metabase cards (questions, models, metrics)"
8
+ },
9
+ subCommands: {
10
+ list: () => import("./list-B3CgwSU4.mjs").then((mod) => mod.default),
11
+ get: () => import("./get-BVMyLnhh.mjs").then((mod) => mod.default),
12
+ query: () => import("./query-DRosi9Ha.mjs").then((mod) => mod.default),
13
+ create: () => import("./create-DRhRPfD-.mjs").then((mod) => mod.default),
14
+ update: () => import("./update-BHit5RyS.mjs").then((mod) => mod.default),
15
+ archive: () => import("./archive-DNVqPMhp.mjs").then((mod) => mod.default)
16
+ }
17
+ });
18
+
19
+ //#endregion
20
+ export { card_default as default };
@@ -1,4 +1,4 @@
1
- import { FieldBaseType, FieldSemanticType } from "./field-yomXlkvl.mjs";
1
+ import { FieldBaseType, FieldSemanticType } from "./field-MGxpNQUH.mjs";
2
2
  import { z } from "zod";
3
3
 
4
4
  //#region src/domain/card.ts
@@ -1,9 +1,8 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, listEnvelopeSchema, outputFlags, profileFlag, wrapList } from "./error-C9S6PN3-.mjs";
3
- import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
4
- import "./capabilities-7e9MgquN.mjs";
5
- import { renderList } from "./render-CfznwleY.mjs";
6
- import { parseId } from "./parse-id-lk_K-CEF.mjs";
2
+ import { connectionFlags, listEnvelopeSchema, outputFlags, profileFlag, wrapList } from "./error-BLukG0Vf.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C2EDX9E7.mjs";
4
+ import { renderList } from "./capabilities-Dj3NgPHg.mjs";
5
+ import { parseId } from "./parse-id-BapRoz4R.mjs";
7
6
  import { DashboardDetail, DashcardCompact, dashcardView } from "./dashboard-FY5UzJ_Z.mjs";
8
7
 
9
8
  //#region src/commands/dashboard/cards.ts
package/dist/cli.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { ConfigError, flagConsumesValue, getMetabaseAugment, normalizeFlag, resolveCitty, toAliasArray } from "./command-augment-BH9qgQ5u.mjs";
3
- import { connectionFlags, outputFlags, package_default, profileFlag, reportError } from "./error-C9S6PN3-.mjs";
3
+ import { connectionFlags, outputFlags, package_default, profileFlag, reportError } from "./error-BLukG0Vf.mjs";
4
4
  import { defineCommand, renderUsage, runMain } from "citty";
5
5
 
6
6
  //#region src/commands/global-flags.ts
@@ -58,29 +58,28 @@ const main = defineCommand({
58
58
  description: package_default.description
59
59
  },
60
60
  subCommands: {
61
- auth: () => import("./auth-CzXb_zB2.mjs").then((mod) => mod.default),
62
- db: () => import("./db-DrQn_i3W.mjs").then((mod) => mod.default),
63
- table: () => import("./table-e6h8SLVX.mjs").then((mod) => mod.default),
64
- field: () => import("./field-Z6Pcxf4n.mjs").then((mod) => mod.default),
65
- card: () => import("./card-DP4rfoOi.mjs").then((mod) => mod.default),
66
- dashboard: () => import("./dashboard-ChM_Tu0l.mjs").then((mod) => mod.default),
67
- collection: () => import("./collection-tY18ezvn.mjs").then((mod) => mod.default),
68
- transform: () => import("./transform-BMYh1lsC.mjs").then((mod) => mod.default),
69
- "transform-job": () => import("./transform-job-Cm7z5TfH.mjs").then((mod) => mod.default),
70
- setting: () => import("./setting-D2p2MA7f.mjs").then((mod) => mod.default),
71
- search: () => import("./search-BLrBXLUk.mjs").then((mod) => mod.default),
72
- "git-sync": () => import("./git-sync-CiGAad76.mjs").then((mod) => mod.default),
73
- workspace: () => import("./workspace-CKLZrR7l.mjs").then((mod) => mod.default),
74
- setup: () => import("./setup-C9ikBRw_.mjs").then((mod) => mod.default),
75
- snippet: () => import("./snippet-B7D0uWlz.mjs").then((mod) => mod.default),
76
- segment: () => import("./segment-B3Uwwcsm.mjs").then((mod) => mod.default),
77
- measure: () => import("./measure-C44EK_xt.mjs").then((mod) => mod.default),
78
- eid: () => import("./eid-BXzaQh0o.mjs").then((mod) => mod.default),
79
- query: () => import("./query-BlsVNZpD.mjs").then((mod) => mod.default),
80
- uuid: () => import("./uuid-CMKnS8-z.mjs").then((mod) => mod.default),
81
- upgrade: () => import("./upgrade-iAuvhX-W.mjs").then((mod) => mod.default),
82
- skills: () => import("./skills-CUHIcQS6.mjs").then((mod) => mod.default),
83
- __manifest: () => import("./manifest-BBR46KFM.mjs").then((mod) => mod.createManifestCommand(main))
61
+ auth: () => import("./auth-WILFa6Xf.mjs").then((mod) => mod.default),
62
+ db: () => import("./db-Bw8m4M2J.mjs").then((mod) => mod.default),
63
+ table: () => import("./table-DoAu2iwB.mjs").then((mod) => mod.default),
64
+ field: () => import("./field-GgVH-HUD.mjs").then((mod) => mod.default),
65
+ card: () => import("./card-Bd8jLmZW.mjs").then((mod) => mod.default),
66
+ dashboard: () => import("./dashboard-BL8_Ysst.mjs").then((mod) => mod.default),
67
+ collection: () => import("./collection-gz4k8jWl.mjs").then((mod) => mod.default),
68
+ transform: () => import("./transform-JzFSQdFi.mjs").then((mod) => mod.default),
69
+ "transform-job": () => import("./transform-job-C8q3Fcf7.mjs").then((mod) => mod.default),
70
+ setting: () => import("./setting-BTMmbmKB.mjs").then((mod) => mod.default),
71
+ search: () => import("./search-thFe-n3F.mjs").then((mod) => mod.default),
72
+ "git-sync": () => import("./git-sync-oYYp_Z6v.mjs").then((mod) => mod.default),
73
+ setup: () => import("./setup-mOHveOFI.mjs").then((mod) => mod.default),
74
+ snippet: () => import("./snippet-i1Z8-yJQ.mjs").then((mod) => mod.default),
75
+ segment: () => import("./segment-ydERbF0L.mjs").then((mod) => mod.default),
76
+ measure: () => import("./measure-DDn0jAB8.mjs").then((mod) => mod.default),
77
+ eid: () => import("./eid-BP0H-LTl.mjs").then((mod) => mod.default),
78
+ query: () => import("./query-COWTai5j.mjs").then((mod) => mod.default),
79
+ uuid: () => import("./uuid-BWvbC2Z8.mjs").then((mod) => mod.default),
80
+ upgrade: () => import("./upgrade-DeiR3fjf.mjs").then((mod) => mod.default),
81
+ skills: () => import("./skills-d2iLclsk.mjs").then((mod) => mod.default),
82
+ __manifest: () => import("./manifest-B_OfG-Ss.mjs").then((mod) => mod.createManifestCommand(main))
84
83
  }
85
84
  });
86
85
  var main_default = main;
@@ -0,0 +1,20 @@
1
+ import { defineCommand } from "citty";
2
+
3
+ //#region src/commands/collection/index.ts
4
+ var collection_default = defineCommand({
5
+ meta: {
6
+ name: "collection",
7
+ description: "Manage Metabase collections"
8
+ },
9
+ subCommands: {
10
+ list: () => import("./list-CkCgkJFh.mjs").then((mod) => mod.default),
11
+ get: () => import("./get-C5PKCCzj.mjs").then((mod) => mod.default),
12
+ items: () => import("./items-D6h0ejme.mjs").then((mod) => mod.default),
13
+ tree: () => import("./tree-CGBtDXfk.mjs").then((mod) => mod.default),
14
+ create: () => import("./create-BqiR1kvi.mjs").then((mod) => mod.default),
15
+ archive: () => import("./archive-COAWrOVp.mjs").then((mod) => mod.default)
16
+ }
17
+ });
18
+
19
+ //#endregion
20
+ export { collection_default as default };
@@ -1,12 +1,11 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
- import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
4
- import "./capabilities-7e9MgquN.mjs";
5
- import { renderItem } from "./render-CfznwleY.mjs";
6
- import "./input-cMSEqISy.mjs";
7
- import { readBody } from "./body-DjdFxjpg.mjs";
8
- import { bodyInputFlags } from "./body-flags-D7q87Btw.mjs";
9
- import { Snippet, SnippetCreateInput, snippetView } from "./snippet-COggaWxx.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BLukG0Vf.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C2EDX9E7.mjs";
4
+ import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
5
+ import "./input-xewHccej.mjs";
6
+ import { readBody } from "./body-b76dLVpL.mjs";
7
+ import { bodyInputFlags } from "./body-flags-D78h_-Ua.mjs";
8
+ import { Snippet, SnippetCreateInput, snippetView } from "./snippet-xh42tYly.mjs";
10
9
 
11
10
  //#region src/commands/snippet/create.ts
12
11
  var create_default = defineMetabaseCommand({
@@ -37,7 +36,7 @@ var create_default = defineMetabaseCommand({
37
36
  method: "POST",
38
37
  body
39
38
  });
40
- renderItem(created, snippetView, ctx);
39
+ renderSummary(created, snippetView, `Created snippet ${created.id} "${created.name}".`, ctx);
41
40
  }
42
41
  });
43
42
 
@@ -1,16 +1,15 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
- import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
4
- import "./capabilities-7e9MgquN.mjs";
5
- import { renderItem } from "./render-CfznwleY.mjs";
6
- import "./input-cMSEqISy.mjs";
7
- import "./field-yomXlkvl.mjs";
8
- import "./card-DlCAaAPq.mjs";
9
- import { readBody } from "./body-DjdFxjpg.mjs";
10
- import { bodyInputFlags } from "./body-flags-D7q87Btw.mjs";
11
- import "./validate-dPEOnOf8.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BLukG0Vf.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C2EDX9E7.mjs";
4
+ import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
5
+ import "./input-xewHccej.mjs";
6
+ import "./field-MGxpNQUH.mjs";
7
+ import "./card-BtPiKjbB.mjs";
8
+ import { readBody } from "./body-b76dLVpL.mjs";
9
+ import { bodyInputFlags } from "./body-flags-D78h_-Ua.mjs";
10
+ import "./validate-CqVB_3_p.mjs";
12
11
  import { Dashboard, DashboardCreateInput, DashboardDetail, dashboardView } from "./dashboard-FY5UzJ_Z.mjs";
13
- import { preflightDashcardCardReferences, wrapChainedDashboardWriteError } from "./preflight-aXV5LyDs.mjs";
12
+ import { preflightDashcardCardReferences, wrapChainedDashboardWriteError } from "./preflight-G7NUAKod.mjs";
14
13
 
15
14
  //#region src/commands/dashboard/create.ts
16
15
  var create_default = defineMetabaseCommand({
@@ -46,7 +45,7 @@ var create_default = defineMetabaseCommand({
46
45
  body: createOnly
47
46
  });
48
47
  if (dashcards === void 0 && tabs === void 0) {
49
- renderItem(created, dashboardView, ctx);
48
+ renderSummary(created, dashboardView, `Created dashboard ${created.id} "${created.name}".`, ctx);
50
49
  return;
51
50
  }
52
51
  try {
@@ -57,7 +56,7 @@ var create_default = defineMetabaseCommand({
57
56
  tabs
58
57
  }
59
58
  });
60
- renderItem(updated, dashboardView, ctx);
59
+ renderSummary(updated, dashboardView, `Created dashboard ${updated.id} "${updated.name}".`, ctx);
61
60
  } catch (error) {
62
61
  throw wrapChainedDashboardWriteError(error, created.id);
63
62
  }
@@ -1,12 +1,11 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
- import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
4
- import "./capabilities-7e9MgquN.mjs";
5
- import { renderItem } from "./render-CfznwleY.mjs";
6
- import "./input-cMSEqISy.mjs";
7
- import { readBody } from "./body-DjdFxjpg.mjs";
8
- import { bodyInputFlags } from "./body-flags-D7q87Btw.mjs";
9
- import { TransformJob, TransformJobCreateInput, transformJobView } from "./transform-job-DeTDPMxt.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BLukG0Vf.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C2EDX9E7.mjs";
4
+ import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
5
+ import "./input-xewHccej.mjs";
6
+ import { readBody } from "./body-b76dLVpL.mjs";
7
+ import { bodyInputFlags } from "./body-flags-D78h_-Ua.mjs";
8
+ import { TransformJob, TransformJobCreateInput, transformJobView } from "./transform-job-DpDGoqQt.mjs";
10
9
 
11
10
  //#region src/commands/transform-job/create.ts
12
11
  var create_default = defineMetabaseCommand({
@@ -37,7 +36,7 @@ var create_default = defineMetabaseCommand({
37
36
  method: "POST",
38
37
  body
39
38
  });
40
- renderItem(created, transformJobView, ctx);
39
+ renderSummary(created, transformJobView, `Created transform job ${created.id} "${created.name}".`, ctx);
41
40
  }
42
41
  });
43
42
 
@@ -1,11 +1,10 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
- import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
4
- import "./capabilities-7e9MgquN.mjs";
5
- import { renderItem } from "./render-CfznwleY.mjs";
6
- import "./input-cMSEqISy.mjs";
7
- import { readBody } from "./body-DjdFxjpg.mjs";
8
- import { bodyInputFlags } from "./body-flags-D7q87Btw.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BLukG0Vf.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C2EDX9E7.mjs";
4
+ import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
5
+ import "./input-xewHccej.mjs";
6
+ import { readBody } from "./body-b76dLVpL.mjs";
7
+ import { bodyInputFlags } from "./body-flags-D78h_-Ua.mjs";
9
8
  import { Collection, CollectionCreateInput, collectionView } from "./collection-B3sPXRLs.mjs";
10
9
 
11
10
  //#region src/commands/collection/create.ts
@@ -37,7 +36,7 @@ var create_default = defineMetabaseCommand({
37
36
  method: "POST",
38
37
  body
39
38
  });
40
- renderItem(created, collectionView, ctx);
39
+ renderSummary(created, collectionView, `Created collection ${created.id} "${created.name}".`, ctx);
41
40
  }
42
41
  });
43
42
 
@@ -1,14 +1,13 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
- import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
4
- import "./capabilities-7e9MgquN.mjs";
5
- import { renderItem } from "./render-CfznwleY.mjs";
6
- import "./input-cMSEqISy.mjs";
7
- import { readBody } from "./body-DjdFxjpg.mjs";
8
- import { bodyInputFlags } from "./body-flags-D7q87Btw.mjs";
9
- import "./validate-dPEOnOf8.mjs";
10
- import { TRANSFORM_SOURCE_QUERY_LABELS, preflightMbql5Query, skipValidateFlag } from "./validate-query-Cw6WE5Y8.mjs";
11
- import { Transform, TransformCreateInput, transformView } from "./transform-GTW3G-01.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BLukG0Vf.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C2EDX9E7.mjs";
4
+ import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
5
+ import "./input-xewHccej.mjs";
6
+ import { readBody } from "./body-b76dLVpL.mjs";
7
+ import { bodyInputFlags } from "./body-flags-D78h_-Ua.mjs";
8
+ import "./validate-CqVB_3_p.mjs";
9
+ import { TRANSFORM_SOURCE_QUERY_LABELS, preflightMbql5Query, skipValidateFlag } from "./validate-query-BUTNK00f.mjs";
10
+ import { Transform, TransformCreateInput, transformView } from "./transform-DyJb0bV0.mjs";
12
11
 
13
12
  //#region src/commands/transform/create.ts
14
13
  var create_default = defineMetabaseCommand({
@@ -42,7 +41,7 @@ var create_default = defineMetabaseCommand({
42
41
  method: "POST",
43
42
  body
44
43
  });
45
- renderItem(created, transformView, ctx);
44
+ renderSummary(created, transformView, `Created transform ${created.id} "${created.name}".`, ctx);
46
45
  }
47
46
  });
48
47
 
@@ -1,13 +1,12 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
- import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
4
- import "./capabilities-7e9MgquN.mjs";
5
- import { renderItem } from "./render-CfznwleY.mjs";
6
- import "./input-cMSEqISy.mjs";
7
- import { readBody } from "./body-DjdFxjpg.mjs";
8
- import { bodyInputFlags } from "./body-flags-D7q87Btw.mjs";
9
- import "./validate-dPEOnOf8.mjs";
10
- import { MEASURE_DEFINITION_LABELS, preflightMbql5Query, skipValidateFlag } from "./validate-query-Cw6WE5Y8.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BLukG0Vf.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C2EDX9E7.mjs";
4
+ import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
5
+ import "./input-xewHccej.mjs";
6
+ import { readBody } from "./body-b76dLVpL.mjs";
7
+ import { bodyInputFlags } from "./body-flags-D78h_-Ua.mjs";
8
+ import "./validate-CqVB_3_p.mjs";
9
+ import { MEASURE_DEFINITION_LABELS, preflightMbql5Query, skipValidateFlag } from "./validate-query-BUTNK00f.mjs";
11
10
  import { Measure, MeasureCreateInput, measureView } from "./measure-ClESGxIb.mjs";
12
11
 
13
12
  //#region src/commands/measure/create.ts
@@ -42,7 +41,7 @@ var create_default = defineMetabaseCommand({
42
41
  method: "POST",
43
42
  body
44
43
  });
45
- renderItem(created, measureView, ctx);
44
+ renderSummary(created, measureView, `Created measure ${created.id} "${created.name}".`, ctx);
46
45
  }
47
46
  });
48
47
 
@@ -1,13 +1,12 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
- import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
4
- import "./capabilities-7e9MgquN.mjs";
5
- import { renderItem } from "./render-CfznwleY.mjs";
6
- import "./input-cMSEqISy.mjs";
7
- import { readBody } from "./body-DjdFxjpg.mjs";
8
- import { bodyInputFlags } from "./body-flags-D7q87Btw.mjs";
9
- import "./validate-dPEOnOf8.mjs";
10
- import { SEGMENT_DEFINITION_LABELS, preflightMbql5Query, skipValidateFlag } from "./validate-query-Cw6WE5Y8.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BLukG0Vf.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C2EDX9E7.mjs";
4
+ import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
5
+ import "./input-xewHccej.mjs";
6
+ import { readBody } from "./body-b76dLVpL.mjs";
7
+ import { bodyInputFlags } from "./body-flags-D78h_-Ua.mjs";
8
+ import "./validate-CqVB_3_p.mjs";
9
+ import { SEGMENT_DEFINITION_LABELS, preflightMbql5Query, skipValidateFlag } from "./validate-query-BUTNK00f.mjs";
11
10
  import { Segment, SegmentCreateInput, segmentView } from "./segment-Be2v4ilr.mjs";
12
11
 
13
12
  //#region src/commands/segment/create.ts
@@ -42,7 +41,7 @@ var create_default = defineMetabaseCommand({
42
41
  method: "POST",
43
42
  body
44
43
  });
45
- renderItem(created, segmentView, ctx);
44
+ renderSummary(created, segmentView, `Created segment ${created.id} "${created.name}".`, ctx);
46
45
  }
47
46
  });
48
47
 
@@ -1,15 +1,14 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
- import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
4
- import "./capabilities-7e9MgquN.mjs";
5
- import { renderItem } from "./render-CfznwleY.mjs";
6
- import "./input-cMSEqISy.mjs";
7
- import "./field-yomXlkvl.mjs";
8
- import { Card, CardCreateInput, cardView } from "./card-DlCAaAPq.mjs";
9
- import { readBody } from "./body-DjdFxjpg.mjs";
10
- import { bodyInputFlags } from "./body-flags-D7q87Btw.mjs";
11
- import "./validate-dPEOnOf8.mjs";
12
- import { CARD_DATASET_QUERY_LABELS, preflightMbql5Query, skipValidateFlag } from "./validate-query-Cw6WE5Y8.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BLukG0Vf.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C2EDX9E7.mjs";
4
+ import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
5
+ import "./input-xewHccej.mjs";
6
+ import "./field-MGxpNQUH.mjs";
7
+ import { Card, CardCreateInput, cardView } from "./card-BtPiKjbB.mjs";
8
+ import { readBody } from "./body-b76dLVpL.mjs";
9
+ import { bodyInputFlags } from "./body-flags-D78h_-Ua.mjs";
10
+ import "./validate-CqVB_3_p.mjs";
11
+ import { CARD_DATASET_QUERY_LABELS, preflightMbql5Query, skipValidateFlag } from "./validate-query-BUTNK00f.mjs";
13
12
 
14
13
  //#region src/commands/card/create.ts
15
14
  var create_default = defineMetabaseCommand({
@@ -44,7 +43,7 @@ var create_default = defineMetabaseCommand({
44
43
  method: "POST",
45
44
  body
46
45
  });
47
- renderItem(created, cardView, ctx);
46
+ renderSummary(created, cardView, `Created card ${created.id} "${created.name}".`, ctx);
48
47
  }
49
48
  });
50
49
 
@@ -1,10 +1,9 @@
1
1
  import { ConfigError } from "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
- import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
4
- import "./capabilities-7e9MgquN.mjs";
5
- import { renderItem } from "./render-CfznwleY.mjs";
6
- import { REMOTE_SYNC_PATHS } from "./poll-task-Cooi0lQV.mjs";
7
- import "./poll-DHKDpCiq.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BLukG0Vf.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C2EDX9E7.mjs";
4
+ import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
5
+ import { REMOTE_SYNC_PATHS } from "./poll-task-Dalt24ov.mjs";
6
+ import "./poll-CYFFYOiB.mjs";
8
7
  import { z } from "zod";
9
8
 
10
9
  //#region src/commands/git-sync/create-branch.ts
@@ -51,7 +50,7 @@ var create_branch_default = defineMetabaseCommand({
51
50
  method: "POST",
52
51
  body: { name }
53
52
  });
54
- renderItem(result, createBranchView, ctx);
53
+ renderSummary(result, createBranchView, `Created branch "${name}" and switched git-sync to it.`, ctx);
55
54
  }
56
55
  });
57
56
 
@@ -1,10 +1,9 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-C9S6PN3-.mjs";
3
- import { defineMetabaseCommand } from "./runtime-Dmv5VtUK.mjs";
4
- import "./capabilities-7e9MgquN.mjs";
5
- import { renderItem } from "./render-CfznwleY.mjs";
6
- import { SyncTaskOrIdle, fetchCurrentTask, syncTaskIdleView, syncTaskView } from "./poll-task-Cooi0lQV.mjs";
7
- import "./poll-DHKDpCiq.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BLukG0Vf.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-C2EDX9E7.mjs";
4
+ import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
5
+ import { SyncTaskOrIdle, fetchCurrentTask, formatSyncTask, syncTaskIdleView, syncTaskView } from "./poll-task-Dalt24ov.mjs";
6
+ import "./poll-CYFFYOiB.mjs";
8
7
 
9
8
  //#region src/commands/git-sync/current-task.ts
10
9
  const CurrentTaskResult = SyncTaskOrIdle;
@@ -29,10 +28,10 @@ var current_task_default = defineMetabaseCommand({
29
28
  const task = await fetchCurrentTask(client);
30
29
  if (task === null) {
31
30
  const idle = { status: "idle" };
32
- renderItem(idle, syncTaskIdleView, ctx);
31
+ renderSummary(idle, syncTaskIdleView, "No git-sync task is running.", ctx);
33
32
  return;
34
33
  }
35
- renderItem(task, syncTaskView, ctx);
34
+ renderSummary(task, syncTaskView, formatSyncTask(task), ctx);
36
35
  }
37
36
  });
38
37
 
@@ -0,0 +1,21 @@
1
+ import { defineCommand } from "citty";
2
+
3
+ //#region src/commands/dashboard/index.ts
4
+ var dashboard_default = defineCommand({
5
+ meta: {
6
+ name: "dashboard",
7
+ description: "Manage Metabase dashboards"
8
+ },
9
+ subCommands: {
10
+ list: () => import("./list-r3gm10tz.mjs").then((mod) => mod.default),
11
+ get: () => import("./get-z9XIWbVG.mjs").then((mod) => mod.default),
12
+ cards: () => import("./cards-CYKPNOp3.mjs").then((mod) => mod.default),
13
+ create: () => import("./create-BfRIHlHk.mjs").then((mod) => mod.default),
14
+ update: () => import("./update-BJn9ZitD.mjs").then((mod) => mod.default),
15
+ "update-dashcard": () => import("./update-dashcard-C8BGZtY7.mjs").then((mod) => mod.default),
16
+ archive: () => import("./archive-mdSqCzVw.mjs").then((mod) => mod.default)
17
+ }
18
+ });
19
+
20
+ //#endregion
21
+ export { dashboard_default as default };
@@ -1,4 +1,4 @@
1
- import { Table } from "./table-C7a5V6Zn.mjs";
1
+ import { Table } from "./table-CkWja2UH.mjs";
2
2
  import { z } from "zod";
3
3
 
4
4
  //#region src/domain/database.ts
@@ -0,0 +1,22 @@
1
+ import { defineCommand } from "citty";
2
+
3
+ //#region src/commands/db/index.ts
4
+ var db_default = defineCommand({
5
+ meta: {
6
+ name: "db",
7
+ description: "Inspect and sync Metabase databases",
8
+ alias: "database"
9
+ },
10
+ subCommands: {
11
+ list: () => import("./list-BJxm0-6m.mjs").then((m) => m.default),
12
+ get: () => import("./get-CgdzDOTX.mjs").then((m) => m.default),
13
+ metadata: () => import("./metadata-D_wFDaCb.mjs").then((m) => m.default),
14
+ schemas: () => import("./schemas-DnGJlmQl.mjs").then((m) => m.default),
15
+ "schema-tables": () => import("./schema-tables-CZr0QT1g.mjs").then((m) => m.default),
16
+ "sync-schema": () => import("./sync-schema-CvXkT9Rg.mjs").then((m) => m.default),
17
+ "rescan-values": () => import("./rescan-values-C3L03Crf.mjs").then((m) => m.default)
18
+ }
19
+ });
20
+
21
+ //#endregion
22
+ export { db_default as default };