@wirecat/drive-cli 0.15.0 → 0.16.0

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 (124) hide show
  1. package/dist/api-contract.d.ts +1 -0
  2. package/dist/api-contract.d.ts.map +1 -1
  3. package/dist/api-contract.js +9 -1
  4. package/dist/api-contract.js.map +1 -1
  5. package/dist/{catalog-commands.d.ts → commands/catalog.d.ts} +2 -2
  6. package/dist/commands/catalog.d.ts.map +1 -0
  7. package/dist/{catalog-commands.js → commands/catalog.js} +11 -14
  8. package/dist/commands/catalog.js.map +1 -0
  9. package/dist/commands/config.d.ts +5 -0
  10. package/dist/commands/config.d.ts.map +1 -0
  11. package/dist/commands/config.js +81 -0
  12. package/dist/commands/config.js.map +1 -0
  13. package/dist/commands/context.d.ts +38 -0
  14. package/dist/commands/context.d.ts.map +1 -0
  15. package/dist/commands/context.js +14 -0
  16. package/dist/commands/context.js.map +1 -0
  17. package/dist/commands/discovery.d.ts +5 -0
  18. package/dist/commands/discovery.d.ts.map +1 -0
  19. package/dist/commands/discovery.js +27 -0
  20. package/dist/commands/discovery.js.map +1 -0
  21. package/dist/commands/documents.d.ts +10 -0
  22. package/dist/commands/documents.d.ts.map +1 -0
  23. package/dist/commands/documents.js +89 -0
  24. package/dist/commands/documents.js.map +1 -0
  25. package/dist/commands/folders.d.ts +4 -0
  26. package/dist/commands/folders.d.ts.map +1 -0
  27. package/dist/commands/folders.js +44 -0
  28. package/dist/commands/folders.js.map +1 -0
  29. package/dist/{knowledge-commands.d.ts → commands/knowledge.d.ts} +4 -4
  30. package/dist/commands/knowledge.d.ts.map +1 -0
  31. package/dist/{knowledge-commands.js → commands/knowledge.js} +35 -54
  32. package/dist/commands/knowledge.js.map +1 -0
  33. package/dist/commands/mcp.d.ts +4 -0
  34. package/dist/commands/mcp.d.ts.map +1 -0
  35. package/dist/commands/mcp.js +18 -0
  36. package/dist/commands/mcp.js.map +1 -0
  37. package/dist/{remote-commands.d.ts → commands/remote.d.ts} +2 -2
  38. package/dist/commands/remote.d.ts.map +1 -0
  39. package/dist/{remote-commands.js → commands/remote.js} +46 -69
  40. package/dist/commands/remote.js.map +1 -0
  41. package/dist/commands/search.d.ts +4 -0
  42. package/dist/commands/search.d.ts.map +1 -0
  43. package/dist/commands/search.js +20 -0
  44. package/dist/commands/search.js.map +1 -0
  45. package/dist/commands/session.d.ts +4 -0
  46. package/dist/commands/session.d.ts.map +1 -0
  47. package/dist/commands/session.js +59 -0
  48. package/dist/commands/session.js.map +1 -0
  49. package/dist/commands/sheets-structure.d.ts +4 -0
  50. package/dist/commands/sheets-structure.d.ts.map +1 -0
  51. package/dist/commands/sheets-structure.js +112 -0
  52. package/dist/commands/sheets-structure.js.map +1 -0
  53. package/dist/commands/sheets.d.ts +4 -0
  54. package/dist/commands/sheets.d.ts.map +1 -0
  55. package/dist/commands/sheets.js +102 -0
  56. package/dist/commands/sheets.js.map +1 -0
  57. package/dist/commands/sync.d.ts +4 -0
  58. package/dist/commands/sync.d.ts.map +1 -0
  59. package/dist/commands/sync.js +50 -0
  60. package/dist/commands/sync.js.map +1 -0
  61. package/dist/config-upgrade.d.ts.map +1 -1
  62. package/dist/config-upgrade.js +10 -7
  63. package/dist/config-upgrade.js.map +1 -1
  64. package/dist/config.d.ts.map +1 -1
  65. package/dist/config.js +48 -11
  66. package/dist/config.js.map +1 -1
  67. package/dist/errors.d.ts.map +1 -1
  68. package/dist/errors.js +13 -0
  69. package/dist/errors.js.map +1 -1
  70. package/dist/failure.d.ts.map +1 -1
  71. package/dist/failure.js +5 -0
  72. package/dist/failure.js.map +1 -1
  73. package/dist/generated/definitions.d.ts.map +1 -1
  74. package/dist/generated/definitions.js +7310 -0
  75. package/dist/generated/definitions.js.map +1 -1
  76. package/dist/generated/manifest.d.ts.map +1 -1
  77. package/dist/generated/manifest.js +1923 -0
  78. package/dist/generated/manifest.js.map +1 -1
  79. package/dist/generated/metadata.d.ts +17 -0
  80. package/dist/generated/metadata.d.ts.map +1 -1
  81. package/dist/generated/metadata.js +91 -0
  82. package/dist/generated/metadata.js.map +1 -1
  83. package/dist/generated/schemas.d.ts +546 -0
  84. package/dist/generated/schemas.d.ts.map +1 -1
  85. package/dist/generated/schemas.js +2117 -0
  86. package/dist/generated/schemas.js.map +1 -1
  87. package/dist/generated/types.d.ts +2814 -0
  88. package/dist/generated/types.d.ts.map +1 -1
  89. package/dist/google-api.d.ts.map +1 -1
  90. package/dist/google-api.js +16 -3
  91. package/dist/google-api.js.map +1 -1
  92. package/dist/google.js +4 -3
  93. package/dist/google.js.map +1 -1
  94. package/dist/knowledge.js +6 -6
  95. package/dist/knowledge.js.map +1 -1
  96. package/dist/mcp.d.ts +1 -1
  97. package/dist/mcp.d.ts.map +1 -1
  98. package/dist/mcp.js +6 -3
  99. package/dist/mcp.js.map +1 -1
  100. package/dist/policy.d.ts +1 -1
  101. package/dist/policy.d.ts.map +1 -1
  102. package/dist/policy.js +58 -8
  103. package/dist/policy.js.map +1 -1
  104. package/dist/program.d.ts +2 -19
  105. package/dist/program.d.ts.map +1 -1
  106. package/dist/program.js +58 -427
  107. package/dist/program.js.map +1 -1
  108. package/dist/registry.d.ts +4 -0
  109. package/dist/registry.d.ts.map +1 -1
  110. package/dist/registry.js +3 -0
  111. package/dist/registry.js.map +1 -1
  112. package/dist/sheets-input.d.ts +17 -0
  113. package/dist/sheets-input.d.ts.map +1 -0
  114. package/dist/sheets-input.js +32 -0
  115. package/dist/sheets-input.js.map +1 -0
  116. package/dist/store.js +1 -1
  117. package/dist/store.js.map +1 -1
  118. package/package.json +5 -4
  119. package/dist/catalog-commands.d.ts.map +0 -1
  120. package/dist/catalog-commands.js.map +0 -1
  121. package/dist/knowledge-commands.d.ts.map +0 -1
  122. package/dist/knowledge-commands.js.map +0 -1
  123. package/dist/remote-commands.d.ts.map +0 -1
  124. package/dist/remote-commands.js.map +0 -1
@@ -0,0 +1,59 @@
1
+ import { CliError } from "@wirecat/cli-base";
2
+ import { annotate } from "@wirecat/cli-base/commands";
3
+ import { itemOf, LOCAL_READ, LOCAL_WRITE, REMOTE_WRITE } from "@wirecat/cli-core/cli";
4
+ import { activeProfile, application, readConfig, writeConfig } from "../config.js";
5
+ import { login } from "../login.js";
6
+ import { examples } from "../registry.js";
7
+ import { credentials } from "../tokens.js";
8
+ const GRANTS = ["write", "activity", "apps"];
9
+ const grants = (raw) => {
10
+ const values = raw.split(",").map((value) => value.trim());
11
+ const unknown = values.filter((value) => !GRANTS.includes(value));
12
+ if (unknown.length)
13
+ throw new CliError("validation_error", `--grant takes ${GRANTS.join(", ")}; got ${unknown.join(", ")}`);
14
+ return new Set(values);
15
+ };
16
+ export const installSessionCommands = (program, context) => {
17
+ const { env, streams, options, selected, output } = context;
18
+ const session = annotate(program.command("session"), { effects: LOCAL_READ }).description("sign in to Google and manage local profiles");
19
+ examples(annotate(session.command("start"), { effects: REMOTE_WRITE }).description("sign in to Google in the browser; read-only unless you pass --grant write"), ["drive personal session start", "drive work session start --grant write,activity"])
20
+ .option("--client-file <file>", "path to your own Desktop OAuth client JSON, used instead of WireCat's")
21
+ .option("--credential-storage <storage>", "where the sign-in is kept: keyring, or file for a private file", "keyring")
22
+ .option("--no-browser", "print the sign-in URL instead of opening a browser")
23
+ .option("--grant <scopes>", "also ask for these permissions, comma-separated: write (change Drive files and Docs), " +
24
+ "activity (read Drive Activity history), apps (see installed Drive apps)", grants)
25
+ .action(async (args) => {
26
+ if (args.credentialStorage !== "keyring" && args.credentialStorage !== "file")
27
+ throw new CliError("validation_error", "credential storage is keyring or file");
28
+ const signal = context.signal();
29
+ output(itemOf(await login({
30
+ env,
31
+ profile: selected(),
32
+ application: application(env, args.clientFile),
33
+ storage: args.credentialStorage,
34
+ ...Object.fromEntries([...(args.grant ?? [])].map((grant) => [grant, true])),
35
+ ...(options.keyring ? { keyring: options.keyring } : {}),
36
+ ...(signal ? { signal } : {}),
37
+ openBrowser: args.browser ? (options.openBrowser ?? (async () => { })) : async () => { },
38
+ showUrl: (url) => streams.diagnostic(`Open Google sign-in: ${url}\n`),
39
+ })));
40
+ });
41
+ examples(annotate(session.command("list"), { effects: LOCAL_READ }).description("list the configured profiles; credentials are never printed"), ["drive personal session list"]).action(() => output(itemOf({
42
+ scope: "all-configured-profiles",
43
+ items: Object.entries(readConfig(env).profiles).map(([name, p]) => ({
44
+ profile: name,
45
+ selected_folders: p.roots.length,
46
+ storage: p.storage,
47
+ })),
48
+ })));
49
+ examples(annotate(session.command("end"), { effects: LOCAL_WRITE }).description("sign this profile out; imported documents stay"), ["drive personal session end"]).action(() => {
50
+ const name = selected();
51
+ const config = readConfig(env);
52
+ const profile = activeProfile(env, name);
53
+ credentials(env, profile.storage, options.keyring).remove(name);
54
+ // Preserve the principal and roots so reauthorization resumes the same source identities.
55
+ writeConfig(env, config);
56
+ output(itemOf({ profile: name, signed_out: true, cached_data: "retained" }));
57
+ });
58
+ };
59
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/commands/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Command } from "commander";
2
+ import type { RemoteCommands } from "./remote.js";
3
+ export declare const installSheetsStructureCommands: (group: Command, { call, output }: Pick<RemoteCommands, "call" | "output">) => void;
4
+ //# sourceMappingURL=sheets-structure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sheets-structure.d.ts","sourceRoot":"","sources":["../../src/commands/sheets-structure.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAkDjD,eAAO,MAAM,8BAA8B,UAClC,OAAO,oBACI,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,QAAQ,CAAC,SAuE1D,CAAA"}
@@ -0,0 +1,112 @@
1
+ import { CliError } from "@wirecat/cli-base";
2
+ import { annotate } from "@wirecat/cli-base/commands";
3
+ import { itemOf } from "@wirecat/cli-core/cli";
4
+ import { jsonObject } from "../api-contract.js";
5
+ import { fileId } from "../config.js";
6
+ import { examples, GOOGLE_WRITE } from "../registry.js";
7
+ import { cellRectangle } from "../sheets-input.js";
8
+ const integer = (name, raw, maximum, minimum = 0) => {
9
+ if (!/^\d+$/.test(raw) || !Number.isSafeInteger(Number(raw)) || Number(raw) < minimum || Number(raw) > maximum)
10
+ throw new CliError("validation_error", `${name} must be an integer from ${minimum} to ${maximum}`);
11
+ return Number(raw);
12
+ };
13
+ const sheetId = (raw) => integer("sheet-id", raw, 2147483647);
14
+ const title = (raw) => {
15
+ if (!raw.trim() || raw.length > 100)
16
+ throw new CliError("validation_error", "title must contain 1 to 100 characters");
17
+ return raw;
18
+ };
19
+ const color = (prefix) => ["red", "green", "blue", "alpha"].map((key) => `${prefix}.${key}`);
20
+ const FORMAT_PATHS = new Set([
21
+ ...color("backgroundColor"),
22
+ ...color("backgroundColorStyle.rgbColor"),
23
+ "backgroundColorStyle.themeColor",
24
+ "horizontalAlignment",
25
+ "verticalAlignment",
26
+ "wrapStrategy",
27
+ "numberFormat.type",
28
+ "numberFormat.pattern",
29
+ "textFormat.bold",
30
+ "textFormat.italic",
31
+ "textFormat.underline",
32
+ "textFormat.strikethrough",
33
+ "textFormat.fontFamily",
34
+ "textFormat.fontSize",
35
+ ...color("textFormat.foregroundColor"),
36
+ ...color("textFormat.foregroundColorStyle.rgbColor"),
37
+ "textFormat.foregroundColorStyle.themeColor",
38
+ ]);
39
+ const formatFields = (body, prefix = "") => {
40
+ const paths = [];
41
+ if (!Object.keys(body).length)
42
+ throw new CliError("validation_error", "--body must set at least one formatting field");
43
+ for (const [key, value] of Object.entries(body)) {
44
+ const path = prefix ? `${prefix}.${key}` : key;
45
+ if (FORMAT_PATHS.has(path)) {
46
+ paths.push(`userEnteredFormat.${path}`);
47
+ }
48
+ else if ([...FORMAT_PATHS].some((candidate) => candidate.startsWith(`${path}.`)) &&
49
+ value &&
50
+ typeof value === "object" &&
51
+ !Array.isArray(value)) {
52
+ for (const field of formatFields(value, path))
53
+ paths.push(field);
54
+ }
55
+ else
56
+ throw new CliError("validation_error", "--body contains an unsupported formatting field or shape");
57
+ }
58
+ return paths;
59
+ };
60
+ export const installSheetsStructureCommands = (group, { call, output }) => {
61
+ const batch = async (spreadsheet, request) => output(itemOf(await call("sheets.spreadsheets.batchUpdate", { spreadsheetId: fileId(spreadsheet) }, { requests: [request] })));
62
+ examples(annotate(group.command("create"), { effects: GOOGLE_WRITE })
63
+ .description("create an empty tab inside an existing spreadsheet")
64
+ .argument("<spreadsheet>", "spreadsheet ID or Google Sheets URL")
65
+ .argument("<title>", "name of the new tab", title), ['drive personal sheets create SHEET_ID "Quarter 2"']).action(async (spreadsheet, name) => batch(spreadsheet, { addSheet: { properties: { title: name } } }));
66
+ examples(annotate(group.command("rename"), { effects: GOOGLE_WRITE })
67
+ .description("rename one tab while preserving its ID and other properties")
68
+ .argument("<spreadsheet>", "spreadsheet ID or Google Sheets URL")
69
+ .argument("<sheet-id>", "numeric tab ID from sheets info", sheetId)
70
+ .argument("<title>", "new tab name", title), ['drive personal sheets rename SHEET_ID 0 "Quarter 2"']).action(async (spreadsheet, id, name) => batch(spreadsheet, {
71
+ updateSheetProperties: { properties: { sheetId: id, title: name }, fields: "title" },
72
+ }));
73
+ examples(annotate(group.command("insert"), { effects: GOOGLE_WRITE })
74
+ .description("insert bounded rows or columns before a zero-based index")
75
+ .argument("<spreadsheet>", "spreadsheet ID or Google Sheets URL")
76
+ .argument("<sheet-id>", "numeric tab ID from sheets info", sheetId)
77
+ .argument("<axis>", "rows or columns", (raw) => {
78
+ if (raw !== "rows" && raw !== "columns")
79
+ throw new CliError("validation_error", "axis must be rows or columns");
80
+ return raw;
81
+ })
82
+ .argument("<index>", "zero-based index to insert before", (raw) => integer("index", raw, 9999999))
83
+ .argument("<count>", "number to insert, from 1 to 1000", (raw) => integer("count", raw, 1000, 1)), ["drive personal sheets insert SHEET_ID 0 rows 1 3"]).action(async (spreadsheet, id, axis, index, count) => {
84
+ if (index + count > (axis === "rows" ? 10000000 : 18278))
85
+ throw new CliError("validation_error", "index and count exceed the dimension bound");
86
+ return batch(spreadsheet, {
87
+ insertDimension: {
88
+ range: { sheetId: id, dimension: axis.toUpperCase(), startIndex: index, endIndex: index + count },
89
+ inheritFromBefore: false,
90
+ },
91
+ });
92
+ });
93
+ examples(annotate(group.command("format"), { effects: GOOGLE_WRITE })
94
+ .description("change only supplied formatting fields in at most 10000 cells")
95
+ .argument("<spreadsheet>", "spreadsheet ID or Google Sheets URL")
96
+ .argument("<sheet-id>", "numeric tab ID from sheets info", sheetId)
97
+ .argument("<range>", "finite cells within that tab, such as A1:C4; no tab prefix"), [`drive personal sheets format SHEET_ID 0 A1:C1 --body '{"textFormat":{"bold":true}}'`])
98
+ .requiredOption("--body <json>", "supported CellFormat fields as JSON; values and formulas are refused", jsonObject)
99
+ .action(async (spreadsheet, id, range, args) => {
100
+ const { rows, columns, ...bounds } = cellRectangle(range);
101
+ if (rows * columns > 10000)
102
+ throw new CliError("validation_error", "format range is limited to 10000 cells");
103
+ return batch(spreadsheet, {
104
+ repeatCell: {
105
+ range: { sheetId: id, ...bounds },
106
+ cell: { userEnteredFormat: args.body },
107
+ fields: formatFields(args.body).join(","),
108
+ },
109
+ });
110
+ });
111
+ };
112
+ //# sourceMappingURL=sheets-structure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sheets-structure.js","sourceRoot":"","sources":["../../src/commands/sheets-structure.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { type Command } from "commander";
2
+ import type { RemoteCommands } from "./remote.js";
3
+ export declare const installSheetsCommands: (program: Command, { call, output }: RemoteCommands) => void;
4
+ //# sourceMappingURL=sheets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sheets.d.ts","sourceRoot":"","sources":["../../src/commands/sheets.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,WAAW,CAAA;AAIhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AA2DjD,eAAO,MAAM,qBAAqB,YAAa,OAAO,oBAAoB,cAAc,SAwGvF,CAAA"}
@@ -0,0 +1,102 @@
1
+ import { CliError } from "@wirecat/cli-base";
2
+ import { annotate } from "@wirecat/cli-base/commands";
3
+ import { apiPlainJson, itemOf, parseApiJson } from "@wirecat/cli-core/cli";
4
+ import { Option } from "commander";
5
+ import { fileId } from "../config.js";
6
+ import { examples, GOOGLE_READ, GOOGLE_WRITE } from "../registry.js";
7
+ import { namedRectangle } from "../sheets-input.js";
8
+ import { installSheetsStructureCommands } from "./sheets-structure.js";
9
+ const values = (text) => {
10
+ const parsed = parseApiJson(text);
11
+ const native = JSON.parse(text);
12
+ if (Array.isArray(native) &&
13
+ native.some((row) => Array.isArray(row) &&
14
+ row.some((cell) => typeof cell === "number" &&
15
+ (!Number.isFinite(cell) || (Number.isInteger(cell) && !Number.isSafeInteger(cell))))))
16
+ throw new CliError("validation_error", "--values numbers must be finite and integer values must be safe; quote large identifiers as strings");
17
+ const result = apiPlainJson(parsed);
18
+ if (Array.isArray(native) &&
19
+ Array.isArray(result) &&
20
+ native.some((row, index) => Array.isArray(row) &&
21
+ row.some((cell, column) => typeof cell === "number" && typeof result[index]?.[column] !== "number")))
22
+ throw new CliError("validation_error", "--values numeric precision is unsafe; quote precise values as strings");
23
+ if (!Array.isArray(result) ||
24
+ !result.length ||
25
+ result.length > 10000 ||
26
+ result.some((row) => !Array.isArray(row) ||
27
+ !row.length ||
28
+ row.some((cell) => cell !== null &&
29
+ typeof cell !== "string" &&
30
+ typeof cell !== "boolean" &&
31
+ (typeof cell !== "number" || !Number.isFinite(cell)))))
32
+ throw new CliError("validation_error", "--values must be a nonempty JSON array of rows containing strings, numbers, booleans or null");
33
+ if (result.reduce((sum, row) => sum + row.length, 0) > 10000)
34
+ throw new CliError("validation_error", "--values is limited to 10000 cells per call");
35
+ return result;
36
+ };
37
+ export const installSheetsCommands = (program, { call, output }) => {
38
+ const group = annotate(program.command("sheets"), { effects: GOOGLE_READ }).description("read spreadsheet tabs and ranges, or change cells live in Google Sheets");
39
+ installSheetsStructureCommands(group, { call, output });
40
+ const sheetArg = "spreadsheet ID or Google Sheets URL";
41
+ examples(annotate(group.command("info"), { effects: GOOGLE_READ })
42
+ .description("list spreadsheet properties and tabs without downloading grid data")
43
+ .argument("<spreadsheet>", sheetArg), ["drive personal sheets info SHEET_ID"]).action(async (id) => output(itemOf(await call("sheets.spreadsheets.get", {
44
+ spreadsheetId: fileId(id),
45
+ fields: "spreadsheetId,spreadsheetUrl,properties,sheets.properties",
46
+ includeGridData: false,
47
+ }))));
48
+ examples(annotate(group.command("show"), { effects: GOOGLE_READ })
49
+ .description("read a live A1 range; choose formatted values, raw values or formulas")
50
+ .argument("<spreadsheet>", sheetArg)
51
+ .argument("<range>", "A1 range, such as Budget!A1:C4"), [
52
+ "drive personal sheets show SHEET_ID 'Budget!A1:C4'",
53
+ "drive personal sheets show SHEET_ID 'Budget!C1:C4' --render formula",
54
+ ])
55
+ .addOption(new Option("--render <mode>", "how Google renders cell values")
56
+ .choices(["formatted", "unformatted", "formula"])
57
+ .default("formatted"))
58
+ .action(async (id, range, args) => {
59
+ if (!range.trim())
60
+ throw new CliError("validation_error", "range must not be empty");
61
+ output(itemOf(await call("sheets.spreadsheets.values.get", {
62
+ spreadsheetId: fileId(id),
63
+ range,
64
+ majorDimension: "ROWS",
65
+ valueRenderOption: args.render.toUpperCase() === "FORMULA" ? "FORMULA" : `${args.render.toUpperCase()}_VALUE`,
66
+ })));
67
+ });
68
+ for (const name of ["update", "add"]) {
69
+ examples(annotate(group.command(name), { effects: GOOGLE_WRITE })
70
+ .description(name === "update"
71
+ ? "set cells within a finite A1 rectangle; literal values by default"
72
+ : "append rows after Google's detected table within a finite A1 range")
73
+ .argument("<spreadsheet>", sheetArg)
74
+ .argument("<range>", "tab and finite A1 rectangle, such as Budget!A1:C4"), [`drive personal sheets ${name} SHEET_ID 'Budget!A1:B2' --values '[["Item",10]]'`])
75
+ .requiredOption("--values <json>", "JSON rows; null skips a cell and an empty string clears its value", values)
76
+ .addOption(new Option("--input <mode>", "raw literals, or user-entered formulas/numbers using spreadsheet locale")
77
+ .choices(["raw", "user-entered"])
78
+ .default("raw"))
79
+ .action(async (id, range, args) => {
80
+ const bounds = namedRectangle(range);
81
+ if (args.values.some((row) => row.length > bounds.columns) ||
82
+ (name === "update" && args.values.length > bounds.rows))
83
+ throw new CliError("validation_error", "--values exceeds the selected range dimensions");
84
+ output(itemOf(await call(`sheets.spreadsheets.values.${name === "add" ? "append" : name}`, {
85
+ spreadsheetId: fileId(id),
86
+ range,
87
+ valueInputOption: args.input === "raw" ? "RAW" : "USER_ENTERED",
88
+ includeValuesInResponse: true,
89
+ responseValueRenderOption: "UNFORMATTED_VALUE",
90
+ ...(name === "add" ? { insertDataOption: "INSERT_ROWS" } : {}),
91
+ }, { majorDimension: "ROWS", values: args.values })));
92
+ });
93
+ }
94
+ examples(annotate(group.command("clear"), { effects: GOOGLE_WRITE })
95
+ .description("clear cell values in a finite A1 rectangle; formatting remains")
96
+ .argument("<spreadsheet>", sheetArg)
97
+ .argument("<range>", "tab and finite A1 rectangle, such as Budget!A1:C4"), ["drive personal sheets clear SHEET_ID 'Budget!A2:C4'"]).action(async (id, range) => {
98
+ namedRectangle(range);
99
+ output(itemOf(await call("sheets.spreadsheets.values.clear", { spreadsheetId: fileId(id), range }, {})));
100
+ });
101
+ };
102
+ //# sourceMappingURL=sheets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sheets.js","sourceRoot":"","sources":["../../src/commands/sheets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Command } from "commander";
2
+ import { type CommandContext } from "./context.js";
3
+ export declare const installSyncCommands: (program: Command, context: CommandContext) => void;
4
+ //# sourceMappingURL=sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAOxC,OAAO,EAAE,KAAK,cAAc,EAAY,MAAM,cAAc,CAAA;AAE5D,eAAO,MAAM,mBAAmB,YAAa,OAAO,WAAW,cAAc,SAmD5E,CAAA"}
@@ -0,0 +1,50 @@
1
+ import { CliError } from "@wirecat/cli-base";
2
+ import { annotate } from "@wirecat/cli-base/commands";
3
+ import { FETCH, itemOf, LOCAL_READ } from "@wirecat/cli-core/cli";
4
+ import { activeProfile } from "../config.js";
5
+ import { MAX_ENTRIES } from "../google.js";
6
+ import { skipJson } from "../model.js";
7
+ import { examples } from "../registry.js";
8
+ import { readState } from "../state.js";
9
+ import { sync } from "../sync.js";
10
+ import { positive } from "./context.js";
11
+ export const installSyncCommands = (program, context) => {
12
+ const { env, streams, selected, output, source, withIndex } = context;
13
+ examples(annotate(program.command("sync"), { effects: FETCH })
14
+ .summary("import what changed in the chosen folders, and finish an unfinished sync")
15
+ .description("import what changed in the chosen folders, and finish an unfinished sync; " +
16
+ `one sync reads at most ${MAX_ENTRIES} entries under the chosen folders, and as many changes`), ["drive personal sync", "drive personal sync --rescan --limit 500"])
17
+ .option("--limit <n>", "how many documents to read from Google in this run", positive, 200)
18
+ .option("--rescan", "read every chosen folder again instead of only what changed")
19
+ .option("--embed", "also index pending text for meaning search, with a model already downloaded")
20
+ .action(async (args) => {
21
+ const remote = activeProfile(env, selected()).roots.length ? await source() : undefined;
22
+ const result = await withIndex(async (index) => ({
23
+ ...(await sync(remote, index, env, selected(), args.limit, context.signal(), args.rescan)),
24
+ ...(args.embed ? { embeddings: await index.embed(600) } : {}),
25
+ }));
26
+ output(itemOf(result));
27
+ if (result.errors.length || result.pending)
28
+ streams.diagnostic(`${result.pending} source operations remain; run drive ${selected()} sync again\n`);
29
+ if (result.errors.length)
30
+ throw new CliError("provider_error", "sync completed partially; failed operations remain pending", {
31
+ reason: "sync.partial",
32
+ });
33
+ });
34
+ examples(annotate(program.command("status"), { effects: LOCAL_READ }).description("show the last sync, imported documents and pending work"), ["drive personal status"]).action(() => {
35
+ const name = selected();
36
+ const profile = activeProfile(env, name);
37
+ const state = readState(env, name, profile.principal);
38
+ output(itemOf({
39
+ profile: name,
40
+ selected_folders: profile.roots,
41
+ documents: Object.keys(state.documents).length,
42
+ pending: state.pending?.jobs.length ?? 0,
43
+ skipped: state.skipped.map(skipJson),
44
+ last_sync: state.lastSync ?? null,
45
+ coverage: "Google Docs/Sheets, PDF/DOCX/XLSX and Markdown/TXT/CSV/TSV; native export layout, tab fidelity and assets are not verified",
46
+ remote_checked: false,
47
+ }));
48
+ });
49
+ };
50
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACjC,OAAO,EAAuB,QAAQ,EAAE,MAAM,cAAc,CAAA;AAE5D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAgB,EAAE,OAAuB,EAAE,EAAE;IAC/E,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;IACrE,QAAQ,CACN,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;SAClD,OAAO,CAAC,0EAA0E,CAAC;SACnF,WAAW,CACV,4EAA4E;QAC1E,0BAA0B,WAAW,wDAAwD,CAChG,EACH,CAAC,qBAAqB,EAAE,0CAA0C,CAAC,CACpE;SACE,MAAM,CAAC,aAAa,EAAE,oDAAoD,EAAE,QAAQ,EAAE,GAAG,CAAC;SAC1F,MAAM,CAAC,UAAU,EAAE,6DAA6D,CAAC;SACjF,MAAM,CAAC,SAAS,EAAE,6EAA6E,CAAC;SAChG,MAAM,CAAC,KAAK,EAAE,IAA0D,EAAE,EAAE;QAC3E,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;QACvF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAC/C,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1F,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9D,CAAC,CAAC,CAAA;QACH,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;QACtB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO;YACxC,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,OAAO,wCAAwC,QAAQ,EAAE,eAAe,CAAC,CAAA;QACxG,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM;YACtB,MAAM,IAAI,QAAQ,CAAC,gBAAgB,EAAE,4DAA4D,EAAE;gBACjG,MAAM,EAAE,cAAc;aACvB,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IACJ,QAAQ,CACN,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,WAAW,CACtE,yDAAyD,CAC1D,EACD,CAAC,uBAAuB,CAAC,CAC1B,CAAC,MAAM,CAAC,GAAG,EAAE;QACZ,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAA;QACvB,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACxC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;QACrD,MAAM,CACJ,MAAM,CAAC;YACL,OAAO,EAAE,IAAI;YACb,gBAAgB,EAAE,OAAO,CAAC,KAAK;YAC/B,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM;YAC9C,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC;YACxC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;YACpC,SAAS,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;YACjC,QAAQ,EACN,4HAA4H;YAC9H,cAAc,EAAE,KAAK;SACtB,CAAC,CACH,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"config-upgrade.d.ts","sourceRoot":"","sources":["../src/config-upgrade.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,aAAa,QAAS,OAAO,YAAY,GAAG,CAAC,MAAM,CAAC;;;CAgChE,CAAA"}
1
+ {"version":3,"file":"config-upgrade.d.ts","sourceRoot":"","sources":["../src/config-upgrade.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,aAAa,QAAS,OAAO,YAAY,GAAG,CAAC,MAAM,CAAC;;;CAwChE,CAAA"}
@@ -3,7 +3,7 @@ const record = (value) => value !== null && typeof value === "object" && !Array.
3
3
  // Core now validates current spellings only; Drive still upgrades its previously written files.
4
4
  export const upgradeConfig = (raw, settings) => {
5
5
  let changed = false;
6
- const rename = (value, names) => {
6
+ const rename = (value, names, where = "") => {
7
7
  if (!record(value))
8
8
  return value;
9
9
  const result = {};
@@ -12,25 +12,28 @@ export const upgradeConfig = (raw, settings) => {
12
12
  const target = names.has(snake) ? snake : key;
13
13
  if (target !== key) {
14
14
  if (Object.hasOwn(value, target) && JSON.stringify(value[target]) !== JSON.stringify(one))
15
- throw new CliError("configuration_error", "conflicting legacy settings");
15
+ throw new CliError("configuration_error", `${where}${key} is the old name of ${where}${target}, and both are set — keep only ${target}`);
16
16
  changed = true;
17
17
  }
18
18
  result[target] = one;
19
19
  }
20
20
  return result;
21
21
  };
22
- const scope = (value) => {
23
- const result = rename(value, settings);
22
+ const scope = (value, where) => {
23
+ const result = rename(value, settings, where);
24
24
  if (record(result) && record(result.models))
25
- result.models = Object.fromEntries(Object.entries(result.models).map(([purpose, model]) => [purpose, rename(model, new Set(["base_url"]))]));
25
+ result.models = Object.fromEntries(Object.entries(result.models).map(([purpose, model]) => [
26
+ purpose,
27
+ rename(model, new Set(["base_url"]), `${where}models.${purpose}.`),
28
+ ]));
26
29
  return result;
27
30
  };
28
31
  const config = rename(raw, new Set(["default_profile"]));
29
32
  if (record(config)) {
30
33
  if (Object.hasOwn(config, "defaults"))
31
- config.defaults = scope(config.defaults);
34
+ config.defaults = scope(config.defaults, "defaults.");
32
35
  if (record(config.profiles))
33
- config.profiles = Object.fromEntries(Object.entries(config.profiles).map(([name, value]) => [name, scope(value)]));
36
+ config.profiles = Object.fromEntries(Object.entries(config.profiles).map(([name, value]) => [name, scope(value, `profiles.${name}.`)]));
34
37
  }
35
38
  return { config, changed };
36
39
  };
@@ -1 +1 @@
1
- {"version":3,"file":"config-upgrade.js","sourceRoot":"","sources":["../src/config-upgrade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-upgrade.js","sourceRoot":"","sources":["../src/config-upgrade.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAU5B,eAAO,MAAM,aAAa,aAAsD,CAAA;AAEhF,eAAO,MAAM,SAAS,QAAS,MAAM,WAIpC,CAAA;AAQD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAIvB,CAAA;AACF,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,YAAY,CAAC,CAAA;AACvD,eAAO,MAAM,KAAK,QAAS,MAAM,CAAC,UAAU,sCAAiE,CAAA;AAC7G,eAAO,MAAM,UAAU,QAAS,MAAM,CAAC,UAAU,KAAG,MAmBnD,CAAA;AACD,eAAO,MAAM,WAAW,QAAS,MAAM,CAAC,UAAU,UAAU,MAAM,SAIjE,CAAA;AACD,eAAO,MAAM,WAAW,6BAAoB,CAAA;AAC5C,eAAO,MAAM,MAAM,UAAW,MAAM,KAAG,MAUtC,CAAA;AACD,eAAO,MAAM,aAAa,QAAS,MAAM,CAAC,UAAU,QAAQ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;CAOjE,CAAA;AACD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AACD,eAAO,MAAM,cAAc,UAAW,OAAO,KAAG,MAS/C,CAAA;AACD,eAAO,MAAM,SAAS,QAAS,MAAM,CAAC,UAAU,QAAQ,MAAM,KAAG,MACsC,CAAA;AACvG,eAAO,MAAM,aAAa,QAAS,MAAM,CAAC,UAAU,QAAQ,MAAM,KAAG,OACnB,CAAA;AAClD,eAAO,MAAM,WAAW,QAAS,MAAM,CAAC,UAAU,SAAS,MAAM,KAAG,gBA6BnE,CAAA"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAU5B,eAAO,MAAM,aAAa,aAAsD,CAAA;AAEhF,eAAO,MAAM,SAAS,QAAS,MAAM,WAIpC,CAAA;AAQD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAIvB,CAAA;AACF,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,YAAY,CAAC,CAAA;AACvD,eAAO,MAAM,KAAK,QAAS,MAAM,CAAC,UAAU,sCAAiE,CAAA;AA0B7G,eAAO,MAAM,UAAU,QAAS,MAAM,CAAC,UAAU,KAAG,MAwBnD,CAAA;AACD,eAAO,MAAM,WAAW,QAAS,MAAM,CAAC,UAAU,UAAU,MAAM,SAIjE,CAAA;AACD,eAAO,MAAM,WAAW,6BAAoB,CAAA;AAC5C,eAAO,MAAM,MAAM,UAAW,MAAM,KAAG,MAUtC,CAAA;AACD,eAAO,MAAM,aAAa,QAAS,MAAM,CAAC,UAAU,QAAQ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;CAOjE,CAAA;AACD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AACD,eAAO,MAAM,cAAc,UAAW,OAAO,KAAG,MAS/C,CAAA;AACD,eAAO,MAAM,SAAS,QAAS,MAAM,CAAC,UAAU,QAAQ,MAAM,KAAG,MACsC,CAAA;AACvG,eAAO,MAAM,aAAa,QAAS,MAAM,CAAC,UAAU,QAAQ,MAAM,KAAG,OACnB,CAAA;AAClD,eAAO,MAAM,WAAW,QAAS,MAAM,CAAC,UAAU,SAAS,MAAM,KAAG,gBA6BnE,CAAA"}
package/dist/config.js CHANGED
@@ -34,28 +34,65 @@ export const ConfigSchema = v.strictObject({
34
34
  default_profile: v.optional(v.string()),
35
35
  });
36
36
  export const paths = (env) => resolvePaths({ appName: "drive-cli", prefix: "DRIVE", env });
37
+ // Built from the key path and a fixed reason only: valibot's own messages quote the value.
38
+ const problem = (where, issue) => {
39
+ const key = v.getDotPath(issue);
40
+ if (key === null)
41
+ return `${where} has to be a JSON object`;
42
+ if (issue.expected === "never")
43
+ return `${where}: ${key} is not a known setting`;
44
+ if (issue.received === "undefined")
45
+ return `${where}: ${key} is missing`;
46
+ if (issue.path?.at(-1)?.origin === "key")
47
+ return `${where}: ${key} is not an allowed name`;
48
+ return `${where}: ${key} has the wrong type or is out of range`;
49
+ };
50
+ const UNEXPLAINED = "drive configuration is invalid; no configuration values were logged";
51
+ // The loader's message embeds valibot's issue messages, so the file is checked again here.
52
+ const explain = (path, schema) => {
53
+ let raw;
54
+ try {
55
+ raw = JSON.parse(readFileSync(path, "utf8"));
56
+ }
57
+ catch {
58
+ return new CliError("configuration_error", `${path} is not valid JSON`);
59
+ }
60
+ try {
61
+ const issue = v.safeParse(schema, raw).issues?.[0];
62
+ return new CliError("configuration_error", issue ? problem(path, issue) : UNEXPLAINED);
63
+ }
64
+ catch (error) {
65
+ return error instanceof CliError ? error : new CliError("configuration_error", UNEXPLAINED);
66
+ }
67
+ };
37
68
  export const readConfig = (env) => {
69
+ const path = join(paths(env).config, "config.json");
70
+ let changed = false;
71
+ const schema = v.pipe(v.unknown(), v.transform((raw) => {
72
+ const upgraded = upgradeConfig(raw, SETTING_NAMES);
73
+ changed = upgraded.changed;
74
+ return upgraded.config;
75
+ }), ConfigSchema);
76
+ let config;
77
+ try {
78
+ config = loadSnakeCaseConfig(path, schema, () => ({ profiles: {} }));
79
+ }
80
+ catch {
81
+ throw explain(path, schema);
82
+ }
38
83
  try {
39
- const path = join(paths(env).config, "config.json");
40
- let changed = false;
41
- const schema = v.pipe(v.unknown(), v.transform((raw) => {
42
- const upgraded = upgradeConfig(raw, SETTING_NAMES);
43
- changed = upgraded.changed;
44
- return upgraded.config;
45
- }), ConfigSchema);
46
- const config = loadSnakeCaseConfig(path, schema, () => ({ profiles: {} }));
47
84
  if (changed)
48
85
  writeSecurely(path, `${JSON.stringify(config, null, 2)}\n`, statSync(path).mode & 0o777);
49
- return config;
50
86
  }
51
87
  catch {
52
- throw new CliError("configuration_error", "drive configuration is invalid; no configuration values were logged");
88
+ throw new CliError("configuration_error", UNEXPLAINED);
53
89
  }
90
+ return config;
54
91
  };
55
92
  export const writeConfig = (env, config) => {
56
93
  const checked = v.safeParse(ConfigSchema, config);
57
94
  if (!checked.success)
58
- throw new CliError("configuration_error", "drive settings are invalid; no values were logged");
95
+ throw new CliError("configuration_error", problem("drive settings", checked.issues[0]));
59
96
  saveConfigFile(join(paths(env).config, "config.json"), checked.output);
60
97
  };
61
98
  export const profileName = usableProfileName;
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,mBAAmB,CAAA;AAGxD,eAAO,MAAM,WAAW,UAAW,OAAO,KAAG,QAkD5C,CAAA"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,mBAAmB,CAAA;AAGxD,eAAO,MAAM,WAAW,UAAW,OAAO,KAAG,QAuE5C,CAAA"}