@metabase/cli 0.1.8 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/README.md +26 -236
- package/dist/{add-collection-CwrbKmC1.mjs → add-collection-CoP-6FZR.mjs} +5 -5
- package/dist/add-collection-EPp89tcs.mjs +10 -0
- package/dist/{archive-DqUtqRut.mjs → archive-BY8nrgnq.mjs} +5 -6
- package/dist/{archive-BzvqQd34.mjs → archive-BeslLaal.mjs} +5 -6
- package/dist/{archive-BpKZsGAm.mjs → archive-Blt0TxxA.mjs} +6 -7
- package/dist/{archive-ZnnJc2iT.mjs → archive-BxwGVDpd.mjs} +6 -7
- package/dist/{archive-BAjGIzhn.mjs → archive-C17qIvFW.mjs} +6 -7
- package/dist/{archive-BO3DOWI4.mjs → archive-CPLXsrzD.mjs} +5 -6
- package/dist/auth-CCUDM9Sv.mjs +19 -0
- package/dist/{body-DDYKoyMt.mjs → body-2jl-YSxT.mjs} +2 -2
- package/dist/{branches-DjiGsjAz.mjs → branches-Vlu44J51.mjs} +5 -6
- package/dist/{cancel-BwtDQ2MR.mjs → cancel-D0aBPUhs.mjs} +4 -5
- package/dist/{cancel-task-uJp18RvR.mjs → cancel-task-DoL2bqs1.mjs} +5 -6
- package/dist/{render-0_GsapXa.mjs → capabilities-7L9GVMd_.mjs} +45 -4
- package/dist/{card-ezYiriML.mjs → card-DnIeMmUn.mjs} +18 -2
- package/dist/card-UwczcLjq.mjs +20 -0
- package/dist/{cards-z68PANDD.mjs → cards-6MTreYAo.mjs} +5 -6
- package/dist/cli.mjs +23 -34
- package/dist/{collection-Bcy8cWYH.mjs → collection-BPTlcFw5.mjs} +8 -2
- package/dist/collection-Cexywhlj.mjs +20 -0
- package/dist/collection-namespace-BdqQJb7j.mjs +12 -0
- package/dist/{create-4EAGYVyp.mjs → create-BWD8H6yw.mjs} +12 -10
- package/dist/{create-GVfCQU3B.mjs → create-BZRA7nPu.mjs} +7 -8
- package/dist/{create-7JOWFxqu.mjs → create-BsOdn1Q1.mjs} +10 -11
- package/dist/{create-CQ4Vg4Ge.mjs → create-C_Z3IDrW.mjs} +9 -10
- package/dist/{create-Dd_Gyg_F.mjs → create-DNYFXAsy.mjs} +7 -8
- package/dist/{create-BzK59YlR.mjs → create-DcoF52Kx.mjs} +11 -12
- package/dist/{create-branch-CdWGiREu.mjs → create-branch-40Xm4DN7.mjs} +5 -6
- package/dist/create-dVmIemXi.mjs +52 -0
- package/dist/{create-DHWfmO2L.mjs → create-k59K2qf1.mjs} +9 -10
- package/dist/{current-task-nPs-iCLi.mjs → current-task-BN_XEFSX.mjs} +5 -6
- package/dist/dashboard-B_CuVbMX.mjs +21 -0
- package/dist/{database-BXiue1in.mjs → database-Dsv4QBs0.mjs} +20 -10
- package/dist/db-DULi5MOr.mjs +22 -0
- package/dist/{delete-Do1agSiL.mjs → delete-DEFgs5LE.mjs} +6 -7
- package/dist/{delete-runtime-uuYbd4k2.mjs → delete-runtime-DVb-Pkzp.mjs} +2 -2
- package/dist/{delete-CJqLgr6w.mjs → delete-tPjicYO4.mjs} +6 -7
- package/dist/{delete-table-ZiJDpMFT.mjs → delete-table-CDj19Qn6.mjs} +6 -7
- package/dist/{dirty-BnTG7w7v.mjs → dirty-DGCa6W1F.mjs} +5 -6
- package/dist/{eid-CwQ_smOD.mjs → eid-3v5MAKNA.mjs} +6 -7
- package/dist/{error-CTVL5CdB.mjs → error-BndUmcwS.mjs} +1 -1
- package/dist/{export-DR2cC4rL.mjs → export-BIZ-UR_M.mjs} +7 -8
- package/dist/field-CfrrLetM.mjs +18 -0
- package/dist/{fields-Ck31lDz9.mjs → fields-9lOrO8UH.mjs} +6 -7
- package/dist/{get-BFJ3VBPa.mjs → get-6Cj360cH.mjs} +5 -6
- package/dist/{get-CyG_P55z.mjs → get-BIH72g0v.mjs} +6 -7
- package/dist/{get-CICzGFSW.mjs → get-BSJN5TwW.mjs} +6 -7
- package/dist/{get-DyArILlF.mjs → get-BYSj7tMP.mjs} +5 -6
- package/dist/{get-DauAF3sm.mjs → get-Bk81meka.mjs} +5 -6
- package/dist/{get-GWRprk7k.mjs → get-BpWjLkKT.mjs} +5 -7
- package/dist/{get-F338MOK-.mjs → get-BuM6QPjZ.mjs} +5 -6
- package/dist/{get-C71ypFQk.mjs → get-CHaIVT6Y.mjs} +5 -6
- package/dist/{get-pO0wiy1e.mjs → get-CRa-h69C.mjs} +5 -6
- package/dist/{get-BPOd0Rm8.mjs → get-DFe2WoJ2.mjs} +5 -6
- package/dist/{get-DxqzDKKK.mjs → get-DlGlnciR.mjs} +5 -6
- package/dist/{get-BNKsNCcx.mjs → get-LI2xsRoT.mjs} +5 -6
- package/dist/{get-run-DhM_PyVy.mjs → get-run-hCZaw8-h.mjs} +5 -6
- package/dist/{get-BZiu-u-9.mjs → get-w-WqpjKy.mjs} +7 -8
- package/dist/git-sync-BpRstrZo.mjs +28 -0
- package/dist/{has-remote-changes-Ca0exJmb.mjs → has-remote-changes-DcpW1_KX.mjs} +5 -6
- package/dist/{import-DjclIzGP.mjs → import-CTQT1atq.mjs} +7 -8
- package/dist/{is-dirty-Cke0a1ie.mjs → is-dirty-DGrmt1ss.mjs} +4 -4
- package/dist/is-dirty-DuWCgrz2.mjs +9 -0
- package/dist/{items-BSpapmCU.mjs → items-Kr0oN2V7.mjs} +7 -8
- package/dist/{list-CEE9yKNp.mjs → list-Bz2ej0Cl.mjs} +4 -5
- package/dist/{list-V5IuMr_5.mjs → list-CCtYVgPN.mjs} +4 -5
- package/dist/{list-Brt4oKO7.mjs → list-CLvlEVQo.mjs} +6 -7
- package/dist/{list-Br77Mw6U.mjs → list-Ccj8-vb5.mjs} +5 -6
- package/dist/{list-Fjjtpghb.mjs → list-Cj3v4Lgv.mjs} +6 -7
- package/dist/{list-bVlCwg8g.mjs → list-Cl_O4_U4.mjs} +4 -5
- package/dist/{list-BRXGDSMo.mjs → list-D2D5Mw1E.mjs} +5 -6
- package/dist/{list-DUyWON1F.mjs → list-DNmekF2B.mjs} +4 -5
- package/dist/{list-fIV-P6wP.mjs → list-DaESiI72.mjs} +4 -5
- package/dist/{list-DWWGcUTg.mjs → list-DzKKdfCI.mjs} +5 -7
- package/dist/{list-BI1PfPjn.mjs → list-jcgK0thu.mjs} +5 -6
- package/dist/{list-D1qhCQn0.mjs → list-tklIxo38.mjs} +6 -7
- package/dist/{list-DmO4ADQq.mjs → list-zRQsvrH6.mjs} +4 -5
- package/dist/{login-BJGhZLgZ.mjs → login-BMKBmgeQ.mjs} +9 -10
- package/dist/{logout-BAGLqtnV.mjs → logout-C5pod937.mjs} +4 -5
- package/dist/{manifest-BNh0Lw6p.mjs → manifest-Cmu--CG5.mjs} +1 -2
- package/dist/measure-BkwFsP44.mjs +19 -0
- package/dist/{metadata-B-GOcWqL.mjs → metadata-CG4VZ5NW.mjs} +6 -7
- package/dist/{metadata-DJAdsOoh.mjs → metadata-DIEbyQeS.mjs} +7 -8
- package/dist/{parse-id-D1LTTt9L.mjs → parse-id-Boqc4wn4.mjs} +1 -1
- package/dist/{path-D5kX-msX.mjs → path-ur3NsMFr.mjs} +4 -6
- package/dist/{poll-DxpnK1wW.mjs → poll-BMjCkDaj.mjs} +1 -1
- package/dist/{poll-task-D8mG49IN.mjs → poll-task-CiRA0ER9.mjs} +2 -2
- package/dist/{preflight-Df_FqJ6o.mjs → preflight-CSqcIlbX.mjs} +3 -3
- package/dist/{query-zWFRDH3T.mjs → query-B8JzsQ_I.mjs} +7 -8
- package/dist/{query-OIuumiXN.mjs → query-CG0rEMS-.mjs} +11 -12
- package/dist/{query-result-ABPLz6I4.mjs → query-result-B4kTRid7.mjs} +1 -1
- package/dist/{remove-collection-BxmiXWKz.mjs → remove-collection-Clwz3EHQ.mjs} +7 -8
- package/dist/{rescan-values-M7g81KIl.mjs → rescan-values-DuHBnFjK.mjs} +8 -11
- package/dist/run-JXRivkfH.mjs +136 -0
- package/dist/{runs-CqfJIuh_.mjs → runs-FxgbXvax.mjs} +6 -7
- package/dist/{runtime-B40L_bj8.mjs → runtime-Ck8KKQe-.mjs} +11 -78
- package/dist/{schema-tables-CjBRF0_0.mjs → schema-tables-izDPI4f5.mjs} +6 -7
- package/dist/{schemas-GIIbek2O.mjs → schemas-CyzplnXl.mjs} +4 -5
- package/dist/{search-h78uOYec.mjs → search-BeuoOEQV.mjs} +4 -5
- package/dist/segment-ChYmSM0p.mjs +19 -0
- package/dist/{set-BRDxcLcQ.mjs → set-ClzB_5Jk.mjs} +7 -8
- package/dist/{setting-mKzZJpQY.mjs → setting-CBJVEx7_.mjs} +3 -3
- package/dist/{setup-WTIT2WbM.mjs → setup-vKXEUMM7.mjs} +6 -7
- package/dist/skills-1Z5Wj7Kp.mjs +18 -0
- package/dist/{skills-BkregMyb.mjs → skills-BDPVoBWU.mjs} +33 -2
- package/dist/snippet-De70ayL1.mjs +19 -0
- package/dist/{stash-DxoAJzcK.mjs → stash-DLtVf4_D.mjs} +7 -8
- package/dist/{status-B1dc3bbQ.mjs → status-AnPzI1f7.mjs} +4 -5
- package/dist/{status-D0Ukfodl.mjs → status-DHFYn9kO.mjs} +6 -7
- package/dist/{summary-3qOMUcEX.mjs → summary-DDed1LOz.mjs} +5 -6
- package/dist/sync-schema-BGQVq2JA.mjs +55 -0
- package/dist/table-C_bP2ao-.mjs +19 -0
- package/dist/{table-qDD2kApF.mjs → table-CkWja2UH.mjs} +1 -1
- package/dist/transform-B4RZfm6A.mjs +24 -0
- package/dist/{transform-BKahefz_.mjs → transform-DyWCoiO-.mjs} +1 -0
- package/dist/transform-job-C4pZcrIF.mjs +19 -0
- package/dist/{tree-DsnIPFyE.mjs → tree-BlYgJOn9.mjs} +4 -5
- package/dist/{update-Baya6OkO.mjs → update-B0z-2zqC.mjs} +12 -13
- package/dist/{update-BEtl9LpG.mjs → update-BHtliIr_.mjs} +8 -9
- package/dist/{update-CLsqoEJ8.mjs → update-CdfAogO2.mjs} +8 -9
- package/dist/{update-DPouQi4U.mjs → update-CgOPxKXK.mjs} +13 -11
- package/dist/{update-UaPqSfPN.mjs → update-CilTW98H.mjs} +10 -11
- package/dist/{update-DWn-nLPo.mjs → update-CoVvsU-I.mjs} +8 -9
- package/dist/{update-CZEd_Eej.mjs → update-DBN7yfAk.mjs} +9 -10
- package/dist/{update-BRLcnSwK.mjs → update-DqSG5_Ie.mjs} +10 -11
- package/dist/{update-BsgHRoZ8.mjs → update-DykqQLfo.mjs} +11 -12
- package/dist/{update-dashcard-DK9X91ha.mjs → update-dashcard-DZ8oV8up.mjs} +8 -9
- package/dist/{upgrade-UqdvTikR.mjs → upgrade-B8sEEQdQ.mjs} +34 -7
- package/dist/{uuid-BWCaWG4O.mjs → uuid-lLVnEoBN.mjs} +3 -4
- package/dist/{validate-dPEOnOf8.mjs → validate-B62TRDGV.mjs} +1 -1
- package/dist/{validate-query-CYvOP8Ld.mjs → validate-query-BpiN1CFu.mjs} +2 -2
- package/dist/{values-D_wycrcr.mjs → values-oD72EtRq.mjs} +5 -6
- package/dist/{verify-D7hb6VMy.mjs → verify-Bg6F0oFN.mjs} +1 -1
- package/dist/{wait-B5IpNFCG.mjs → wait-BtzuqQC3.mjs} +6 -7
- package/dist/{wait-flags-CNIeSq0_.mjs → wait-flags-DyFfZeav.mjs} +2 -2
- package/package.json +1 -1
- package/skill-data/core/SKILL.md +19 -32
- package/skill-data/git-sync/SKILL.md +8 -63
- package/skill-data/mbql/SKILL.md +95 -28
- package/skill-data/mbql/references/operators.md +13 -13
- package/skill-data/transform/SKILL.md +18 -7
- package/skills/metabase-cli/SKILL.md +1 -1
- package/dist/add-collection-DxtuNxeP.mjs +0 -11
- package/dist/auth-B9B4pUaH.mjs +0 -19
- package/dist/capabilities-7e9MgquN.mjs +0 -29
- package/dist/card-D54unw6r.mjs +0 -20
- package/dist/collection-B5kIKRTL.mjs +0 -20
- package/dist/create-6XE7GYxk.mjs +0 -45
- package/dist/create-C8gA-XP2.mjs +0 -54
- package/dist/credentials-CFA9iGZG.mjs +0 -88
- package/dist/dashboard-lw6IFfOs.mjs +0 -21
- package/dist/database-BPT6BrmF.mjs +0 -17
- package/dist/db-CBCj8sBg.mjs +0 -22
- package/dist/delete-CiV6f69N.mjs +0 -104
- package/dist/deprovision-C-qEnh-P.mjs +0 -67
- package/dist/docker-B-QQWThD.mjs +0 -515
- package/dist/field-DJmQ2pul.mjs +0 -18
- package/dist/git-sync-rmjYOGFK.mjs +0 -28
- package/dist/is-dirty-DFGgGLDi.mjs +0 -10
- package/dist/license-j0tDQLKI.mjs +0 -17
- package/dist/list-evetBTcH.mjs +0 -36
- package/dist/logs-jx5b_YDk.mjs +0 -60
- package/dist/measure-BfgxqewH.mjs +0 -19
- package/dist/parse-schemas-DDK9nXuh.mjs +0 -12
- package/dist/process-CM7Uu5q_.mjs +0 -105
- package/dist/provision-BJd6zO1D.mjs +0 -83
- package/dist/ps-CpyHEvv7.mjs +0 -11
- package/dist/ps-dEqRGeB3.mjs +0 -80
- package/dist/remove-BNQ1c6hB.mjs +0 -64
- package/dist/run-DTsx8bLb.mjs +0 -96
- package/dist/segment-CoElN2b-.mjs +0 -19
- package/dist/set-Dclba9xF.mjs +0 -68
- package/dist/skills-tMYd5d9v.mjs +0 -18
- package/dist/snippet-B84H3tfp.mjs +0 -19
- package/dist/start-B7ByBicB.mjs +0 -414
- package/dist/status-DAzD1Cn_.mjs +0 -34
- package/dist/stop-Cvexagxh.mjs +0 -87
- package/dist/sync-schema-CrmVX1cy.mjs +0 -44
- package/dist/table-B0fRQv91.mjs +0 -19
- package/dist/transform-K_kp6Rdm.mjs +0 -24
- package/dist/transform-job-CuNN8zgv.mjs +0 -19
- package/dist/update-hiJdbbsb.mjs +0 -78
- package/dist/url-LMJZRDv4.mjs +0 -56
- package/dist/wait-DHjXk3jD.mjs +0 -19
- package/dist/workspace-Bt8n3ojY.mjs +0 -25
- package/dist/workspace-D8HtUN0y.mjs +0 -72
- package/dist/workspace-credentials-8CBMQJFz.mjs +0 -100
- package/dist/yaml-Gv6wRFMF.mjs +0 -43
- package/skill-data/workspace/SKILL.md +0 -390
- /package/dist/{body-flags-D7q87Btw.mjs → body-flags-D78h_-Ua.mjs} +0 -0
- /package/dist/{dashboard-B4bn3z6t.mjs → dashboard-FY5UzJ_Z.mjs} +0 -0
- /package/dist/{field-E0IBy4Uw.mjs → field-MGxpNQUH.mjs} +0 -0
- /package/dist/{input-cMSEqISy.mjs → input-xewHccej.mjs} +0 -0
- /package/dist/{key-vkNkH82H.mjs → key-C2XG394c.mjs} +0 -0
- /package/dist/{measure-Bt3InQsA.mjs → measure-ClESGxIb.mjs} +0 -0
- /package/dist/{paginate-BexjkjbY.mjs → paginate-Dfm9eO9A.mjs} +0 -0
- /package/dist/{parse-enum-CrEWOhuY.mjs → parse-enum-Dr7ACrTR.mjs} +0 -0
- /package/dist/{parse-ref-DKag6a6I.mjs → parse-ref-BiETXmvm.mjs} +0 -0
- /package/dist/{prompt-CFKoys7k.mjs → prompt-u4WhE4T5.mjs} +0 -0
- /package/dist/{render-khznBlla.mjs → render-BQHJhSP1.mjs} +0 -0
- /package/dist/{revision-message-flag-DY29-cgz.mjs → revision-message-flag-WmsIzUOM.mjs} +0 -0
- /package/dist/{segment-DhBmcr_E.mjs → segment-Be2v4ilr.mjs} +0 -0
- /package/dist/{setting-BzCng1Ub.mjs → setting-oL97SNeO.mjs} +0 -0
- /package/dist/{snippet-bi_0XbNT.mjs → snippet-xh42tYly.mjs} +0 -0
- /package/dist/{transform-job-DjhoJbiV.mjs → transform-job-DpDGoqQt.mjs} +0 -0
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { defineCommand } from "citty";
|
|
2
|
-
|
|
3
|
-
//#region src/commands/measure/index.ts
|
|
4
|
-
var measure_default = defineCommand({
|
|
5
|
-
meta: {
|
|
6
|
-
name: "measure",
|
|
7
|
-
description: "Manage Metabase measures"
|
|
8
|
-
},
|
|
9
|
-
subCommands: {
|
|
10
|
-
list: () => import("./list-DmO4ADQq.mjs").then((mod) => mod.default),
|
|
11
|
-
get: () => import("./get-DxqzDKKK.mjs").then((mod) => mod.default),
|
|
12
|
-
create: () => import("./create-DHWfmO2L.mjs").then((mod) => mod.default),
|
|
13
|
-
update: () => import("./update-UaPqSfPN.mjs").then((mod) => mod.default),
|
|
14
|
-
archive: () => import("./archive-BpKZsGAm.mjs").then((mod) => mod.default)
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
//#endregion
|
|
19
|
-
export { measure_default as default };
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { ConfigError } from "./command-augment-BH9qgQ5u.mjs";
|
|
2
|
-
import { parseCsv } from "./runtime-B40L_bj8.mjs";
|
|
3
|
-
|
|
4
|
-
//#region src/commands/workspace/database/parse-schemas.ts
|
|
5
|
-
function parseSchemasCsv(raw) {
|
|
6
|
-
const parts = parseCsv(raw);
|
|
7
|
-
if (parts.length === 0) throw new ConfigError("--schemas must contain at least one schema name");
|
|
8
|
-
return parts;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
//#endregion
|
|
12
|
-
export { parseSchemasCsv };
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import { isNotFoundError } from "./command-augment-BH9qgQ5u.mjs";
|
|
2
|
-
import { spawn } from "node:child_process";
|
|
3
|
-
|
|
4
|
-
//#region src/runtime/process.ts
|
|
5
|
-
var ProcessNotFoundError = class extends Error {
|
|
6
|
-
command;
|
|
7
|
-
constructor(command) {
|
|
8
|
-
super(`command not found: ${command}`);
|
|
9
|
-
this.name = "ProcessNotFoundError";
|
|
10
|
-
this.command = command;
|
|
11
|
-
}
|
|
12
|
-
};
|
|
13
|
-
var ProcessTimeoutError = class extends Error {
|
|
14
|
-
command;
|
|
15
|
-
timeoutMs;
|
|
16
|
-
constructor(command, timeoutMs) {
|
|
17
|
-
super(`command timed out after ${timeoutMs}ms: ${command}`);
|
|
18
|
-
this.name = "ProcessTimeoutError";
|
|
19
|
-
this.command = command;
|
|
20
|
-
this.timeoutMs = timeoutMs;
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
function spawnAndCollect(command, args, options) {
|
|
24
|
-
const timeoutSignal = options.timeoutMs !== void 0 && options.timeoutMs > 0 ? AbortSignal.timeout(options.timeoutMs) : void 0;
|
|
25
|
-
return new Promise((resolve, reject) => {
|
|
26
|
-
const child = spawn(command, args, {
|
|
27
|
-
stdio: [
|
|
28
|
-
"pipe",
|
|
29
|
-
"pipe",
|
|
30
|
-
"pipe"
|
|
31
|
-
],
|
|
32
|
-
env: options.env ?? process.env,
|
|
33
|
-
...options.cwd !== void 0 ? { cwd: options.cwd } : {},
|
|
34
|
-
...timeoutSignal !== void 0 ? {
|
|
35
|
-
signal: timeoutSignal,
|
|
36
|
-
killSignal: "SIGKILL"
|
|
37
|
-
} : {},
|
|
38
|
-
...options.shell === true ? { shell: true } : {}
|
|
39
|
-
});
|
|
40
|
-
const stdoutChunks = [];
|
|
41
|
-
let stderr = "";
|
|
42
|
-
child.stdout.on("data", (chunk) => {
|
|
43
|
-
stdoutChunks.push(chunk);
|
|
44
|
-
});
|
|
45
|
-
child.stderr.on("data", (chunk) => {
|
|
46
|
-
stderr += chunk.toString("utf8");
|
|
47
|
-
});
|
|
48
|
-
child.on("error", (error) => {
|
|
49
|
-
if (isNotFoundError(error)) {
|
|
50
|
-
reject(new ProcessNotFoundError(command));
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
if (timeoutSignal?.aborted) {
|
|
54
|
-
reject(new ProcessTimeoutError(command, options.timeoutMs ?? 0));
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
reject(error);
|
|
58
|
-
});
|
|
59
|
-
child.on("close", (code) => {
|
|
60
|
-
if (timeoutSignal?.aborted) {
|
|
61
|
-
reject(new ProcessTimeoutError(command, options.timeoutMs ?? 0));
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
const stdoutBuffer = Buffer.concat(stdoutChunks);
|
|
65
|
-
resolve({
|
|
66
|
-
stdout: new Uint8Array(stdoutBuffer.buffer, stdoutBuffer.byteOffset, stdoutBuffer.length),
|
|
67
|
-
stderr,
|
|
68
|
-
exitCode: code
|
|
69
|
-
});
|
|
70
|
-
});
|
|
71
|
-
if (options.stdin === void 0) child.stdin.end();
|
|
72
|
-
else child.stdin.end(options.stdin);
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
const stdoutDecoder = new TextDecoder("utf-8");
|
|
76
|
-
async function runProcess(command, args, options = {}) {
|
|
77
|
-
const result = await spawnAndCollect(command, args, options);
|
|
78
|
-
return {
|
|
79
|
-
stdout: stdoutDecoder.decode(result.stdout),
|
|
80
|
-
stderr: result.stderr,
|
|
81
|
-
exitCode: result.exitCode
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
function runProcessBinary(command, args, options = {}) {
|
|
85
|
-
return spawnAndCollect(command, args, options);
|
|
86
|
-
}
|
|
87
|
-
function streamProcess(command, args, options = {}) {
|
|
88
|
-
return new Promise((resolve, reject) => {
|
|
89
|
-
const child = spawn(command, args, {
|
|
90
|
-
stdio: "inherit",
|
|
91
|
-
...options.shell === true ? { shell: true } : {}
|
|
92
|
-
});
|
|
93
|
-
child.on("error", (error) => {
|
|
94
|
-
if (isNotFoundError(error)) {
|
|
95
|
-
reject(new ProcessNotFoundError(command));
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
reject(error);
|
|
99
|
-
});
|
|
100
|
-
child.on("close", (code) => resolve(code));
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
//#endregion
|
|
105
|
-
export { ProcessNotFoundError, runProcess, runProcessBinary, streamProcess };
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { ConfigError } from "./command-augment-BH9qgQ5u.mjs";
|
|
2
|
-
import { connectionFlags, outputFlags, profileFlag } from "./error-CTVL5CdB.mjs";
|
|
3
|
-
import { defineMetabaseCommand } from "./runtime-B40L_bj8.mjs";
|
|
4
|
-
import "./capabilities-7e9MgquN.mjs";
|
|
5
|
-
import { renderSummary } from "./render-0_GsapXa.mjs";
|
|
6
|
-
import "./input-cMSEqISy.mjs";
|
|
7
|
-
import { parseId } from "./parse-id-D1LTTt9L.mjs";
|
|
8
|
-
import { readBody } from "./body-DDYKoyMt.mjs";
|
|
9
|
-
import { bodyInputFlags } from "./body-flags-D7q87Btw.mjs";
|
|
10
|
-
import "./poll-DxpnK1wW.mjs";
|
|
11
|
-
import { parseWaitFlags, waitFlags } from "./wait-flags-CNIeSq0_.mjs";
|
|
12
|
-
import { Workspace, WorkspaceProvisionInput, workspaceView } from "./workspace-D8HtUN0y.mjs";
|
|
13
|
-
import { waitForDatabaseProvisioned } from "./wait-DHjXk3jD.mjs";
|
|
14
|
-
import { parseSchemasCsv } from "./parse-schemas-DDK9nXuh.mjs";
|
|
15
|
-
|
|
16
|
-
//#region src/commands/workspace/database/provision.ts
|
|
17
|
-
var provision_default = defineMetabaseCommand({
|
|
18
|
-
meta: {
|
|
19
|
-
name: "provision",
|
|
20
|
-
description: "Provision a database into a workspace"
|
|
21
|
-
},
|
|
22
|
-
capabilities: {
|
|
23
|
-
minVersion: 62,
|
|
24
|
-
tokenFeature: "workspaces"
|
|
25
|
-
},
|
|
26
|
-
args: {
|
|
27
|
-
...outputFlags,
|
|
28
|
-
...profileFlag,
|
|
29
|
-
...connectionFlags,
|
|
30
|
-
...bodyInputFlags,
|
|
31
|
-
...waitFlags,
|
|
32
|
-
schemas: {
|
|
33
|
-
type: "string",
|
|
34
|
-
description: "Comma-separated input schemas (alternative to --body / --file)"
|
|
35
|
-
},
|
|
36
|
-
id: {
|
|
37
|
-
type: "positional",
|
|
38
|
-
description: "Workspace id",
|
|
39
|
-
required: true
|
|
40
|
-
},
|
|
41
|
-
"db-id": {
|
|
42
|
-
type: "positional",
|
|
43
|
-
description: "Database id (alternative to --body / --file)",
|
|
44
|
-
required: false
|
|
45
|
-
}
|
|
46
|
-
},
|
|
47
|
-
outputSchema: Workspace,
|
|
48
|
-
examples: [
|
|
49
|
-
"mb workspace database provision 1 5 --schemas analytics,github",
|
|
50
|
-
"mb workspace database provision 1 5 --schemas analytics --wait",
|
|
51
|
-
"mb workspace database provision 1 --file provision.json"
|
|
52
|
-
],
|
|
53
|
-
async run({ args, ctx, getClient }) {
|
|
54
|
-
const workspaceId = parseId(args.id);
|
|
55
|
-
const databaseIdArg = args["db-id"];
|
|
56
|
-
const schemasFlag = args.schemas;
|
|
57
|
-
const wait = parseWaitFlags(args);
|
|
58
|
-
let body;
|
|
59
|
-
if (databaseIdArg !== void 0 && databaseIdArg !== "") {
|
|
60
|
-
const databaseId = parseId(databaseIdArg, "db-id");
|
|
61
|
-
if (schemasFlag === void 0 || schemasFlag === "") throw new ConfigError("--schemas is required when providing a db-id");
|
|
62
|
-
const input_schemas = parseSchemasCsv(schemasFlag);
|
|
63
|
-
body = WorkspaceProvisionInput.parse({
|
|
64
|
-
database_id: databaseId,
|
|
65
|
-
input_schemas
|
|
66
|
-
});
|
|
67
|
-
} else body = await readBody({
|
|
68
|
-
flag: args.body,
|
|
69
|
-
file: args.file
|
|
70
|
-
}, WorkspaceProvisionInput);
|
|
71
|
-
const client = await getClient();
|
|
72
|
-
const initial = await client.requestParsed(Workspace, `/api/ee/workspace-manager/${workspaceId}/database`, {
|
|
73
|
-
method: "POST",
|
|
74
|
-
body
|
|
75
|
-
});
|
|
76
|
-
const final = wait.enabled ? await waitForDatabaseProvisioned(client, workspaceId, body.database_id, wait.schedule) : initial;
|
|
77
|
-
const message = wait.enabled ? `Provisioned database ${body.database_id} into workspace ${workspaceId}.` : `Started provisioning database ${body.database_id} into workspace ${workspaceId}; rerun with --wait to block until ready.`;
|
|
78
|
-
renderSummary(final, workspaceView, message, ctx);
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
//#endregion
|
|
83
|
-
export { provision_default as default };
|
package/dist/ps-CpyHEvv7.mjs
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import "./command-augment-BH9qgQ5u.mjs";
|
|
2
|
-
import "./error-CTVL5CdB.mjs";
|
|
3
|
-
import "./runtime-B40L_bj8.mjs";
|
|
4
|
-
import "./capabilities-7e9MgquN.mjs";
|
|
5
|
-
import "./render-0_GsapXa.mjs";
|
|
6
|
-
import "./poll-DxpnK1wW.mjs";
|
|
7
|
-
import "./process-CM7Uu5q_.mjs";
|
|
8
|
-
import "./docker-B-QQWThD.mjs";
|
|
9
|
-
import { LocalWorkspace, LocalWorkspaceCompact, LocalWorkspaceListEnvelope, LocalWorkspaceState, localWorkspaceView, ps_default } from "./ps-dEqRGeB3.mjs";
|
|
10
|
-
|
|
11
|
-
export { ps_default as default };
|
package/dist/ps-dEqRGeB3.mjs
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { listEnvelopeSchema, outputFlags, wrapList } from "./error-CTVL5CdB.mjs";
|
|
2
|
-
import { defineMetabaseCommand, localUrl } from "./runtime-B40L_bj8.mjs";
|
|
3
|
-
import { renderList } from "./render-0_GsapXa.mjs";
|
|
4
|
-
import { CONTAINER_STATES, checkDockerReady, listWorkspaceContainers } from "./docker-B-QQWThD.mjs";
|
|
5
|
-
import { z } from "zod";
|
|
6
|
-
|
|
7
|
-
//#region src/commands/workspace/ps.ts
|
|
8
|
-
const LocalWorkspaceState = z.enum(CONTAINER_STATES);
|
|
9
|
-
const LocalWorkspace = z.object({
|
|
10
|
-
workspace_id: z.number().int().positive(),
|
|
11
|
-
workspace_name: z.string(),
|
|
12
|
-
container_name: z.string(),
|
|
13
|
-
state: LocalWorkspaceState,
|
|
14
|
-
status: z.string(),
|
|
15
|
-
image: z.string(),
|
|
16
|
-
profile: z.string().nullable(),
|
|
17
|
-
parent_url: z.string().nullable(),
|
|
18
|
-
host_port: z.number().int().positive().nullable(),
|
|
19
|
-
url: z.string().nullable()
|
|
20
|
-
});
|
|
21
|
-
const LocalWorkspaceCompact = LocalWorkspace.pick({
|
|
22
|
-
workspace_id: true,
|
|
23
|
-
workspace_name: true,
|
|
24
|
-
state: true,
|
|
25
|
-
url: true
|
|
26
|
-
}).strip();
|
|
27
|
-
const localWorkspaceView = {
|
|
28
|
-
compactPick: LocalWorkspaceCompact,
|
|
29
|
-
tableColumns: [
|
|
30
|
-
{
|
|
31
|
-
key: "workspace_id",
|
|
32
|
-
label: "ID"
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
key: "workspace_name",
|
|
36
|
-
label: "Name"
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
key: "state",
|
|
40
|
-
label: "State"
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
key: "url",
|
|
44
|
-
label: "URL",
|
|
45
|
-
format: (value) => typeof value === "string" ? value : "—"
|
|
46
|
-
}
|
|
47
|
-
]
|
|
48
|
-
};
|
|
49
|
-
const LocalWorkspaceListEnvelope = listEnvelopeSchema(LocalWorkspaceCompact);
|
|
50
|
-
var ps_default = defineMetabaseCommand({
|
|
51
|
-
meta: {
|
|
52
|
-
name: "ps",
|
|
53
|
-
description: "List workspaces with a local container (running or stopped)"
|
|
54
|
-
},
|
|
55
|
-
capabilities: null,
|
|
56
|
-
args: { ...outputFlags },
|
|
57
|
-
outputSchema: LocalWorkspaceListEnvelope,
|
|
58
|
-
examples: ["mb workspace ps", "mb workspace ps --json"],
|
|
59
|
-
async run({ ctx }) {
|
|
60
|
-
await checkDockerReady();
|
|
61
|
-
const summaries = await listWorkspaceContainers();
|
|
62
|
-
const items = summaries.map((summary) => ({
|
|
63
|
-
workspace_id: summary.workspaceId,
|
|
64
|
-
workspace_name: summary.workspaceName,
|
|
65
|
-
container_name: summary.name,
|
|
66
|
-
state: summary.state,
|
|
67
|
-
status: summary.status,
|
|
68
|
-
image: summary.image,
|
|
69
|
-
profile: summary.profile,
|
|
70
|
-
parent_url: summary.parentUrl,
|
|
71
|
-
host_port: summary.hostPort,
|
|
72
|
-
url: summary.hostPort !== null && summary.state === "running" ? localUrl(summary.hostPort) : null
|
|
73
|
-
}));
|
|
74
|
-
items.sort((a, b) => a.workspace_id - b.workspace_id);
|
|
75
|
-
renderList(wrapList(items), localWorkspaceView, ctx);
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
//#endregion
|
|
80
|
-
export { LocalWorkspace, LocalWorkspaceCompact, LocalWorkspaceListEnvelope, LocalWorkspaceState, localWorkspaceView, ps_default };
|
package/dist/remove-BNQ1c6hB.mjs
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import "./command-augment-BH9qgQ5u.mjs";
|
|
2
|
-
import { outputFlags } from "./error-CTVL5CdB.mjs";
|
|
3
|
-
import { clearLicense, defineMetabaseCommand } from "./runtime-B40L_bj8.mjs";
|
|
4
|
-
import "./capabilities-7e9MgquN.mjs";
|
|
5
|
-
import { renderSummary } from "./render-0_GsapXa.mjs";
|
|
6
|
-
import { promptConfirm } from "./prompt-CFKoys7k.mjs";
|
|
7
|
-
import { z } from "zod";
|
|
8
|
-
|
|
9
|
-
//#region src/commands/workspace/license/remove.ts
|
|
10
|
-
const LicenseRemoveResult = z.object({
|
|
11
|
-
removed: z.boolean(),
|
|
12
|
-
aborted: z.boolean()
|
|
13
|
-
});
|
|
14
|
-
const licenseRemoveView = {
|
|
15
|
-
compactPick: LicenseRemoveResult,
|
|
16
|
-
tableColumns: [{
|
|
17
|
-
key: "removed",
|
|
18
|
-
label: "Removed"
|
|
19
|
-
}, {
|
|
20
|
-
key: "aborted",
|
|
21
|
-
label: "Aborted"
|
|
22
|
-
}]
|
|
23
|
-
};
|
|
24
|
-
var remove_default = defineMetabaseCommand({
|
|
25
|
-
meta: {
|
|
26
|
-
name: "remove",
|
|
27
|
-
description: "Remove the stored license token"
|
|
28
|
-
},
|
|
29
|
-
capabilities: null,
|
|
30
|
-
args: {
|
|
31
|
-
...outputFlags,
|
|
32
|
-
yes: {
|
|
33
|
-
type: "boolean",
|
|
34
|
-
description: "Skip confirmation",
|
|
35
|
-
default: false
|
|
36
|
-
}
|
|
37
|
-
},
|
|
38
|
-
outputSchema: LicenseRemoveResult,
|
|
39
|
-
examples: ["mb workspace license remove --yes"],
|
|
40
|
-
async run({ args, ctx }) {
|
|
41
|
-
if (!args.yes && process.stdin.isTTY === true) {
|
|
42
|
-
const ok = await promptConfirm({
|
|
43
|
-
message: "Remove stored license token?",
|
|
44
|
-
initialValue: false
|
|
45
|
-
});
|
|
46
|
-
if (!ok) {
|
|
47
|
-
renderSummary({
|
|
48
|
-
removed: false,
|
|
49
|
-
aborted: true
|
|
50
|
-
}, licenseRemoveView, "Left the stored license token in place.", ctx);
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
const removed = await clearLicense();
|
|
55
|
-
const message = removed ? "License token removed." : "No license token was stored.";
|
|
56
|
-
renderSummary({
|
|
57
|
-
removed,
|
|
58
|
-
aborted: false
|
|
59
|
-
}, licenseRemoveView, message, ctx);
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
//#endregion
|
|
64
|
-
export { remove_default as default };
|
package/dist/run-DTsx8bLb.mjs
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import "./command-augment-BH9qgQ5u.mjs";
|
|
2
|
-
import { connectionFlags, outputFlags, profileFlag } from "./error-CTVL5CdB.mjs";
|
|
3
|
-
import { defineMetabaseCommand } from "./runtime-B40L_bj8.mjs";
|
|
4
|
-
import "./capabilities-7e9MgquN.mjs";
|
|
5
|
-
import { renderSummary } from "./render-0_GsapXa.mjs";
|
|
6
|
-
import { parseId } from "./parse-id-D1LTTt9L.mjs";
|
|
7
|
-
import { pollUntil } from "./poll-DxpnK1wW.mjs";
|
|
8
|
-
import { parseWaitFlags, waitFlags } from "./wait-flags-CNIeSq0_.mjs";
|
|
9
|
-
import { TransformRun } from "./transform-BKahefz_.mjs";
|
|
10
|
-
import { z } from "zod";
|
|
11
|
-
|
|
12
|
-
//#region src/commands/transform/run.ts
|
|
13
|
-
const RUN_TERMINAL_STATUSES = new Set([
|
|
14
|
-
"succeeded",
|
|
15
|
-
"failed",
|
|
16
|
-
"timeout",
|
|
17
|
-
"canceled"
|
|
18
|
-
]);
|
|
19
|
-
const RUN_FAILURE_STATUSES = new Set([
|
|
20
|
-
"failed",
|
|
21
|
-
"timeout",
|
|
22
|
-
"canceled"
|
|
23
|
-
]);
|
|
24
|
-
const TransformRunKickoff = z.object({
|
|
25
|
-
message: z.string(),
|
|
26
|
-
run_id: z.number().int().positive().nullable()
|
|
27
|
-
});
|
|
28
|
-
const TransformRunResult = z.object({
|
|
29
|
-
message: z.string(),
|
|
30
|
-
run_id: z.number().int().positive().nullable(),
|
|
31
|
-
final: TransformRun.nullable()
|
|
32
|
-
});
|
|
33
|
-
const transformRunResultView = {
|
|
34
|
-
compactPick: TransformRunResult,
|
|
35
|
-
tableColumns: [{
|
|
36
|
-
key: "run_id",
|
|
37
|
-
label: "Run ID"
|
|
38
|
-
}, {
|
|
39
|
-
key: "message",
|
|
40
|
-
label: "Message"
|
|
41
|
-
}]
|
|
42
|
-
};
|
|
43
|
-
var run_default = defineMetabaseCommand({
|
|
44
|
-
meta: {
|
|
45
|
-
name: "run",
|
|
46
|
-
description: "Trigger a transform run by id"
|
|
47
|
-
},
|
|
48
|
-
capabilities: { minVersion: 59 },
|
|
49
|
-
args: {
|
|
50
|
-
...outputFlags,
|
|
51
|
-
...profileFlag,
|
|
52
|
-
...connectionFlags,
|
|
53
|
-
...waitFlags,
|
|
54
|
-
id: {
|
|
55
|
-
type: "positional",
|
|
56
|
-
description: "Transform id",
|
|
57
|
-
required: true
|
|
58
|
-
}
|
|
59
|
-
},
|
|
60
|
-
outputSchema: TransformRunResult,
|
|
61
|
-
examples: ["mb transform run 1", "mb transform run 1 --wait --json"],
|
|
62
|
-
async run({ args, ctx, getClient }) {
|
|
63
|
-
const id = parseId(args.id);
|
|
64
|
-
const wait = parseWaitFlags(args);
|
|
65
|
-
const client = await getClient();
|
|
66
|
-
const kickoff = await client.requestParsed(TransformRunKickoff, `/api/transform/${id}/run`, { method: "POST" });
|
|
67
|
-
if (!wait.enabled) {
|
|
68
|
-
const started = kickoff.run_id === null ? kickoff.message : `Started run ${kickoff.run_id} for transform ${id}.`;
|
|
69
|
-
renderSummary({
|
|
70
|
-
message: kickoff.message,
|
|
71
|
-
run_id: kickoff.run_id,
|
|
72
|
-
final: null
|
|
73
|
-
}, transformRunResultView, started, ctx);
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
if (kickoff.run_id === null) {
|
|
77
|
-
renderSummary({
|
|
78
|
-
message: kickoff.message,
|
|
79
|
-
run_id: null,
|
|
80
|
-
final: null
|
|
81
|
-
}, transformRunResultView, kickoff.message, ctx);
|
|
82
|
-
throw new Error(`transform run did not start: ${kickoff.message}`);
|
|
83
|
-
}
|
|
84
|
-
const runId = kickoff.run_id;
|
|
85
|
-
const final = await pollUntil(async () => client.requestParsed(TransformRun, `/api/transform/run/${runId}`), (run) => RUN_TERMINAL_STATUSES.has(run.status), wait.schedule);
|
|
86
|
-
renderSummary({
|
|
87
|
-
message: kickoff.message,
|
|
88
|
-
run_id: runId,
|
|
89
|
-
final
|
|
90
|
-
}, transformRunResultView, `Run ${runId} of transform ${id} ${final.status}.`, ctx);
|
|
91
|
-
if (RUN_FAILURE_STATUSES.has(final.status)) throw new Error(`transform run ${runId} ${final.status}`);
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
|
|
95
|
-
//#endregion
|
|
96
|
-
export { run_default as default };
|
|
@@ -1,19 +0,0 @@
|
|
|
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: "Manage Metabase segments"
|
|
8
|
-
},
|
|
9
|
-
subCommands: {
|
|
10
|
-
list: () => import("./list-DUyWON1F.mjs").then((mod) => mod.default),
|
|
11
|
-
get: () => import("./get-C71ypFQk.mjs").then((mod) => mod.default),
|
|
12
|
-
create: () => import("./create-CQ4Vg4Ge.mjs").then((mod) => mod.default),
|
|
13
|
-
update: () => import("./update-BRLcnSwK.mjs").then((mod) => mod.default),
|
|
14
|
-
archive: () => import("./archive-BAjGIzhn.mjs").then((mod) => mod.default)
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
//#endregion
|
|
19
|
-
export { segment_default as default };
|
package/dist/set-Dclba9xF.mjs
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { ConfigError } from "./command-augment-BH9qgQ5u.mjs";
|
|
2
|
-
import { outputFlags } from "./error-CTVL5CdB.mjs";
|
|
3
|
-
import { defineMetabaseCommand, keyringFallbackWarning, readEnvLicenseToken, writeLicense } from "./runtime-B40L_bj8.mjs";
|
|
4
|
-
import { warn } from "./capabilities-7e9MgquN.mjs";
|
|
5
|
-
import { renderSummary } from "./render-0_GsapXa.mjs";
|
|
6
|
-
import { promptPassword } from "./prompt-CFKoys7k.mjs";
|
|
7
|
-
import { readInput } from "./input-cMSEqISy.mjs";
|
|
8
|
-
import { z } from "zod";
|
|
9
|
-
|
|
10
|
-
//#region src/commands/workspace/license/set.ts
|
|
11
|
-
const LicenseSetResult = z.object({ stored: z.literal(true) });
|
|
12
|
-
const licenseSetView = {
|
|
13
|
-
compactPick: LicenseSetResult,
|
|
14
|
-
tableColumns: [{
|
|
15
|
-
key: "stored",
|
|
16
|
-
label: "Stored"
|
|
17
|
-
}]
|
|
18
|
-
};
|
|
19
|
-
var set_default = defineMetabaseCommand({
|
|
20
|
-
meta: {
|
|
21
|
-
name: "set",
|
|
22
|
-
description: "Store a Metabase license token"
|
|
23
|
-
},
|
|
24
|
-
capabilities: null,
|
|
25
|
-
args: {
|
|
26
|
-
...outputFlags,
|
|
27
|
-
token: {
|
|
28
|
-
type: "positional",
|
|
29
|
-
description: "License token (visible in shell history; pipe on stdin instead)",
|
|
30
|
-
required: false
|
|
31
|
-
}
|
|
32
|
-
},
|
|
33
|
-
outputSchema: LicenseSetResult,
|
|
34
|
-
examples: [
|
|
35
|
-
"echo $METABASE_LICENSE_TOKEN | mb workspace license set",
|
|
36
|
-
"mb workspace license set < token.txt",
|
|
37
|
-
"mb workspace license set $METABASE_LICENSE_TOKEN"
|
|
38
|
-
],
|
|
39
|
-
async run({ args, ctx }) {
|
|
40
|
-
const token = await resolveToken(args.token);
|
|
41
|
-
const location = await writeLicense(token);
|
|
42
|
-
if (location.backend === "file") warn(keyringFallbackWarning(location, "license"));
|
|
43
|
-
const result = { stored: true };
|
|
44
|
-
renderSummary(result, licenseSetView, "License token stored.", ctx);
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
async function resolveToken(positional) {
|
|
48
|
-
if (positional) {
|
|
49
|
-
warn("warning: license token passed as positional is visible in shell history and process listings — pipe the token on stdin or set METABASE_LICENSE_TOKEN instead");
|
|
50
|
-
return positional;
|
|
51
|
-
}
|
|
52
|
-
const piped = (await readInput({ required: false })).trim();
|
|
53
|
-
if (piped) return piped;
|
|
54
|
-
const envToken = readEnvLicenseToken();
|
|
55
|
-
if (envToken) return envToken;
|
|
56
|
-
return promptForToken();
|
|
57
|
-
}
|
|
58
|
-
async function promptForToken() {
|
|
59
|
-
if (!process.stdin.isTTY) throw new ConfigError("license token, piped stdin, or METABASE_LICENSE_TOKEN required when stdin is not a TTY");
|
|
60
|
-
return promptPassword({
|
|
61
|
-
message: "License token",
|
|
62
|
-
mask: "•",
|
|
63
|
-
validate: (input) => input ? void 0 : "License token is required"
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
//#endregion
|
|
68
|
-
export { set_default as default };
|
package/dist/skills-tMYd5d9v.mjs
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { defineCommand } from "citty";
|
|
2
|
-
|
|
3
|
-
//#region src/commands/skills/index.ts
|
|
4
|
-
var skills_default = defineCommand({
|
|
5
|
-
meta: {
|
|
6
|
-
name: "skills",
|
|
7
|
-
description: "Discover and read CLI-bundled skills (SKILL.md files served from the installed version)"
|
|
8
|
-
},
|
|
9
|
-
default: "list",
|
|
10
|
-
subCommands: {
|
|
11
|
-
list: () => import("./list-DWWGcUTg.mjs").then((m) => m.default),
|
|
12
|
-
get: () => import("./get-GWRprk7k.mjs").then((m) => m.default),
|
|
13
|
-
path: () => import("./path-D5kX-msX.mjs").then((m) => m.default)
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
//#endregion
|
|
18
|
-
export { skills_default as default };
|
|
@@ -1,19 +0,0 @@
|
|
|
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: "Manage Metabase native query snippets"
|
|
8
|
-
},
|
|
9
|
-
subCommands: {
|
|
10
|
-
list: () => import("./list-CEE9yKNp.mjs").then((mod) => mod.default),
|
|
11
|
-
get: () => import("./get-F338MOK-.mjs").then((mod) => mod.default),
|
|
12
|
-
create: () => import("./create-GVfCQU3B.mjs").then((mod) => mod.default),
|
|
13
|
-
update: () => import("./update-BEtl9LpG.mjs").then((mod) => mod.default),
|
|
14
|
-
archive: () => import("./archive-BO3DOWI4.mjs").then((mod) => mod.default)
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
//#endregion
|
|
19
|
-
export { snippet_default as default };
|