@wirecat/drive-cli 0.2.0 → 0.3.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 (46) hide show
  1. package/README.md +5 -5
  2. package/dist/api-contract.js +1 -1
  3. package/dist/api-contract.js.map +1 -1
  4. package/dist/config.d.ts +5 -0
  5. package/dist/config.d.ts.map +1 -1
  6. package/dist/config.js +10 -0
  7. package/dist/config.js.map +1 -1
  8. package/dist/errors.js +1 -1
  9. package/dist/errors.js.map +1 -1
  10. package/dist/google-api.js +1 -1
  11. package/dist/google-api.js.map +1 -1
  12. package/dist/google.d.ts +1 -0
  13. package/dist/google.d.ts.map +1 -1
  14. package/dist/google.js +60 -6
  15. package/dist/google.js.map +1 -1
  16. package/dist/knowledge-commands.d.ts.map +1 -1
  17. package/dist/knowledge-commands.js +142 -109
  18. package/dist/knowledge-commands.js.map +1 -1
  19. package/dist/knowledge.d.ts +1 -1
  20. package/dist/knowledge.d.ts.map +1 -1
  21. package/dist/knowledge.js +1 -1
  22. package/dist/knowledge.js.map +1 -1
  23. package/dist/model.d.ts +12 -11
  24. package/dist/model.d.ts.map +1 -1
  25. package/dist/model.js +1 -0
  26. package/dist/model.js.map +1 -1
  27. package/dist/policy.d.ts.map +1 -1
  28. package/dist/policy.js +5 -1
  29. package/dist/policy.js.map +1 -1
  30. package/dist/program.d.ts.map +1 -1
  31. package/dist/program.js +108 -124
  32. package/dist/program.js.map +1 -1
  33. package/dist/registry.d.ts +37 -1
  34. package/dist/registry.d.ts.map +1 -1
  35. package/dist/registry.js +33 -2
  36. package/dist/registry.js.map +1 -1
  37. package/dist/remote-commands.d.ts.map +1 -1
  38. package/dist/remote-commands.js +87 -72
  39. package/dist/remote-commands.js.map +1 -1
  40. package/dist/state.d.ts.map +1 -1
  41. package/dist/state.js +10 -2
  42. package/dist/state.js.map +1 -1
  43. package/dist/sync.d.ts.map +1 -1
  44. package/dist/sync.js +38 -16
  45. package/dist/sync.js.map +1 -1
  46. package/package.json +7 -4
package/dist/registry.js CHANGED
@@ -1,6 +1,12 @@
1
- import { describeProgram } from "@wirecat/cli-base/commands";
1
+ import { CliError, EXIT_CODES, GENERIC_FAILURE } from "@wirecat/cli-base";
2
+ import { annotate, describeOptions, describeProgram, } from "@wirecat/cli-base/commands";
3
+ import { VERSION } from "./version.js";
2
4
  /** These commands do not select an account or load account configuration. */
3
- export const ACCOUNT_FREE_COMMANDS = new Set(["commands", "complete", "schema", "api methods"]);
5
+ export const ACCOUNT_FREE_COMMANDS = new Set(["commands", "complete", "api show", "api list"]);
6
+ /** Examples go into `commands --json` for agents and under the options in `--help` for people. */
7
+ export const examples = (command, lines) => annotate(command, { examples: lines }).addHelpText("after", `Examples:\n${lines.map((line) => ` ${line}`).join("\n")}\n`);
8
+ /** The major version of the JSON drive's commands print; raise it when a field is removed or renamed. */
9
+ export const CONTRACT = 0;
4
10
  /** Preserve shared registry paths/anchors while making executable usage show the account boundary. */
5
11
  export const describeDriveProgram = (program) => {
6
12
  const scoped = (info) => ({
@@ -12,4 +18,29 @@ export const describeDriveProgram = (program) => {
12
18
  });
13
19
  return describeProgram(program).map(scoped);
14
20
  };
21
+ /** cli-base's `commands --json` document, built here until drive runs on a cli-base that exports it. */
22
+ export const commandsDocument = (program, path = []) => {
23
+ const all = describeDriveProgram(program);
24
+ const inheritedOptions = [];
25
+ let available = all;
26
+ let found;
27
+ for (const word of path) {
28
+ if (found?.options.length)
29
+ inheritedOptions.push({ path: found.path, options: found.options });
30
+ found = available.find((command) => command.name === word);
31
+ if (!found)
32
+ throw new CliError("not_found", "command path was not found");
33
+ available = found.commands;
34
+ }
35
+ return {
36
+ cli: "drive",
37
+ version: VERSION,
38
+ contract: CONTRACT,
39
+ description: program.description(),
40
+ globalOptions: describeOptions(program),
41
+ ...(found ? { scope: found.path, inheritedOptions } : {}),
42
+ commands: found ? [found] : all,
43
+ exitCodes: { ok: 0, internal_error: GENERIC_FAILURE, ...EXIT_CODES },
44
+ };
45
+ };
15
46
  //# sourceMappingURL=registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAG9E,6EAA6E;AAC7E,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAA;AAE/F,sGAAsG;AACtG,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,OAAgB,EAAiB,EAAE;IACtE,MAAM,MAAM,GAAG,CAAC,IAAiB,EAAe,EAAE,CAAC,CAAC;QAClD,GAAG,IAAI;QACP,KAAK,EAAE,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnD,CAAC,CAAC,IAAI,CAAC,KAAK;YACZ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,kBAAkB,CAAC;QACrD,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;KACpC,CAAC,CAAA;IACF,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AAC7C,CAAC,CAAA"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACzE,OAAO,EACL,QAAQ,EAER,eAAe,EACf,eAAe,GAEhB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,6EAA6E;AAC7E,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAA;AAE9F,kGAAkG;AAClG,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,OAAgB,EAAE,KAAe,EAAW,EAAE,CACrE,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,WAAW,CAChD,OAAO,EACP,cAAc,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAC9D,CAAA;AAEH,yGAAyG;AACzG,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAA;AAEzB,sGAAsG;AACtG,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,OAAgB,EAAiB,EAAE;IACtE,MAAM,MAAM,GAAG,CAAC,IAAiB,EAAe,EAAE,CAAC,CAAC;QAClD,GAAG,IAAI;QACP,KAAK,EAAE,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnD,CAAC,CAAC,IAAI,CAAC,KAAK;YACZ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,kBAAkB,CAAC;QACrD,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;KACpC,CAAC,CAAA;IACF,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AAC7C,CAAC,CAAA;AAED,wGAAwG;AACxG,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAgB,EAAE,IAAI,GAAa,EAAE,EAAE,EAAE;IACxE,MAAM,GAAG,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAA;IACzC,MAAM,gBAAgB,GAAkE,EAAE,CAAA;IAC1F,IAAI,SAAS,GAA2B,GAAG,CAAA;IAC3C,IAAI,KAA8B,CAAA;IAClC,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,KAAK,EAAE,OAAO,CAAC,MAAM;YAAE,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAC9F,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;QAC1D,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,4BAA4B,CAAC,CAAA;QACzE,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAA;IAC5B,CAAC;IACD,OAAO;QACL,GAAG,EAAE,OAAO;QACZ,OAAO,EAAE,OAAO;QAChB,QAAQ,EAAE,QAAQ;QAClB,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE;QAClC,aAAa,EAAE,eAAe,CAAC,OAAO,CAAC;QACvC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG;QAC/B,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,UAAU,EAAE;KACrE,CAAA;AACH,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"remote-commands.d.ts","sourceRoot":"","sources":["../src/remote-commands.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKxC,eAAO,MAAM,UAAU,UAAW,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAKhE,CAAA;AACD,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACvG,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IAC/B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAA;CAC7C;AACD,eAAO,MAAM,qBAAqB,YAAa,OAAO,WAAW,cAAc,SAkO9E,CAAA"}
1
+ {"version":3,"file":"remote-commands.d.ts","sourceRoot":"","sources":["../src/remote-commands.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAOxC,eAAO,MAAM,UAAU,UAAW,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAKhE,CAAA;AACD,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACvG,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IAC/B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAA;CAC7C;AACD,eAAO,MAAM,qBAAqB,YAAa,OAAO,WAAW,cAAc,SAwR9E,CAAA"}
@@ -1,8 +1,10 @@
1
1
  import { CliError } from "@wirecat/cli-base";
2
2
  import { apiPlainJson, checkApiBody, checkApiParameter, generatedApiCommand, parseApiJson, readApiBody, } from "@wirecat/cli-messaging/cli";
3
- import { operations, schemas, validateRequest } from "./api-contract.js";
3
+ import { operationOf, operations, schemas, validateRequest } from "./api-contract.js";
4
4
  import { fileId } from "./config.js";
5
5
  import { apiMethod, apiMethods, validateApiParams } from "./google-api.js";
6
+ import { examples } from "./registry.js";
7
+ import { requestSchema } from "./schema.js";
6
8
  export const jsonObject = (value) => {
7
9
  const parsed = apiPlainJson(parseApiJson(value));
8
10
  if (!parsed || typeof parsed !== "object" || Array.isArray(parsed))
@@ -12,20 +14,29 @@ export const jsonObject = (value) => {
12
14
  export const installRemoteCommands = (program, helpers) => {
13
15
  const { call, output, positive } = helpers;
14
16
  const page = (command) => command
15
- .option("--limit <n>", "maximum items in this page", positive, 100)
16
- .option("--page-token <token>", "next page token returned by Google");
17
- const api = program.command("api").description("Discover and call the official Drive, Docs and Activity SDK methods");
18
- api
19
- .command("methods")
20
- .option("--service <name>", "drive, docs or driveactivity")
21
- .action((args) => output({ items: apiMethods().filter((m) => !args.service || m.name.startsWith(`${args.service}.`)) }));
22
- api
17
+ .option("--limit <n>", "how many items one page holds", positive, 100)
18
+ .option("--cursor <cursor>", "continue from the nextPageToken of the previous page");
19
+ const fileArgument = "file id or Google Drive URL";
20
+ const api = program.command("api").description("discover and call the official Drive, Docs and Activity API methods");
21
+ examples(api
22
+ .command("list")
23
+ .description("list the Google API methods drive can call")
24
+ .option("--service <name>", "only the methods of this service: drive, docs or driveactivity"), ["drive api list --service docs"]).action((args) => output({ items: apiMethods().filter((m) => !args.service || m.name.startsWith(`${args.service}.`)) }));
25
+ examples(api
26
+ .command("show")
27
+ .description("show one method's request schema and contract, without calling Google")
28
+ .argument("<method>", "Google method name, as api list prints it"), ["drive api show docs.documents.batchUpdate --json"]).action((method) => output({ operation: operationOf(method), requestSchema: requestSchema(method) }));
29
+ examples(api
23
30
  .command("call")
24
- .argument("<method>")
25
- .option("--params <json>", "JSON query/path parameters", jsonObject, {})
26
- .option("--body <json>", "JSON request body", jsonObject)
27
- .option("--allow-write", "explicitly permit a mutating generic method")
28
- .option("--allow-delete", "explicitly permit permanent deletion or emptying trash")
31
+ .description("call one Google API method by name with JSON parameters")
32
+ .argument("<method>", "Google method name, as api list prints it"), [
33
+ `drive personal api call drive.files.get --params '{"fileId":"FILE_ID"}'`,
34
+ `drive personal api call drive.files.update --params '{"fileId":"FILE_ID"}' --body '{"name":"New"}' --allow-write`,
35
+ ])
36
+ .option("--params <json>", "query and path parameters as a JSON object", jsonObject, {})
37
+ .option("--body <json>", "request body as a JSON object", jsonObject)
38
+ .option("--allow-write", "allow a method that changes Google data")
39
+ .option("--allow-delete", "allow a method that deletes for good or empties the trash")
29
40
  .action(async (name, args) => {
30
41
  const method = apiMethod(name);
31
42
  validateApiParams(args.params);
@@ -45,92 +56,91 @@ export const installRemoteCommands = (program, helpers) => {
45
56
  });
46
57
  for (const child of generated.commands)
47
58
  api.addCommand(child);
48
- const files = program
49
- .command("files")
50
- .description("Remote Google Drive files; results are not automatically imported");
51
- page(files.command("list"))
52
- .option("--query <q>", "Google Drive query syntax", "trashed = false")
53
- .option("--parent <folder>", "list immediate children of this folder")
59
+ const files = program.command("files").description("read and change files in Google Drive; nothing is imported");
60
+ page(examples(files.command("list").description("list files in Google Drive, one page at a time"), [
61
+ "drive personal files list --parent FOLDER_ID",
62
+ `drive personal files list --query "name contains 'plan'" --limit 20`,
63
+ ]))
64
+ .option("--query <q>", "only files that match this Google Drive query", "trashed = false")
65
+ .option("--parent <folder>", "only the files directly inside this folder id")
54
66
  .action(async (args) => output(await call("drive.files.list", {
55
67
  q: args.parent ? `'${fileId(args.parent)}' in parents and (${args.query})` : args.query,
56
68
  pageSize: args.limit,
57
- ...(args.pageToken ? { pageToken: args.pageToken } : {}),
69
+ ...(args.cursor ? { pageToken: args.cursor } : {}),
58
70
  supportsAllDrives: true,
59
71
  includeItemsFromAllDrives: true,
60
72
  fields: "nextPageToken,incompleteSearch,files(*)",
61
73
  })));
62
- files
63
- .command("get")
64
- .argument("<file>")
65
- .action(async (id) => output(await call("drive.files.get", { fileId: fileId(id), fields: "*", supportsAllDrives: true })));
66
- files
67
- .command("copy")
68
- .argument("<file>")
69
- .option("--name <name>")
70
- .option("--parent <folder>")
74
+ examples(files.command("get").description("show one file's Google Drive metadata").argument("<file>", fileArgument), [
75
+ "drive personal files get FILE_ID",
76
+ ]).action(async (id) => output(await call("drive.files.get", { fileId: fileId(id), fields: "*", supportsAllDrives: true })));
77
+ examples(files.command("copy").description("copy a file in Google Drive").argument("<file>", fileArgument), [
78
+ `drive personal files copy FILE_ID --name "Plan copy" --parent FOLDER_ID`,
79
+ ])
80
+ .option("--name <name>", "name of the copy; Google's default when omitted")
81
+ .option("--parent <folder>", "folder id to put the copy in")
71
82
  .action(async (id, args) => output(await call("drive.files.copy", { fileId: fileId(id), supportsAllDrives: true }, {
72
83
  ...(args.name ? { name: args.name } : {}),
73
84
  ...(args.parent ? { parents: [fileId(args.parent)] } : {}),
74
85
  })));
75
- files
76
- .command("move")
77
- .argument("<file>")
78
- .requiredOption("--to <folder>")
79
- .option("--from <folder>", "remove this previous parent explicitly")
86
+ examples(files.command("move").description("move a file to another Google Drive folder").argument("<file>", fileArgument), ["drive personal files move FILE_ID --parent NEW_FOLDER_ID --old-parent OLD_FOLDER_ID"])
87
+ .requiredOption("--parent <folder>", "folder id to move the file into")
88
+ .option("--old-parent <folder>", "folder id to take the file out of")
80
89
  .action(async (id, args) => output(await call("drive.files.update", {
81
90
  fileId: fileId(id),
82
- addParents: fileId(args.to),
83
- ...(args.from ? { removeParents: fileId(args.from) } : {}),
91
+ addParents: fileId(args.parent),
92
+ ...(args.oldParent ? { removeParents: fileId(args.oldParent) } : {}),
84
93
  supportsAllDrives: true,
85
94
  }, {})));
86
- files
87
- .command("update")
88
- .argument("<file>")
89
- .requiredOption("--body <json>", "Google File metadata patch", jsonObject)
95
+ examples(files.command("update").description("change a file's Google Drive metadata").argument("<file>", fileArgument), [`drive personal files update FILE_ID --body '{"name":"Renamed"}'`])
96
+ .requiredOption("--body <json>", "the metadata fields to change, as a JSON object", jsonObject)
90
97
  .action(async (id, args) => output(await call("drive.files.update", { fileId: fileId(id), supportsAllDrives: true }, args.body)));
91
98
  for (const name of ["trash", "restore"])
92
- files
99
+ examples(files
93
100
  .command(name)
94
- .argument("<file>")
95
- .action(async (id) => output(await call("drive.files.update", { fileId: fileId(id), supportsAllDrives: true }, { trashed: name === "trash" })));
96
- files
97
- .command("mkdir")
98
- .argument("<name>")
99
- .option("--parent <folder>")
101
+ .description(name === "trash" ? "move a file to the Google Drive trash" : "take a file out of the trash")
102
+ .argument("<file>", fileArgument), [`drive personal files ${name} FILE_ID`]).action(async (id) => output(await call("drive.files.update", { fileId: fileId(id), supportsAllDrives: true }, { trashed: name === "trash" })));
103
+ examples(files.command("mkdir").description("create an empty folder in Google Drive").argument("<name>", "folder name"), ["drive personal files mkdir Reports --parent FOLDER_ID"])
104
+ .option("--parent <folder>", "folder id to create it in; My Drive when omitted")
100
105
  .action(async (name, args) => output(await call("drive.files.create", { supportsAllDrives: true }, {
101
106
  name,
102
107
  mimeType: "application/vnd.google-apps.folder",
103
108
  ...(args.parent ? { parents: [fileId(args.parent)] } : {}),
104
109
  })));
105
110
  const documents = program.commands.find((command) => command.name() === "documents");
106
- documents
111
+ const documentArgument = "document id or Google Docs URL";
112
+ examples(documents
107
113
  .command("get")
108
- .argument("<document>")
109
- .description("Live Docs JSON with every tab")
110
- .action(async (id) => output(await call("docs.documents.get", { documentId: fileId(id), includeTabsContent: true })));
111
- documents
112
- .command("create")
113
- .requiredOption("--title <title>")
114
+ .argument("<document>", documentArgument)
115
+ .description("read a document live from Google Docs, as JSON with every tab"), ["drive personal documents get DOC_ID --json"]).action(async (id) => output(await call("docs.documents.get", { documentId: fileId(id), includeTabsContent: true })));
116
+ examples(documents.command("create").description("create an empty Google Doc"), [
117
+ `drive personal documents create --title "Meeting notes"`,
118
+ ])
119
+ .requiredOption("--title <title>", "title of the new document")
114
120
  .action(async (args) => output(await call("docs.documents.create", {}, { title: args.title })));
115
- documents
121
+ examples(documents
116
122
  .command("update")
117
- .argument("<document>")
118
- .requiredOption("--body <json>", "Docs batchUpdate body, including requests and optional writeControl", jsonObject)
123
+ .description("change a Google Doc with a Docs batchUpdate request")
124
+ .argument("<document>", documentArgument), [`drive personal documents update DOC_ID --body '{"requests":[]}'`])
125
+ .requiredOption("--body <json>", "Docs batchUpdate body: requests and an optional writeControl", jsonObject)
119
126
  .action(async (id, args) => output(await call("docs.documents.batchUpdate", { documentId: fileId(id) }, args.body)));
120
- page(documents.command("history").argument("<document>"))
121
- .option("--activity", "read actor/activity events instead of revisions; requires session start --activity")
127
+ page(examples(documents
128
+ .command("history")
129
+ .description("list a document's revisions, or who did what with --activity")
130
+ .argument("<document>", documentArgument), ["drive personal documents history DOC_ID", "drive personal documents history DOC_ID --activity"]))
131
+ .option("--activity", "list activity events instead of revisions; needs session start --activity")
122
132
  .action(async (id, args) => {
123
133
  const file = fileId(id);
124
134
  const data = args.activity
125
135
  ? await call("driveactivity.activity.query", {}, {
126
136
  itemName: `items/${file}`,
127
137
  pageSize: args.limit,
128
- ...(args.pageToken ? { pageToken: args.pageToken } : {}),
138
+ ...(args.cursor ? { pageToken: args.cursor } : {}),
129
139
  })
130
140
  : await call("drive.revisions.list", {
131
141
  fileId: file,
132
142
  pageSize: args.limit,
133
- ...(args.pageToken ? { pageToken: args.pageToken } : {}),
143
+ ...(args.cursor ? { pageToken: args.cursor } : {}),
134
144
  fields: "nextPageToken,revisions(id,mimeType,modifiedTime,lastModifyingUser(permissionId,displayName,emailAddress),size)",
135
145
  });
136
146
  output({
@@ -141,28 +151,33 @@ export const installRemoteCommands = (program, helpers) => {
141
151
  });
142
152
  });
143
153
  for (const resource of ["comments", "permissions", "revisions"]) {
144
- const group = program.command(resource).description(`Remote file ${resource}; pagination tokens are returned`);
145
- page(group.command("list").argument("<file>")).action(async (id, args) => output(await call(`drive.${resource}.list`, {
154
+ const one = resource.slice(0, -1);
155
+ const group = program.command(resource).description(`read the ${resource} of a file in Google Drive`);
156
+ page(examples(group.command("list").description(`list a file's ${resource}`).argument("<file>", fileArgument), [
157
+ `drive personal ${resource} list FILE_ID`,
158
+ ])).action(async (id, args) => output(await call(`drive.${resource}.list`, {
146
159
  fileId: fileId(id),
147
160
  pageSize: args.limit,
148
- ...(args.pageToken ? { pageToken: args.pageToken } : {}),
161
+ ...(args.cursor ? { pageToken: args.cursor } : {}),
149
162
  fields: "*",
150
163
  ...(resource === "permissions" ? { supportsAllDrives: true } : {}),
151
164
  })));
152
- group
165
+ examples(group
153
166
  .command("get")
154
- .argument("<file>")
155
- .argument("<id>")
156
- .action(async (file, id) => output(await call(`drive.${resource}.get`, {
167
+ .description(`show one ${one} of a file`)
168
+ .argument("<file>", fileArgument)
169
+ .argument(`<${one}-id>`, `${one} id, as ${resource} list prints it`), [`drive personal ${resource} get FILE_ID ${one.toUpperCase()}_ID`]).action(async (file, id) => output(await call(`drive.${resource}.get`, {
157
170
  fileId: fileId(file),
158
- [`${resource.slice(0, -1)}Id`]: id,
171
+ [`${one}Id`]: id,
159
172
  fields: "*",
160
173
  ...(resource === "permissions" ? { supportsAllDrives: true } : {}),
161
174
  })));
162
175
  }
163
- page(program.command("shared-drives").description("List accessible Google Shared Drives")).action(async (args) => output(await call("drive.drives.list", {
176
+ page(examples(program.command("shared-drives").description("list the shared drives this account can open"), [
177
+ "drive personal shared-drives",
178
+ ])).action(async (args) => output(await call("drive.drives.list", {
164
179
  pageSize: args.limit,
165
- ...(args.pageToken ? { pageToken: args.pageToken } : {}),
180
+ ...(args.cursor ? { pageToken: args.cursor } : {}),
166
181
  fields: "*",
167
182
  })));
168
183
  };
@@ -1 +1 @@
1
- {"version":3,"file":"remote-commands.js","sourceRoot":"","sources":["../src/remote-commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote-commands.js","sourceRoot":"","sources":["../src/remote-commands.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAwC5D,eAAO,MAAM,UAAU,QAAS,MAAM,CAAC,UAAU,QAAQ,MAAM,WACR,CAAA;AACvD,eAAO,MAAM,SAAS,QAAS,MAAM,CAAC,UAAU,QAAQ,MAAM,WAA8C,CAAA;AAC5G,eAAO,MAAM,SAAS,QAAS,MAAM,CAAC,UAAU,QAAQ,MAAM,aAAa,MAAM,KAAG,SAanF,CAAA;AACD,eAAO,MAAM,SAAS,QAAS,MAAM,CAAC,UAAU,QAAQ,MAAM,SAAS,SAAS,KAAG,IAElF,CAAA;AACD,eAAO,MAAM,gBAAgB,QAAS,MAAM,CAAC,UAAU,QAAQ,MAAM,KAAG,IAEvE,CAAA;AACD,eAAO,MAAM,YAAY,QAAS,MAAM,CAAC,UAAU,QAAQ,MAAM,MAAM,MAAM,WACb,CAAA;AAChE,eAAO,MAAM,YAAY,QAAS,MAAM,CAAC,UAAU,QAAQ,MAAM,WAAW,eAAe,SAI1F,CAAA;AACD,eAAO,MAAM,cAAc,QAAS,MAAM,CAAC,UAAU,QAAQ,MAAM,MAAM,MAAM,SAS9E,CAAA;AACD,eAAO,MAAM,YAAY,QAAS,MAAM,CAAC,UAAU,QAAQ,MAAM,MAAM,MAAM,KAAG,eAM/E,CAAA"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAgD5D,eAAO,MAAM,UAAU,QAAS,MAAM,CAAC,UAAU,QAAQ,MAAM,WACR,CAAA;AACvD,eAAO,MAAM,SAAS,QAAS,MAAM,CAAC,UAAU,QAAQ,MAAM,WAA8C,CAAA;AAC5G,eAAO,MAAM,SAAS,QAAS,MAAM,CAAC,UAAU,QAAQ,MAAM,aAAa,MAAM,KAAG,SAanF,CAAA;AACD,eAAO,MAAM,SAAS,QAAS,MAAM,CAAC,UAAU,QAAQ,MAAM,SAAS,SAAS,KAAG,IAElF,CAAA;AACD,eAAO,MAAM,gBAAgB,QAAS,MAAM,CAAC,UAAU,QAAQ,MAAM,KAAG,IAEvE,CAAA;AACD,eAAO,MAAM,YAAY,QAAS,MAAM,CAAC,UAAU,QAAQ,MAAM,MAAM,MAAM,WACb,CAAA;AAChE,eAAO,MAAM,YAAY,QAAS,MAAM,CAAC,UAAU,QAAQ,MAAM,WAAW,eAAe,SAI1F,CAAA;AACD,eAAO,MAAM,cAAc,QAAS,MAAM,CAAC,UAAU,QAAQ,MAAM,MAAM,MAAM,SAS9E,CAAA;AACD,eAAO,MAAM,YAAY,QAAS,MAAM,CAAC,UAAU,QAAQ,MAAM,MAAM,MAAM,KAAG,eAM/E,CAAA"}
package/dist/state.js CHANGED
@@ -15,12 +15,20 @@ const File = v.object({
15
15
  url: v.string(),
16
16
  trashed: v.boolean(),
17
17
  canDownload: v.boolean(),
18
+ size: v.optional(v.number()),
18
19
  createdAt: v.optional(v.string()),
19
20
  description: v.optional(v.string()),
20
21
  driveId: v.optional(v.string()),
21
22
  owners: v.optional(v.array(User)),
22
23
  lastModifiedBy: v.optional(User),
23
24
  });
25
+ const Skip = v.object({
26
+ id: ID,
27
+ reason: v.string(),
28
+ file: v.optional(File),
29
+ textLimit: v.optional(v.number()),
30
+ storeRefusedIn: v.optional(v.string()),
31
+ });
24
32
  const State = v.object({
25
33
  version: v.literal(1),
26
34
  principal: v.string(),
@@ -28,14 +36,14 @@ const State = v.object({
28
36
  cursor: v.optional(v.string()),
29
37
  folders: v.record(ID, File),
30
38
  documents: v.record(ID, v.object({ metadata: File, hash: v.string(), reference: v.string(), tabs: v.number() })),
31
- skipped: v.array(v.object({ id: ID, reason: v.string(), file: v.optional(File) })),
39
+ skipped: v.array(Skip),
32
40
  lastSync: v.optional(v.string()),
33
41
  pending: v.optional(v.object({
34
42
  cursor: v.string(),
35
43
  scope: v.string(),
36
44
  folders: v.record(ID, File),
37
45
  jobs: v.array(v.object({ id: ID, kind: v.picklist(["save", "remove"]), file: v.optional(File) })),
38
- skipped: v.array(v.object({ id: ID, reason: v.string(), file: v.optional(File) })),
46
+ skipped: v.array(Skip),
39
47
  })),
40
48
  });
41
49
  export const profileDir = (env, name) => join(paths(env).state, "profiles", profileName(name));
package/dist/state.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,YAAY,EAEjB,KAAK,YAAY,EAGlB,MAAM,YAAY,CAAA;AASnB,eAAO,MAAM,MAAM,SACX,YAAY,SACX,MAAM,EAAE,WACN,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,yBAEpC,OASF,CAAA;AAkID,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACzC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACvD,QAAQ,EAAE,MAAM,CAAA;CACjB;AACD,eAAO,MAAM,IAAI,WACP,YAAY,GAAG,SAAS,SACzB,aAAa,OACf,MAAM,CAAC,UAAU,QAChB,MAAM,OACP,MAAM,WACF,WAAW,uBAEnB,OAAO,CAAC,UAAU,CAuGpB,CAAA"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,YAAY,EAEjB,KAAK,YAAY,EAIlB,MAAM,YAAY,CAAA;AAqBnB,eAAO,MAAM,MAAM,SACX,YAAY,SACX,MAAM,EAAE,WACN,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,yBAEpC,OASF,CAAA;AAqID,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACzC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACvD,QAAQ,EAAE,MAAM,CAAA;CACjB;AACD,eAAO,MAAM,IAAI,WACP,YAAY,GAAG,SAAS,SACzB,aAAa,OACf,MAAM,CAAC,UAAU,QAChB,MAAM,OACP,MAAM,WACF,WAAW,uBAEnB,OAAO,CAAC,UAAU,CAgHpB,CAAA"}
package/dist/sync.js CHANGED
@@ -1,14 +1,24 @@
1
1
  import { createHash } from "node:crypto";
2
- import { CliError } from "@wirecat/cli-base";
3
- import { activeProfile } from "./config.js";
2
+ import { CliError, isCliError } from "@wirecat/cli-base";
3
+ import { activeProfile, textLimit } from "./config.js";
4
4
  import { googleError } from "./errors.js";
5
5
  import { supported } from "./google.js";
6
6
  import { FOLDER, } from "./model.js";
7
7
  import { lockProfile } from "./profile-lock.js";
8
8
  import { readState, removeSnapshot, saveSnapshot, saveState } from "./state.js";
9
+ import { VERSION } from "./version.js";
9
10
  const scopeHash = (roots) => createHash("sha256")
10
11
  .update(JSON.stringify([...roots].sort()))
11
12
  .digest("hex");
13
+ const skipReason = (file) => !file.canDownload ? "downloads restricted" : supported(file) ? undefined : `unsupported type: ${file.mime}`;
14
+ // Skips decided by type are retried once a newer version reads the type; length skips once the limit is raised.
15
+ const retryable = (skip, limit) => skip.reason === "downloads restricted" ||
16
+ skip.reason.startsWith("unsupported type: ") ||
17
+ (skip.textLimit !== undefined && skip.textLimit < limit) ||
18
+ // The store's own bounds change only with the shared package drive pins.
19
+ (skip.storeRefusedIn !== undefined && skip.storeRefusedIn !== VERSION) ||
20
+ // 0.2.0 and earlier skipped text over 200 000 characters with this reason and no recorded limit.
21
+ (skip.reason.startsWith("document exceeds the ingestion bound") && limit > 200000);
12
22
  const hashText = (text) => createHash("sha256").update(text).digest("hex");
13
23
  export const within = (file, roots, folders, seen = new Set()) => {
14
24
  if (file.trashed)
@@ -23,7 +33,7 @@ export const within = (file, roots, folders, seen = new Set()) => {
23
33
  return folder ? within(folder, roots, folders, next) : roots.includes(id);
24
34
  });
25
35
  };
26
- const plan = async (source, state, roots, abandoned = []) => {
36
+ const plan = async (source, state, roots, limit, abandoned = []) => {
27
37
  const scope = scopeHash(roots);
28
38
  if (!roots.length)
29
39
  return {
@@ -129,15 +139,17 @@ const plan = async (source, state, roots, abandoned = []) => {
129
139
  if (!within(file, roots, folders))
130
140
  continue;
131
141
  const previousSkip = state.skipped.find((item) => item.id === id);
132
- if (previousSkip && !changed.has(id) && !initial) {
142
+ const reason = skipReason(file);
143
+ const retry = previousSkip && !reason && retryable(previousSkip, limit);
144
+ if (previousSkip && !changed.has(id) && !initial && !retry) {
133
145
  skipped.push({ ...previousSkip, file });
134
146
  continue;
135
147
  }
136
- if (!supported(file) || !file.canDownload) {
137
- skipped.push({ id, reason: !file.canDownload ? "downloads restricted" : `unsupported type: ${file.mime}`, file });
148
+ if (reason) {
149
+ skipped.push({ id, reason, file });
138
150
  continue;
139
151
  }
140
- if (changed.has(id)) {
152
+ if (changed.has(id) || retry) {
141
153
  const previous = state.documents[id]?.metadata;
142
154
  if (!previous ||
143
155
  previous.version !== file.version ||
@@ -176,6 +188,7 @@ export const sync = async (source, index, env, name, max, signal, rescan = false
176
188
  if (profile.roots.length && (!source || (await source.identity()) !== profile.principal))
177
189
  throw new CliError("authentication_error", "signed-in Google account does not match this profile");
178
190
  const state = readState(env, name, profile.principal);
191
+ const limit = textLimit(env, name);
179
192
  const currentScope = scopeHash(profile.roots);
180
193
  const abandoned = state.pending && (state.pending.scope !== currentScope || rescan) ? state.pending.jobs.map((job) => job.id) : [];
181
194
  if (state.pending?.scope !== currentScope || rescan)
@@ -183,7 +196,7 @@ export const sync = async (source, index, env, name, max, signal, rescan = false
183
196
  if (rescan)
184
197
  delete state.cursor;
185
198
  if (!state.pending) {
186
- state.pending = await plan(source, state, profile.roots, abandoned);
199
+ state.pending = await plan(source, state, profile.roots, limit, abandoned);
187
200
  state.skipped = state.pending.skipped;
188
201
  saveState(env, name, state);
189
202
  }
@@ -203,11 +216,8 @@ export const sync = async (source, index, env, name, max, signal, rescan = false
203
216
  delete state.documents[job.id];
204
217
  result.removed++;
205
218
  }
206
- else if (job.file && (!supported(job.file) || !job.file.canDownload)) {
207
- const skipped = {
208
- id: job.id,
209
- reason: !job.file.canDownload ? "downloads restricted" : `unsupported type: ${job.file.mime}`,
210
- };
219
+ else if (job.file && skipReason(job.file)) {
220
+ const skipped = { id: job.id, reason: skipReason(job.file) };
211
221
  if (state.documents[job.id]) {
212
222
  await index.remove(profile.principal, job.id);
213
223
  removeSnapshot(env, name, job.id);
@@ -219,7 +229,7 @@ export const sync = async (source, index, env, name, max, signal, rescan = false
219
229
  else {
220
230
  if (!source)
221
231
  throw new CliError("configuration_error", "a pending save requires Google sign-in");
222
- const content = await source.content(job.id);
232
+ const content = await source.content(job.id, limit);
223
233
  if (!within(content.metadata, profile.roots, pending.folders)) {
224
234
  await index.remove(profile.principal, job.id);
225
235
  removeSnapshot(env, name, job.id);
@@ -229,7 +239,13 @@ export const sync = async (source, index, env, name, max, signal, rescan = false
229
239
  else {
230
240
  const hash = hashText(content.text);
231
241
  const previous = state.documents[job.id];
232
- const reference = await index.save(profile.principal, content, hash);
242
+ const reference = await index.save(profile.principal, content, hash).catch((error) => {
243
+ if (!isCliError(error) || error.code !== "validation_error")
244
+ throw error;
245
+ throw new CliError("validation_error", `the local store refused this text: ${error.message}`, {
246
+ storeRefusedIn: VERSION,
247
+ });
248
+ });
233
249
  saveSnapshot(env, name, content);
234
250
  state.documents[job.id] = { metadata: content.metadata, hash, reference, tabs: content.tabs.length };
235
251
  if (previous?.hash === hash)
@@ -249,7 +265,13 @@ export const sync = async (source, index, env, name, max, signal, rescan = false
249
265
  await index.remove(profile.principal, job.id);
250
266
  removeSnapshot(env, name, job.id);
251
267
  delete state.documents[job.id];
252
- const skipped = { id: job.id, reason: safe.message, ...(job.file ? { file: job.file } : {}) };
268
+ const skipped = {
269
+ id: job.id,
270
+ reason: safe.message,
271
+ ...(job.file ? { file: job.file } : {}),
272
+ ...(safe.details.textLimit ? { textLimit: limit } : {}),
273
+ ...(safe.details.storeRefusedIn ? { storeRefusedIn: VERSION } : {}),
274
+ };
253
275
  state.skipped = state.skipped.filter((item) => item.id !== job.id);
254
276
  state.skipped.push(skipped);
255
277
  result.skipped.push({ id: skipped.id, reason: skipped.reason });