@metabase/cli 0.2.0 → 0.2.1

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 (186) hide show
  1. package/README.md +151 -0
  2. package/dist/add-collection-C8ZTPlIE.mjs +9 -0
  3. package/dist/{add-collection-BTSGp4f9.mjs → add-collection-CUBn11d4.mjs} +4 -4
  4. package/dist/{append-DY1-O789.mjs → append-BgDaYJW9.mjs} +5 -5
  5. package/dist/{archive-CJ9rElKn.mjs → archive-BCPA0HhV.mjs} +3 -3
  6. package/dist/{archive-CWtUzlHO.mjs → archive-BM9HjJHQ.mjs} +3 -3
  7. package/dist/{archive-DOa1u1aJ.mjs → archive-BZpXnQSu.mjs} +3 -3
  8. package/dist/{archive-w6TX-zEk.mjs → archive-BncW2dGw.mjs} +3 -3
  9. package/dist/archive-Bv59HYsU.mjs +38 -0
  10. package/dist/{archive-DCPw3df6.mjs → archive-Czzktgho.mjs} +3 -3
  11. package/dist/{archive-BOEEMrYL.mjs → archive-DFCu5hVG.mjs} +3 -3
  12. package/dist/archive-EoYl-lS-.mjs +38 -0
  13. package/dist/{archive-pHsa4dL0.mjs → archive-Oh1iZu2y.mjs} +3 -3
  14. package/dist/{auth-BrQtY0pO.mjs → auth-hgAnMUfi.mjs} +4 -4
  15. package/dist/{body-C1_AaTS4.mjs → body-DKcQw7G5.mjs} +3 -3
  16. package/dist/{branches-BsBzaGIf.mjs → branches-CCmtr3W8.mjs} +4 -4
  17. package/dist/{cancel-BNM0yyx-.mjs → cancel-72y10-Rg.mjs} +3 -3
  18. package/dist/{cancel-task-Bggzn4JL.mjs → cancel-task-CGwdz91O.mjs} +4 -4
  19. package/dist/{capabilities-DrDJo_ng.mjs → capabilities-DOTcPraV.mjs} +1 -1
  20. package/dist/{card-DHCcmpgr.mjs → card-Ct-q_C4S.mjs} +6 -6
  21. package/dist/{cards-D0hvA13L.mjs → cards-CYSyvN7Z.mjs} +3 -3
  22. package/dist/cli.mjs +28 -26
  23. package/dist/{collection-D0O9gp3S.mjs → collection-K82kJWdj.mjs} +6 -6
  24. package/dist/{collection-namespace-DqPNrCdQ.mjs → collection-namespace-C7mr_a8H.mjs} +2 -2
  25. package/dist/{create-oLb0E-ZP.mjs → create-7pbf5Wu0.mjs} +6 -6
  26. package/dist/{create-CZ9KFnbi.mjs → create-BDY38_Kr.mjs} +4 -4
  27. package/dist/create-Brh8WCa3.mjs +45 -0
  28. package/dist/{create-C8ndg3g4.mjs → create-C3DThF9E.mjs} +6 -6
  29. package/dist/{create-E6L3WMqV.mjs → create-CPEOSxIH.mjs} +5 -5
  30. package/dist/{create-DKuixGJ2.mjs → create-C_WqoOf5.mjs} +5 -5
  31. package/dist/{create-BR7x66KW.mjs → create-CaWFrPRU.mjs} +8 -8
  32. package/dist/{create-Cii_utzV.mjs → create-DFyZCXQD.mjs} +2 -2
  33. package/dist/{create-a3s1S2Dw.mjs → create-E7XhC0gJ.mjs} +6 -6
  34. package/dist/{create-05rX4oL-.mjs → create-QYctYGSa.mjs} +6 -6
  35. package/dist/create-U_XDwsIX.mjs +45 -0
  36. package/dist/{create-branch-Dxn6UnV_.mjs → create-branch-DPE6itiS.mjs} +4 -4
  37. package/dist/{create-C17Fh1_X.mjs → create-nXlnVzXl.mjs} +5 -5
  38. package/dist/{create-Cyv7vHV_.mjs → create-pTnveKkm.mjs} +4 -4
  39. package/dist/{csv-T6_vlLJS.mjs → csv-CR2qhmC6.mjs} +5 -5
  40. package/dist/{current-task-DxWbw-bU.mjs → current-task-MUHaiHIg.mjs} +4 -4
  41. package/dist/{dashboard-BpSPoeAn.mjs → dashboard-B1iRSUBI.mjs} +8 -8
  42. package/dist/{db-DBRijnh4.mjs → db-eWy7A-H3.mjs} +6 -6
  43. package/dist/{delete--P1xFX37.mjs → delete-B58Cng0p.mjs} +5 -5
  44. package/dist/{delete-BBOIUl0D.mjs → delete-BKMOtpjs.mjs} +5 -5
  45. package/dist/delete-BMa26SzX.mjs +49 -0
  46. package/dist/delete-CW3dYmuT.mjs +49 -0
  47. package/dist/{delete-Ce2EBQYA.mjs → delete-doa3R-c5.mjs} +5 -5
  48. package/dist/{delete-runtime-B-8I9V1g.mjs → delete-runtime-_YOukDRC.mjs} +2 -2
  49. package/dist/{delete-table-Bj32NsXn.mjs → delete-table-D_tjBZPd.mjs} +5 -5
  50. package/dist/{dependencies-ixzjVjUz.mjs → dependencies-BR_4um7h.mjs} +4 -4
  51. package/dist/{dirty-CH70h5m5.mjs → dirty-BKCg6oVN.mjs} +4 -4
  52. package/dist/{document-dZpuFu3I.mjs → document-CVxhTnUD.mjs} +5 -5
  53. package/dist/{eid-XjkBbyb_.mjs → eid-DSOk7Khb.mjs} +4 -4
  54. package/dist/events-Dxm7me47.mjs +44 -0
  55. package/dist/{export-CChMg-mL.mjs → export-Gb_wfZpt.mjs} +6 -6
  56. package/dist/{field-B1heFeCz.mjs → field-BTCw6voJ.mjs} +4 -4
  57. package/dist/{fields-C7h2QwUp.mjs → fields-hZeq6IF2.mjs} +3 -3
  58. package/dist/{get-cyR67Lmq.mjs → get--rGDVyje.mjs} +3 -3
  59. package/dist/{get-RlP_xiUd.mjs → get-43Smv3RI.mjs} +3 -3
  60. package/dist/{get-BWHJDa0B.mjs → get-7Np_G2je.mjs} +3 -3
  61. package/dist/{get-B6ZJCJ8H.mjs → get-BSdOE5J4.mjs} +3 -3
  62. package/dist/{get-C98IFgFi.mjs → get-CHAH_F37.mjs} +3 -3
  63. package/dist/{get-D9r2znrn.mjs → get-CH_JmPc-.mjs} +4 -4
  64. package/dist/{get-Dg1J0wxb.mjs → get-CP3lrIYi.mjs} +3 -3
  65. package/dist/{get-BsyccuCH.mjs → get-CgZ5qjQx.mjs} +2 -2
  66. package/dist/get-CuPCE_AG.mjs +35 -0
  67. package/dist/{get-DrWYvefc.mjs → get-DB6Y9igl.mjs} +3 -3
  68. package/dist/{get-DWWmpQ87.mjs → get-DRK5-UdU.mjs} +3 -3
  69. package/dist/{get-Cj90oyxG.mjs → get-DT2MOZ8L.mjs} +4 -4
  70. package/dist/{get-DRZENkCj.mjs → get-DWzMR8sn.mjs} +3 -3
  71. package/dist/{get-AvGH_oph.mjs → get-DZatHVdn.mjs} +3 -3
  72. package/dist/{get-KVN9ANVh.mjs → get-DtvzjfjG.mjs} +3 -3
  73. package/dist/get-T85qZgnv.mjs +35 -0
  74. package/dist/{get-kqY2lwhO.mjs → get-nZW0W7Ui.mjs} +3 -3
  75. package/dist/{get-run-C4C_QQqO.mjs → get-run-Cwia6e0d.mjs} +4 -4
  76. package/dist/git-sync-Cjrx2meo.mjs +31 -0
  77. package/dist/{has-remote-changes-dLUGr0MD.mjs → has-remote-changes-CIIib71u.mjs} +4 -4
  78. package/dist/{import-Byull6jF.mjs → import-D9ID9Mz4.mjs} +6 -6
  79. package/dist/{input-m9ctfLxZ.mjs → input-DzbvxKYU.mjs} +1 -1
  80. package/dist/{is-dirty-CU3ovgdG.mjs → is-dirty-CHbUJ-bh.mjs} +3 -3
  81. package/dist/is-dirty-DY5Zhsbk.mjs +8 -0
  82. package/dist/{items-CEGDYWuF.mjs → items-DN63mjpF.mjs} +4 -4
  83. package/dist/{key-Ge4VwWvS.mjs → key-BnGRTX8U.mjs} +1 -1
  84. package/dist/{library-DHWWa4Tt.mjs → library-DF2qx50w.mjs} +4 -4
  85. package/dist/{list-3z1ZChTG.mjs → list-B1sdMz6m.mjs} +3 -3
  86. package/dist/{list-DEkPxVZu.mjs → list-B3HoSfYj.mjs} +3 -3
  87. package/dist/{list-BFm4iEBt.mjs → list-BSxMFDMR.mjs} +3 -3
  88. package/dist/list-BeqcZVSn.mjs +39 -0
  89. package/dist/{list-Cur_72xZ.mjs → list-C0344yqi.mjs} +3 -3
  90. package/dist/{list-BuyRG3GB.mjs → list-C5Ir-96z.mjs} +3 -3
  91. package/dist/{list-th_Ym6Cv.mjs → list-C6YpaUpC.mjs} +3 -3
  92. package/dist/{list-Bpv06V24.mjs → list-C7TqbWG1.mjs} +2 -2
  93. package/dist/{list-Br48kL09.mjs → list-CQN2BpaW.mjs} +2 -2
  94. package/dist/{list-B9TyELob.mjs → list-CY-jpBNE.mjs} +3 -3
  95. package/dist/{list-CmCJwaGT.mjs → list-CkTsOOA7.mjs} +2 -2
  96. package/dist/{list-BliCJAjt.mjs → list-CvS68tLn.mjs} +2 -2
  97. package/dist/{list-CMb03cv3.mjs → list-De82cXvn.mjs} +3 -3
  98. package/dist/{list-O2w5xd1q.mjs → list-KDHLmoUx.mjs} +2 -2
  99. package/dist/{list-BtcpNl4-.mjs → list-MqqHcBvD.mjs} +2 -2
  100. package/dist/{list-D9FY30xH.mjs → list-n2PY3OIx.mjs} +3 -3
  101. package/dist/{login-hKlYsAa1.mjs → login-jy9rbYev.mjs} +6 -6
  102. package/dist/{logout-DO8GVC6b.mjs → logout-CRbk1SuY.mjs} +3 -3
  103. package/dist/{measure-R3T20wnB.mjs → measure-CPqisgyf.mjs} +5 -5
  104. package/dist/{parameter-values-BJb2GuLz.mjs → parameter-values-CcgcG3S5.mjs} +3 -3
  105. package/dist/{parse-enum-Cfne2suT.mjs → parse-enum-C_2lGr3g.mjs} +1 -1
  106. package/dist/{parse-id-DfY0Lugw.mjs → parse-id-CD54Chc5.mjs} +1 -1
  107. package/dist/{parse-ref-C_MsXYI6.mjs → parse-ref-BLgKEEF-.mjs} +1 -1
  108. package/dist/{path-DzhQVCH8.mjs → path-CPMr1RJO.mjs} +3 -3
  109. package/dist/{poll-D1Yg78c3.mjs → poll-DVF9EnEb.mjs} +2 -2
  110. package/dist/{poll-task-DLUZaglY.mjs → poll-task-CpHGQOd5.mjs} +2 -2
  111. package/dist/{preflight-Cy2jUSca.mjs → preflight-xhwEOHAt.mjs} +2 -2
  112. package/dist/{process-D5HN1wpT.mjs → process-HDPKLS_z.mjs} +1 -1
  113. package/dist/{prompt-ZG9Drin_.mjs → prompt-BgkWNgIR.mjs} +1 -1
  114. package/dist/{publish-3hmHoaX-.mjs → publish-xVPABwE8.mjs} +4 -4
  115. package/dist/{query-DkZViD_3.mjs → query-B3HDIsJ-.mjs} +7 -7
  116. package/dist/{query-DTASj9Zu.mjs → query-Cxh9hmrP.mjs} +4 -4
  117. package/dist/{query-result-CbTFdlSf.mjs → query-result-Drvjv7DD.mjs} +1 -1
  118. package/dist/{remove-collection-D3wH9H6R.mjs → remove-collection-_a4uIlLB.mjs} +6 -6
  119. package/dist/{replace-CFzqkZXs.mjs → replace-BwvKDNur.mjs} +5 -5
  120. package/dist/{requests-KBiY9UYy.mjs → requests-qyh002pL.mjs} +2 -2
  121. package/dist/{rescan-values-B1WycObS.mjs → rescan-values-Bd0Joerq.mjs} +3 -3
  122. package/dist/{run-cw0qTEQ7.mjs → run-BfpKUjqL.mjs} +6 -6
  123. package/dist/{run-B8qEEdC8.mjs → run-yrpSF6VL.mjs} +3 -3
  124. package/dist/{runs-BOA4kK_X.mjs → runs-D_08Ma08.mjs} +4 -4
  125. package/dist/{runtime-B-c-Fc2i.mjs → runtime-Ab96yYlM.mjs} +1 -1
  126. package/dist/{schema-tables-DRYzSVcW.mjs → schema-tables-ChBYz4mO.mjs} +3 -3
  127. package/dist/{schemas-BiMjD25L.mjs → schemas-C2crnVML.mjs} +3 -3
  128. package/dist/{search-DjKxRXO5.mjs → search-DnGEh6sZ.mjs} +3 -3
  129. package/dist/{segment-CZkk0g79.mjs → segment-DyVTZSIM.mjs} +5 -5
  130. package/dist/{selectors-B7MJUn3I.mjs → selectors-Ll_TRxl5.mjs} +3 -3
  131. package/dist/{set-active-CF868qdW.mjs → set-active-qqDoBh_Z.mjs} +3 -3
  132. package/dist/{set-kyoORFG3.mjs → set-tHsHXRGV.mjs} +5 -5
  133. package/dist/{setting-BZgjURQ_.mjs → setting-B9xSyMf6.mjs} +3 -3
  134. package/dist/{setup-D9joJYPb.mjs → setup-CXGcyTuv.mjs} +4 -4
  135. package/dist/{skills-BqI05u72.mjs → skills-BKuiGkc1.mjs} +1 -1
  136. package/dist/{skills-D8NrJxjp.mjs → skills-rnvVgau4.mjs} +3 -3
  137. package/dist/{snippet-y_FzKxaQ.mjs → snippet-C4h-GMUf.mjs} +5 -5
  138. package/dist/{stash-BVMerTaF.mjs → stash-DxmpBS7x.mjs} +6 -6
  139. package/dist/{status-C-0jFjFn.mjs → status-B5ar0uXc.mjs} +2 -2
  140. package/dist/{status-x8bDOa1i.mjs → status-D5CR1SrS.mjs} +5 -5
  141. package/dist/{summary-B-R9SdMF.mjs → summary-BEEJl2O1.mjs} +3 -3
  142. package/dist/{sync-schema-wne2KXIW.mjs → sync-schema-B5HDpmrp.mjs} +5 -5
  143. package/dist/{table-CS2-2INi.mjs → table-DHmaW3Ec.mjs} +4 -4
  144. package/dist/timeline-B0R6-dm8.mjs +24 -0
  145. package/dist/timeline-BCTRThc-.mjs +157 -0
  146. package/dist/timeline-event-BVDTt-pM.mjs +22 -0
  147. package/dist/transform-Cq2_muWO.mjs +31 -0
  148. package/dist/transform-job-BpebgMnq.mjs +25 -0
  149. package/dist/{transform-tag-DaNKreDj.mjs → transform-tag-B1xnFa9w.mjs} +4 -4
  150. package/dist/{transforms-DB2WNP2R.mjs → transforms-CLkv3e81.mjs} +4 -4
  151. package/dist/{tree-BIOphGVs.mjs → tree-CB2IURsX.mjs} +2 -2
  152. package/dist/{unpublish-BWM36ZTg.mjs → unpublish-BkZldbkP.mjs} +4 -4
  153. package/dist/update-8bTrglfc.mjs +52 -0
  154. package/dist/{update-CTZg2Lia.mjs → update-B1dkPypu.mjs} +9 -9
  155. package/dist/{update-6umfSz5t.mjs → update-B4atxTx0.mjs} +5 -5
  156. package/dist/{update-DJDuIhYG.mjs → update-BHC3pwzR.mjs} +6 -6
  157. package/dist/{update-zfLbmC-H.mjs → update-BacyVaLu.mjs} +6 -6
  158. package/dist/{update-BlzcZwRQ.mjs → update-BghbOcv6.mjs} +7 -7
  159. package/dist/{update-Sz0QRGWB.mjs → update-CGWTX1Z0.mjs} +5 -5
  160. package/dist/{update-BCbv880u.mjs → update-CO9uCJxV.mjs} +7 -7
  161. package/dist/{update-7Ts7KrB8.mjs → update-Cyxjg496.mjs} +5 -5
  162. package/dist/{update-HxYcvpSq.mjs → update-D7Ia9Qrt.mjs} +7 -7
  163. package/dist/{update-BiUeEGU-.mjs → update-D80GWpWl.mjs} +7 -7
  164. package/dist/update-DajyWtBN.mjs +52 -0
  165. package/dist/{update-dashcard-CfDpy7Lz.mjs → update-dashcard-DLq7ihNO.mjs} +5 -5
  166. package/dist/{update-BchtHlbH.mjs → update-iY9WZqy0.mjs} +5 -5
  167. package/dist/{upgrade-BWl0VjMK.mjs → upgrade-CXoNQ4FH.mjs} +4 -4
  168. package/dist/{upload-CPzOhGeX.mjs → upload-D3eiApa0.mjs} +3 -3
  169. package/dist/{uuid-D_YeqDui.mjs → uuid-D6dao_q4.mjs} +2 -2
  170. package/dist/{validate-clAWO3X-.mjs → validate-Cqa14t7o.mjs} +1 -1
  171. package/dist/{validate-query-CsK2_2_u.mjs → validate-query-D1N30wJ7.mjs} +2 -2
  172. package/dist/{values-DSk8ZJ3B.mjs → values-DIBAgSyz.mjs} +3 -3
  173. package/dist/{verify-DkQdLjf3.mjs → verify-DvhZWmS2.mjs} +2 -2
  174. package/dist/{wait-DvSsMjea.mjs → wait-CW1OawkI.mjs} +5 -5
  175. package/dist/{wait-flags-dXGThljd.mjs → wait-flags-DvNU8ahZ.mjs} +2 -2
  176. package/package.json +1 -1
  177. package/skill-data/core/SKILL.md +4 -2
  178. package/skill-data/visualization/SKILL.md +1 -0
  179. package/dist/add-collection-DlAwt2Z3.mjs +0 -9
  180. package/dist/git-sync-JHa7bIyY.mjs +0 -31
  181. package/dist/is-dirty-Bb2dfEYs.mjs +0 -8
  182. package/dist/transform-6hqM1DXA.mjs +0 -31
  183. package/dist/transform-job-DuERhLaj.mjs +0 -25
  184. /package/dist/{transform-JQel7e5H.mjs → transform-BVHYzWpK.mjs} +0 -0
  185. /package/dist/{transform-job-CtVziW85.mjs → transform-job-CjsAXMej.mjs} +0 -0
  186. /package/dist/{transform-tag-wFiWmiyO.mjs → transform-tag--IBQ-8Ij.mjs} +0 -0
@@ -0,0 +1,52 @@
1
+ import { connectionFlags, outputFlags, profileFlag, renderSummary } from "./capabilities-DOTcPraV.mjs";
2
+ import "./command-augment-D9pI9Vbh.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-Ab96yYlM.mjs";
4
+ import "./input-DzbvxKYU.mjs";
5
+ import { parseId } from "./parse-id-CD54Chc5.mjs";
6
+ import { readBody } from "./body-DKcQw7G5.mjs";
7
+ import { bodyInputFlags } from "./body-flags-CgHgJBRC.mjs";
8
+ import { Timeline, TimelineUpdateInput, timelineView } from "./timeline-BCTRThc-.mjs";
9
+
10
+ //#region src/commands/timeline/update.ts
11
+ var update_default = defineMetabaseCommand({
12
+ meta: {
13
+ name: "update",
14
+ description: "Update a timeline by id"
15
+ },
16
+ details: "Patches only the fields you send: `name`, `description`, `icon`, `collection_id`, `default`, `archived`. Changing `archived` cascades to every event on the timeline.",
17
+ capabilities: { minVersion: 58 },
18
+ args: {
19
+ ...outputFlags,
20
+ ...profileFlag,
21
+ ...connectionFlags,
22
+ ...bodyInputFlags,
23
+ id: {
24
+ type: "positional",
25
+ description: "Timeline id",
26
+ required: true
27
+ }
28
+ },
29
+ inputSchema: TimelineUpdateInput,
30
+ outputSchema: Timeline,
31
+ examples: [
32
+ "mb timeline update 1 --body '{\"name\":\"Product releases\"}'",
33
+ "cat patch.json | mb timeline update 1",
34
+ "mb timeline update 1 --file patch.json"
35
+ ],
36
+ async run({ args, ctx, getClient }) {
37
+ const id = parseId(args.id);
38
+ const body = await readBody({
39
+ flag: args.body,
40
+ file: args.file
41
+ }, TimelineUpdateInput);
42
+ const client = await getClient();
43
+ const updated = await client.requestParsed(Timeline, `/api/timeline/${id}`, {
44
+ method: "PUT",
45
+ body
46
+ });
47
+ renderSummary(updated, timelineView, `Updated timeline ${updated.id} "${updated.name}".`, ctx);
48
+ }
49
+ });
50
+
51
+ //#endregion
52
+ export { update_default as default };
@@ -1,11 +1,11 @@
1
- import { ConfigError, connectionFlags, outputFlags, profileFlag, renderSummary } from "./capabilities-DrDJo_ng.mjs";
1
+ import { ConfigError, connectionFlags, outputFlags, profileFlag, renderSummary } from "./capabilities-DOTcPraV.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { defineMetabaseCommand } from "./runtime-B-c-Fc2i.mjs";
4
- import "./input-m9ctfLxZ.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-Ab96yYlM.mjs";
4
+ import "./input-DzbvxKYU.mjs";
5
5
  import "./embedding-CKdw8q7p.mjs";
6
6
  import "./parameter-BZ6y-Gfs.mjs";
7
- import { parseId } from "./parse-id-DfY0Lugw.mjs";
8
- import { readBody } from "./body-C1_AaTS4.mjs";
7
+ import { parseId } from "./parse-id-CD54Chc5.mjs";
8
+ import { readBody } from "./body-DKcQw7G5.mjs";
9
9
  import { bodyInputFlags } from "./body-flags-CgHgJBRC.mjs";
10
10
  import { DashboardDetail, Dashcard, DashcardPatchInput, dashcardView } from "./dashboard-B-MTpfeS.mjs";
11
11
 
@@ -1,10 +1,10 @@
1
- import { connectionFlags, outputFlags, profileFlag, renderSummary } from "./capabilities-DrDJo_ng.mjs";
1
+ import { connectionFlags, outputFlags, profileFlag, renderSummary } from "./capabilities-DOTcPraV.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { defineMetabaseCommand } from "./runtime-B-c-Fc2i.mjs";
4
- import "./input-m9ctfLxZ.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-Ab96yYlM.mjs";
4
+ import "./input-DzbvxKYU.mjs";
5
5
  import "./field-DsXTeqBy.mjs";
6
- import { parseId } from "./parse-id-DfY0Lugw.mjs";
7
- import { readBody } from "./body-C1_AaTS4.mjs";
6
+ import { parseId } from "./parse-id-CD54Chc5.mjs";
7
+ import { readBody } from "./body-DKcQw7G5.mjs";
8
8
  import { bodyInputFlags } from "./body-flags-CgHgJBRC.mjs";
9
9
  import { Table, TableUpdateInput, tableView } from "./table-C3RIKiYM.mjs";
10
10
 
@@ -1,8 +1,8 @@
1
- import { AbortError, NetworkError, TimeoutError, UnknownError, errorMessage, outputFlags, package_default, renderItem, writeText } from "./capabilities-DrDJo_ng.mjs";
1
+ import { AbortError, NetworkError, TimeoutError, UnknownError, errorMessage, outputFlags, package_default, renderItem, writeText } from "./capabilities-DOTcPraV.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { HttpError, USER_AGENT, combineAborts, defineMetabaseCommand, parseJson, throwIfAborted } from "./runtime-B-c-Fc2i.mjs";
4
- import { promptConfirm } from "./prompt-ZG9Drin_.mjs";
5
- import { streamProcess } from "./process-D5HN1wpT.mjs";
3
+ import { HttpError, USER_AGENT, combineAborts, defineMetabaseCommand, parseJson, throwIfAborted } from "./runtime-Ab96yYlM.mjs";
4
+ import { promptConfirm } from "./prompt-BgkWNgIR.mjs";
5
+ import { streamProcess } from "./process-HDPKLS_z.mjs";
6
6
  import { z } from "zod";
7
7
  import { realpathSync } from "node:fs";
8
8
  import { compare, valid } from "semver";
@@ -6,9 +6,9 @@ var upload_default = defineCommandGroup({
6
6
  name: "upload",
7
7
  description: "Upload CSV files into Metabase",
8
8
  subCommands: {
9
- csv: () => import("./csv-T6_vlLJS.mjs").then((m) => m.default),
10
- append: () => import("./append-DY1-O789.mjs").then((m) => m.default),
11
- replace: () => import("./replace-CFzqkZXs.mjs").then((m) => m.default)
9
+ csv: () => import("./csv-CR2qhmC6.mjs").then((m) => m.default),
10
+ append: () => import("./append-BgDaYJW9.mjs").then((m) => m.default),
11
+ replace: () => import("./replace-BwvKDNur.mjs").then((m) => m.default)
12
12
  }
13
13
  });
14
14
 
@@ -1,6 +1,6 @@
1
- import { ConfigError, outputFlags, writeJson, writeText } from "./capabilities-DrDJo_ng.mjs";
1
+ import { ConfigError, outputFlags, writeJson, writeText } from "./capabilities-DOTcPraV.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { defineMetabaseCommand, parseInteger } from "./runtime-B-c-Fc2i.mjs";
3
+ import { defineMetabaseCommand, parseInteger } from "./runtime-Ab96yYlM.mjs";
4
4
  import { z } from "zod";
5
5
  import { randomUUID } from "node:crypto";
6
6
 
@@ -1,4 +1,4 @@
1
- import { ConfigError, escapeJsonPointerSegment, isPlainObject } from "./capabilities-DrDJo_ng.mjs";
1
+ import { ConfigError, escapeJsonPointerSegment, isPlainObject } from "./capabilities-DOTcPraV.mjs";
2
2
  import { z } from "zod";
3
3
  import Ajv2020 from "ajv/dist/2020.js";
4
4
  import addFormats from "ajv-formats";
@@ -1,5 +1,5 @@
1
- import { ConfigError, writeJson } from "./capabilities-DrDJo_ng.mjs";
2
- import { assertNotLegacyEnvelopeWrappingMbql5, isMbql5Query, validateQuery } from "./validate-clAWO3X-.mjs";
1
+ import { ConfigError, writeJson } from "./capabilities-DOTcPraV.mjs";
2
+ import { assertNotLegacyEnvelopeWrappingMbql5, isMbql5Query, validateQuery } from "./validate-Cqa14t7o.mjs";
3
3
 
4
4
  //#region src/commands/validate-query.ts
5
5
  const skipValidateFlag = { "skip-validate": {
@@ -1,8 +1,8 @@
1
- import { connectionFlags, formatScalar, outputFlags, profileFlag, renderSummary } from "./capabilities-DrDJo_ng.mjs";
1
+ import { connectionFlags, formatScalar, outputFlags, profileFlag, renderSummary } from "./capabilities-DOTcPraV.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { defineMetabaseCommand } from "./runtime-B-c-Fc2i.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-Ab96yYlM.mjs";
4
4
  import { FieldValues, fieldValuesView } from "./field-DsXTeqBy.mjs";
5
- import { parseId } from "./parse-id-DfY0Lugw.mjs";
5
+ import { parseId } from "./parse-id-CD54Chc5.mjs";
6
6
 
7
7
  //#region src/commands/field/values.ts
8
8
  var values_default = defineMetabaseCommand({
@@ -1,5 +1,5 @@
1
- import { MetabaseError, NetworkError, TimeoutError, errorMessage } from "./capabilities-DrDJo_ng.mjs";
2
- import { HttpError, createClient, probeServer } from "./runtime-B-c-Fc2i.mjs";
1
+ import { MetabaseError, NetworkError, TimeoutError, errorMessage } from "./capabilities-DOTcPraV.mjs";
2
+ import { HttpError, createClient, probeServer } from "./runtime-Ab96yYlM.mjs";
3
3
  import { z } from "zod";
4
4
 
5
5
  //#region src/domain/user.ts
@@ -1,9 +1,9 @@
1
- import { connectionFlags, outputFlags, profileFlag, renderSummary } from "./capabilities-DrDJo_ng.mjs";
1
+ import { connectionFlags, outputFlags, profileFlag, renderSummary } from "./capabilities-DOTcPraV.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { defineMetabaseCommand } from "./runtime-B-c-Fc2i.mjs";
4
- import { parseId } from "./parse-id-DfY0Lugw.mjs";
5
- import { DEFAULT_INTERVAL_MS, DEFAULT_TIMEOUT_MS } from "./poll-D1Yg78c3.mjs";
6
- import { SyncTaskOrIdle, formatSyncTask, pollSyncTask, syncTaskIdleView, syncTaskView, throwIfFailedTask } from "./poll-task-DLUZaglY.mjs";
3
+ import { defineMetabaseCommand } from "./runtime-Ab96yYlM.mjs";
4
+ import { parseId } from "./parse-id-CD54Chc5.mjs";
5
+ import { DEFAULT_INTERVAL_MS, DEFAULT_TIMEOUT_MS } from "./poll-DVF9EnEb.mjs";
6
+ import { SyncTaskOrIdle, formatSyncTask, pollSyncTask, syncTaskIdleView, syncTaskView, throwIfFailedTask } from "./poll-task-CpHGQOd5.mjs";
7
7
 
8
8
  //#region src/commands/git-sync/wait.ts
9
9
  const WaitResult = SyncTaskOrIdle;
@@ -1,5 +1,5 @@
1
- import { parseId } from "./parse-id-DfY0Lugw.mjs";
2
- import { DEFAULT_INTERVAL_MS, DEFAULT_TIMEOUT_MS } from "./poll-D1Yg78c3.mjs";
1
+ import { parseId } from "./parse-id-CD54Chc5.mjs";
2
+ import { DEFAULT_INTERVAL_MS, DEFAULT_TIMEOUT_MS } from "./poll-DVF9EnEb.mjs";
3
3
 
4
4
  //#region src/commands/wait-flags.ts
5
5
  const waitScheduleFlags = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metabase/cli",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Metabase CLI",
5
5
  "license": "AGPL-3.0",
6
6
  "repository": {
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: core
3
- description: Foundations for driving Metabase from the terminal with the `mb` CLI — authentication and named profiles, the flag/output/`--json` conventions every command shares, JSON body input, command discovery via `--help` (add `--json` for machine-readable schemas), and the per-resource footguns (db, table, field, upload, card, dashboard, collection, segment, measure, library, setting, search, eid). Load first for any `mb` task; it routes to the specialized skills for deeper work.
3
+ description: Foundations for driving Metabase from the terminal with the `mb` CLI — authentication and named profiles, the flag/output/`--json` conventions every command shares, JSON body input, command discovery via `--help` (add `--json` for machine-readable schemas), and the per-resource footguns (db, table, field, upload, card, dashboard, collection, segment, measure, timeline, library, setting, search, eid). Load first for any `mb` task; it routes to the specialized skills for deeper work.
4
4
  allowed-tools: Read, Write, Edit, Bash, AskUserQuestion
5
5
  ---
6
6
 
@@ -12,7 +12,8 @@ Top-level command groups (run `mb <group> --help` to discover verbs):
12
12
 
13
13
  ```
14
14
  auth | db | table | field | upload | query | card | dashboard | snippet | segment | measure | collection | library
15
- document | transform | transform-job | transform-tag | setting | search | git-sync | setup | eid | uuid | upgrade | skills
15
+ document | timeline | timeline-event | transform | transform-job | transform-tag | setting | search | git-sync | setup
16
+ eid | uuid | upgrade | skills
16
17
  ```
17
18
 
18
19
  The conventions below — auth, flags, output, body input — hold across **every** group. Per-command flags and examples live in each command's `--help`; add `--json` for the machine-readable form with the output JSON Schema. A few flows have their own skills (see "Specialized skills"). When a card needs a query, prefer MBQL over native SQL (portable, pre-flight-validated — load `mbql`); fall back to native SQL when MBQL can't express it.
@@ -130,6 +131,7 @@ Routine verb shapes (list / get / create / update), every flag, and output schem
130
131
  - **dashboard parameters (filters).** A dashboard's `parameters` array holds its filter widgets; they're part of the dashboard record, so read them with `dashboard get <id> --fields parameters --json` (no separate verb). **Editing replaces the _whole_ array** (like dashcards), so it's a read-modify-write loop: pull the current set with `dashboard get <id> --fields parameters --json`, add/change entries, and send the full array back via `dashboard update --body '{"parameters":[…]}'` (or supply it in `create`). Omitting a parameter deletes it. Each parameter is `{id, type, …}`. **`id` is a descriptive slug-like string you pick (e.g. `order_status`), unique within this dashboard — Metabase stores any non-blank string verbatim. Do NOT invent a random/opaque id by guessing; reuse the `slug`. If you genuinely need an opaque id, mint one with `mb uuid` — never fabricate one.** `type` is a **closed enum**; an unlisted value is a hard parse error that echoes the full allowed set back to you: string ops `string/=` `string/!=` `string/contains` `string/does-not-contain` `string/starts-with` `string/ends-with`; number ops `number/=` `number/!=` `number/between` `number/>=` `number/<=`; date `date/single` `date/range` `date/relative` `date/month-year` `date/quarter-year` `date/all-options`; plus `category`, `id`, `boolean/=`, `temporal-unit`, and bare `number`/`text`/`date`/`boolean`. A parameter only filters a card once it is **mapped**: each dashcard's `parameter_mappings` is `[{parameter_id, target}]` where `parameter_id` must match a parameter's `id` exactly, and `target` is `["dimension", ["field", <field-id>, null]]` for an MBQL card column, `["dimension", ["template-tag", "<tag>"]]` for a native field-filter tag, or `["variable", ["template-tag", "<tag>"]]` for a native raw-value tag. Populate a dropdown with `values_source_type`: `"static-list"` + `values_source_config.values`, or `"card"` + `{card_id, value_field, label_field}`; omit it to pull live distinct values from the mapped field. `dashboard parameter-values <id> <parameter-id> [--query <substr>]` fetches those selectable values (`{values, has_more_values}`); `--query` is a case-insensitive substring search.
131
132
  - **snippet `--archived` is a swap, not a union** — list returns _either_ active _or_ archived rows, never both. (Same for `--filter archived` on dashboard/collection.)
132
133
  - **segment / measure.** `update` and `archive` require a non-blank `revision_message` (audit-logged); the CLI does not synthesize it on `update`. `archive` defaults to `"Archived via mb CLI"` — override with `--revision-message`. `definition` is a flat MBQL clause (→ `mbql`): segment = a filter, measure = exactly one aggregation.
134
+ - **timeline / timeline-event.** Timelines are collection-scoped event annotations for time-series charts: a timeline's events render only on time-series questions saved in the **same collection** (`collection_id`; null = root) — sub-collections do **not** inherit, and events never draw on dashboard cards, only in the question (and collection) view. To annotate a question's chart, create the timeline in that question's collection, then add events; an event only draws when its `timestamp` falls inside the chart's displayed time range. Event `create` requires `timestamp` (ISO 8601), `timezone` (IANA name), `time_matters` (true = the time of day is significant, false = date-only), and `timeline_id` — the API never auto-creates a default timeline (that's UI-only). There is no `timeline-event list`; enumerate with `timeline events <id>` (`--archived` to include archived). Archiving a timeline cascades `archived` to its events; `delete` is a **hard** delete of the timeline and all its events — prefer `archive`.
133
135
  - **collection `<ref>`** accepts four forms only — positive int, `root`, `trash`, or a 21-char entity_id; anything else is a client-side `ConfigError`. `collection items` auto-paginates (cap with `--limit`, which then omits `total`). `collection tree` is **JSON-only** (`--format text` is rejected). A transform collection needs `collection create --namespace transforms`.
134
136
  - **setting set** parses the value as **strict JSON**: a string is `'"value"'` (inner quotes), booleans `true`/`false`, numbers bare. Wrong quoting silently errors — confirm with `setting get <key>` after. `setting get --json` works on every value type (wrapping bare-text responses into `{key, value}`).
135
137
  - **search vs. list.** For plain enumeration of cards/dashboards/collections use the dedicated `… list` verbs; reach for `search --models <kind>` only for ranking against a query string or a cross-resource lookup.
@@ -158,3 +158,4 @@ mb skills path visualization # → the skill dir; then Read references
158
158
  - Don't use the MBQL-5 field-ref order inside a `column_settings` `["ref", …]` key — that key uses the **legacy** `["field", id, opts]` order. Prefer the `["name", …]` form.
159
159
  - Don't expect a pre-flight to catch viz mistakes — there is none. Verify by reading the card back.
160
160
  - Don't hand-author complex charts when you can pull a working `visualization_settings` from a UI-built card.
161
+ - Don't look for an event/annotation key in `visualization_settings` — vertical event markers on time-series charts come from timelines (`mb timeline` / `mb timeline-event`) living in the question's own collection (same collection only, no sub-collection inheritance; question view only, never dashboard cards).
@@ -1,9 +0,0 @@
1
- import "./capabilities-DrDJo_ng.mjs";
2
- import "./command-augment-D9pI9Vbh.mjs";
3
- import "./runtime-B-c-Fc2i.mjs";
4
- import "./parse-id-DfY0Lugw.mjs";
5
- import "./poll-D1Yg78c3.mjs";
6
- import "./poll-task-DLUZaglY.mjs";
7
- import { SyncSettingsUpdateResult, add_collection_default, setCollectionRemoteSynced, syncSettingsUpdateView } from "./add-collection-BTSGp4f9.mjs";
8
-
9
- export { add_collection_default as default };
@@ -1,31 +0,0 @@
1
- import "./command-augment-D9pI9Vbh.mjs";
2
- import { defineCommandGroup } from "./group-CILtQqCL.mjs";
3
-
4
- //#region src/commands/git-sync/index.ts
5
- var git_sync_default = defineCommandGroup({
6
- name: "git-sync",
7
- description: "Sync Metabase content with a git remote",
8
- skills: [{
9
- skill: "git-sync",
10
- purpose: "import/export round-trip and dirty checks"
11
- }],
12
- subCommands: {
13
- status: () => import("./status-x8bDOa1i.mjs").then((mod) => mod.default),
14
- "is-dirty": () => import("./is-dirty-Bb2dfEYs.mjs").then((mod) => mod.default),
15
- "has-remote-changes": () => import("./has-remote-changes-dLUGr0MD.mjs").then((mod) => mod.default),
16
- dirty: () => import("./dirty-CH70h5m5.mjs").then((mod) => mod.default),
17
- "current-task": () => import("./current-task-DxWbw-bU.mjs").then((mod) => mod.default),
18
- "cancel-task": () => import("./cancel-task-Bggzn4JL.mjs").then((mod) => mod.default),
19
- wait: () => import("./wait-DvSsMjea.mjs").then((mod) => mod.default),
20
- import: () => import("./import-Byull6jF.mjs").then((mod) => mod.default),
21
- export: () => import("./export-CChMg-mL.mjs").then((mod) => mod.default),
22
- stash: () => import("./stash-BVMerTaF.mjs").then((mod) => mod.default),
23
- branches: () => import("./branches-BsBzaGIf.mjs").then((mod) => mod.default),
24
- "create-branch": () => import("./create-branch-Dxn6UnV_.mjs").then((mod) => mod.default),
25
- "add-collection": () => import("./add-collection-DlAwt2Z3.mjs").then((mod) => mod.default),
26
- "remove-collection": () => import("./remove-collection-D3wH9H6R.mjs").then((mod) => mod.default)
27
- }
28
- });
29
-
30
- //#endregion
31
- export { git_sync_default as default };
@@ -1,8 +0,0 @@
1
- import "./capabilities-DrDJo_ng.mjs";
2
- import "./command-augment-D9pI9Vbh.mjs";
3
- import "./runtime-B-c-Fc2i.mjs";
4
- import "./poll-D1Yg78c3.mjs";
5
- import "./poll-task-DLUZaglY.mjs";
6
- import { IsDirtyResult, is_dirty_default } from "./is-dirty-CU3ovgdG.mjs";
7
-
8
- export { is_dirty_default as default };
@@ -1,31 +0,0 @@
1
- import "./command-augment-D9pI9Vbh.mjs";
2
- import { defineCommandGroup } from "./group-CILtQqCL.mjs";
3
-
4
- //#region src/commands/transform/index.ts
5
- var transform_default = defineCommandGroup({
6
- name: "transform",
7
- description: "Manage Metabase transforms",
8
- skills: [{
9
- skill: "transform",
10
- purpose: "body shape, run-with-wait, iterate"
11
- }, {
12
- skill: "mbql",
13
- purpose: "MBQL source.query bodies"
14
- }],
15
- subCommands: {
16
- list: () => import("./list-3z1ZChTG.mjs").then((mod) => mod.default),
17
- get: () => import("./get-Cj90oyxG.mjs").then((mod) => mod.default),
18
- dependencies: () => import("./dependencies-ixzjVjUz.mjs").then((mod) => mod.default),
19
- create: () => import("./create-BR7x66KW.mjs").then((mod) => mod.default),
20
- update: () => import("./update-CTZg2Lia.mjs").then((mod) => mod.default),
21
- delete: () => import("./delete-Ce2EBQYA.mjs").then((mod) => mod.default),
22
- "delete-table": () => import("./delete-table-Bj32NsXn.mjs").then((mod) => mod.default),
23
- run: () => import("./run-cw0qTEQ7.mjs").then((mod) => mod.default),
24
- cancel: () => import("./cancel-BNM0yyx-.mjs").then((mod) => mod.default),
25
- "get-run": () => import("./get-run-C4C_QQqO.mjs").then((mod) => mod.default),
26
- runs: () => import("./runs-BOA4kK_X.mjs").then((mod) => mod.default)
27
- }
28
- });
29
-
30
- //#endregion
31
- export { transform_default as default };
@@ -1,25 +0,0 @@
1
- import "./command-augment-D9pI9Vbh.mjs";
2
- import { defineCommandGroup } from "./group-CILtQqCL.mjs";
3
-
4
- //#region src/commands/transform-job/index.ts
5
- var transform_job_default = defineCommandGroup({
6
- name: "transform-job",
7
- description: "Manage Metabase transform jobs",
8
- skills: [{
9
- skill: "transform",
10
- purpose: "tag-driven job schedules"
11
- }],
12
- subCommands: {
13
- list: () => import("./list-B9TyELob.mjs").then((mod) => mod.default),
14
- get: () => import("./get-D9r2znrn.mjs").then((mod) => mod.default),
15
- create: () => import("./create-DKuixGJ2.mjs").then((mod) => mod.default),
16
- update: () => import("./update-DJDuIhYG.mjs").then((mod) => mod.default),
17
- delete: () => import("./delete-BBOIUl0D.mjs").then((mod) => mod.default),
18
- run: () => import("./run-B8qEEdC8.mjs").then((mod) => mod.default),
19
- transforms: () => import("./transforms-DB2WNP2R.mjs").then((mod) => mod.default),
20
- "set-active": () => import("./set-active-CF868qdW.mjs").then((mod) => mod.default)
21
- }
22
- });
23
-
24
- //#endregion
25
- export { transform_job_default as default };