@sdt-tools/cli 0.2.0 → 0.2.6
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/dist/advise-tests-6DRSZMBL.js +87 -0
- package/dist/advise-tests-6DRSZMBL.js.map +1 -0
- package/dist/ai-G4MJWHTM.js +89 -0
- package/dist/ai-G4MJWHTM.js.map +1 -0
- package/dist/anonymize-QR6JGXA7.js +123 -0
- package/dist/anonymize-QR6JGXA7.js.map +1 -0
- package/dist/approval-YVHYTV53.js +73 -0
- package/dist/approval-YVHYTV53.js.map +1 -0
- package/dist/approval-chain-54KKJZS3.js +120 -0
- package/dist/approval-chain-54KKJZS3.js.map +1 -0
- package/dist/audit-log-QZFH7LUX.js +159 -0
- package/dist/audit-log-QZFH7LUX.js.map +1 -0
- package/dist/backlog-V2YUIQDL.js +76 -0
- package/dist/backlog-V2YUIQDL.js.map +1 -0
- package/dist/bisect-GEVYAVL5.js +111 -0
- package/dist/bisect-GEVYAVL5.js.map +1 -0
- package/dist/bookmarks-57LKS7P6.js +107 -0
- package/dist/bookmarks-57LKS7P6.js.map +1 -0
- package/dist/branch-W2MGMPSH.js +88 -0
- package/dist/branch-W2MGMPSH.js.map +1 -0
- package/dist/build-VNIQFKSP.js +23 -0
- package/dist/build-VNIQFKSP.js.map +1 -0
- package/dist/catalog-JLB5VCEV.js +137 -0
- package/dist/catalog-JLB5VCEV.js.map +1 -0
- package/dist/changelog-M7XGDYSY.js +220 -0
- package/dist/changelog-M7XGDYSY.js.map +1 -0
- package/dist/chunk-DGUM43GV.js +11 -0
- package/dist/chunk-DGUM43GV.js.map +1 -0
- package/dist/chunk-EWXM4KJN.js +25 -0
- package/dist/chunk-EWXM4KJN.js.map +1 -0
- package/dist/chunk-JP2EZLR5.js +50 -0
- package/dist/chunk-JP2EZLR5.js.map +1 -0
- package/dist/chunk-VM2H4LAO.js +15 -0
- package/dist/chunk-VM2H4LAO.js.map +1 -0
- package/dist/chunk-ZWY4ZRHL.js +44 -0
- package/dist/chunk-ZWY4ZRHL.js.map +1 -0
- package/dist/cli.js +511 -19014
- package/dist/cli.js.map +1 -1
- package/dist/compare-5O6UTWPJ.js +405 -0
- package/dist/compare-5O6UTWPJ.js.map +1 -0
- package/dist/compare-profiles-7ZSNIW7B.js +218 -0
- package/dist/compare-profiles-7ZSNIW7B.js.map +1 -0
- package/dist/completion-I5U5VVAX.js +82 -0
- package/dist/completion-I5U5VVAX.js.map +1 -0
- package/dist/connection-GNTZDHXF.js +133 -0
- package/dist/connection-GNTZDHXF.js.map +1 -0
- package/dist/cost-estimate-TJDDH6TO.js +328 -0
- package/dist/cost-estimate-TJDDH6TO.js.map +1 -0
- package/dist/data-compare-UK2UXAS3.js +134 -0
- package/dist/data-compare-UK2UXAS3.js.map +1 -0
- package/dist/data-fit-Q45ENBRL.js +125 -0
- package/dist/data-fit-Q45ENBRL.js.map +1 -0
- package/dist/deploy-status-UUHKVDTI.js +58 -0
- package/dist/deploy-status-UUHKVDTI.js.map +1 -0
- package/dist/design-PO6UPBL7.js +138 -0
- package/dist/design-PO6UPBL7.js.map +1 -0
- package/dist/diagnose-6IFMELFR.js +145 -0
- package/dist/diagnose-6IFMELFR.js.map +1 -0
- package/dist/discover-A7OSZAHK.js +78 -0
- package/dist/discover-A7OSZAHK.js.map +1 -0
- package/dist/docs-CVRKGUSW.js +177 -0
- package/dist/docs-CVRKGUSW.js.map +1 -0
- package/dist/drift-XDA3BDYN.js +226 -0
- package/dist/drift-XDA3BDYN.js.map +1 -0
- package/dist/drift-gate-V7QSIOGZ.js +94 -0
- package/dist/drift-gate-V7QSIOGZ.js.map +1 -0
- package/dist/error-lookup-7ZWCZJ44.js +56 -0
- package/dist/error-lookup-7ZWCZJ44.js.map +1 -0
- package/dist/errorReporting-AQXKKGZH.js +109 -0
- package/dist/errorReporting-AQXKKGZH.js.map +1 -0
- package/dist/exec-PKBHLI7T.js +121 -0
- package/dist/exec-PKBHLI7T.js.map +1 -0
- package/dist/explain-LWKJOTL7.js +192 -0
- package/dist/explain-LWKJOTL7.js.map +1 -0
- package/dist/explorer-QOVM6VBD.js +61 -0
- package/dist/explorer-QOVM6VBD.js.map +1 -0
- package/dist/export-IYYBZ5HE.js +42 -0
- package/dist/export-IYYBZ5HE.js.map +1 -0
- package/dist/extract-VMMVRQVT.js +102 -0
- package/dist/extract-VMMVRQVT.js.map +1 -0
- package/dist/features-LE6BDZ2S.js +59 -0
- package/dist/features-LE6BDZ2S.js.map +1 -0
- package/dist/feedback-M7DM2EQC.js +161 -0
- package/dist/feedback-M7DM2EQC.js.map +1 -0
- package/dist/find-EME2JG2I.js +176 -0
- package/dist/find-EME2JG2I.js.map +1 -0
- package/dist/format-TRLWLMGS.js +141 -0
- package/dist/format-TRLWLMGS.js.map +1 -0
- package/dist/generate-6NAZGZDV.js +152 -0
- package/dist/generate-6NAZGZDV.js.map +1 -0
- package/dist/graph-QNQDAUO7.js +161 -0
- package/dist/graph-QNQDAUO7.js.map +1 -0
- package/dist/history-RONA7ZTI.js +199 -0
- package/dist/history-RONA7ZTI.js.map +1 -0
- package/dist/hosts-YBXY2ZG5.js +49 -0
- package/dist/hosts-YBXY2ZG5.js.map +1 -0
- package/dist/impact-T2JSANHS.js +59 -0
- package/dist/impact-T2JSANHS.js.map +1 -0
- package/dist/import-AELYLY6A.js +32 -0
- package/dist/import-AELYLY6A.js.map +1 -0
- package/dist/import-script-2OF5BI6A.js +83 -0
- package/dist/import-script-2OF5BI6A.js.map +1 -0
- package/dist/index.cjs +71 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +95 -31
- package/dist/index.js.map +1 -1
- package/dist/init-SWRRJMGI.js +57 -0
- package/dist/init-SWRRJMGI.js.map +1 -0
- package/dist/install-hooks-6SIAGTAF.js +109 -0
- package/dist/install-hooks-6SIAGTAF.js.map +1 -0
- package/dist/license-OAF22PLZ.js +46 -0
- package/dist/license-OAF22PLZ.js.map +1 -0
- package/dist/lineage-EW66XJ6O.js +552 -0
- package/dist/lineage-EW66XJ6O.js.map +1 -0
- package/dist/lint-FQ2OTYTQ.js +143 -0
- package/dist/lint-FQ2OTYTQ.js.map +1 -0
- package/dist/mcp-SARDMCDV.js +344 -0
- package/dist/mcp-SARDMCDV.js.map +1 -0
- package/dist/migrate-from-dbt-JVTXPWKQ.js +156 -0
- package/dist/migrate-from-dbt-JVTXPWKQ.js.map +1 -0
- package/dist/migrate-platform-NTRTOGNR.js +91 -0
- package/dist/migrate-platform-NTRTOGNR.js.map +1 -0
- package/dist/optimize-CJYWMAWA.js +105 -0
- package/dist/optimize-CJYWMAWA.js.map +1 -0
- package/dist/perf-LL2CPCJF.js +205 -0
- package/dist/perf-LL2CPCJF.js.map +1 -0
- package/dist/pii-FBDRDQ2E.js +136 -0
- package/dist/pii-FBDRDQ2E.js.map +1 -0
- package/dist/pilot-CCQERKPH.js +29 -0
- package/dist/pilot-CCQERKPH.js.map +1 -0
- package/dist/pr-comment-S5FF4QRX.js +79 -0
- package/dist/pr-comment-S5FF4QRX.js.map +1 -0
- package/dist/preview-5U4YVCRM.js +47 -0
- package/dist/preview-5U4YVCRM.js.map +1 -0
- package/dist/profile-7VC57KD2.js +101 -0
- package/dist/profile-7VC57KD2.js.map +1 -0
- package/dist/promote-AASEFTIA.js +408 -0
- package/dist/promote-AASEFTIA.js.map +1 -0
- package/dist/publish-UMVIWH6H.js +721 -0
- package/dist/publish-UMVIWH6H.js.map +1 -0
- package/dist/purge-QMXZKCMD.js +57 -0
- package/dist/purge-QMXZKCMD.js.map +1 -0
- package/dist/query-log-6OM4GI7W.js +112 -0
- package/dist/query-log-6OM4GI7W.js.map +1 -0
- package/dist/refactor-LTZQLJ35.js +5799 -0
- package/dist/refactor-LTZQLJ35.js.map +1 -0
- package/dist/refresh-4TY2AGOU.js +38 -0
- package/dist/refresh-4TY2AGOU.js.map +1 -0
- package/dist/replay-OOC25FZN.js +117 -0
- package/dist/replay-OOC25FZN.js.map +1 -0
- package/dist/revert-ODMUVJW6.js +110 -0
- package/dist/revert-ODMUVJW6.js.map +1 -0
- package/dist/review-XXPWOBFP.js +158 -0
- package/dist/review-XXPWOBFP.js.map +1 -0
- package/dist/rollback-suggest-6G2HEKFR.js +79 -0
- package/dist/rollback-suggest-6G2HEKFR.js.map +1 -0
- package/dist/safer-alternative-QFVNLG3L.js +89 -0
- package/dist/safer-alternative-QFVNLG3L.js.map +1 -0
- package/dist/safety-7QWRSUEZ.js +168 -0
- package/dist/safety-7QWRSUEZ.js.map +1 -0
- package/dist/savings-RHIXP6IT.js +95 -0
- package/dist/savings-RHIXP6IT.js.map +1 -0
- package/dist/scan-secrets-5YCQ4UCU.js +54 -0
- package/dist/scan-secrets-5YCQ4UCU.js.map +1 -0
- package/dist/schema-CIZXCQD2.js +429 -0
- package/dist/schema-CIZXCQD2.js.map +1 -0
- package/dist/script-K7CIN2P6.js +153 -0
- package/dist/script-K7CIN2P6.js.map +1 -0
- package/dist/search-BUZ5NXZZ.js +151 -0
- package/dist/search-BUZ5NXZZ.js.map +1 -0
- package/dist/seed-76QAK276.js +96 -0
- package/dist/seed-76QAK276.js.map +1 -0
- package/dist/sketch-PTLKDIK3.js +88 -0
- package/dist/sketch-PTLKDIK3.js.map +1 -0
- package/dist/snapshot-XLPR2OZ5.js +177 -0
- package/dist/snapshot-XLPR2OZ5.js.map +1 -0
- package/dist/snippets-EK4DK5CN.js +74 -0
- package/dist/snippets-EK4DK5CN.js.map +1 -0
- package/dist/standards-7T2UY6DD.js +241 -0
- package/dist/standards-7T2UY6DD.js.map +1 -0
- package/dist/suggest-VGRYSAR6.js +39 -0
- package/dist/suggest-VGRYSAR6.js.map +1 -0
- package/dist/suggest-constraints-MY5WKUHA.js +160 -0
- package/dist/suggest-constraints-MY5WKUHA.js.map +1 -0
- package/dist/suite-TRNGZWQM.js +88 -0
- package/dist/suite-TRNGZWQM.js.map +1 -0
- package/dist/telemetry-3U2QLA2S.js +75 -0
- package/dist/telemetry-3U2QLA2S.js.map +1 -0
- package/dist/template-ZERIXVXF.js +403 -0
- package/dist/template-ZERIXVXF.js.map +1 -0
- package/dist/test-5M2ED3WT.js +169 -0
- package/dist/test-5M2ED3WT.js.map +1 -0
- package/dist/trial-U732FONV.js +31 -0
- package/dist/trial-U732FONV.js.map +1 -0
- package/dist/validate-T6D2WCOK.js +106 -0
- package/dist/validate-T6D2WCOK.js.map +1 -0
- package/dist/verify-KXVASEEG.js +76 -0
- package/dist/verify-KXVASEEG.js.map +1 -0
- package/dist/watch-I6K4BNMA.js +80 -0
- package/dist/watch-I6K4BNMA.js.map +1 -0
- package/dist/xcompare-TPFLQO6W.js +87 -0
- package/dist/xcompare-TPFLQO6W.js.map +1 -0
- package/package.json +2 -2
- package/dist/cli.cjs +0 -19040
- package/dist/cli.cjs.map +0 -1
- package/dist/cli.d.cts +0 -1
- package/dist/cli.d.ts +0 -1
package/dist/index.cjs
CHANGED
|
@@ -86,7 +86,10 @@ var logger = {
|
|
|
86
86
|
// src/commands/init.ts
|
|
87
87
|
function initCommand() {
|
|
88
88
|
const cmd = new import_commander.Command("init");
|
|
89
|
-
cmd.description("Initialize a new SDT project in the current directory.").option("--name <name>", "Project name", "NewSnowflakeProject").option("--scope <scope>", "Project scope: account | database | schema", "database").option("--db <database>", "Database name (required for database/schema scope)").option("--schema <schema>", "Schema name (required for schema scope)").option("--dir <dir>", "Target directory (default: cwd)", process.cwd()).
|
|
89
|
+
cmd.description("Initialize a new SDT project in the current directory.").option("--name <name>", "Project name", "NewSnowflakeProject").option("--scope <scope>", "Project scope: account | database | schema", "database").option("--db <database>", "Database name (required for database/schema scope)").option("--schema <schema>", "Schema name (required for schema scope)").option("--dir <dir>", "Target directory (default: cwd)", process.cwd()).option(
|
|
90
|
+
"--force",
|
|
91
|
+
"Overwrite an existing <name>.sdtproj in the target directory. Without this flag, init refuses to clobber an existing project file so a re-run never silently discards your project configuration."
|
|
92
|
+
).action(async (opts) => {
|
|
90
93
|
const scopeType = String(opts.scope);
|
|
91
94
|
if (!["account", "database", "schema"].includes(scopeType)) {
|
|
92
95
|
throw new Error(`Invalid --scope: ${opts.scope}. Use account | database | schema.`);
|
|
@@ -104,6 +107,15 @@ function initCommand() {
|
|
|
104
107
|
await import_node_fs.promises.mkdir(root, { recursive: true });
|
|
105
108
|
const project10 = (0, import_project.newProjectTemplate)(String(opts.name), scope);
|
|
106
109
|
const projectPath = import_node_path.default.join(root, `${project10.name}.sdtproj`);
|
|
110
|
+
if (!opts.force) {
|
|
111
|
+
try {
|
|
112
|
+
await import_node_fs.promises.access(projectPath);
|
|
113
|
+
logger.error(`${projectPath} already exists; pass --force to overwrite.`);
|
|
114
|
+
process.exitCode = 1;
|
|
115
|
+
return;
|
|
116
|
+
} catch {
|
|
117
|
+
}
|
|
118
|
+
}
|
|
107
119
|
await (0, import_project.saveProject)(projectPath, project10);
|
|
108
120
|
const seedFolders = ["databases", "scripts/pre", "scripts/post"];
|
|
109
121
|
for (const f of seedFolders) await import_node_fs.promises.mkdir(import_node_path.default.join(root, f), { recursive: true });
|
|
@@ -380,7 +392,13 @@ function compareCommand() {
|
|
|
380
392
|
const cmd = new import_commander5.Command("compare");
|
|
381
393
|
cmd.description(
|
|
382
394
|
"Compare two schemas. Sources may be .sdtproj, .sdtpac, or snowflake://<profile>[/db[/schema]]."
|
|
383
|
-
).argument("
|
|
395
|
+
).argument("[source]", "Left side of the comparison (or use --source)").argument("[target]", "Right side of the comparison (or use --target)").option(
|
|
396
|
+
"--source <path>",
|
|
397
|
+
"Left side of the comparison (flag form of the positional source arg)"
|
|
398
|
+
).option(
|
|
399
|
+
"--target <path>",
|
|
400
|
+
"Right side of the comparison (flag form of the positional target arg)"
|
|
401
|
+
).option("-o, --output <path>", "Write JSON result to this path").option("--format <format>", "Output format: json | summary | markdown", "summary").option("--ignore-case", "Treat unquoted identifiers case-insensitively", false).option(
|
|
384
402
|
"--no-slice",
|
|
385
403
|
"Disable the source project's Slice (if it has one). Default: a project's slice is applied automatically."
|
|
386
404
|
).option(
|
|
@@ -405,7 +423,14 @@ function compareCommand() {
|
|
|
405
423
|
).option(
|
|
406
424
|
"--no-history",
|
|
407
425
|
"Skip writing the compare-history audit record (AUDITCMP.1). Default: every compare run writes a record to `.sdt/history/compare/`, exportable via `sdt audit-log emit`."
|
|
408
|
-
).action(async (
|
|
426
|
+
).action(async (sourceArgPos, targetArgPos, opts) => {
|
|
427
|
+
const sourceArg = opts.source ? String(opts.source) : sourceArgPos ? String(sourceArgPos) : "";
|
|
428
|
+
const targetArg = opts.target ? String(opts.target) : targetArgPos ? String(targetArgPos) : "";
|
|
429
|
+
if (!sourceArg || !targetArg) {
|
|
430
|
+
throw new Error(
|
|
431
|
+
"compare needs a source and a target \u2014 pass them positionally (`sdt compare <source> <target>`) or via `--source`/`--target`."
|
|
432
|
+
);
|
|
433
|
+
}
|
|
409
434
|
const nameMapping = await buildMappingFromOptions(opts);
|
|
410
435
|
const source = await resolveSource(String(sourceArg));
|
|
411
436
|
const target = await resolveSource(String(targetArg));
|
|
@@ -691,11 +716,14 @@ function splitStatements(sql) {
|
|
|
691
716
|
function publishCommand() {
|
|
692
717
|
const cmd = new import_commander6.Command("publish");
|
|
693
718
|
cmd.description(
|
|
694
|
-
"Compare a .sdtpac to a live Snowflake target and apply (or dry-run) the migration."
|
|
719
|
+
"Compare a .sdtpac (the desired state) to a live Snowflake target and apply (or dry-run) the migration. Shared form with `ddt publish`: `--source <desired> --connection <live-target>`."
|
|
720
|
+
).option(
|
|
721
|
+
"--source <path>",
|
|
722
|
+
"Path to the desired-state .sdtpac (canonical name; the same flag `ddt publish` uses). Required for a normal publish; omit only with --restore-from-snapshot."
|
|
695
723
|
).option(
|
|
696
724
|
"--pac <path>",
|
|
697
|
-
"
|
|
698
|
-
).requiredOption("-c, --connection <profile>", "Connection profile name").option(
|
|
725
|
+
"Back-compat alias for --source (the desired-state .sdtpac). Prefer --source for cross-platform parity with `ddt publish`."
|
|
726
|
+
).requiredOption("-c, --connection <profile>", "Connection profile name (the live target).").option(
|
|
699
727
|
"--restore-from-snapshot <batchId>",
|
|
700
728
|
"Recovery mode: skip the compare step and emit ALTER TABLE \u2026 SWAP WITH against the snapshot batch <batchId> from the registry. Dry-run by default; pass --apply --yes to execute. This is the command printed by TRUST.4's post-deploy-smoke + TRUST.8's restore-hint when a deploy fails \u2014 they tell the operator to run `sdt publish --restore-from-snapshot <id>`."
|
|
701
729
|
).option(
|
|
@@ -782,12 +810,15 @@ function publishCommand() {
|
|
|
782
810
|
await runRestoreFromSnapshot(opts);
|
|
783
811
|
return;
|
|
784
812
|
}
|
|
785
|
-
|
|
786
|
-
|
|
813
|
+
const pacRef = opts.source ?? opts.pac;
|
|
814
|
+
if (!pacRef) {
|
|
815
|
+
logger.error(
|
|
816
|
+
"--source <path> (or its alias --pac) is required (unless --restore-from-snapshot is given)."
|
|
817
|
+
);
|
|
787
818
|
process.exitCode = 1;
|
|
788
819
|
return;
|
|
789
820
|
}
|
|
790
|
-
const pacPath = import_node_path4.default.resolve(String(
|
|
821
|
+
const pacPath = import_node_path4.default.resolve(String(pacRef));
|
|
791
822
|
const pac10 = await (0, import_pac2.readPac)(pacPath);
|
|
792
823
|
const freshnessMode = opts.freshness ?? "warn";
|
|
793
824
|
if (freshnessMode !== "skip") {
|
|
@@ -1575,12 +1606,17 @@ function validateCommand() {
|
|
|
1575
1606
|
logger.dim(` Profiles: ${Object.keys(loaded.project.deploymentProfiles ?? {}).length}`);
|
|
1576
1607
|
if (opts.checkVariables) {
|
|
1577
1608
|
const projRoot = import_node_path6.default.dirname(import_node_path6.default.resolve(String(opts.project)));
|
|
1578
|
-
const
|
|
1579
|
-
files
|
|
1609
|
+
const { results } = await import_core6.catalog.mapPool(
|
|
1610
|
+
files,
|
|
1611
|
+
async (f) => {
|
|
1580
1612
|
const relPath = import_node_path6.default.relative(projRoot, f).split(import_node_path6.default.sep).join("/");
|
|
1581
1613
|
const content = await import_node_fs6.promises.readFile(f, "utf8");
|
|
1582
1614
|
return { path: relPath, content };
|
|
1583
|
-
}
|
|
1615
|
+
},
|
|
1616
|
+
{ concurrency: 16, stopOnError: true }
|
|
1617
|
+
);
|
|
1618
|
+
const fileContents = results.filter(
|
|
1619
|
+
(r) => r !== void 0
|
|
1584
1620
|
);
|
|
1585
1621
|
const profilesBlock = loaded.project.deploymentProfiles ?? {};
|
|
1586
1622
|
const profileVariableKeys = Object.values(profilesBlock).map(
|
|
@@ -1705,6 +1741,11 @@ function connectionCommand() {
|
|
|
1705
1741
|
await (0, import_connection5.upsertProfile)(profile);
|
|
1706
1742
|
logger.success(`Saved profile "${profile.name}".`);
|
|
1707
1743
|
});
|
|
1744
|
+
cmd.command("get <name>").description("Print a profile (secrets are redacted).").action(async (name) => {
|
|
1745
|
+
const profile = await (0, import_connection5.getProfile)(String(name));
|
|
1746
|
+
const redacted = { ...profile, auth: redactAuth(profile.auth) };
|
|
1747
|
+
logger.info(JSON.stringify(redacted, null, 2));
|
|
1748
|
+
});
|
|
1708
1749
|
cmd.command("remove").description("Remove a connection profile.").argument("<name>").action(async (name) => {
|
|
1709
1750
|
const ok = await (0, import_connection5.removeProfile)(String(name));
|
|
1710
1751
|
if (ok) logger.success(`Removed profile "${name}".`);
|
|
@@ -1722,6 +1763,24 @@ function connectionCommand() {
|
|
|
1722
1763
|
});
|
|
1723
1764
|
return cmd;
|
|
1724
1765
|
}
|
|
1766
|
+
function redactAuth(auth) {
|
|
1767
|
+
const isPlaceholder = (v) => v.startsWith("env:") || v.startsWith("keyring:");
|
|
1768
|
+
switch (auth.method) {
|
|
1769
|
+
case "PASSWORD":
|
|
1770
|
+
case "MFA":
|
|
1771
|
+
return auth.password && !isPlaceholder(auth.password) ? { ...auth, password: "<redacted>" } : auth;
|
|
1772
|
+
case "OAUTH":
|
|
1773
|
+
return auth.token && !isPlaceholder(auth.token) ? { ...auth, token: "<redacted>" } : auth;
|
|
1774
|
+
case "KEY_PAIR":
|
|
1775
|
+
return auth.privateKeyPassphrase && !isPlaceholder(auth.privateKeyPassphrase) ? { ...auth, privateKeyPassphrase: "<redacted>" } : auth;
|
|
1776
|
+
case "EXTERNAL_BROWSER":
|
|
1777
|
+
return auth;
|
|
1778
|
+
default: {
|
|
1779
|
+
const _exhaustive = auth;
|
|
1780
|
+
return _exhaustive;
|
|
1781
|
+
}
|
|
1782
|
+
}
|
|
1783
|
+
}
|
|
1725
1784
|
|
|
1726
1785
|
// src/commands/scaffold.ts
|
|
1727
1786
|
var import_commander10 = require("commander");
|