@metabase/cli 0.1.0 → 0.1.2

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-DwxQDXzL.mjs +54 -0
  3. package/dist/add-collection-SL08iMub.mjs +11 -0
  4. package/dist/api-key-BktzvPb7.mjs +13 -0
  5. package/dist/{archive-CsWeHXle.mjs → archive-C1mF-9Kj.mjs} +7 -4
  6. package/dist/archive-CLWtbvvH.mjs +44 -0
  7. package/dist/archive-Cq4WKmJt.mjs +44 -0
  8. package/dist/archive-kYoy5LK5.mjs +39 -0
  9. package/dist/auth-DfYkakP3.mjs +19 -0
  10. package/dist/{body-Dv9hQ0Qk.mjs → body-rDrR-C1c.mjs} +3 -2
  11. package/dist/{branches-BujtceGr.mjs → branches-CH2UcCpX.mjs} +8 -6
  12. package/dist/cancel-CgLZcItQ.mjs +56 -0
  13. package/dist/{cancel-task-CT2xUMRg.mjs → cancel-task-DcYrFsM6.mjs} +9 -7
  14. package/dist/{card-CsXk8T6A.mjs → card-CQxvHeyP.mjs} +34 -15
  15. package/dist/card-ZCGU2JEh.mjs +20 -0
  16. package/dist/cards-C4NIaERo.mjs +37 -0
  17. package/dist/cli.mjs +33 -14
  18. package/dist/collection-B3sPXRLs.mjs +163 -0
  19. package/dist/collection-D_uFLIAS.mjs +19 -0
  20. package/dist/create-BUCLNqiN.mjs +48 -0
  21. package/dist/create-CB0Yp__0.mjs +66 -0
  22. package/dist/create-CNvd5T8h.mjs +48 -0
  23. package/dist/create-Cbh1cGj9.mjs +48 -0
  24. package/dist/create-CzfNOhOF.mjs +48 -0
  25. package/dist/create-DU0ZhnZu.mjs +44 -0
  26. package/dist/create-Dh0p-c2Y.mjs +44 -0
  27. package/dist/create-DvrVZ2hS.mjs +125 -0
  28. package/dist/create-QgN369N5.mjs +50 -0
  29. package/dist/{create-B8ektf-R.mjs → create-bqc_rmix.mjs} +8 -6
  30. package/dist/{create-branch-goZBTNnr.mjs → create-branch-BJFH9Hda.mjs} +9 -7
  31. package/dist/credentials-DTP1xuKz.mjs +85 -0
  32. package/dist/{current-task-DBjRNCFq.mjs → current-task-z_TiJ0kt.mjs} +9 -7
  33. package/dist/dashboard-CnMD04PQ.mjs +163 -0
  34. package/dist/dashboard-G1-dGLUR.mjs +20 -0
  35. package/dist/database-DQkUxTLd.mjs +17 -0
  36. package/dist/database-vvig8k4x.mjs +51 -0
  37. package/dist/db-CBaEfumR.mjs +22 -0
  38. package/dist/{delete-8vGU35r3.mjs → delete-CVYII8mq.mjs} +7 -5
  39. package/dist/{delete-B27KLF5X.mjs → delete-DeZQ1r9w.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-ZiR9-ndv.mjs} +7 -5
  42. package/dist/deprovision-BhD3J-Am.mjs +61 -0
  43. package/dist/{dirty-aNUuph4I.mjs → dirty-D9agt7Os.mjs} +8 -6
  44. package/dist/docker-CHpV8PRz.mjs +612 -0
  45. package/dist/eid-B5wawMmO.mjs +13 -0
  46. package/dist/{export-QDkuuzSE.mjs → export-Bfk7JAlR.mjs} +30 -23
  47. package/dist/field-B3gvaqpK.mjs +278 -0
  48. package/dist/field-BDJ1pEgr.mjs +18 -0
  49. package/dist/fields-7ByLsxLg.mjs +38 -0
  50. package/dist/flag-pair-DtR1AiBQ.mjs +17 -0
  51. package/dist/get-BE6Izpus.mjs +36 -0
  52. package/dist/get-C3CcAJGg.mjs +49 -0
  53. package/dist/{get-DI_IJvgk.mjs → get-CQGeF-eP.mjs} +6 -4
  54. package/dist/get-D2m4jhwT.mjs +53 -0
  55. package/dist/{get-BGBIzMKY.mjs → get-DKy3DAJX.mjs} +6 -4
  56. package/dist/{get-COXHplHP.mjs → get-DUSR5i99.mjs} +7 -5
  57. package/dist/get-DikegGzi.mjs +36 -0
  58. package/dist/get-StkjKuh0.mjs +40 -0
  59. package/dist/get-bYc7eGYe.mjs +36 -0
  60. package/dist/{get-Cl8-IauC.mjs → get-cuHp9-6U.mjs} +7 -4
  61. package/dist/{get-i6LWOByV.mjs → get-gOT_RarI.mjs} +6 -4
  62. package/dist/get-run-D59Yqaoh.mjs +36 -0
  63. package/dist/get-tISo-cmg.mjs +41 -0
  64. package/dist/git-sync-BiTWfLgY.mjs +28 -0
  65. package/dist/{has-remote-changes-hjKoQuRy.mjs → has-remote-changes-B1TciDVD.mjs} +8 -6
  66. package/dist/{import-HJsSKRYx.mjs → import-DnnmmJbp.mjs} +11 -9
  67. package/dist/{input-Dojr-RTw.mjs → input-ikCiip6x.mjs} +2 -1
  68. package/dist/is-dirty-DClGFOGV.mjs +10 -0
  69. package/dist/{is-dirty-1Qy7hiHB.mjs → is-dirty-DlfX7e39.mjs} +5 -4
  70. package/dist/items-DQFQSpjF.mjs +77 -0
  71. package/dist/{key-DBxPSFwi.mjs → key-NDEARu2L.mjs} +1 -1
  72. package/dist/{license-MoWse3ZI.mjs → license-DBh13sc8.mjs} +3 -3
  73. package/dist/list-4kYCGv01.mjs +32 -0
  74. package/dist/list-9AOWhxqp.mjs +61 -0
  75. package/dist/{list-Bk6RsbJl.mjs → list-BwjqQ6pp.mjs} +5 -3
  76. package/dist/{list-C_PRdL5e.mjs → list-CP5RNjO6.mjs} +7 -5
  77. package/dist/{list-C8tdLOH5.mjs → list-Cy0VhXQs.mjs} +5 -3
  78. package/dist/list-D067ZSE5.mjs +47 -0
  79. package/dist/list-DAZP-IM5.mjs +32 -0
  80. package/dist/list-DJN-OvTZ.mjs +52 -0
  81. package/dist/list-DQj-QJAs.mjs +40 -0
  82. package/dist/list-Di529OJD.mjs +55 -0
  83. package/dist/{list-C4Ajrw8f.mjs → list-DlKzgnqo.mjs} +6 -3
  84. package/dist/list-GFfR9SuT.mjs +32 -0
  85. package/dist/{list-CWt3fqrZ.mjs → list-iFVEdi2J.mjs} +5 -3
  86. package/dist/{login-C9WTwNn6.mjs → login-DxgkosGx.mjs} +30 -9
  87. package/dist/{logout-oLszGCOg.mjs → logout-BlVwqBog.mjs} +7 -6
  88. package/dist/logs-CudNEkT4.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-C7SbdYQk.mjs +19 -0
  92. package/dist/metadata-B2Td415K.mjs +38 -0
  93. package/dist/metadata-BTJAFVvZ.mjs +37 -0
  94. package/dist/{package-BGfw4ZWJ.mjs → package-DV6Asqim.mjs} +7 -1
  95. package/dist/paginate-CTSfuYiF.mjs +49 -0
  96. package/dist/parse-id-B38zTlYs.mjs +12 -0
  97. package/dist/parse-ref-DGvh4aDn.mjs +17 -0
  98. package/dist/parse-schemas-Ds-cVE-O.mjs +12 -0
  99. package/dist/{poll-ILanYysl.mjs → poll-Bh6oAifO.mjs} +2 -1
  100. package/dist/{poll-task-DbpsiQhl.mjs → poll-task-vPwV31Fs.mjs} +8 -7
  101. package/dist/predicates-DiIiS3k7.mjs +153 -0
  102. package/dist/preflight-DxJb-hUV.mjs +91 -0
  103. package/dist/{prompt-DpT8yAVy.mjs → prompt-Bf3DQ-qE.mjs} +1 -1
  104. package/dist/provision-B-I0zuDe.mjs +77 -0
  105. package/dist/ps-BmYQYC7t.mjs +10 -0
  106. package/dist/ps-CaiOFCv2.mjs +78 -0
  107. package/dist/query-BtF1yWZZ.mjs +90 -0
  108. package/dist/{query-PihYi-UZ.mjs → query-jmfqaXRP.mjs} +38 -13
  109. package/dist/remove-C2iv0g03.mjs +98 -0
  110. package/dist/remove-collection-DhZghaZy.mjs +38 -0
  111. package/dist/{remove-B2hVYn1v.mjs → remove-xskleeru.mjs} +6 -5
  112. package/dist/render-DXv-D6fU.mjs +182 -0
  113. package/dist/rescan-values-DW6u90ep.mjs +43 -0
  114. package/dist/revision-message-flag-CWQbKhdl.mjs +11 -0
  115. package/dist/{run-C2so6Qp6.mjs → run-DxVzhcF3.mjs} +27 -36
  116. package/dist/runs-BOHk1XnM.mjs +54 -0
  117. package/dist/{runtime-C9CEZhcn.mjs → runtime-cwBS8wwK.mjs} +428 -442
  118. package/dist/schema-tables-CcFbY_jN.mjs +45 -0
  119. package/dist/schemas-DZmv_V62.mjs +47 -0
  120. package/dist/{search-CopOytXY.mjs → search-CYMuc7Fg.mjs} +6 -19
  121. package/dist/segment-BMrUBz94.mjs +70 -0
  122. package/dist/segment-Df4pfjco.mjs +19 -0
  123. package/dist/{set-BcF7M1GQ.mjs → set-B_rrVwU4.mjs} +6 -4
  124. package/dist/{set-CbibegpA.mjs → set-CbGfQ7Ye.mjs} +8 -6
  125. package/dist/{setting-U3NtBMFo.mjs → setting-DqZY9NXP.mjs} +3 -3
  126. package/dist/setup-DxmcAorA.mjs +71 -0
  127. package/dist/snippet-CwSHjQyn.mjs +19 -0
  128. package/dist/snippet-Dw0Sjzkr.mjs +64 -0
  129. package/dist/start-Cn0epTks.mjs +380 -0
  130. package/dist/{stash-DOBbYozC.mjs → stash-BFZIl9F4.mjs} +9 -7
  131. package/dist/{status-Buf1ZbNR.mjs → status-BjCeJNLp.mjs} +10 -8
  132. package/dist/{status-CUcs8XBH.mjs → status-FDIDmqvM.mjs} +4 -2
  133. package/dist/{status-D1F5XHae.mjs → status-UALK3OJl.mjs} +4 -2
  134. package/dist/stop-DUwrDWw8.mjs +81 -0
  135. package/dist/summary-CS4UGiFJ.mjs +41 -0
  136. package/dist/sync-schema-IrHdJxmX.mjs +43 -0
  137. package/dist/{table-Cfk7oSvw.mjs → table-B-PYcgGb.mjs} +22 -9
  138. package/dist/table-Cdr5bKp1.mjs +19 -0
  139. package/dist/transform-CeZusR_w.mjs +24 -0
  140. package/dist/{transform-B5uRpg1G.mjs → transform-IEX4Mx3X.mjs} +56 -2
  141. package/dist/transform-job-BOn9-CGa.mjs +19 -0
  142. package/dist/{transform-job-C7QXWTVE.mjs → transform-job-Csr86muI.mjs} +7 -0
  143. package/dist/translate-B__zbDKm.mjs +111 -0
  144. package/dist/tree-Mh0uQ_Wy.mjs +32 -0
  145. package/dist/update-1Di9hbPo.mjs +56 -0
  146. package/dist/update-B5_pp6Jj.mjs +56 -0
  147. package/dist/update-B9DBMo30.mjs +52 -0
  148. package/dist/update-BfBsM_y1.mjs +56 -0
  149. package/dist/update-Bw0WZix_.mjs +73 -0
  150. package/dist/update-Cp1789qq.mjs +52 -0
  151. package/dist/update-D2VI_5cy.mjs +57 -0
  152. package/dist/update-D8GwQTcL.mjs +59 -0
  153. package/dist/{update-CL8tRbxr.mjs → update-Masp5WeT.mjs} +9 -7
  154. package/dist/update-dashcard-CNiQw1MD.mjs +71 -0
  155. package/dist/update-j9vgemKR.mjs +51 -0
  156. package/dist/url-GFM76VIK.mjs +54 -0
  157. package/dist/uuid-Uif0lNk8.mjs +47 -0
  158. package/dist/validate-DCYx6jdL.mjs +1496 -0
  159. package/dist/validate-query-B07oGG4K.mjs +37 -0
  160. package/dist/values-DrwNHUAI.mjs +36 -0
  161. package/dist/{wait-Bugr9eXD.mjs → wait-BoKk8CJy.mjs} +10 -8
  162. package/dist/wait-DO7tS7NI.mjs +19 -0
  163. package/dist/wait-flags-CjX2sEGm.mjs +35 -0
  164. package/dist/workspace-CyEX40D-.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,45 @@
1
+ import "./package-DV6Asqim.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-cwBS8wwK.mjs";
6
+ import { parseId } from "./parse-id-B38zTlYs.mjs";
7
+ import "./field-B3gvaqpK.mjs";
8
+ import { Table, TableCompact, tableView } from "./table-B-PYcgGb.mjs";
9
+ import { z } from "zod";
10
+
11
+ //#region src/commands/db/schema-tables.ts
12
+ const SchemaTablesApiResponse = z.array(Table);
13
+ const DatabaseSchemaTablesEnvelope = listEnvelopeSchema(TableCompact);
14
+ var schema_tables_default = defineMetabaseCommand({
15
+ meta: {
16
+ name: "schema-tables",
17
+ description: "List tables in a database schema"
18
+ },
19
+ args: {
20
+ ...outputFlags,
21
+ ...profileFlag,
22
+ ...connectionFlags,
23
+ id: {
24
+ type: "positional",
25
+ description: "Database id",
26
+ required: true
27
+ },
28
+ schema: {
29
+ type: "positional",
30
+ description: "Schema name",
31
+ required: true
32
+ }
33
+ },
34
+ outputSchema: DatabaseSchemaTablesEnvelope,
35
+ examples: ["metabase db schema-tables 1 public", "metabase db schema-tables 1 public --json"],
36
+ async run({ args, ctx, getClient }) {
37
+ const id = parseId(args.id);
38
+ const client = await getClient();
39
+ const tables = await client.requestParsed(SchemaTablesApiResponse, `/api/database/${id}/schema/${encodeURIComponent(args.schema)}`);
40
+ renderList(wrapList(tables), tableView, ctx);
41
+ }
42
+ });
43
+
44
+ //#endregion
45
+ export { schema_tables_default as default };
@@ -0,0 +1,47 @@
1
+ import "./package-DV6Asqim.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-cwBS8wwK.mjs";
6
+ import { parseId } from "./parse-id-B38zTlYs.mjs";
7
+ import { z } from "zod";
8
+
9
+ //#region src/commands/db/schemas.ts
10
+ const SchemaName = z.object({ name: z.string() });
11
+ const schemaNameView = {
12
+ compactPick: SchemaName,
13
+ tableColumns: [{
14
+ key: "name",
15
+ label: "Schema"
16
+ }]
17
+ };
18
+ const SchemasApiResponse = z.array(z.string());
19
+ const DatabaseSchemaListEnvelope = listEnvelopeSchema(SchemaName);
20
+ var schemas_default = defineMetabaseCommand({
21
+ meta: {
22
+ name: "schemas",
23
+ description: "List schemas in a database"
24
+ },
25
+ args: {
26
+ ...outputFlags,
27
+ ...profileFlag,
28
+ ...connectionFlags,
29
+ id: {
30
+ type: "positional",
31
+ description: "Database id",
32
+ required: true
33
+ }
34
+ },
35
+ outputSchema: DatabaseSchemaListEnvelope,
36
+ examples: ["metabase db schemas 1", "metabase db schemas 1 --json"],
37
+ async run({ args, ctx, getClient }) {
38
+ const id = parseId(args.id);
39
+ const client = await getClient();
40
+ const names = await client.requestParsed(SchemasApiResponse, `/api/database/${id}/schemas`);
41
+ const rows = names.map((name) => ({ name }));
42
+ renderList(wrapList(rows), schemaNameView, ctx);
43
+ }
44
+ });
45
+
46
+ //#endregion
47
+ export { schemas_default as default };
@@ -1,7 +1,9 @@
1
- import "./package-BGfw4ZWJ.mjs";
1
+ import "./package-DV6Asqim.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { ConfigError, connectionFlags, defineMetabaseCommand, listEnvelopeSchema, outputFlags, profileFlag, renderList } from "./runtime-C9CEZhcn.mjs";
4
- import { parseId } from "./parse-id-BhmmfyCP.mjs";
3
+ import { renderList } from "./render-DXv-D6fU.mjs";
4
+ import "./predicates-DiIiS3k7.mjs";
5
+ import { connectionFlags, defineMetabaseCommand, listEnvelopeSchema, outputFlags, parseEnumCsv, profileFlag } from "./runtime-cwBS8wwK.mjs";
6
+ import { parseId } from "./parse-id-B38zTlYs.mjs";
5
7
  import { z } from "zod";
6
8
 
7
9
  //#region src/domain/search.ts
@@ -15,7 +17,6 @@ const SEARCH_MODELS = [
15
17
  "table",
16
18
  "segment",
17
19
  "measure",
18
- "snippet",
19
20
  "document",
20
21
  "action",
21
22
  "transform",
@@ -127,7 +128,7 @@ var search_default = defineMetabaseCommand({
127
128
  const limit = parseId(args.limit, "--limit");
128
129
  const tableDbIdRaw = args["table-db-id"];
129
130
  const tableDbId = tableDbIdRaw ? parseId(tableDbIdRaw, "--table-db-id") : void 0;
130
- const models = parseModels(args.models);
131
+ const models = parseEnumCsv(args.models, SearchModel, "--models");
131
132
  const client = await getClient();
132
133
  const response = await client.requestParsed(SearchApiResponse, "/api/search", { query: {
133
134
  q: nonEmpty(args.query),
@@ -151,20 +152,6 @@ function nonEmpty(value) {
151
152
  const trimmed = value.trim();
152
153
  return trimmed.length === 0 ? void 0 : trimmed;
153
154
  }
154
- function parseModels(raw) {
155
- if (raw === void 0 || raw === "") return void 0;
156
- const parts = raw.split(",").map((part) => part.trim()).filter((part) => part.length > 0);
157
- if (parts.length === 0) return void 0;
158
- const accepted = [];
159
- const rejected = [];
160
- for (const part of parts) {
161
- const result = SearchModel.safeParse(part);
162
- if (result.success) accepted.push(result.data);
163
- else rejected.push(part);
164
- }
165
- if (rejected.length > 0) throw new ConfigError(`invalid --models value: ${rejected.join(", ")} (expected one of: ${SEARCH_MODELS.join(", ")})`);
166
- return accepted;
167
- }
168
155
 
169
156
  //#endregion
170
157
  export { search_default as default };
@@ -0,0 +1,70 @@
1
+ import { z } from "zod";
2
+
3
+ //#region src/domain/segment.ts
4
+ const Segment = z.object({
5
+ id: z.number().int(),
6
+ name: z.string(),
7
+ description: z.string().nullable(),
8
+ archived: z.boolean(),
9
+ table_id: z.number().int(),
10
+ definition: z.unknown(),
11
+ creator_id: z.number().int(),
12
+ entity_id: z.string().nullable(),
13
+ show_in_getting_started: z.boolean().nullable(),
14
+ caveats: z.string().nullable(),
15
+ points_of_interest: z.string().nullable(),
16
+ definition_description: z.string().nullable().optional(),
17
+ created_at: z.string(),
18
+ updated_at: z.string()
19
+ }).loose();
20
+ const SegmentCompact = Segment.pick({
21
+ id: true,
22
+ name: true,
23
+ description: true,
24
+ archived: true,
25
+ table_id: true
26
+ }).strip();
27
+ const segmentView = {
28
+ compactPick: SegmentCompact,
29
+ tableColumns: [
30
+ {
31
+ key: "id",
32
+ label: "ID"
33
+ },
34
+ {
35
+ key: "name",
36
+ label: "Name"
37
+ },
38
+ {
39
+ key: "description",
40
+ label: "Description"
41
+ },
42
+ {
43
+ key: "table_id",
44
+ label: "Table"
45
+ },
46
+ {
47
+ key: "archived",
48
+ label: "Archived"
49
+ }
50
+ ]
51
+ };
52
+ const SegmentCreateInput = z.object({
53
+ name: z.string().min(1),
54
+ table_id: z.number().int().positive(),
55
+ definition: z.record(z.string(), z.unknown()),
56
+ description: z.string().nullable().optional()
57
+ }).loose();
58
+ const SegmentUpdateInput = z.object({
59
+ name: z.string().min(1).optional(),
60
+ definition: z.record(z.string(), z.unknown()).optional(),
61
+ revision_message: z.string().min(1),
62
+ archived: z.boolean().optional(),
63
+ description: z.string().nullable().optional(),
64
+ caveats: z.string().nullable().optional(),
65
+ points_of_interest: z.string().nullable().optional(),
66
+ show_in_getting_started: z.boolean().optional()
67
+ }).loose();
68
+
69
+ //#endregion
70
+ export { Segment, SegmentCompact, SegmentCreateInput, SegmentUpdateInput, segmentView };
@@ -0,0 +1,19 @@
1
+ import { defineCommand } from "citty";
2
+
3
+ //#region src/commands/segment/index.ts
4
+ var segment_default = defineCommand({
5
+ meta: {
6
+ name: "segment",
7
+ description: "Inspect Metabase segments"
8
+ },
9
+ subCommands: {
10
+ list: () => import("./list-GFfR9SuT.mjs").then((mod) => mod.default),
11
+ get: () => import("./get-DikegGzi.mjs").then((mod) => mod.default),
12
+ create: () => import("./create-CzfNOhOF.mjs").then((mod) => mod.default),
13
+ update: () => import("./update-BfBsM_y1.mjs").then((mod) => mod.default),
14
+ archive: () => import("./archive-CLWtbvvH.mjs").then((mod) => mod.default)
15
+ }
16
+ });
17
+
18
+ //#endregion
19
+ export { segment_default as default };
@@ -1,8 +1,10 @@
1
- import "./package-BGfw4ZWJ.mjs";
1
+ import "./package-DV6Asqim.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { ConfigError, defineMetabaseCommand, outputFlags, readEnvLicenseToken, renderItem, warn, writeLicense } from "./runtime-C9CEZhcn.mjs";
4
- import { promptPassword } from "./prompt-DpT8yAVy.mjs";
5
- import { readInput } from "./input-Dojr-RTw.mjs";
3
+ import { renderItem, warn } from "./render-DXv-D6fU.mjs";
4
+ import { ConfigError } from "./predicates-DiIiS3k7.mjs";
5
+ import { readInput } from "./input-ikCiip6x.mjs";
6
+ import { defineMetabaseCommand, outputFlags, readEnvLicenseToken, writeLicense } from "./runtime-cwBS8wwK.mjs";
7
+ import { promptPassword } from "./prompt-Bf3DQ-qE.mjs";
6
8
  import { z } from "zod";
7
9
 
8
10
  //#region src/commands/license/set.ts
@@ -1,10 +1,12 @@
1
- import "./package-BGfw4ZWJ.mjs";
1
+ import "./package-DV6Asqim.mjs";
2
2
  import "./command-augment-D9pI9Vbh.mjs";
3
- import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag, renderItem } from "./runtime-C9CEZhcn.mjs";
4
- import "./input-Dojr-RTw.mjs";
5
- import { readBody } from "./body-Dv9hQ0Qk.mjs";
6
- import { SettingValue, settingValueView } from "./setting-26ckqHAP.mjs";
7
- import { parseSettingKey } from "./key-DBxPSFwi.mjs";
3
+ import { renderItem } from "./render-DXv-D6fU.mjs";
4
+ import "./predicates-DiIiS3k7.mjs";
5
+ import "./input-ikCiip6x.mjs";
6
+ import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-cwBS8wwK.mjs";
7
+ import { readBody } from "./body-rDrR-C1c.mjs";
8
+ import { SettingValue, settingValueView } from "./setting-CTaAeMci.mjs";
9
+ import { parseSettingKey } from "./key-NDEARu2L.mjs";
8
10
  import { z } from "zod";
9
11
 
10
12
  //#region src/commands/setting/set.ts
@@ -8,9 +8,9 @@ var setting_default = defineCommand({
8
8
  alias: "settings"
9
9
  },
10
10
  subCommands: {
11
- list: () => import("./list-Bk6RsbJl.mjs").then((m) => m.default),
12
- get: () => import("./get-COXHplHP.mjs").then((m) => m.default),
13
- set: () => import("./set-CbibegpA.mjs").then((m) => m.default)
11
+ list: () => import("./list-BwjqQ6pp.mjs").then((m) => m.default),
12
+ get: () => import("./get-DUSR5i99.mjs").then((m) => m.default),
13
+ set: () => import("./set-CbGfQ7Ye.mjs").then((m) => m.default)
14
14
  }
15
15
  });
16
16
 
@@ -0,0 +1,71 @@
1
+ import "./package-DV6Asqim.mjs";
2
+ import "./command-augment-D9pI9Vbh.mjs";
3
+ import { renderItem } from "./render-DXv-D6fU.mjs";
4
+ import "./predicates-DiIiS3k7.mjs";
5
+ import "./input-ikCiip6x.mjs";
6
+ import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-cwBS8wwK.mjs";
7
+ import { readBody } from "./body-rDrR-C1c.mjs";
8
+ import { bodyInputFlags } from "./body-flags-BK7J6Daz.mjs";
9
+ import { z } from "zod";
10
+
11
+ //#region src/domain/setup.ts
12
+ const SetupUserInput = z.object({
13
+ first_name: z.string().nullable().optional(),
14
+ last_name: z.string().nullable().optional(),
15
+ email: z.string().min(1),
16
+ password: z.string().min(1)
17
+ }).loose();
18
+ const SetupPrefsInput = z.object({
19
+ site_name: z.string().min(1),
20
+ site_locale: z.string().min(1).nullable().optional()
21
+ }).loose();
22
+ const SetupInput = z.object({
23
+ token: z.string().min(1),
24
+ user: SetupUserInput,
25
+ prefs: SetupPrefsInput
26
+ }).loose();
27
+ const SetupResult = z.object({ id: z.string() }).loose();
28
+ const SetupResultCompact = SetupResult.pick({ id: true }).strip();
29
+ const setupResultView = {
30
+ compactPick: SetupResultCompact,
31
+ tableColumns: [{
32
+ key: "id",
33
+ label: "Session"
34
+ }]
35
+ };
36
+
37
+ //#endregion
38
+ //#region src/commands/setup.ts
39
+ var setup_default = defineMetabaseCommand({
40
+ meta: {
41
+ name: "setup",
42
+ description: "Complete the initial Metabase setup wizard with a default user"
43
+ },
44
+ args: {
45
+ ...outputFlags,
46
+ ...profileFlag,
47
+ ...connectionFlags,
48
+ ...bodyInputFlags
49
+ },
50
+ outputSchema: SetupResult,
51
+ examples: [
52
+ "cat setup.json | metabase setup",
53
+ "metabase setup --file setup.json",
54
+ "metabase setup --body '{\"token\":\"...\",\"user\":{\"email\":\"a@b.c\",\"password\":\"...\"}}'"
55
+ ],
56
+ async run({ args, ctx, getClient }) {
57
+ const body = await readBody({
58
+ flag: args.body,
59
+ file: args.file
60
+ }, SetupInput);
61
+ const client = await getClient();
62
+ const result = await client.requestParsed(SetupResult, "/api/setup", {
63
+ method: "POST",
64
+ body
65
+ });
66
+ renderItem(result, setupResultView, ctx);
67
+ }
68
+ });
69
+
70
+ //#endregion
71
+ export { setup_default as default };
@@ -0,0 +1,19 @@
1
+ import { defineCommand } from "citty";
2
+
3
+ //#region src/commands/snippet/index.ts
4
+ var snippet_default = defineCommand({
5
+ meta: {
6
+ name: "snippet",
7
+ description: "Inspect Metabase native query snippets"
8
+ },
9
+ subCommands: {
10
+ list: () => import("./list-DQj-QJAs.mjs").then((mod) => mod.default),
11
+ get: () => import("./get-BE6Izpus.mjs").then((mod) => mod.default),
12
+ create: () => import("./create-Dh0p-c2Y.mjs").then((mod) => mod.default),
13
+ update: () => import("./update-B9DBMo30.mjs").then((mod) => mod.default),
14
+ archive: () => import("./archive-kYoy5LK5.mjs").then((mod) => mod.default)
15
+ }
16
+ });
17
+
18
+ //#endregion
19
+ export { snippet_default as default };
@@ -0,0 +1,64 @@
1
+ import { z } from "zod";
2
+
3
+ //#region src/domain/snippet.ts
4
+ const Snippet = z.object({
5
+ id: z.number().int(),
6
+ name: z.string(),
7
+ description: z.string().nullable(),
8
+ content: z.string(),
9
+ archived: z.boolean(),
10
+ collection_id: z.number().int().nullable(),
11
+ creator_id: z.number().int(),
12
+ entity_id: z.string().nullable(),
13
+ template_tags: z.record(z.string(), z.unknown()).nullable(),
14
+ created_at: z.string(),
15
+ updated_at: z.string()
16
+ }).loose();
17
+ const SnippetCompact = Snippet.pick({
18
+ id: true,
19
+ name: true,
20
+ description: true,
21
+ archived: true,
22
+ collection_id: true
23
+ }).strip();
24
+ const snippetView = {
25
+ compactPick: SnippetCompact,
26
+ tableColumns: [
27
+ {
28
+ key: "id",
29
+ label: "ID"
30
+ },
31
+ {
32
+ key: "name",
33
+ label: "Name"
34
+ },
35
+ {
36
+ key: "description",
37
+ label: "Description"
38
+ },
39
+ {
40
+ key: "collection_id",
41
+ label: "Collection"
42
+ },
43
+ {
44
+ key: "archived",
45
+ label: "Archived"
46
+ }
47
+ ]
48
+ };
49
+ const SnippetCreateInput = z.object({
50
+ name: z.string().min(1),
51
+ content: z.string(),
52
+ description: z.string().nullable().optional(),
53
+ collection_id: z.number().int().positive().nullable().optional()
54
+ }).loose();
55
+ const SnippetUpdateInput = z.object({
56
+ name: z.string().min(1).optional(),
57
+ content: z.string().optional(),
58
+ description: z.string().nullable().optional(),
59
+ archived: z.boolean().optional(),
60
+ collection_id: z.number().int().positive().nullable().optional()
61
+ }).loose();
62
+
63
+ //#endregion
64
+ export { Snippet, SnippetCompact, SnippetCreateInput, SnippetUpdateInput, snippetView };