@metabase/cli 0.1.0 → 0.1.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 (187) hide show
  1. package/README.md +972 -57
  2. package/dist/add-collection--zwkmE1S.mjs +11 -0
  3. package/dist/add-collection-B1qe0D1U.mjs +54 -0
  4. package/dist/api-key-gzCbKDjL.mjs +13 -0
  5. package/dist/archive-CitmlD1e.mjs +39 -0
  6. package/dist/{archive-CsWeHXle.mjs → archive-CnhWegtR.mjs} +7 -4
  7. package/dist/archive-DQjBOXnx.mjs +44 -0
  8. package/dist/archive-Ni8-lQ1Y.mjs +44 -0
  9. package/dist/auth-BPjsrFxM.mjs +19 -0
  10. package/dist/{body-Dv9hQ0Qk.mjs → body-DRBgxS6-.mjs} +3 -2
  11. package/dist/{branches-BujtceGr.mjs → branches-C5Jcw8wu.mjs} +8 -6
  12. package/dist/cancel-Ca3r7Y6v.mjs +56 -0
  13. package/dist/{cancel-task-CT2xUMRg.mjs → cancel-task-C1-8vDKS.mjs} +9 -7
  14. package/dist/card-BGAy3eIb.mjs +20 -0
  15. package/dist/{card-CsXk8T6A.mjs → card-CAEZWixN.mjs} +34 -15
  16. package/dist/cards-CILfMPUP.mjs +37 -0
  17. package/dist/cli.mjs +33 -14
  18. package/dist/collection-B3sPXRLs.mjs +163 -0
  19. package/dist/collection-D8cnCB98.mjs +19 -0
  20. package/dist/create-3Z6rm-4O.mjs +44 -0
  21. package/dist/create-BsY5RrVY.mjs +44 -0
  22. package/dist/create-C4OCclBD.mjs +48 -0
  23. package/dist/create-COsD7Vzm.mjs +48 -0
  24. package/dist/create-CP8ou91U.mjs +125 -0
  25. package/dist/create-CeIi_QLj.mjs +66 -0
  26. package/dist/create-CqNw6PmR.mjs +50 -0
  27. package/dist/create-DE_5NrFy.mjs +48 -0
  28. package/dist/{create-B8ektf-R.mjs → create-MEhhhgMC.mjs} +8 -6
  29. package/dist/create-QxDmleKJ.mjs +48 -0
  30. package/dist/{create-branch-goZBTNnr.mjs → create-branch-CKMYaAHk.mjs} +9 -7
  31. package/dist/credentials-CwRKvdP2.mjs +85 -0
  32. package/dist/{current-task-DBjRNCFq.mjs → current-task-Dutjys16.mjs} +9 -7
  33. package/dist/dashboard-B4fVp392.mjs +20 -0
  34. package/dist/dashboard-CnMD04PQ.mjs +163 -0
  35. package/dist/database-BMTb0CzV.mjs +17 -0
  36. package/dist/database-Dvkfy3JM.mjs +51 -0
  37. package/dist/db-ACuuaEok.mjs +22 -0
  38. package/dist/{delete-8vGU35r3.mjs → delete-BMQZuVXZ.mjs} +7 -5
  39. package/dist/{delete-B27KLF5X.mjs → delete-BvcA4jPj.mjs} +7 -5
  40. package/dist/{delete-runtime-Byr60cR3.mjs → delete-runtime-BMzvfj_B.mjs} +4 -4
  41. package/dist/{delete-table-BNaJ_gA4.mjs → delete-table-DUPjHKk4.mjs} +7 -5
  42. package/dist/deprovision-Bsc1S15j.mjs +61 -0
  43. package/dist/{dirty-aNUuph4I.mjs → dirty-CXcdoUhY.mjs} +8 -6
  44. package/dist/docker-D-ieBsP7.mjs +612 -0
  45. package/dist/eid-pvOsEMPZ.mjs +13 -0
  46. package/dist/{export-QDkuuzSE.mjs → export-BjGhLEOi.mjs} +30 -23
  47. package/dist/field-BI2bt8e9.mjs +18 -0
  48. package/dist/field-DciLbuv-.mjs +276 -0
  49. package/dist/fields-Do8HHm_T.mjs +38 -0
  50. package/dist/flag-pair-DtR1AiBQ.mjs +17 -0
  51. package/dist/{get-BGBIzMKY.mjs → get-BGFGWkH0.mjs} +6 -4
  52. package/dist/get-BmE_VHdl.mjs +36 -0
  53. package/dist/{get-DI_IJvgk.mjs → get-C7sshmqF.mjs} +6 -4
  54. package/dist/get-CObKBj2J.mjs +36 -0
  55. package/dist/get-Cq5U_Eep.mjs +40 -0
  56. package/dist/get-D4GUJBiX.mjs +41 -0
  57. package/dist/{get-COXHplHP.mjs → get-DFrsi77F.mjs} +7 -5
  58. package/dist/get-DczxeETg.mjs +53 -0
  59. package/dist/{get-Cl8-IauC.mjs → get-DeQa3ThJ.mjs} +7 -4
  60. package/dist/get-DhZ_dGUb.mjs +36 -0
  61. package/dist/{get-i6LWOByV.mjs → get-DzCVafyO.mjs} +6 -4
  62. package/dist/get-YCnVqq-z.mjs +49 -0
  63. package/dist/get-run-CTyW29s3.mjs +36 -0
  64. package/dist/git-sync-BOmT8HEU.mjs +28 -0
  65. package/dist/{has-remote-changes-hjKoQuRy.mjs → has-remote-changes-xX8vMVsX.mjs} +8 -6
  66. package/dist/{import-HJsSKRYx.mjs → import-CaAUNtXz.mjs} +11 -9
  67. package/dist/{input-Dojr-RTw.mjs → input-ikCiip6x.mjs} +2 -1
  68. package/dist/is-dirty-CPu-xqkW.mjs +10 -0
  69. package/dist/{is-dirty-1Qy7hiHB.mjs → is-dirty-mgxEwEk4.mjs} +5 -4
  70. package/dist/items-Cg67tdto.mjs +77 -0
  71. package/dist/{key-DBxPSFwi.mjs → key-NDEARu2L.mjs} +1 -1
  72. package/dist/{license-MoWse3ZI.mjs → license-CwKzVMD0.mjs} +3 -3
  73. package/dist/list-BqdNQ1nU.mjs +47 -0
  74. package/dist/list-BwGdD45N.mjs +32 -0
  75. package/dist/list-CfOVsAZz.mjs +55 -0
  76. package/dist/list-CpyNn1Zn.mjs +32 -0
  77. package/dist/list-CwwOoGLK.mjs +40 -0
  78. package/dist/{list-C_PRdL5e.mjs → list-DD8CQx8l.mjs} +7 -5
  79. package/dist/{list-Bk6RsbJl.mjs → list-DL-RWpIE.mjs} +5 -3
  80. package/dist/list-DLlq3FyS.mjs +61 -0
  81. package/dist/list-DdQ4jmUQ.mjs +52 -0
  82. package/dist/{list-C4Ajrw8f.mjs → list-DshbLoqR.mjs} +6 -3
  83. package/dist/{list-C8tdLOH5.mjs → list-DzTMpoBs.mjs} +5 -3
  84. package/dist/list-JgRtCzz3.mjs +32 -0
  85. package/dist/{list-CWt3fqrZ.mjs → list-WzgJcwB5.mjs} +5 -3
  86. package/dist/{login-C9WTwNn6.mjs → login-DJnmR2wX.mjs} +14 -5
  87. package/dist/{logout-oLszGCOg.mjs → logout-BMe_1Zp8.mjs} +7 -6
  88. package/dist/logs-CQxKJ3HG.mjs +58 -0
  89. package/dist/{manifest-CAdjQYH8.mjs → manifest-Dv5B9Blc.mjs} +3 -7
  90. package/dist/measure-BEQfnLdN.mjs +67 -0
  91. package/dist/measure-BGyYbtqO.mjs +19 -0
  92. package/dist/metadata-CLIALntn.mjs +37 -0
  93. package/dist/metadata-T-fNUWg_.mjs +38 -0
  94. package/dist/{package-BGfw4ZWJ.mjs → package-DBsS7a5x.mjs} +7 -1
  95. package/dist/paginate-CTSfuYiF.mjs +49 -0
  96. package/dist/parse-id-BUOZQqjp.mjs +12 -0
  97. package/dist/parse-ref-DGvh4aDn.mjs +17 -0
  98. package/dist/parse-schemas-BnW4T1_I.mjs +12 -0
  99. package/dist/{poll-ILanYysl.mjs → poll-DMmmZWvi.mjs} +2 -1
  100. package/dist/{poll-task-DbpsiQhl.mjs → poll-task-2Ckiwp8U.mjs} +8 -7
  101. package/dist/predicates-DiIiS3k7.mjs +153 -0
  102. package/dist/preflight-CC_g6EWU.mjs +91 -0
  103. package/dist/{prompt-DpT8yAVy.mjs → prompt-Bf3DQ-qE.mjs} +1 -1
  104. package/dist/provision-BUgWJWAV.mjs +77 -0
  105. package/dist/ps-BUNHygf-.mjs +10 -0
  106. package/dist/ps-Yv0JjLVN.mjs +78 -0
  107. package/dist/{query-PihYi-UZ.mjs → query-CzfbuG8a.mjs} +38 -13
  108. package/dist/query-UIebHmbT.mjs +90 -0
  109. package/dist/remove-BAUbcwuF.mjs +98 -0
  110. package/dist/{remove-B2hVYn1v.mjs → remove-CN2PNGTR.mjs} +6 -5
  111. package/dist/remove-collection-C6NxEh53.mjs +38 -0
  112. package/dist/render-DXv-D6fU.mjs +182 -0
  113. package/dist/rescan-values-CcB4F9qa.mjs +43 -0
  114. package/dist/revision-message-flag-CWQbKhdl.mjs +11 -0
  115. package/dist/{run-C2so6Qp6.mjs → run-BjXZtu_6.mjs} +27 -36
  116. package/dist/runs-CXx7l1NY.mjs +54 -0
  117. package/dist/{runtime-C9CEZhcn.mjs → runtime-D7jihh81.mjs} +425 -442
  118. package/dist/schema-tables-BCJT2DM_.mjs +45 -0
  119. package/dist/schemas-DlNpbn4H.mjs +47 -0
  120. package/dist/{search-CopOytXY.mjs → search-Dt-6mdHZ.mjs} +6 -19
  121. package/dist/segment-BMrUBz94.mjs +70 -0
  122. package/dist/segment-C52QNnSs.mjs +19 -0
  123. package/dist/{set-BcF7M1GQ.mjs → set-DCESWpi3.mjs} +6 -4
  124. package/dist/{set-CbibegpA.mjs → set-L7cuHjVZ.mjs} +8 -6
  125. package/dist/{setting-U3NtBMFo.mjs → setting-DysGAuYS.mjs} +3 -3
  126. package/dist/setup-_ypJDPAY.mjs +71 -0
  127. package/dist/snippet-Dw0Sjzkr.mjs +64 -0
  128. package/dist/snippet-vb3G9R8a.mjs +19 -0
  129. package/dist/start-BokXnb0V.mjs +350 -0
  130. package/dist/{stash-DOBbYozC.mjs → stash-CaGX6PfX.mjs} +9 -7
  131. package/dist/{status-Buf1ZbNR.mjs → status-BaX9vedb.mjs} +10 -8
  132. package/dist/{status-CUcs8XBH.mjs → status-CyecXzN4.mjs} +4 -2
  133. package/dist/{status-D1F5XHae.mjs → status-RpVyPEty.mjs} +4 -2
  134. package/dist/stop-BRuF_Cg1.mjs +81 -0
  135. package/dist/summary-CpEOiOlZ.mjs +41 -0
  136. package/dist/sync-schema-4Cl4h8Jn.mjs +43 -0
  137. package/dist/table-BeMWuvzO.mjs +19 -0
  138. package/dist/{table-Cfk7oSvw.mjs → table-jljEqZ0R.mjs} +22 -9
  139. package/dist/transform-DwRc-w6y.mjs +24 -0
  140. package/dist/{transform-B5uRpg1G.mjs → transform-IEX4Mx3X.mjs} +56 -2
  141. package/dist/transform-job-BigWrctt.mjs +19 -0
  142. package/dist/{transform-job-C7QXWTVE.mjs → transform-job-Csr86muI.mjs} +7 -0
  143. package/dist/translate-DqLlXXUx.mjs +111 -0
  144. package/dist/tree-BT24nkLM.mjs +32 -0
  145. package/dist/update-BCXKQi2n.mjs +52 -0
  146. package/dist/{update-CL8tRbxr.mjs → update-BXbLmC2b.mjs} +9 -7
  147. package/dist/update-C1Frz9GR.mjs +52 -0
  148. package/dist/update-C5goGhNr.mjs +56 -0
  149. package/dist/update-CCOyB0iT.mjs +73 -0
  150. package/dist/update-D04NMueX.mjs +59 -0
  151. package/dist/update-D6WVtNV1.mjs +57 -0
  152. package/dist/update-DFR46LsB.mjs +56 -0
  153. package/dist/update-DyLItrpV.mjs +56 -0
  154. package/dist/update-dashcard-av0_PYeg.mjs +71 -0
  155. package/dist/update-mrgvQF4i.mjs +51 -0
  156. package/dist/url-x4wn_l3k.mjs +54 -0
  157. package/dist/uuid-BZHbti8B.mjs +47 -0
  158. package/dist/validate-DCYx6jdL.mjs +1496 -0
  159. package/dist/validate-query-B07oGG4K.mjs +37 -0
  160. package/dist/values-Be6i0Fs9.mjs +36 -0
  161. package/dist/{wait-Bugr9eXD.mjs → wait-BMqQD8k_.mjs} +10 -8
  162. package/dist/wait-CWizX_sR.mjs +19 -0
  163. package/dist/wait-flags-DO3ar2tf.mjs +35 -0
  164. package/dist/workspace-CG1xyJ86.mjs +24 -0
  165. package/dist/workspace-DVuqKJGG.mjs +72 -0
  166. package/dist/workspace-credentials-B6BL-X0d.mjs +139 -0
  167. package/package.json +7 -1
  168. package/dist/auth-BF7IjZIH.mjs +0 -18
  169. package/dist/card-_Ta7zdYe.mjs +0 -19
  170. package/dist/create-CI2Cunq5.mjs +0 -38
  171. package/dist/create-DdbU3TLX.mjs +0 -42
  172. package/dist/database-PA9Goi25.mjs +0 -33
  173. package/dist/db-DMghzgb6.mjs +0 -17
  174. package/dist/field-C8IVs6rp.mjs +0 -76
  175. package/dist/field-DaYo_90x.mjs +0 -13
  176. package/dist/get-Cwpj7lDe.mjs +0 -35
  177. package/dist/get-Dh_acl8q.mjs +0 -34
  178. package/dist/is-dirty-DpKn9HJp.mjs +0 -8
  179. package/dist/list-CBSBHtK-.mjs +0 -38
  180. package/dist/parse-id-BhmmfyCP.mjs +0 -14
  181. package/dist/sync-BPyGXfUk.mjs +0 -26
  182. package/dist/table-D7nJt7JO.mjs +0 -16
  183. package/dist/transform-UbyewMxY.mjs +0 -21
  184. package/dist/transform-job-CrYkr-Ma.mjs +0 -19
  185. package/dist/update-DU2oU2j-.mjs +0 -49
  186. /package/dist/{body-flags-BUA9XV1u.mjs → body-flags-BK7J6Daz.mjs} +0 -0
  187. /package/dist/{setting-26ckqHAP.mjs → setting-CTaAeMci.mjs} +0 -0
@@ -0,0 +1,18 @@
1
+ import { defineCommand } from "citty";
2
+
3
+ //#region src/commands/field/index.ts
4
+ var field_default = defineCommand({
5
+ meta: {
6
+ name: "field",
7
+ description: "Inspect Metabase fields"
8
+ },
9
+ subCommands: {
10
+ get: () => import("./get-C7sshmqF.mjs").then((m) => m.default),
11
+ values: () => import("./values-Be6i0Fs9.mjs").then((m) => m.default),
12
+ summary: () => import("./summary-CpEOiOlZ.mjs").then((m) => m.default),
13
+ update: () => import("./update-mrgvQF4i.mjs").then((m) => m.default)
14
+ }
15
+ });
16
+
17
+ //#endregion
18
+ export { field_default as default };
@@ -0,0 +1,276 @@
1
+ import { z } from "zod";
2
+
3
+ //#region src/domain/field.ts
4
+ const FieldVisibilityType = z.enum([
5
+ "details-only",
6
+ "hidden",
7
+ "normal",
8
+ "retired",
9
+ "sensitive"
10
+ ]);
11
+ const FieldValuesType = z.enum([
12
+ "list",
13
+ "search",
14
+ "none",
15
+ "auto-list"
16
+ ]);
17
+ const FieldBaseType = z.enum([
18
+ "type/field-values-unsupported",
19
+ "type/fingerprint-unsupported",
20
+ "type/Large",
21
+ "type/Number",
22
+ "type/Integer",
23
+ "type/BigInteger",
24
+ "type/Float",
25
+ "type/Decimal",
26
+ "type/Text",
27
+ "type/UUID",
28
+ "type/OracleCLOB",
29
+ "type/Temporal",
30
+ "type/HasDate",
31
+ "type/HasTime",
32
+ "type/Date",
33
+ "type/Time",
34
+ "type/TimeWithTZ",
35
+ "type/TimeWithLocalTZ",
36
+ "type/TimeWithZoneOffset",
37
+ "type/DateTime",
38
+ "type/DateTimeWithTZ",
39
+ "type/DateTimeWithLocalTZ",
40
+ "type/DateTimeWithZoneOffset",
41
+ "type/DateTimeWithZoneID",
42
+ "type/Instant",
43
+ "type/Interval",
44
+ "type/Boolean",
45
+ "type/DruidHyperUnique",
46
+ "type/SnowflakeVariant",
47
+ "type/TextLike",
48
+ "type/MongoBSONID",
49
+ "type/MongoBinData",
50
+ "type/MySQLEnum",
51
+ "type/PostgresEnum",
52
+ "type/PostgresBitString",
53
+ "type/Collection",
54
+ "type/Dictionary",
55
+ "type/Array",
56
+ "type/Structured",
57
+ "type/JSON",
58
+ "type/DruidJSON",
59
+ "type/XML"
60
+ ]);
61
+ const FieldSemanticType = z.enum([
62
+ "type/Quantity",
63
+ "type/Share",
64
+ "type/Percentage",
65
+ "type/Currency",
66
+ "type/Income",
67
+ "type/Discount",
68
+ "type/Price",
69
+ "type/GrossMargin",
70
+ "type/Cost",
71
+ "type/Score",
72
+ "type/Duration",
73
+ "type/Location",
74
+ "type/Coordinate",
75
+ "type/Latitude",
76
+ "type/Longitude",
77
+ "type/Address",
78
+ "type/City",
79
+ "type/State",
80
+ "type/Country",
81
+ "type/ZipCode",
82
+ "type/URL",
83
+ "type/ImageURL",
84
+ "type/AvatarURL",
85
+ "type/Email",
86
+ "type/Description",
87
+ "type/Comment",
88
+ "type/IPAddress",
89
+ "type/Category",
90
+ "type/Enum",
91
+ "type/Name",
92
+ "type/Title",
93
+ "type/Product",
94
+ "type/Company",
95
+ "type/Subscription",
96
+ "type/Source",
97
+ "type/CreationTemporal",
98
+ "type/CreationTimestamp",
99
+ "type/CreationTime",
100
+ "type/CreationDate",
101
+ "type/JoinTemporal",
102
+ "type/JoinTimestamp",
103
+ "type/JoinTime",
104
+ "type/JoinDate",
105
+ "type/CancelationTemporal",
106
+ "type/CancelationTimestamp",
107
+ "type/CancelationTime",
108
+ "type/CancelationDate",
109
+ "type/DeletionTemporal",
110
+ "type/DeletionTimestamp",
111
+ "type/DeletionTime",
112
+ "type/DeletionDate",
113
+ "type/UpdatedTemporal",
114
+ "type/UpdatedTimestamp",
115
+ "type/UpdatedTime",
116
+ "type/UpdatedDate",
117
+ "type/Birthdate",
118
+ "type/Structured",
119
+ "type/SerializedJSON",
120
+ "type/XML",
121
+ "type/User",
122
+ "type/Author",
123
+ "type/Owner",
124
+ "type/FK",
125
+ "type/PK"
126
+ ]);
127
+ const FieldCoercionStrategy = z.enum([
128
+ "Coercion/String->Temporal",
129
+ "Coercion/ISO8601->Temporal",
130
+ "Coercion/ISO8601->DateTime",
131
+ "Coercion/ISO8601->Time",
132
+ "Coercion/ISO8601->Date",
133
+ "Coercion/YYYYMMDDHHMMSSString->Temporal",
134
+ "Coercion/Bytes->Temporal",
135
+ "Coercion/YYYYMMDDHHMMSSBytes->Temporal",
136
+ "Coercion/ISO8601Bytes->Temporal",
137
+ "Coercion/Number->Temporal",
138
+ "Coercion/UNIXTime->Temporal",
139
+ "Coercion/UNIXSeconds->DateTime",
140
+ "Coercion/UNIXMilliSeconds->DateTime",
141
+ "Coercion/UNIXMicroSeconds->DateTime",
142
+ "Coercion/UNIXNanoSeconds->DateTime",
143
+ "Coercion/Temporal->Temporal",
144
+ "Coercion/DateTime->Date",
145
+ "Coercion/String->Number",
146
+ "Coercion/String->Float",
147
+ "Coercion/String->Integer",
148
+ "Coercion/Float->Integer"
149
+ ]);
150
+ const Field = z.object({
151
+ id: z.number().int(),
152
+ table_id: z.number().int(),
153
+ name: z.string(),
154
+ display_name: z.string(),
155
+ description: z.string().nullable(),
156
+ database_type: z.string().nullable().optional(),
157
+ base_type: FieldBaseType,
158
+ semantic_type: FieldSemanticType.nullable(),
159
+ fk_target_field_id: z.number().int().nullable(),
160
+ has_field_values: FieldValuesType.nullable().optional(),
161
+ visibility_type: FieldVisibilityType.nullable().optional(),
162
+ active: z.boolean().optional(),
163
+ position: z.number().int().optional()
164
+ }).loose();
165
+ const FieldCompact = Field.pick({
166
+ id: true,
167
+ name: true,
168
+ display_name: true,
169
+ description: true,
170
+ table_id: true,
171
+ base_type: true,
172
+ semantic_type: true,
173
+ fk_target_field_id: true
174
+ }).strip();
175
+ const fieldView = {
176
+ compactPick: FieldCompact,
177
+ tableColumns: [
178
+ {
179
+ key: "id",
180
+ label: "ID"
181
+ },
182
+ {
183
+ key: "name",
184
+ label: "Name"
185
+ },
186
+ {
187
+ key: "display_name",
188
+ label: "Display Name"
189
+ },
190
+ {
191
+ key: "base_type",
192
+ label: "Base Type"
193
+ },
194
+ {
195
+ key: "semantic_type",
196
+ label: "Semantic Type"
197
+ },
198
+ {
199
+ key: "fk_target_field_id",
200
+ label: "FK Target"
201
+ },
202
+ {
203
+ key: "description",
204
+ label: "Description"
205
+ }
206
+ ]
207
+ };
208
+ const NonBlankNullable = z.string().min(1).nullable();
209
+ const FieldUpdateInput = z.object({
210
+ display_name: z.string().min(1).optional(),
211
+ description: NonBlankNullable.optional(),
212
+ caveats: NonBlankNullable.optional(),
213
+ points_of_interest: NonBlankNullable.optional(),
214
+ semantic_type: FieldSemanticType.nullable().optional(),
215
+ coercion_strategy: FieldCoercionStrategy.nullable().optional(),
216
+ fk_target_field_id: z.number().int().positive().nullable().optional(),
217
+ visibility_type: FieldVisibilityType.optional(),
218
+ has_field_values: FieldValuesType.optional(),
219
+ settings: z.record(z.string(), z.unknown()).nullable().optional(),
220
+ nfc_path: z.array(z.string()).nullable().optional(),
221
+ json_unfolding: z.boolean().nullable().optional()
222
+ }).loose();
223
+ const FieldValues = z.object({
224
+ values: z.array(z.array(z.unknown())),
225
+ field_id: z.number().int().optional(),
226
+ has_more_values: z.boolean().optional(),
227
+ has_field_values: FieldValuesType.optional()
228
+ }).loose();
229
+ const FieldValuesCompact = FieldValues.pick({
230
+ values: true,
231
+ field_id: true,
232
+ has_more_values: true
233
+ }).strip();
234
+ const fieldValuesView = {
235
+ compactPick: FieldValuesCompact,
236
+ tableColumns: [
237
+ {
238
+ key: "field_id",
239
+ label: "Field"
240
+ },
241
+ {
242
+ key: "has_more_values",
243
+ label: "Has More"
244
+ },
245
+ {
246
+ key: "values",
247
+ label: "Values"
248
+ }
249
+ ]
250
+ };
251
+ const FieldSummaryRaw = z.tuple([z.tuple([z.literal("count"), z.number().int()]), z.tuple([z.literal("distincts"), z.number().int()])]);
252
+ const FieldSummary = z.object({
253
+ field_id: z.number().int(),
254
+ count: z.number().int(),
255
+ distincts: z.number().int()
256
+ });
257
+ const fieldSummaryView = {
258
+ compactPick: FieldSummary,
259
+ tableColumns: [
260
+ {
261
+ key: "field_id",
262
+ label: "Field"
263
+ },
264
+ {
265
+ key: "count",
266
+ label: "Count"
267
+ },
268
+ {
269
+ key: "distincts",
270
+ label: "Distinct"
271
+ }
272
+ ]
273
+ };
274
+
275
+ //#endregion
276
+ export { Field, FieldBaseType, FieldCompact, FieldSemanticType, FieldSummary, FieldSummaryRaw, FieldUpdateInput, FieldValues, fieldSummaryView, fieldValuesView, fieldView };
@@ -0,0 +1,38 @@
1
+ import "./package-DBsS7a5x.mjs";
2
+ import "./command-augment-D9pI9Vbh.mjs";
3
+ import { renderList } from "./render-DXv-D6fU.mjs";
4
+ import "./predicates-DiIiS3k7.mjs";
5
+ import { connectionFlags, defineMetabaseCommand, listEnvelopeSchema, outputFlags, profileFlag, wrapList } from "./runtime-D7jihh81.mjs";
6
+ import { parseId } from "./parse-id-BUOZQqjp.mjs";
7
+ import { FieldCompact, fieldView } from "./field-DciLbuv-.mjs";
8
+ import { TableQueryMetadata } from "./table-jljEqZ0R.mjs";
9
+
10
+ //#region src/commands/table/fields.ts
11
+ const FieldListEnvelope = listEnvelopeSchema(FieldCompact);
12
+ var fields_default = defineMetabaseCommand({
13
+ meta: {
14
+ name: "fields",
15
+ description: "List fields on a table (projection over query_metadata.fields)"
16
+ },
17
+ args: {
18
+ ...outputFlags,
19
+ ...profileFlag,
20
+ ...connectionFlags,
21
+ id: {
22
+ type: "positional",
23
+ description: "Table id",
24
+ required: true
25
+ }
26
+ },
27
+ outputSchema: FieldListEnvelope,
28
+ examples: ["metabase table fields 42", "metabase table fields 42 --json"],
29
+ async run({ args, ctx, getClient }) {
30
+ const id = parseId(args.id);
31
+ const client = await getClient();
32
+ const table = await client.requestParsed(TableQueryMetadata, `/api/table/${id}/query_metadata`);
33
+ renderList(wrapList(table.fields), fieldView, ctx);
34
+ }
35
+ });
36
+
37
+ //#endregion
38
+ export { fields_default as default };
@@ -0,0 +1,17 @@
1
+ import { ConfigError } from "./predicates-DiIiS3k7.mjs";
2
+
3
+ //#region src/commands/flag-pair.ts
4
+ function requireBothOrNeither(first, second) {
5
+ const firstSet = first.value !== void 0 && first.value !== "";
6
+ const secondSet = second.value !== void 0 && second.value !== "";
7
+ if (!firstSet && !secondSet) return null;
8
+ if (!firstSet) throw new ConfigError(`${first.name} is required when using ${second.name}`);
9
+ if (!secondSet) throw new ConfigError(`${second.name} is required when using ${first.name}`);
10
+ return {
11
+ first: first.value,
12
+ second: second.value
13
+ };
14
+ }
15
+
16
+ //#endregion
17
+ export { requireBothOrNeither };
@@ -1,8 +1,10 @@
1
- import "./package-BGfw4ZWJ.mjs";
1
+ import "./package-DBsS7a5x.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag, renderItem } from "./runtime-C9CEZhcn.mjs";
4
- import { parseId } from "./parse-id-BhmmfyCP.mjs";
5
- import { TransformJob, transformJobView } from "./transform-job-C7QXWTVE.mjs";
3
+ import { renderItem } from "./render-DXv-D6fU.mjs";
4
+ import "./predicates-DiIiS3k7.mjs";
5
+ import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-D7jihh81.mjs";
6
+ import { parseId } from "./parse-id-BUOZQqjp.mjs";
7
+ import { TransformJob, transformJobView } from "./transform-job-Csr86muI.mjs";
6
8
 
7
9
  //#region src/commands/transform-job/get.ts
8
10
  var get_default = defineMetabaseCommand({
@@ -0,0 +1,36 @@
1
+ import "./package-DBsS7a5x.mjs";
2
+ import "./command-augment-D9pI9Vbh.mjs";
3
+ import { renderItem } from "./render-DXv-D6fU.mjs";
4
+ import "./predicates-DiIiS3k7.mjs";
5
+ import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-D7jihh81.mjs";
6
+ import { parseId } from "./parse-id-BUOZQqjp.mjs";
7
+ import { Snippet, snippetView } from "./snippet-Dw0Sjzkr.mjs";
8
+
9
+ //#region src/commands/snippet/get.ts
10
+ var get_default = defineMetabaseCommand({
11
+ meta: {
12
+ name: "get",
13
+ description: "Get a native query snippet by id"
14
+ },
15
+ args: {
16
+ ...outputFlags,
17
+ ...profileFlag,
18
+ ...connectionFlags,
19
+ id: {
20
+ type: "positional",
21
+ description: "Snippet id",
22
+ required: true
23
+ }
24
+ },
25
+ outputSchema: Snippet,
26
+ examples: ["metabase snippet get 1", "metabase snippet get 1 --json"],
27
+ async run({ args, ctx, getClient }) {
28
+ const id = parseId(args.id);
29
+ const client = await getClient();
30
+ const snippet = await client.requestParsed(Snippet, `/api/native-query-snippet/${id}`);
31
+ renderItem(snippet, snippetView, ctx);
32
+ }
33
+ });
34
+
35
+ //#endregion
36
+ export { get_default as default };
@@ -1,8 +1,10 @@
1
- import "./package-BGfw4ZWJ.mjs";
1
+ import "./package-DBsS7a5x.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag, renderItem } from "./runtime-C9CEZhcn.mjs";
4
- import { parseId } from "./parse-id-BhmmfyCP.mjs";
5
- import { Field, fieldView } from "./field-C8IVs6rp.mjs";
3
+ import { renderItem } from "./render-DXv-D6fU.mjs";
4
+ import "./predicates-DiIiS3k7.mjs";
5
+ import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-D7jihh81.mjs";
6
+ import { parseId } from "./parse-id-BUOZQqjp.mjs";
7
+ import { Field, fieldView } from "./field-DciLbuv-.mjs";
6
8
 
7
9
  //#region src/commands/field/get.ts
8
10
  var get_default = defineMetabaseCommand({
@@ -0,0 +1,36 @@
1
+ import "./package-DBsS7a5x.mjs";
2
+ import "./command-augment-D9pI9Vbh.mjs";
3
+ import { renderItem } from "./render-DXv-D6fU.mjs";
4
+ import "./predicates-DiIiS3k7.mjs";
5
+ import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-D7jihh81.mjs";
6
+ import { parseId } from "./parse-id-BUOZQqjp.mjs";
7
+ import { Measure, measureView } from "./measure-BEQfnLdN.mjs";
8
+
9
+ //#region src/commands/measure/get.ts
10
+ var get_default = defineMetabaseCommand({
11
+ meta: {
12
+ name: "get",
13
+ description: "Get a measure by id"
14
+ },
15
+ args: {
16
+ ...outputFlags,
17
+ ...profileFlag,
18
+ ...connectionFlags,
19
+ id: {
20
+ type: "positional",
21
+ description: "Measure id",
22
+ required: true
23
+ }
24
+ },
25
+ outputSchema: Measure,
26
+ examples: ["metabase measure get 1", "metabase measure get 1 --json"],
27
+ async run({ args, ctx, getClient }) {
28
+ const id = parseId(args.id);
29
+ const client = await getClient();
30
+ const measure = await client.requestParsed(Measure, `/api/measure/${id}`);
31
+ renderItem(measure, measureView, ctx);
32
+ }
33
+ });
34
+
35
+ //#endregion
36
+ export { get_default as default };
@@ -0,0 +1,40 @@
1
+ import "./package-DBsS7a5x.mjs";
2
+ import "./command-augment-D9pI9Vbh.mjs";
3
+ import { renderItem } from "./render-DXv-D6fU.mjs";
4
+ import "./predicates-DiIiS3k7.mjs";
5
+ import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-D7jihh81.mjs";
6
+ import { parseId } from "./parse-id-BUOZQqjp.mjs";
7
+ import { DashboardDetail, dashboardView } from "./dashboard-CnMD04PQ.mjs";
8
+
9
+ //#region src/commands/dashboard/get.ts
10
+ var get_default = defineMetabaseCommand({
11
+ meta: {
12
+ name: "get",
13
+ description: "Get a dashboard by id"
14
+ },
15
+ args: {
16
+ ...outputFlags,
17
+ ...profileFlag,
18
+ ...connectionFlags,
19
+ id: {
20
+ type: "positional",
21
+ description: "Dashboard id",
22
+ required: true
23
+ }
24
+ },
25
+ outputSchema: DashboardDetail,
26
+ examples: [
27
+ "metabase dashboard get 1",
28
+ "metabase dashboard get 1 --json",
29
+ "metabase dashboard get 1 --json --full"
30
+ ],
31
+ async run({ args, ctx, getClient }) {
32
+ const id = parseId(args.id);
33
+ const client = await getClient();
34
+ const dashboard = await client.requestParsed(DashboardDetail, `/api/dashboard/${id}`);
35
+ renderItem(dashboard, dashboardView, ctx);
36
+ }
37
+ });
38
+
39
+ //#endregion
40
+ export { get_default as default };
@@ -0,0 +1,41 @@
1
+ import "./package-DBsS7a5x.mjs";
2
+ import "./command-augment-D9pI9Vbh.mjs";
3
+ import { renderItem } from "./render-DXv-D6fU.mjs";
4
+ import "./predicates-DiIiS3k7.mjs";
5
+ import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-D7jihh81.mjs";
6
+ import { Collection, collectionView } from "./collection-B3sPXRLs.mjs";
7
+ import { parseCollectionRef } from "./parse-ref-DGvh4aDn.mjs";
8
+
9
+ //#region src/commands/collection/get.ts
10
+ var get_default = defineMetabaseCommand({
11
+ meta: {
12
+ name: "get",
13
+ description: "Get a collection by id, 21-char entity id, or \"root\"/\"trash\""
14
+ },
15
+ args: {
16
+ ...outputFlags,
17
+ ...profileFlag,
18
+ ...connectionFlags,
19
+ id: {
20
+ type: "positional",
21
+ description: "Collection id, 21-char entity id, or one of: \"root\", \"trash\"",
22
+ required: true
23
+ }
24
+ },
25
+ outputSchema: Collection,
26
+ examples: [
27
+ "metabase collection get 4",
28
+ "metabase collection get root --json",
29
+ "metabase collection get trash --json",
30
+ "metabase collection get voo1If9y8Sld0lXej6xl0 --json"
31
+ ],
32
+ async run({ args, ctx, getClient }) {
33
+ const ref = parseCollectionRef(args.id);
34
+ const client = await getClient();
35
+ const collection = await client.requestParsed(Collection, `/api/collection/${ref}`);
36
+ renderItem(collection, collectionView, ctx);
37
+ }
38
+ });
39
+
40
+ //#endregion
41
+ export { get_default as default };
@@ -1,8 +1,10 @@
1
- import "./package-BGfw4ZWJ.mjs";
1
+ import "./package-DBsS7a5x.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { connectionFlags, defineMetabaseCommand, outputFlags, parseJson, profileFlag, renderItem } from "./runtime-C9CEZhcn.mjs";
4
- import { SettingValue, settingValueView } from "./setting-26ckqHAP.mjs";
5
- import { parseSettingKey } from "./key-DBxPSFwi.mjs";
3
+ import { renderItem } from "./render-DXv-D6fU.mjs";
4
+ import "./predicates-DiIiS3k7.mjs";
5
+ import { connectionFlags, defineMetabaseCommand, outputFlags, parseJsonOrPlain, profileFlag } from "./runtime-D7jihh81.mjs";
6
+ import { SettingValue, settingValueView } from "./setting-CTaAeMci.mjs";
7
+ import { parseSettingKey } from "./key-NDEARu2L.mjs";
6
8
  import { z } from "zod";
7
9
 
8
10
  //#region src/commands/setting/get.ts
@@ -41,7 +43,7 @@ async function fetchSettingValue(client, key) {
41
43
  });
42
44
  if (response.status === 204) return null;
43
45
  const text = await response.text();
44
- return parseJson(text, z.unknown(), { source: response.url });
46
+ return parseJsonOrPlain(text, response.headers.get("content-type"), z.unknown(), { source: response.url });
45
47
  }
46
48
 
47
49
  //#endregion
@@ -0,0 +1,53 @@
1
+ import "./package-DBsS7a5x.mjs";
2
+ import "./command-augment-D9pI9Vbh.mjs";
3
+ import { renderItem } from "./render-DXv-D6fU.mjs";
4
+ import "./predicates-DiIiS3k7.mjs";
5
+ import { connectionFlags, defineMetabaseCommand, outputFlags, parseEnum, profileFlag } from "./runtime-D7jihh81.mjs";
6
+ import { parseId } from "./parse-id-BUOZQqjp.mjs";
7
+ import "./field-DciLbuv-.mjs";
8
+ import { Table, TableQueryMetadata, tableView } from "./table-jljEqZ0R.mjs";
9
+ import { z } from "zod";
10
+
11
+ //#region src/commands/table/get.ts
12
+ const TableGetInclude = z.enum(["fields"]);
13
+ var get_default = defineMetabaseCommand({
14
+ meta: {
15
+ name: "get",
16
+ description: "Get a table by id; pass --include fields to bundle hydrated fields"
17
+ },
18
+ args: {
19
+ ...outputFlags,
20
+ ...profileFlag,
21
+ ...connectionFlags,
22
+ include: {
23
+ type: "string",
24
+ description: `Hydrate related entities: ${TableGetInclude.options.join("|")}`
25
+ },
26
+ id: {
27
+ type: "positional",
28
+ description: "Table id",
29
+ required: true
30
+ }
31
+ },
32
+ outputSchema: Table,
33
+ examples: [
34
+ "metabase table get 42",
35
+ "metabase table get 42 --json",
36
+ "metabase table get 42 --include fields --json"
37
+ ],
38
+ async run({ args, ctx, getClient }) {
39
+ const id = parseId(args.id);
40
+ const include = parseEnum(args.include, TableGetInclude, "--include");
41
+ const client = await getClient();
42
+ if (include === "fields") {
43
+ const table$1 = await client.requestParsed(TableQueryMetadata, `/api/table/${id}/query_metadata`);
44
+ renderItem(table$1, tableView, ctx);
45
+ return;
46
+ }
47
+ const table = await client.requestParsed(Table, `/api/table/${id}`);
48
+ renderItem(table, tableView, ctx);
49
+ }
50
+ });
51
+
52
+ //#endregion
53
+ export { get_default as default };
@@ -1,8 +1,11 @@
1
- import "./package-BGfw4ZWJ.mjs";
1
+ import "./package-DBsS7a5x.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag, renderItem } from "./runtime-C9CEZhcn.mjs";
4
- import { Card, cardView } from "./card-CsXk8T6A.mjs";
5
- import { parseId } from "./parse-id-BhmmfyCP.mjs";
3
+ import { renderItem } from "./render-DXv-D6fU.mjs";
4
+ import "./predicates-DiIiS3k7.mjs";
5
+ import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-D7jihh81.mjs";
6
+ import { parseId } from "./parse-id-BUOZQqjp.mjs";
7
+ import "./field-DciLbuv-.mjs";
8
+ import { Card, cardView } from "./card-CAEZWixN.mjs";
6
9
 
7
10
  //#region src/commands/card/get.ts
8
11
  var get_default = defineMetabaseCommand({
@@ -0,0 +1,36 @@
1
+ import "./package-DBsS7a5x.mjs";
2
+ import "./command-augment-D9pI9Vbh.mjs";
3
+ import { renderItem } from "./render-DXv-D6fU.mjs";
4
+ import "./predicates-DiIiS3k7.mjs";
5
+ import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-D7jihh81.mjs";
6
+ import { parseId } from "./parse-id-BUOZQqjp.mjs";
7
+ import { Segment, segmentView } from "./segment-BMrUBz94.mjs";
8
+
9
+ //#region src/commands/segment/get.ts
10
+ var get_default = defineMetabaseCommand({
11
+ meta: {
12
+ name: "get",
13
+ description: "Get a segment by id"
14
+ },
15
+ args: {
16
+ ...outputFlags,
17
+ ...profileFlag,
18
+ ...connectionFlags,
19
+ id: {
20
+ type: "positional",
21
+ description: "Segment id",
22
+ required: true
23
+ }
24
+ },
25
+ outputSchema: Segment,
26
+ examples: ["metabase segment get 1", "metabase segment get 1 --json"],
27
+ async run({ args, ctx, getClient }) {
28
+ const id = parseId(args.id);
29
+ const client = await getClient();
30
+ const segment = await client.requestParsed(Segment, `/api/segment/${id}`);
31
+ renderItem(segment, segmentView, ctx);
32
+ }
33
+ });
34
+
35
+ //#endregion
36
+ export { get_default as default };