@metabase/cli 0.1.8-alpha.drop-workspaces.75fe1d5 → 0.1.9

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 (158) hide show
  1. package/README.md +24 -12
  2. package/dist/{add-collection-CLLtJ4hp.mjs → add-collection-CoP-6FZR.mjs} +5 -5
  3. package/dist/add-collection-EPp89tcs.mjs +10 -0
  4. package/dist/{archive-BiAxoJ1m.mjs → archive-BY8nrgnq.mjs} +4 -4
  5. package/dist/{archive-Dzug49jS.mjs → archive-BeslLaal.mjs} +5 -5
  6. package/dist/{archive-CXZ1Mg97.mjs → archive-Blt0TxxA.mjs} +4 -4
  7. package/dist/{archive-CcXT7XDi.mjs → archive-BxwGVDpd.mjs} +5 -5
  8. package/dist/{archive-BLySelYN.mjs → archive-C17qIvFW.mjs} +4 -4
  9. package/dist/{archive-BxvnYXN2.mjs → archive-CPLXsrzD.mjs} +4 -4
  10. package/dist/auth-CCUDM9Sv.mjs +19 -0
  11. package/dist/{body-CibAG3Gn.mjs → body-2jl-YSxT.mjs} +1 -1
  12. package/dist/{branches-CqYNkMew.mjs → branches-Vlu44J51.mjs} +5 -5
  13. package/dist/{cancel-PLvMQNzN.mjs → cancel-D0aBPUhs.mjs} +4 -4
  14. package/dist/{cancel-task-dnxyQrhZ.mjs → cancel-task-DoL2bqs1.mjs} +5 -5
  15. package/dist/{capabilities-Dj3NgPHg.mjs → capabilities-7L9GVMd_.mjs} +17 -2
  16. package/dist/{card-BtPiKjbB.mjs → card-DnIeMmUn.mjs} +17 -1
  17. package/dist/card-UwczcLjq.mjs +20 -0
  18. package/dist/{cards-DUCwTT1X.mjs → cards-6MTreYAo.mjs} +4 -4
  19. package/dist/cli.mjs +23 -33
  20. package/dist/{collection-B3sPXRLs.mjs → collection-BPTlcFw5.mjs} +8 -2
  21. package/dist/collection-Cexywhlj.mjs +20 -0
  22. package/dist/collection-namespace-BdqQJb7j.mjs +12 -0
  23. package/dist/{create-VB2v6CFw.mjs → create-BWD8H6yw.mjs} +10 -7
  24. package/dist/{create-BGtmOc5Z.mjs → create-BZRA7nPu.mjs} +4 -4
  25. package/dist/{create-Btltf94v.mjs → create-BsOdn1Q1.mjs} +7 -7
  26. package/dist/{create-CrEv9lPi.mjs → create-C_Z3IDrW.mjs} +6 -6
  27. package/dist/{create-Di0_His2.mjs → create-DNYFXAsy.mjs} +4 -4
  28. package/dist/{create-CJ7GFRnZ.mjs → create-DcoF52Kx.mjs} +7 -7
  29. package/dist/{create-branch-DbD4Mr3v.mjs → create-branch-40Xm4DN7.mjs} +5 -5
  30. package/dist/create-dVmIemXi.mjs +52 -0
  31. package/dist/{create-DbD1wgnN.mjs → create-k59K2qf1.mjs} +6 -6
  32. package/dist/{current-task-C8gML78R.mjs → current-task-BN_XEFSX.mjs} +5 -5
  33. package/dist/dashboard-B_CuVbMX.mjs +21 -0
  34. package/dist/{database-_Td7rG4o.mjs → database-Dsv4QBs0.mjs} +19 -9
  35. package/dist/db-DULi5MOr.mjs +22 -0
  36. package/dist/{delete-DnorVsnc.mjs → delete-DEFgs5LE.mjs} +5 -5
  37. package/dist/{delete-runtime-Bo7v-0au.mjs → delete-runtime-DVb-Pkzp.mjs} +1 -1
  38. package/dist/{delete-C_H6NNKT.mjs → delete-tPjicYO4.mjs} +5 -5
  39. package/dist/{delete-table-B-UwOkQ8.mjs → delete-table-CDj19Qn6.mjs} +5 -5
  40. package/dist/{dirty-Q8VNL_QG.mjs → dirty-DGCa6W1F.mjs} +5 -5
  41. package/dist/{eid-CQO-WWqZ.mjs → eid-3v5MAKNA.mjs} +4 -4
  42. package/dist/{error-BYn4eqJH.mjs → error-BndUmcwS.mjs} +1 -1
  43. package/dist/{export-DaTZ6gvj.mjs → export-BIZ-UR_M.mjs} +7 -7
  44. package/dist/field-CfrrLetM.mjs +18 -0
  45. package/dist/{fields-CrFLg4ED.mjs → fields-9lOrO8UH.mjs} +4 -4
  46. package/dist/{get-yM_8b0OQ.mjs → get-6Cj360cH.mjs} +4 -4
  47. package/dist/{get-DljOZz2K.mjs → get-BIH72g0v.mjs} +5 -5
  48. package/dist/{get-DzK1a7SS.mjs → get-BSJN5TwW.mjs} +4 -4
  49. package/dist/{get-C1sugXm_.mjs → get-BYSj7tMP.mjs} +3 -3
  50. package/dist/{get-BSIQndJI.mjs → get-Bk81meka.mjs} +4 -4
  51. package/dist/{get-rQxZzRkA.mjs → get-BpWjLkKT.mjs} +3 -3
  52. package/dist/{get-D188icmF.mjs → get-BuM6QPjZ.mjs} +4 -4
  53. package/dist/{get-BeFkBriz.mjs → get-CHaIVT6Y.mjs} +4 -4
  54. package/dist/{get-Cgdc7hCr.mjs → get-CRa-h69C.mjs} +4 -4
  55. package/dist/{get-C03uSHdF.mjs → get-DFe2WoJ2.mjs} +5 -5
  56. package/dist/{get-BzHRPRpv.mjs → get-DlGlnciR.mjs} +4 -4
  57. package/dist/{get-QoJ4HbKQ.mjs → get-LI2xsRoT.mjs} +4 -4
  58. package/dist/{get-run-Dzu_f6Hi.mjs → get-run-hCZaw8-h.mjs} +5 -5
  59. package/dist/{get-FqlK_kjE.mjs → get-w-WqpjKy.mjs} +5 -5
  60. package/dist/git-sync-BpRstrZo.mjs +28 -0
  61. package/dist/{has-remote-changes-CH6m9DG_.mjs → has-remote-changes-DcpW1_KX.mjs} +5 -5
  62. package/dist/{import-Ct_wFwN3.mjs → import-CTQT1atq.mjs} +7 -7
  63. package/dist/{is-dirty-BZZx74du.mjs → is-dirty-DGrmt1ss.mjs} +4 -4
  64. package/dist/is-dirty-DuWCgrz2.mjs +9 -0
  65. package/dist/{items-DZwlhSEL.mjs → items-Kr0oN2V7.mjs} +5 -5
  66. package/dist/{list-CY2snf4x.mjs → list-Bz2ej0Cl.mjs} +3 -3
  67. package/dist/{list-CgQVYt5R.mjs → list-CCtYVgPN.mjs} +3 -3
  68. package/dist/{list-CQpckqCa.mjs → list-CLvlEVQo.mjs} +4 -4
  69. package/dist/{list-BmaG3xeR.mjs → list-Ccj8-vb5.mjs} +3 -3
  70. package/dist/{list-BYmhSHzh.mjs → list-Cj3v4Lgv.mjs} +4 -4
  71. package/dist/{list-D81pxMKm.mjs → list-Cl_O4_U4.mjs} +4 -4
  72. package/dist/{list-seY6unmL.mjs → list-D2D5Mw1E.mjs} +4 -4
  73. package/dist/{list-B3Ovx70Y.mjs → list-DNmekF2B.mjs} +3 -3
  74. package/dist/{list-CnFLhMYE.mjs → list-DaESiI72.mjs} +3 -3
  75. package/dist/{list-9XlzunAC.mjs → list-DzKKdfCI.mjs} +4 -4
  76. package/dist/{list-DoqLo7A0.mjs → list-jcgK0thu.mjs} +4 -4
  77. package/dist/{list-BGGAF_6C.mjs → list-tklIxo38.mjs} +4 -4
  78. package/dist/{list-BIhaOrA5.mjs → list-zRQsvrH6.mjs} +3 -3
  79. package/dist/{login-DYTNx7yh.mjs → login-BMKBmgeQ.mjs} +4 -4
  80. package/dist/{logout-DZ8y8HOD.mjs → logout-C5pod937.mjs} +3 -3
  81. package/dist/{manifest-B_OfG-Ss.mjs → manifest-Cmu--CG5.mjs} +1 -1
  82. package/dist/measure-BkwFsP44.mjs +19 -0
  83. package/dist/{metadata-HFNA8q0S.mjs → metadata-CG4VZ5NW.mjs} +4 -4
  84. package/dist/{metadata-9C7IqqPO.mjs → metadata-DIEbyQeS.mjs} +5 -5
  85. package/dist/{parse-id-sz7USsM2.mjs → parse-id-Boqc4wn4.mjs} +1 -1
  86. package/dist/{path-CQtJFQoD.mjs → path-ur3NsMFr.mjs} +3 -3
  87. package/dist/{poll-DO11tBiL.mjs → poll-BMjCkDaj.mjs} +1 -1
  88. package/dist/{poll-task-DnzX7GX_.mjs → poll-task-CiRA0ER9.mjs} +2 -2
  89. package/dist/{preflight-B-LRcq3c.mjs → preflight-CSqcIlbX.mjs} +3 -3
  90. package/dist/{query-77r-viQY.mjs → query-B8JzsQ_I.mjs} +6 -6
  91. package/dist/{query-CsN3tsch.mjs → query-CG0rEMS-.mjs} +8 -8
  92. package/dist/{query-result-PoQE05Pe.mjs → query-result-B4kTRid7.mjs} +1 -1
  93. package/dist/{remove-collection-DoUP8olH.mjs → remove-collection-Clwz3EHQ.mjs} +7 -7
  94. package/dist/{rescan-values-B0Aubnud.mjs → rescan-values-DuHBnFjK.mjs} +6 -8
  95. package/dist/run-JXRivkfH.mjs +136 -0
  96. package/dist/{runs-C3t03bls.mjs → runs-FxgbXvax.mjs} +5 -5
  97. package/dist/{runtime-DHJQOqZu.mjs → runtime-Ck8KKQe-.mjs} +3 -3
  98. package/dist/{schema-tables-D7df6z1V.mjs → schema-tables-izDPI4f5.mjs} +4 -4
  99. package/dist/{schemas-DT3v9JRw.mjs → schemas-CyzplnXl.mjs} +4 -4
  100. package/dist/{search-B3EvSZce.mjs → search-BeuoOEQV.mjs} +4 -4
  101. package/dist/segment-ChYmSM0p.mjs +19 -0
  102. package/dist/{set-zEPevfIf.mjs → set-ClzB_5Jk.mjs} +4 -4
  103. package/dist/{setting-fWAwsQKm.mjs → setting-CBJVEx7_.mjs} +3 -3
  104. package/dist/{setup-SjStGgMi.mjs → setup-vKXEUMM7.mjs} +4 -4
  105. package/dist/skills-1Z5Wj7Kp.mjs +18 -0
  106. package/dist/snippet-De70ayL1.mjs +19 -0
  107. package/dist/{stash-CLN-okHt.mjs → stash-DLtVf4_D.mjs} +7 -7
  108. package/dist/{status-CIyVMUXh.mjs → status-AnPzI1f7.mjs} +3 -3
  109. package/dist/{status-B0YQmlXV.mjs → status-DHFYn9kO.mjs} +6 -6
  110. package/dist/{summary-DBhVgNU4.mjs → summary-DDed1LOz.mjs} +4 -4
  111. package/dist/sync-schema-BGQVq2JA.mjs +55 -0
  112. package/dist/table-C_bP2ao-.mjs +19 -0
  113. package/dist/transform-B4RZfm6A.mjs +24 -0
  114. package/dist/{transform-DyJb0bV0.mjs → transform-DyWCoiO-.mjs} +1 -0
  115. package/dist/transform-job-C4pZcrIF.mjs +19 -0
  116. package/dist/{tree-2qvtbIdj.mjs → tree-BlYgJOn9.mjs} +4 -4
  117. package/dist/{update-Cw0oHpsm.mjs → update-B0z-2zqC.mjs} +8 -8
  118. package/dist/{update-B93L5MJR.mjs → update-BHtliIr_.mjs} +5 -5
  119. package/dist/{update-CiIYqtRb.mjs → update-CdfAogO2.mjs} +5 -5
  120. package/dist/{update-CWgm0WZQ.mjs → update-CgOPxKXK.mjs} +11 -8
  121. package/dist/{update-YxMDkgY6.mjs → update-CilTW98H.mjs} +7 -7
  122. package/dist/{update-BA0wgxkx.mjs → update-CoVvsU-I.mjs} +5 -5
  123. package/dist/{update-DWwBv7XP.mjs → update-DBN7yfAk.mjs} +5 -5
  124. package/dist/{update-D5fs9raK.mjs → update-DqSG5_Ie.mjs} +7 -7
  125. package/dist/{update-DdI9epnQ.mjs → update-DykqQLfo.mjs} +8 -8
  126. package/dist/{update-dashcard-BA65Gjah.mjs → update-dashcard-DZ8oV8up.mjs} +5 -5
  127. package/dist/{upgrade-82Zo6-n6.mjs → upgrade-B8sEEQdQ.mjs} +3 -3
  128. package/dist/{uuid-B2xU0Ibp.mjs → uuid-lLVnEoBN.mjs} +3 -3
  129. package/dist/{validate-CqVB_3_p.mjs → validate-B62TRDGV.mjs} +1 -1
  130. package/dist/{validate-query-BUTNK00f.mjs → validate-query-BpiN1CFu.mjs} +2 -2
  131. package/dist/{values-Cs6sJEid.mjs → values-oD72EtRq.mjs} +4 -4
  132. package/dist/{verify-D8wLpHse.mjs → verify-Bg6F0oFN.mjs} +1 -1
  133. package/dist/{wait-CW6jJWmY.mjs → wait-BtzuqQC3.mjs} +6 -6
  134. package/dist/{wait-flags-Dl-xi5yx.mjs → wait-flags-DyFfZeav.mjs} +2 -2
  135. package/package.json +1 -1
  136. package/skill-data/core/SKILL.md +5 -5
  137. package/skill-data/mbql/SKILL.md +94 -29
  138. package/skill-data/mbql/references/operators.md +13 -13
  139. package/skill-data/transform/SKILL.md +9 -8
  140. package/dist/add-collection-CRm-ILtk.mjs +0 -10
  141. package/dist/auth-9zbMAJJT.mjs +0 -19
  142. package/dist/card-pT87DhqA.mjs +0 -20
  143. package/dist/collection-DR2bXpGN.mjs +0 -20
  144. package/dist/create-C9GnQVhD.mjs +0 -44
  145. package/dist/dashboard-D4uKuH7K.mjs +0 -21
  146. package/dist/db-UVZmfVwk.mjs +0 -22
  147. package/dist/field-BYKXbj6M.mjs +0 -18
  148. package/dist/git-sync-CbvqlHaK.mjs +0 -28
  149. package/dist/is-dirty-B2h2xG28.mjs +0 -9
  150. package/dist/measure-RIucuF-O.mjs +0 -19
  151. package/dist/run-CBuzp0Oj.mjs +0 -95
  152. package/dist/segment-CvxcX3iJ.mjs +0 -19
  153. package/dist/skills-zSDzVgBI.mjs +0 -18
  154. package/dist/snippet-DTwXkIqY.mjs +0 -19
  155. package/dist/sync-schema-CvRI0jtk.mjs +0 -43
  156. package/dist/table-CTTjXzo3.mjs +0 -19
  157. package/dist/transform-CWNrL2gg.mjs +0 -24
  158. package/dist/transform-job-C--GBO9Q.mjs +0 -19
package/README.md CHANGED
@@ -152,18 +152,20 @@ mb transform delete 1 --yes
152
152
 
153
153
  ### `mb transform run <id>`
154
154
 
155
- Trigger a manual run. Returns `{message, run_id}` and exits immediately. Pass `--wait` to poll until the run reaches a terminal status (`succeeded`, `failed`, `timeout`, `canceled`); the `final` field on the result holds the polled run state, and the command exits 1 if the final status is anything but `succeeded`.
155
+ Trigger a manual run. Returns `{message, run_id}` and exits immediately. Pass `--wait` to poll until the run reaches a terminal status (`succeeded`, `failed`, `timeout`, `canceled`); the `final` field on the result holds the polled run state, and the command exits 1 if the final status is anything but `succeeded`. Pass `--sync` to additionally wait until the run's output table is registered and surface its `target_table_id`, so you can build MBQL cards against it — the run registers the table itself, so no separate `db sync-schema` is needed; `--sync` implies `--wait`.
156
156
 
157
157
  ```sh
158
158
  mb transform run 1
159
159
  mb transform run 1 --wait --json
160
+ mb transform run 1 --sync --json
160
161
  ```
161
162
 
162
- | Flag | Description |
163
- | ----------------- | ----------------------------------------------------------- |
164
- | `--wait` | Poll until the run reaches a terminal status. |
165
- | `--timeout <ms>` | Polling timeout in ms (default 600000). Used with `--wait`. |
166
- | `--interval <ms>` | Polling interval in ms (default 2000). Used with `--wait`. |
163
+ | Flag | Description |
164
+ | ----------------- | ---------------------------------------------------------------------------------------------------------------------- |
165
+ | `--wait` | Poll until the run reaches a terminal status. |
166
+ | `--sync` | After a successful run, wait until the output table is registered and return its `target_table_id` (implies `--wait`). |
167
+ | `--timeout <ms>` | Polling timeout in ms (default 600000). Used with `--wait`. |
168
+ | `--interval <ms>` | Polling interval in ms (default 2000). Used with `--wait`. |
167
169
 
168
170
  ### `mb transform cancel <id>`
169
171
 
@@ -303,13 +305,19 @@ mb db schema-tables 1 analytics --json
303
305
 
304
306
  ### `mb db sync-schema <id>`
305
307
 
306
- Trigger a manual schema sync (`POST /api/database/:id/sync_schema`). Returns `{ id, status: "ok" }` once the sync has been queued; the actual work happens asynchronously on the server.
308
+ Trigger a manual schema sync (`POST /api/database/:id/sync_schema`). Returns `{ id, status: "ok" }` once the sync has been queued; the actual work happens asynchronously on the server. Pass `--wait` to poll the database until its `initial_sync_status` reports `complete` (a database that has already finished its initial sync returns at once). To wait for a specific newly-materialized transform table to register, prefer `mb transform run <id> --sync`.
307
309
 
308
310
  ```sh
309
311
  mb db sync-schema 1
310
- mb db sync-schema 1 --json
312
+ mb db sync-schema 1 --wait --json
311
313
  ```
312
314
 
315
+ | Flag | Description |
316
+ | ----------------- | ----------------------------------------------------------- |
317
+ | `--wait` | Poll until `initial_sync_status` reports `complete`. |
318
+ | `--timeout <ms>` | Polling timeout in ms (default 600000). Used with `--wait`. |
319
+ | `--interval <ms>` | Polling interval in ms (default 2000). Used with `--wait`. |
320
+
313
321
  ### `mb db rescan-values <id>`
314
322
 
315
323
  Trigger a rescan of cached field values (`POST /api/database/:id/rescan_values`). Returns `{ id, status: "ok" }` once the rescan has been queued.
@@ -848,12 +856,14 @@ Create a collection from a JSON spec. The body accepts the same fields as `POST
848
856
  cat collection.json | mb collection create
849
857
  mb collection create --file collection.json
850
858
  mb collection create --body '{"name":"My Collection","parent_id":4}'
859
+ mb collection create --body '{"name":"ETL"}' --namespace transforms
851
860
  ```
852
861
 
853
- | Flag | Description |
854
- | --------------- | --------------------------------------------------- |
855
- | `--body <json>` | Inline JSON body. |
856
- | `--file <path>` | Path to JSON body file. Use `-` to read from stdin. |
862
+ | Flag | Description |
863
+ | ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
864
+ | `--body <json>` | Inline JSON body. |
865
+ | `--file <path>` | Path to JSON body file. Use `-` to read from stdin. |
866
+ | `--namespace <ns>` | Collection namespace (`transforms`, `snippets`, `analytics`, `shared-tenant-collection`, `tenant-specific`). Omit for a normal collection; required for a collection a transform's `collection_id` can point at. |
857
867
 
858
868
  ### `mb collection archive <id>`
859
869
 
@@ -1122,6 +1132,8 @@ mb eid --file translate.json
1122
1132
  mb eid --body '{"entity_ids":{"card":["abc123XYZ"]}}'
1123
1133
  ```
1124
1134
 
1135
+ Entity ids are NanoIDs that can start with `-`, which the positional `<eids>` form misreads as a flag (shell quoting doesn't help — the leading `-` survives into argv). For an id that may start with `-`, pass it via `--body`, where the id is a JSON string value immune to flag parsing: `mb eid --body '{"entity_ids":{"card":["-abc123XYZ"]}}'`.
1136
+
1125
1137
  | Arg / Flag | Description |
1126
1138
  | ---------------- | ------------------------------------------------------------------------------ |
1127
1139
  | `<eids>` | Comma-separated EIDs positional. Used with `--model`. |
@@ -1,8 +1,8 @@
1
- import { connectionFlags, outputFlags, profileFlag } from "./error-BYn4eqJH.mjs";
2
- import { defineMetabaseCommand } from "./runtime-DHJQOqZu.mjs";
3
- import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
4
- import { parseId } from "./parse-id-sz7USsM2.mjs";
5
- import { REMOTE_SYNC_PATHS } from "./poll-task-DnzX7GX_.mjs";
1
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BndUmcwS.mjs";
2
+ import { defineMetabaseCommand } from "./runtime-Ck8KKQe-.mjs";
3
+ import { renderSummary } from "./capabilities-7L9GVMd_.mjs";
4
+ import { parseId } from "./parse-id-Boqc4wn4.mjs";
5
+ import { REMOTE_SYNC_PATHS } from "./poll-task-CiRA0ER9.mjs";
6
6
  import { z } from "zod";
7
7
 
8
8
  //#region src/commands/git-sync/add-collection.ts
@@ -0,0 +1,10 @@
1
+ import "./command-augment-BH9qgQ5u.mjs";
2
+ import "./error-BndUmcwS.mjs";
3
+ import "./runtime-Ck8KKQe-.mjs";
4
+ import "./capabilities-7L9GVMd_.mjs";
5
+ import "./parse-id-Boqc4wn4.mjs";
6
+ import "./poll-BMjCkDaj.mjs";
7
+ import "./poll-task-CiRA0ER9.mjs";
8
+ import { SyncSettingsUpdateResult, add_collection_default, setCollectionRemoteSynced, syncSettingsUpdateView } from "./add-collection-CoP-6FZR.mjs";
9
+
10
+ export { add_collection_default as default };
@@ -1,8 +1,8 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-BYn4eqJH.mjs";
3
- import { defineMetabaseCommand } from "./runtime-DHJQOqZu.mjs";
4
- import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
5
- import { parseId } from "./parse-id-sz7USsM2.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BndUmcwS.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-Ck8KKQe-.mjs";
4
+ import { renderSummary } from "./capabilities-7L9GVMd_.mjs";
5
+ import { parseId } from "./parse-id-Boqc4wn4.mjs";
6
6
  import { Dashboard, dashboardView } from "./dashboard-FY5UzJ_Z.mjs";
7
7
 
8
8
  //#region src/commands/dashboard/archive.ts
@@ -1,9 +1,9 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-BYn4eqJH.mjs";
3
- import { defineMetabaseCommand } from "./runtime-DHJQOqZu.mjs";
4
- import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
5
- import { parseId } from "./parse-id-sz7USsM2.mjs";
6
- import { Collection, collectionView } from "./collection-B3sPXRLs.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BndUmcwS.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-Ck8KKQe-.mjs";
4
+ import { renderSummary } from "./capabilities-7L9GVMd_.mjs";
5
+ import { parseId } from "./parse-id-Boqc4wn4.mjs";
6
+ import { Collection, collectionView } from "./collection-BPTlcFw5.mjs";
7
7
 
8
8
  //#region src/commands/collection/archive.ts
9
9
  var archive_default = defineMetabaseCommand({
@@ -1,8 +1,8 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-BYn4eqJH.mjs";
3
- import { defineMetabaseCommand } from "./runtime-DHJQOqZu.mjs";
4
- import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
5
- import { parseId } from "./parse-id-sz7USsM2.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BndUmcwS.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-Ck8KKQe-.mjs";
4
+ import { renderSummary } from "./capabilities-7L9GVMd_.mjs";
5
+ import { parseId } from "./parse-id-Boqc4wn4.mjs";
6
6
  import { Measure, measureView } from "./measure-ClESGxIb.mjs";
7
7
  import { revisionMessageFlag } from "./revision-message-flag-WmsIzUOM.mjs";
8
8
 
@@ -1,10 +1,10 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-BYn4eqJH.mjs";
3
- import { defineMetabaseCommand } from "./runtime-DHJQOqZu.mjs";
4
- import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BndUmcwS.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-Ck8KKQe-.mjs";
4
+ import { renderSummary } from "./capabilities-7L9GVMd_.mjs";
5
5
  import "./field-MGxpNQUH.mjs";
6
- import { Card, cardView } from "./card-BtPiKjbB.mjs";
7
- import { parseId } from "./parse-id-sz7USsM2.mjs";
6
+ import { Card, cardView } from "./card-DnIeMmUn.mjs";
7
+ import { parseId } from "./parse-id-Boqc4wn4.mjs";
8
8
 
9
9
  //#region src/commands/card/archive.ts
10
10
  var archive_default = defineMetabaseCommand({
@@ -1,8 +1,8 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-BYn4eqJH.mjs";
3
- import { defineMetabaseCommand } from "./runtime-DHJQOqZu.mjs";
4
- import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
5
- import { parseId } from "./parse-id-sz7USsM2.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BndUmcwS.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-Ck8KKQe-.mjs";
4
+ import { renderSummary } from "./capabilities-7L9GVMd_.mjs";
5
+ import { parseId } from "./parse-id-Boqc4wn4.mjs";
6
6
  import { revisionMessageFlag } from "./revision-message-flag-WmsIzUOM.mjs";
7
7
  import { Segment, segmentView } from "./segment-Be2v4ilr.mjs";
8
8
 
@@ -1,8 +1,8 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-BYn4eqJH.mjs";
3
- import { defineMetabaseCommand } from "./runtime-DHJQOqZu.mjs";
4
- import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
5
- import { parseId } from "./parse-id-sz7USsM2.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BndUmcwS.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-Ck8KKQe-.mjs";
4
+ import { renderSummary } from "./capabilities-7L9GVMd_.mjs";
5
+ import { parseId } from "./parse-id-Boqc4wn4.mjs";
6
6
  import { Snippet, snippetView } from "./snippet-xh42tYly.mjs";
7
7
 
8
8
  //#region src/commands/snippet/archive.ts
@@ -0,0 +1,19 @@
1
+ import { defineCommand } from "citty";
2
+
3
+ //#region src/commands/auth/index.ts
4
+ var auth_default = defineCommand({
5
+ meta: {
6
+ name: "auth",
7
+ description: "Authenticate against a Metabase instance"
8
+ },
9
+ default: "login",
10
+ subCommands: {
11
+ login: () => import("./login-BMKBmgeQ.mjs").then((m) => m.default),
12
+ status: () => import("./status-AnPzI1f7.mjs").then((m) => m.default),
13
+ list: () => import("./list-D2D5Mw1E.mjs").then((m) => m.default),
14
+ logout: () => import("./logout-C5pod937.mjs").then((m) => m.default)
15
+ }
16
+ });
17
+
18
+ //#endregion
19
+ export { auth_default as default };
@@ -1,5 +1,5 @@
1
1
  import { ConfigError } from "./command-augment-BH9qgQ5u.mjs";
2
- import { parseJson } from "./runtime-DHJQOqZu.mjs";
2
+ import { parseJson } from "./runtime-Ck8KKQe-.mjs";
3
3
  import { DEFAULT_FLAG_NAME, readInput } from "./input-xewHccej.mjs";
4
4
 
5
5
  //#region src/runtime/body.ts
@@ -1,9 +1,9 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, listEnvelopeSchema, outputFlags, profileFlag, wrapList } from "./error-BYn4eqJH.mjs";
3
- import { defineMetabaseCommand } from "./runtime-DHJQOqZu.mjs";
4
- import { renderList } from "./capabilities-Dj3NgPHg.mjs";
5
- import { REMOTE_SYNC_PATHS } from "./poll-task-DnzX7GX_.mjs";
6
- import "./poll-DO11tBiL.mjs";
2
+ import { connectionFlags, listEnvelopeSchema, outputFlags, profileFlag, wrapList } from "./error-BndUmcwS.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-Ck8KKQe-.mjs";
4
+ import { renderList } from "./capabilities-7L9GVMd_.mjs";
5
+ import "./poll-BMjCkDaj.mjs";
6
+ import { REMOTE_SYNC_PATHS } from "./poll-task-CiRA0ER9.mjs";
7
7
  import { z } from "zod";
8
8
 
9
9
  //#region src/commands/git-sync/branches.ts
@@ -1,8 +1,8 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-BYn4eqJH.mjs";
3
- import { defineMetabaseCommand } from "./runtime-DHJQOqZu.mjs";
4
- import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
5
- import { parseId } from "./parse-id-sz7USsM2.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BndUmcwS.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-Ck8KKQe-.mjs";
4
+ import { renderSummary } from "./capabilities-7L9GVMd_.mjs";
5
+ import { parseId } from "./parse-id-Boqc4wn4.mjs";
6
6
  import { z } from "zod";
7
7
 
8
8
  //#region src/commands/transform/cancel.ts
@@ -1,9 +1,9 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-BYn4eqJH.mjs";
3
- import { defineMetabaseCommand } from "./runtime-DHJQOqZu.mjs";
4
- import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
5
- import { REMOTE_SYNC_PATHS, SyncTask, syncTaskView } from "./poll-task-DnzX7GX_.mjs";
6
- import "./poll-DO11tBiL.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BndUmcwS.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-Ck8KKQe-.mjs";
4
+ import { renderSummary } from "./capabilities-7L9GVMd_.mjs";
5
+ import "./poll-BMjCkDaj.mjs";
6
+ import { REMOTE_SYNC_PATHS, SyncTask, syncTaskView } from "./poll-task-CiRA0ER9.mjs";
7
7
 
8
8
  //#region src/commands/git-sync/cancel-task.ts
9
9
  var cancel_task_default = defineMetabaseCommand({
@@ -178,7 +178,7 @@ function renderList(envelope, view, opts) {
178
178
  if (capped.truncated !== void 0) warn(listTruncationNotice(capped.truncated.bytes));
179
179
  }
180
180
  function renderProjectedTable(envelope, view, fields, maxBytes) {
181
- const projectedItems = envelope.data.map((item) => applyProjection(item, view, false, fields));
181
+ const projectedItems = projectListItems(envelope.data, view, false, fields);
182
182
  const capped = capListEnvelope({
183
183
  ...envelope,
184
184
  data: projectedItems
@@ -187,8 +187,23 @@ function renderProjectedTable(envelope, view, fields, maxBytes) {
187
187
  process.stdout.write(renderRows(fields, rows) + "\n");
188
188
  if (capped.truncated !== void 0) warn(listTruncationNotice(capped.truncated.bytes));
189
189
  }
190
+ function projectListItems(items, view, full, fields) {
191
+ try {
192
+ return items.map((item) => applyProjection(item, view, full, fields));
193
+ } catch (error) {
194
+ throw enrichListFieldPathError(error, fields);
195
+ }
196
+ }
197
+ function enrichListFieldPathError(error, fields) {
198
+ if (fields === void 0 || !(error instanceof ConfigError) || !error.message.startsWith("unknown field path")) return error;
199
+ const prefix = "data.";
200
+ const culprit = fields.find((field) => field === "data" || field.startsWith(prefix));
201
+ if (culprit === void 0) return error;
202
+ const suggestion = culprit.startsWith(prefix) ? culprit.slice(prefix.length) : "<field>";
203
+ return new ConfigError(`${error.message} — on list commands --fields paths are relative to each item in \`data\`, not the envelope. Drop the \`data.\` prefix (e.g. use \`${suggestion}\` instead of \`${culprit}\`).`);
204
+ }
190
205
  function renderJsonEnvelope(envelope, view, opts) {
191
- const projectedItems = envelope.data.map((item) => applyProjection(item, view, opts.full, opts.fields));
206
+ const projectedItems = projectListItems(envelope.data, view, opts.full, opts.fields);
192
207
  const projectedEnvelope = {
193
208
  ...envelope,
194
209
  data: projectedItems
@@ -120,8 +120,24 @@ const CardQueryResult = z.object({
120
120
  error: z.string().nullable().optional(),
121
121
  error_type: z.string().nullable().optional()
122
122
  }).loose();
123
+ const QueryColumnCompact = QueryColumn.pick({
124
+ name: true,
125
+ display_name: true,
126
+ base_type: true,
127
+ semantic_type: true
128
+ }).strip();
129
+ const CardQueryDataCompact = z.object({
130
+ rows: z.array(z.unknown()),
131
+ cols: z.array(QueryColumnCompact)
132
+ }).strip();
133
+ const CardQueryResultCompact = CardQueryResult.pick({
134
+ status: true,
135
+ row_count: true,
136
+ error: true,
137
+ error_type: true
138
+ }).strip().extend({ data: CardQueryDataCompact.optional() });
123
139
  const cardQueryView = {
124
- compactPick: CardQueryResult,
140
+ compactPick: CardQueryResultCompact,
125
141
  tableColumns: [{
126
142
  key: "status",
127
143
  label: "Status"
@@ -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-Cj3v4Lgv.mjs").then((mod) => mod.default),
11
+ get: () => import("./get-BIH72g0v.mjs").then((mod) => mod.default),
12
+ query: () => import("./query-B8JzsQ_I.mjs").then((mod) => mod.default),
13
+ create: () => import("./create-BsOdn1Q1.mjs").then((mod) => mod.default),
14
+ update: () => import("./update-DykqQLfo.mjs").then((mod) => mod.default),
15
+ archive: () => import("./archive-BxwGVDpd.mjs").then((mod) => mod.default)
16
+ }
17
+ });
18
+
19
+ //#endregion
20
+ export { card_default as default };
@@ -1,8 +1,8 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, listEnvelopeSchema, outputFlags, profileFlag, wrapList } from "./error-BYn4eqJH.mjs";
3
- import { defineMetabaseCommand } from "./runtime-DHJQOqZu.mjs";
4
- import { renderList } from "./capabilities-Dj3NgPHg.mjs";
5
- import { parseId } from "./parse-id-sz7USsM2.mjs";
2
+ import { connectionFlags, listEnvelopeSchema, outputFlags, profileFlag, wrapList } from "./error-BndUmcwS.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-Ck8KKQe-.mjs";
4
+ import { renderList } from "./capabilities-7L9GVMd_.mjs";
5
+ import { parseId } from "./parse-id-Boqc4wn4.mjs";
6
6
  import { DashboardDetail, DashcardCompact, dashcardView } from "./dashboard-FY5UzJ_Z.mjs";
7
7
 
8
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-BYn4eqJH.mjs";
3
+ import { connectionFlags, outputFlags, package_default, profileFlag, reportError } from "./error-BndUmcwS.mjs";
4
4
  import { defineCommand, renderUsage, runMain } from "citty";
5
5
 
6
6
  //#region src/commands/global-flags.ts
@@ -58,28 +58,28 @@ const main = defineCommand({
58
58
  description: package_default.description
59
59
  },
60
60
  subCommands: {
61
- auth: () => import("./auth-9zbMAJJT.mjs").then((mod) => mod.default),
62
- db: () => import("./db-UVZmfVwk.mjs").then((mod) => mod.default),
63
- table: () => import("./table-CTTjXzo3.mjs").then((mod) => mod.default),
64
- field: () => import("./field-BYKXbj6M.mjs").then((mod) => mod.default),
65
- card: () => import("./card-pT87DhqA.mjs").then((mod) => mod.default),
66
- dashboard: () => import("./dashboard-D4uKuH7K.mjs").then((mod) => mod.default),
67
- collection: () => import("./collection-DR2bXpGN.mjs").then((mod) => mod.default),
68
- transform: () => import("./transform-CWNrL2gg.mjs").then((mod) => mod.default),
69
- "transform-job": () => import("./transform-job-C--GBO9Q.mjs").then((mod) => mod.default),
70
- setting: () => import("./setting-fWAwsQKm.mjs").then((mod) => mod.default),
71
- search: () => import("./search-B3EvSZce.mjs").then((mod) => mod.default),
72
- "git-sync": () => import("./git-sync-CbvqlHaK.mjs").then((mod) => mod.default),
73
- setup: () => import("./setup-SjStGgMi.mjs").then((mod) => mod.default),
74
- snippet: () => import("./snippet-DTwXkIqY.mjs").then((mod) => mod.default),
75
- segment: () => import("./segment-CvxcX3iJ.mjs").then((mod) => mod.default),
76
- measure: () => import("./measure-RIucuF-O.mjs").then((mod) => mod.default),
77
- eid: () => import("./eid-CQO-WWqZ.mjs").then((mod) => mod.default),
78
- query: () => import("./query-CsN3tsch.mjs").then((mod) => mod.default),
79
- uuid: () => import("./uuid-B2xU0Ibp.mjs").then((mod) => mod.default),
80
- upgrade: () => import("./upgrade-82Zo6-n6.mjs").then((mod) => mod.default),
81
- skills: () => import("./skills-zSDzVgBI.mjs").then((mod) => mod.default),
82
- __manifest: () => import("./manifest-B_OfG-Ss.mjs").then((mod) => mod.createManifestCommand(main))
61
+ auth: () => import("./auth-CCUDM9Sv.mjs").then((mod) => mod.default),
62
+ db: () => import("./db-DULi5MOr.mjs").then((mod) => mod.default),
63
+ table: () => import("./table-C_bP2ao-.mjs").then((mod) => mod.default),
64
+ field: () => import("./field-CfrrLetM.mjs").then((mod) => mod.default),
65
+ card: () => import("./card-UwczcLjq.mjs").then((mod) => mod.default),
66
+ dashboard: () => import("./dashboard-B_CuVbMX.mjs").then((mod) => mod.default),
67
+ collection: () => import("./collection-Cexywhlj.mjs").then((mod) => mod.default),
68
+ transform: () => import("./transform-B4RZfm6A.mjs").then((mod) => mod.default),
69
+ "transform-job": () => import("./transform-job-C4pZcrIF.mjs").then((mod) => mod.default),
70
+ setting: () => import("./setting-CBJVEx7_.mjs").then((mod) => mod.default),
71
+ search: () => import("./search-BeuoOEQV.mjs").then((mod) => mod.default),
72
+ "git-sync": () => import("./git-sync-BpRstrZo.mjs").then((mod) => mod.default),
73
+ setup: () => import("./setup-vKXEUMM7.mjs").then((mod) => mod.default),
74
+ snippet: () => import("./snippet-De70ayL1.mjs").then((mod) => mod.default),
75
+ segment: () => import("./segment-ChYmSM0p.mjs").then((mod) => mod.default),
76
+ measure: () => import("./measure-BkwFsP44.mjs").then((mod) => mod.default),
77
+ eid: () => import("./eid-3v5MAKNA.mjs").then((mod) => mod.default),
78
+ query: () => import("./query-CG0rEMS-.mjs").then((mod) => mod.default),
79
+ uuid: () => import("./uuid-lLVnEoBN.mjs").then((mod) => mod.default),
80
+ upgrade: () => import("./upgrade-B8sEEQdQ.mjs").then((mod) => mod.default),
81
+ skills: () => import("./skills-1Z5Wj7Kp.mjs").then((mod) => mod.default),
82
+ __manifest: () => import("./manifest-Cmu--CG5.mjs").then((mod) => mod.createManifestCommand(main))
83
83
  }
84
84
  });
85
85
  var main_default = main;
@@ -96,7 +96,6 @@ const OPTIONS_HEADER = "OPTIONS";
96
96
  const LINE_PREFIX = " ";
97
97
  const COLUMN_GAP = " ";
98
98
  const COMMAND_PLACEHOLDER = "<command> [options]";
99
- const MANIFEST_COMMAND = "__manifest";
100
99
  const CLI_NAME = "mb";
101
100
  const HELP_FLAG_SPEC = "-h, --help";
102
101
  const HELP_FLAG_DESCRIPTION = "Show help for this command";
@@ -110,7 +109,6 @@ async function showUsage(cmd, parent, breadcrumb) {
110
109
  const cittyName = parentMeta?.name ? `${parentMeta.name} ${cmdName}` : cmdName;
111
110
  const hasSubCommands = Boolean(cmd.subCommands);
112
111
  const isRoot = parent === void 0 && hasSubCommands;
113
- const isManifest = cmdName === MANIFEST_COMMAND;
114
112
  const augment = getMetabaseAugment(cmd);
115
113
  const details = augment?.details ?? null;
116
114
  const examples = augment?.examples ?? [];
@@ -123,7 +121,6 @@ async function showUsage(cmd, parent, breadcrumb) {
123
121
  const sections = [body];
124
122
  if (examples.length > 0) sections.push(renderExamples(examples));
125
123
  if (isRoot) sections.push(GETTING_STARTED_HINT);
126
- if (!isManifest) sections.push(renderSchemaHint());
127
124
  process.stdout.write(sections.join("\n\n") + "\n");
128
125
  }
129
126
  function transformBody(lines, rewrite) {
@@ -192,13 +189,6 @@ function renderExamples(examples) {
192
189
  ...examples.map((example) => `${LINE_PREFIX}${example}`)
193
190
  ].join("\n");
194
191
  }
195
- function renderSchemaHint() {
196
- return [
197
- "SCHEMA",
198
- "",
199
- `${LINE_PREFIX}${CLI_NAME} ${MANIFEST_COMMAND} # machine-readable command manifest (flags, output, examples)`
200
- ].join("\n");
201
- }
202
192
  async function walkCommandPath(root, rawArgs) {
203
193
  const rootMeta = await resolveCitty(root.meta);
204
194
  const segments = rootMeta?.name === void 0 ? [] : [rootMeta.name];
@@ -11,7 +11,13 @@ const CollectionType = z.enum([
11
11
  "library-metrics",
12
12
  "tenant-specific-root-collection"
13
13
  ]);
14
- const CollectionNamespace = z.string().min(1);
14
+ const CollectionNamespace = z.enum([
15
+ "transforms",
16
+ "snippets",
17
+ "analytics",
18
+ "shared-tenant-collection",
19
+ "tenant-specific"
20
+ ]);
15
21
  const COLLECTION_ITEM_FILTER_MODELS = [
16
22
  "card",
17
23
  "dataset",
@@ -160,4 +166,4 @@ const CollectionCreateInput = z.object({
160
166
  }).loose();
161
167
 
162
168
  //#endregion
163
- export { COLLECTION_ITEM_FILTER_MODELS, COLLECTION_PINNED_STATES, Collection, CollectionCompact, CollectionCreateInput, CollectionItem, CollectionItemCompact, CollectionItemFilterModel, CollectionPinnedState, CollectionTreeNode, collectionItemView, collectionView };
169
+ export { COLLECTION_ITEM_FILTER_MODELS, COLLECTION_PINNED_STATES, Collection, CollectionCompact, CollectionCreateInput, CollectionItem, CollectionItemCompact, CollectionItemFilterModel, CollectionNamespace, CollectionPinnedState, CollectionTreeNode, collectionItemView, collectionView };
@@ -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-jcgK0thu.mjs").then((mod) => mod.default),
11
+ get: () => import("./get-Bk81meka.mjs").then((mod) => mod.default),
12
+ items: () => import("./items-Kr0oN2V7.mjs").then((mod) => mod.default),
13
+ tree: () => import("./tree-BlYgJOn9.mjs").then((mod) => mod.default),
14
+ create: () => import("./create-dVmIemXi.mjs").then((mod) => mod.default),
15
+ archive: () => import("./archive-BeslLaal.mjs").then((mod) => mod.default)
16
+ }
17
+ });
18
+
19
+ //#endregion
20
+ export { collection_default as default };
@@ -0,0 +1,12 @@
1
+ import { ConfigError } from "./command-augment-BH9qgQ5u.mjs";
2
+ import { HttpError } from "./runtime-Ck8KKQe-.mjs";
3
+
4
+ //#region src/commands/transform/collection-namespace.ts
5
+ const TRANSFORMS_NAMESPACE_HINT = "transforms can only be filed in a :transforms-namespace collection. Create one with `mb collection create --body '{\"name\":\"…\"}' --namespace transforms` and pass its id as collection_id, or omit collection_id to leave the transform uncollected.";
6
+ function enrichTransformCollectionError(error) {
7
+ if (error instanceof HttpError && error.status === 400 && /:transforms namespace/i.test(error.message)) return new ConfigError(`${error.message} — ${TRANSFORMS_NAMESPACE_HINT}`);
8
+ return error;
9
+ }
10
+
11
+ //#endregion
12
+ export { enrichTransformCollectionError };
@@ -1,13 +1,14 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-BYn4eqJH.mjs";
3
- import { defineMetabaseCommand } from "./runtime-DHJQOqZu.mjs";
4
- import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BndUmcwS.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-Ck8KKQe-.mjs";
4
+ import { renderSummary } from "./capabilities-7L9GVMd_.mjs";
5
5
  import "./input-xewHccej.mjs";
6
- import { readBody } from "./body-CibAG3Gn.mjs";
6
+ import { readBody } from "./body-2jl-YSxT.mjs";
7
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";
8
+ import "./validate-B62TRDGV.mjs";
9
+ import { TRANSFORM_SOURCE_QUERY_LABELS, preflightMbql5Query, skipValidateFlag } from "./validate-query-BpiN1CFu.mjs";
10
+ import { Transform, TransformCreateInput, transformView } from "./transform-DyWCoiO-.mjs";
11
+ import { enrichTransformCollectionError } from "./collection-namespace-BdqQJb7j.mjs";
11
12
 
12
13
  //#region src/commands/transform/create.ts
13
14
  var create_default = defineMetabaseCommand({
@@ -40,6 +41,8 @@ var create_default = defineMetabaseCommand({
40
41
  const created = await client.requestParsed(Transform, "/api/transform", {
41
42
  method: "POST",
42
43
  body
44
+ }).catch((error) => {
45
+ throw enrichTransformCollectionError(error);
43
46
  });
44
47
  renderSummary(created, transformView, `Created transform ${created.id} "${created.name}".`, ctx);
45
48
  }
@@ -1,9 +1,9 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-BYn4eqJH.mjs";
3
- import { defineMetabaseCommand } from "./runtime-DHJQOqZu.mjs";
4
- import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BndUmcwS.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-Ck8KKQe-.mjs";
4
+ import { renderSummary } from "./capabilities-7L9GVMd_.mjs";
5
5
  import "./input-xewHccej.mjs";
6
- import { readBody } from "./body-CibAG3Gn.mjs";
6
+ import { readBody } from "./body-2jl-YSxT.mjs";
7
7
  import { bodyInputFlags } from "./body-flags-D78h_-Ua.mjs";
8
8
  import { Snippet, SnippetCreateInput, snippetView } from "./snippet-xh42tYly.mjs";
9
9
 
@@ -1,14 +1,14 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-BYn4eqJH.mjs";
3
- import { defineMetabaseCommand } from "./runtime-DHJQOqZu.mjs";
4
- import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BndUmcwS.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-Ck8KKQe-.mjs";
4
+ import { renderSummary } from "./capabilities-7L9GVMd_.mjs";
5
5
  import "./input-xewHccej.mjs";
6
6
  import "./field-MGxpNQUH.mjs";
7
- import { Card, CardCreateInput, cardView } from "./card-BtPiKjbB.mjs";
8
- import { readBody } from "./body-CibAG3Gn.mjs";
7
+ import { Card, CardCreateInput, cardView } from "./card-DnIeMmUn.mjs";
8
+ import { readBody } from "./body-2jl-YSxT.mjs";
9
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";
10
+ import "./validate-B62TRDGV.mjs";
11
+ import { CARD_DATASET_QUERY_LABELS, preflightMbql5Query, skipValidateFlag } from "./validate-query-BpiN1CFu.mjs";
12
12
 
13
13
  //#region src/commands/card/create.ts
14
14
  var create_default = defineMetabaseCommand({
@@ -1,12 +1,12 @@
1
1
  import "./command-augment-BH9qgQ5u.mjs";
2
- import { connectionFlags, outputFlags, profileFlag } from "./error-BYn4eqJH.mjs";
3
- import { defineMetabaseCommand } from "./runtime-DHJQOqZu.mjs";
4
- import { renderSummary } from "./capabilities-Dj3NgPHg.mjs";
2
+ import { connectionFlags, outputFlags, profileFlag } from "./error-BndUmcwS.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-Ck8KKQe-.mjs";
4
+ import { renderSummary } from "./capabilities-7L9GVMd_.mjs";
5
5
  import "./input-xewHccej.mjs";
6
- import { readBody } from "./body-CibAG3Gn.mjs";
6
+ import { readBody } from "./body-2jl-YSxT.mjs";
7
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";
8
+ import "./validate-B62TRDGV.mjs";
9
+ import { SEGMENT_DEFINITION_LABELS, preflightMbql5Query, skipValidateFlag } from "./validate-query-BpiN1CFu.mjs";
10
10
  import { Segment, SegmentCreateInput, segmentView } from "./segment-Be2v4ilr.mjs";
11
11
 
12
12
  //#region src/commands/segment/create.ts