@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,45 @@
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 "./field-DciLbuv-.mjs";
8
+ import { Table, TableCompact, tableView } from "./table-jljEqZ0R.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-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 { 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-DBsS7a5x.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-D7jihh81.mjs";
6
+ import { parseId } from "./parse-id-BUOZQqjp.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-JgRtCzz3.mjs").then((mod) => mod.default),
11
+ get: () => import("./get-DhZ_dGUb.mjs").then((mod) => mod.default),
12
+ create: () => import("./create-DE_5NrFy.mjs").then((mod) => mod.default),
13
+ update: () => import("./update-DyLItrpV.mjs").then((mod) => mod.default),
14
+ archive: () => import("./archive-DQjBOXnx.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-DBsS7a5x.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-D7jihh81.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-DBsS7a5x.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-D7jihh81.mjs";
7
+ import { readBody } from "./body-DRBgxS6-.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-DL-RWpIE.mjs").then((m) => m.default),
12
+ get: () => import("./get-DFrsi77F.mjs").then((m) => m.default),
13
+ set: () => import("./set-L7cuHjVZ.mjs").then((m) => m.default)
14
14
  }
15
15
  });
16
16
 
@@ -0,0 +1,71 @@
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 "./input-ikCiip6x.mjs";
6
+ import { connectionFlags, defineMetabaseCommand, outputFlags, profileFlag } from "./runtime-D7jihh81.mjs";
7
+ import { readBody } from "./body-DRBgxS6-.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,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 };
@@ -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-CwwOoGLK.mjs").then((mod) => mod.default),
11
+ get: () => import("./get-BmE_VHdl.mjs").then((mod) => mod.default),
12
+ create: () => import("./create-BsY5RrVY.mjs").then((mod) => mod.default),
13
+ update: () => import("./update-C1Frz9GR.mjs").then((mod) => mod.default),
14
+ archive: () => import("./archive-CitmlD1e.mjs").then((mod) => mod.default)
15
+ }
16
+ });
17
+
18
+ //#endregion
19
+ export { snippet_default as default };