@wirecat/zoom-cli 0.21.1 → 0.21.3
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/api.d.ts +1 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +18 -7
- package/dist/api.js.map +1 -1
- package/dist/bin/main.d.ts +2 -0
- package/dist/bin/main.d.ts.map +1 -0
- package/dist/bin/main.js +138 -0
- package/dist/bin/main.js.map +1 -0
- package/dist/bin/zm.js +4 -126
- package/dist/bin/zm.js.map +1 -1
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +2 -0
- package/dist/commands.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +12 -4
- package/dist/config.js.map +1 -1
- package/dist/execution.d.ts.map +1 -1
- package/dist/execution.js +3 -2
- package/dist/execution.js.map +1 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +17 -1
- package/dist/program.js.map +1 -1
- package/dist/recording-archive.d.ts.map +1 -1
- package/dist/recording-archive.js +15 -22
- package/dist/recording-archive.js.map +1 -1
- package/dist/recording-partial-store.d.ts +7 -18
- package/dist/recording-partial-store.d.ts.map +1 -1
- package/dist/recording-partial-store.js +19 -213
- package/dist/recording-partial-store.js.map +1 -1
- package/dist/recording-promotion-store.d.ts +3 -2
- package/dist/recording-promotion-store.d.ts.map +1 -1
- package/dist/recording-promotion-store.js +53 -82
- package/dist/recording-promotion-store.js.map +1 -1
- package/dist/run-log.d.ts +17 -0
- package/dist/run-log.d.ts.map +1 -0
- package/dist/run-log.js +50 -0
- package/dist/run-log.js.map +1 -0
- package/dist/tokens.d.ts +5 -1
- package/dist/tokens.d.ts.map +1 -1
- package/dist/tokens.js +33 -4
- package/dist/tokens.js.map +1 -1
- package/package.json +3 -3
- package/skills/zoom-cli/SKILL.md +4 -2
package/dist/tokens.js
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
import { CliError } from "@wirecat/cli-base";
|
|
1
|
+
import { CliError, isCliError } from "@wirecat/cli-base";
|
|
2
2
|
import { checkCancelled, object } from "./errors.js";
|
|
3
|
+
/** Keys a token record carries beyond cli-base's own; names only, nothing from the token itself. */
|
|
4
|
+
export const TOKEN_LOG_ALLOW = ["rotated", "saved", "pid"];
|
|
5
|
+
export const TOKEN_LOG_EVENT = "zoom.token.exchange";
|
|
6
|
+
// The command deadline aborts with a "timeout" CliError and Ctrl-C with "cancelled"; without a
|
|
7
|
+
// parent abort, only the request's own 30 s limit can have fired.
|
|
8
|
+
const abortReason = (parent) => !parent?.aborted ? "timeout" : isCliError(parent.reason) ? parent.reason.code : "cancelled";
|
|
3
9
|
export class TokenManager {
|
|
4
10
|
options;
|
|
5
11
|
refreshState = new Map();
|
|
@@ -18,6 +24,7 @@ export class TokenManager {
|
|
|
18
24
|
service: parent.service,
|
|
19
25
|
fetch: fetcher,
|
|
20
26
|
now: parent.now,
|
|
27
|
+
log: parent.log,
|
|
21
28
|
signal: signal && parent.signal ? AbortSignal.any([signal, parent.signal]) : (signal ?? parent.signal),
|
|
22
29
|
});
|
|
23
30
|
scoped.refreshState = this.refreshState;
|
|
@@ -68,6 +75,14 @@ export class TokenManager {
|
|
|
68
75
|
const signal = this.options.signal
|
|
69
76
|
? AbortSignal.any([this.options.signal, AbortSignal.timeout(30000)])
|
|
70
77
|
: AbortSignal.timeout(30000);
|
|
78
|
+
const parent = this.options.signal;
|
|
79
|
+
const record = (level, fields) => this.options.log?.[level]({
|
|
80
|
+
event: TOKEN_LOG_EVENT,
|
|
81
|
+
operation: params.grant_type ?? "unknown",
|
|
82
|
+
pid: process.pid,
|
|
83
|
+
...(signal.aborted ? { reason: abortReason(parent) } : {}),
|
|
84
|
+
...fields,
|
|
85
|
+
});
|
|
71
86
|
let response;
|
|
72
87
|
try {
|
|
73
88
|
response = await this.options.fetch("https://zoom.us/oauth/token", {
|
|
@@ -79,15 +94,19 @@ export class TokenManager {
|
|
|
79
94
|
});
|
|
80
95
|
}
|
|
81
96
|
catch {
|
|
97
|
+
record("warn", { outcome: "no_response" });
|
|
82
98
|
throw new CliError("outcome_unknown", "Zoom token exchange did not finish; run zm session start again before retrying");
|
|
83
99
|
}
|
|
84
|
-
if (!response.ok)
|
|
100
|
+
if (!response.ok) {
|
|
101
|
+
record("warn", { outcome: "rejected", status: response.status });
|
|
85
102
|
throw new CliError("authentication_error", `Zoom token request failed (HTTP ${response.status}); run zm session start again`);
|
|
103
|
+
}
|
|
86
104
|
let body;
|
|
87
105
|
try {
|
|
88
106
|
body = object(await response.json());
|
|
89
107
|
}
|
|
90
108
|
catch {
|
|
109
|
+
record("error", { outcome: "unreadable_response", status: response.status });
|
|
91
110
|
throw new CliError("outcome_unknown", "Zoom returned an invalid token response; run zm session start again before retrying");
|
|
92
111
|
}
|
|
93
112
|
const refreshToken = typeof body.refresh_token === "string" ? body.refresh_token : previous?.refreshToken;
|
|
@@ -99,15 +118,25 @@ export class TokenManager {
|
|
|
99
118
|
body.expires_in <= 0 ||
|
|
100
119
|
!Number.isFinite((this.options.now?.() ?? Date.now()) + body.expires_in * 1000) ||
|
|
101
120
|
(body.scope !== undefined && typeof body.scope !== "string") ||
|
|
102
|
-
(body.refresh_token !== undefined && typeof body.refresh_token !== "string"))
|
|
121
|
+
(body.refresh_token !== undefined && typeof body.refresh_token !== "string")) {
|
|
122
|
+
record("error", { outcome: "invalid_response", status: response.status });
|
|
103
123
|
throw new CliError("outcome_unknown", "Zoom returned an invalid token response; run zm session start again before retrying");
|
|
124
|
+
}
|
|
125
|
+
const rotated = previous ? { rotated: refreshToken !== previous.refreshToken } : {};
|
|
104
126
|
const tokens = {
|
|
105
127
|
accessToken: body.access_token,
|
|
106
128
|
refreshToken,
|
|
107
129
|
expiresAt: (this.options.now?.() ?? Date.now()) + body.expires_in * 1000,
|
|
108
130
|
scopes: typeof body.scope === "string" ? body.scope.split(/\s+/).filter(Boolean) : (previous?.scopes ?? []),
|
|
109
131
|
};
|
|
110
|
-
|
|
132
|
+
try {
|
|
133
|
+
this.save(tokens, clientId);
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
record("error", { outcome: "save_failed", status: response.status, ...rotated, saved: false });
|
|
137
|
+
throw error;
|
|
138
|
+
}
|
|
139
|
+
record("info", { outcome: "saved", status: response.status, ...rotated, saved: true });
|
|
111
140
|
return tokens;
|
|
112
141
|
}
|
|
113
142
|
async tokens() {
|
package/dist/tokens.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wirecat/zoom-cli",
|
|
3
|
-
"version": "0.21.
|
|
3
|
+
"version": "0.21.3",
|
|
4
4
|
"description": "Zoom cloud recording archives, persistent transcripts and meeting tools",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -53,8 +53,8 @@
|
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
55
|
"@modelcontextprotocol/sdk": "1.32.1",
|
|
56
|
-
"@wirecat/cli-base": "0.
|
|
57
|
-
"@wirecat/cli-core": "0.
|
|
56
|
+
"@wirecat/cli-base": "0.40.0",
|
|
57
|
+
"@wirecat/cli-core": "0.304.0",
|
|
58
58
|
"commander": "15.0.0",
|
|
59
59
|
"valibot": "1.5.0"
|
|
60
60
|
},
|
package/skills/zoom-cli/SKILL.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: zoom-cli
|
|
3
3
|
description: Archive Zoom cloud recordings, read stored meeting transcripts and summaries, or manage a Zoom meeting through zm. Use for Zoom CLI workflows, not joining calls or operating the desktop video client.
|
|
4
4
|
metadata:
|
|
5
|
-
version: "0.21.
|
|
5
|
+
version: "0.21.3"
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Zoom CLI
|
|
@@ -84,7 +84,9 @@ queries or skipped sources leave completeness false even when the command exits
|
|
|
84
84
|
Attending a meeting does not grant recording API access. `recordings sync --since-time <date>
|
|
85
85
|
--until-time <date> --output-dir <dir> --jsonl` archives bounded history; `download` handles one
|
|
86
86
|
occurrence. Existing files are never overwritten. Repeated runs skip verified manifest entries;
|
|
87
|
-
completed files survive later failures
|
|
87
|
+
completed files survive later failures. Interrupted transfers resume a verified prefix only when
|
|
88
|
+
a strong validator and the returned byte range agree; changed representations restart safely.
|
|
89
|
+
`--no-resume` uses ephemeral partials. Keep account/profile and archive destination consistent.
|
|
88
90
|
`recordings archive check <dir> --offline` verifies local checksums. Inspect `archive locks` before
|
|
89
91
|
`recover`; recovery previews stale local dead-process locks, and `--yes` removes only authorized ones.
|
|
90
92
|
|