run402 3.7.13 → 3.8.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.
- package/cli.mjs +6 -0
- package/core-dist/config.js +9 -0
- package/core-dist/keystore.js +103 -68
- package/core-dist/profile-state.js +137 -0
- package/lib/config.mjs +31 -20
- package/lib/credentials.mjs +273 -0
- package/lib/domains.mjs +40 -20
- package/lib/next-actions.mjs +7 -0
- package/lib/projects.mjs +65 -27
- package/lib/sdk-errors.mjs +24 -3
- package/lib/sdk.mjs +3 -2
- package/package.json +1 -1
- package/sdk/core-dist/config.js +9 -0
- package/sdk/core-dist/keystore.js +103 -68
- package/sdk/core-dist/profile-state.js +137 -0
- package/sdk/dist/credentials.d.ts +24 -7
- package/sdk/dist/credentials.d.ts.map +1 -1
- package/sdk/dist/credentials.js +4 -4
- package/sdk/dist/errors.d.ts +27 -1
- package/sdk/dist/errors.d.ts.map +1 -1
- package/sdk/dist/errors.js +61 -3
- package/sdk/dist/errors.js.map +1 -1
- package/sdk/dist/index.d.ts +7 -2
- package/sdk/dist/index.d.ts.map +1 -1
- package/sdk/dist/index.js +8 -3
- package/sdk/dist/index.js.map +1 -1
- package/sdk/dist/kernel.d.ts +2 -0
- package/sdk/dist/kernel.d.ts.map +1 -1
- package/sdk/dist/kernel.js +5 -1
- package/sdk/dist/kernel.js.map +1 -1
- package/sdk/dist/namespaces/ai.d.ts.map +1 -1
- package/sdk/dist/namespaces/ai.js +5 -10
- package/sdk/dist/namespaces/ai.js.map +1 -1
- package/sdk/dist/namespaces/apps.d.ts.map +1 -1
- package/sdk/dist/namespaces/apps.js +5 -13
- package/sdk/dist/namespaces/apps.js.map +1 -1
- package/sdk/dist/namespaces/assets.d.ts.map +1 -1
- package/sdk/dist/namespaces/assets.js +9 -22
- package/sdk/dist/namespaces/assets.js.map +1 -1
- package/sdk/dist/namespaces/auth.d.ts.map +1 -1
- package/sdk/dist/namespaces/auth.js +16 -43
- package/sdk/dist/namespaces/auth.js.map +1 -1
- package/sdk/dist/namespaces/contracts.d.ts.map +1 -1
- package/sdk/dist/namespaces/contracts.js +12 -31
- package/sdk/dist/namespaces/contracts.js.map +1 -1
- package/sdk/dist/namespaces/credentials.d.ts +48 -0
- package/sdk/dist/namespaces/credentials.d.ts.map +1 -0
- package/sdk/dist/namespaces/credentials.js +115 -0
- package/sdk/dist/namespaces/credentials.js.map +1 -0
- package/sdk/dist/namespaces/deploy.d.ts.map +1 -1
- package/sdk/dist/namespaces/deploy.js +23 -3
- package/sdk/dist/namespaces/deploy.js.map +1 -1
- package/sdk/dist/namespaces/domains.d.ts +8 -2
- package/sdk/dist/namespaces/domains.d.ts.map +1 -1
- package/sdk/dist/namespaces/domains.js +41 -23
- package/sdk/dist/namespaces/domains.js.map +1 -1
- package/sdk/dist/namespaces/email.d.ts.map +1 -1
- package/sdk/dist/namespaces/email.js +8 -19
- package/sdk/dist/namespaces/email.js.map +1 -1
- package/sdk/dist/namespaces/functions.d.ts.map +1 -1
- package/sdk/dist/namespaces/functions.js +14 -37
- package/sdk/dist/namespaces/functions.js.map +1 -1
- package/sdk/dist/namespaces/jobs.d.ts.map +1 -1
- package/sdk/dist/namespaces/jobs.js +8 -19
- package/sdk/dist/namespaces/jobs.js.map +1 -1
- package/sdk/dist/namespaces/projects.d.ts +4 -4
- package/sdk/dist/namespaces/projects.d.ts.map +1 -1
- package/sdk/dist/namespaces/projects.js +18 -42
- package/sdk/dist/namespaces/projects.js.map +1 -1
- package/sdk/dist/namespaces/secrets.d.ts.map +1 -1
- package/sdk/dist/namespaces/secrets.js +5 -10
- package/sdk/dist/namespaces/secrets.js.map +1 -1
- package/sdk/dist/namespaces/sender-domain.d.ts.map +1 -1
- package/sdk/dist/namespaces/sender-domain.js +6 -16
- package/sdk/dist/namespaces/sender-domain.js.map +1 -1
- package/sdk/dist/namespaces/subdomains.d.ts.map +1 -1
- package/sdk/dist/namespaces/subdomains.js +5 -10
- package/sdk/dist/namespaces/subdomains.js.map +1 -1
- package/sdk/dist/node/credentials.d.ts +18 -4
- package/sdk/dist/node/credentials.d.ts.map +1 -1
- package/sdk/dist/node/credentials.js +37 -9
- package/sdk/dist/node/credentials.js.map +1 -1
- package/sdk/dist/node/index.d.ts +4 -2
- package/sdk/dist/node/index.d.ts.map +1 -1
- package/sdk/dist/node/index.js +2 -1
- package/sdk/dist/node/index.js.map +1 -1
- package/sdk/dist/node/target-profile.d.ts.map +1 -1
- package/sdk/dist/node/target-profile.js +6 -4
- package/sdk/dist/node/target-profile.js.map +1 -1
- package/sdk/dist/project-auth-classification.d.ts +125 -0
- package/sdk/dist/project-auth-classification.d.ts.map +1 -0
- package/sdk/dist/project-auth-classification.js +135 -0
- package/sdk/dist/project-auth-classification.js.map +1 -0
- package/sdk/dist/project-credentials.d.ts +4 -0
- package/sdk/dist/project-credentials.d.ts.map +1 -0
- package/sdk/dist/project-credentials.js +9 -0
- package/sdk/dist/project-credentials.js.map +1 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { ProjectCredentialCacheInfo, ProjectKeys } from "../credentials.js";
|
|
2
|
+
import type { Client } from "../kernel.js";
|
|
3
|
+
export interface ProjectKeyCacheStatus extends ProjectCredentialCacheInfo {
|
|
4
|
+
project_id: string;
|
|
5
|
+
configured: boolean;
|
|
6
|
+
has_anon_key: boolean;
|
|
7
|
+
has_service_key: boolean;
|
|
8
|
+
anon_key_prefix: string | null;
|
|
9
|
+
service_key_prefix: string | null;
|
|
10
|
+
anon_key_fingerprint: string | null;
|
|
11
|
+
service_key_fingerprint: string | null;
|
|
12
|
+
site_url: string | null;
|
|
13
|
+
cached_at: string | null;
|
|
14
|
+
}
|
|
15
|
+
export interface ProjectKeyCacheListResult extends ProjectCredentialCacheInfo {
|
|
16
|
+
projects: ProjectKeyCacheStatus[];
|
|
17
|
+
}
|
|
18
|
+
export interface ProjectKeyCacheExportOptions {
|
|
19
|
+
/** Required to emit secret key material. */
|
|
20
|
+
reveal?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface ProjectKeyCacheExportResult extends ProjectCredentialCacheInfo, ProjectKeys {
|
|
23
|
+
project_id: string;
|
|
24
|
+
revealed: true;
|
|
25
|
+
}
|
|
26
|
+
export interface ProjectKeyCacheImportOptions {
|
|
27
|
+
anonKey?: string;
|
|
28
|
+
serviceKey: string;
|
|
29
|
+
siteUrl?: string;
|
|
30
|
+
}
|
|
31
|
+
export interface ProjectKeyCacheMutationResult extends ProjectKeyCacheStatus {
|
|
32
|
+
imported?: boolean;
|
|
33
|
+
removed?: boolean;
|
|
34
|
+
}
|
|
35
|
+
export declare class Credentials {
|
|
36
|
+
readonly projectKeys: ProjectKeysCache;
|
|
37
|
+
constructor(client: Client);
|
|
38
|
+
}
|
|
39
|
+
export declare class ProjectKeysCache {
|
|
40
|
+
private readonly client;
|
|
41
|
+
constructor(client: Client);
|
|
42
|
+
list(): Promise<ProjectKeyCacheListResult>;
|
|
43
|
+
status(projectId: string): Promise<ProjectKeyCacheStatus>;
|
|
44
|
+
import(projectId: string, opts: ProjectKeyCacheImportOptions): Promise<ProjectKeyCacheMutationResult>;
|
|
45
|
+
export(projectId: string, opts?: ProjectKeyCacheExportOptions): Promise<ProjectKeyCacheExportResult>;
|
|
46
|
+
remove(projectId: string): Promise<ProjectKeyCacheMutationResult>;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=credentials.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/namespaces/credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEjF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAG3C,MAAM,WAAW,qBAAsB,SAAQ,0BAA0B;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,yBAA0B,SAAQ,0BAA0B;IAC3E,QAAQ,EAAE,qBAAqB,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,4BAA4B;IAC3C,4CAA4C;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,2BAA4B,SAAQ,0BAA0B,EAAE,WAAW;IAC1F,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,IAAI,CAAC;CAChB;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,6BAA8B,SAAQ,qBAAqB;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,WAAW;IACtB,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;gBAE3B,MAAM,EAAE,MAAM;CAG3B;AAED,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAErC,IAAI,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAc1C,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAKzD,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,4BAA4B,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAqBrG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE,4BAAiC,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAgBxG,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,CAAC;CAQxE"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { LocalError } from "../errors.js";
|
|
2
|
+
import { requireProjectCredentials } from "../project-credentials.js";
|
|
3
|
+
export class Credentials {
|
|
4
|
+
projectKeys;
|
|
5
|
+
constructor(client) {
|
|
6
|
+
this.projectKeys = new ProjectKeysCache(client);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export class ProjectKeysCache {
|
|
10
|
+
client;
|
|
11
|
+
constructor(client) {
|
|
12
|
+
this.client = client;
|
|
13
|
+
}
|
|
14
|
+
async list() {
|
|
15
|
+
const listProjectCredentials = this.client.credentials.listProjectCredentials;
|
|
16
|
+
if (!listProjectCredentials) {
|
|
17
|
+
throw unsupported("listing local project-key cache", "listProjectCredentials");
|
|
18
|
+
}
|
|
19
|
+
const entries = await listProjectCredentials.call(this.client.credentials);
|
|
20
|
+
const projects = await Promise.all(Object.entries(entries)
|
|
21
|
+
.sort(([a], [b]) => a.localeCompare(b))
|
|
22
|
+
.map(([projectId, entry]) => redactedEntry(projectId, entry, provenance(this.client))));
|
|
23
|
+
return { projects, ...provenance(this.client) };
|
|
24
|
+
}
|
|
25
|
+
async status(projectId) {
|
|
26
|
+
const entry = await this.client.getProjectCredentials(projectId);
|
|
27
|
+
return redactedEntry(projectId, entry, provenance(this.client));
|
|
28
|
+
}
|
|
29
|
+
async import(projectId, opts) {
|
|
30
|
+
if (!this.client.credentials.saveProject) {
|
|
31
|
+
throw unsupported("importing local project keys", "saveProject");
|
|
32
|
+
}
|
|
33
|
+
if (!opts || typeof opts !== "object" || typeof opts.serviceKey !== "string" || opts.serviceKey.length === 0) {
|
|
34
|
+
throw new LocalError("credentials.projectKeys.import requires a non-empty serviceKey", "importing local project keys", {
|
|
35
|
+
code: "BAD_USAGE",
|
|
36
|
+
details: { project_id: projectId },
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
const existing = await this.client.getProjectCredentials(projectId);
|
|
40
|
+
await this.client.credentials.saveProject(projectId, {
|
|
41
|
+
anon_key: opts.anonKey ?? existing?.anon_key ?? "",
|
|
42
|
+
service_key: opts.serviceKey,
|
|
43
|
+
...(opts.siteUrl ?? existing?.site_url ? { site_url: opts.siteUrl ?? existing?.site_url } : {}),
|
|
44
|
+
cached_at: new Date().toISOString(),
|
|
45
|
+
});
|
|
46
|
+
const entry = await this.client.getProjectCredentials(projectId);
|
|
47
|
+
return { imported: true, ...(await redactedEntry(projectId, entry, provenance(this.client))) };
|
|
48
|
+
}
|
|
49
|
+
async export(projectId, opts = {}) {
|
|
50
|
+
if (opts.reveal !== true) {
|
|
51
|
+
throw new LocalError("Exporting full project keys requires { reveal: true }", "exporting local project keys", {
|
|
52
|
+
code: "REVEAL_REQUIRED",
|
|
53
|
+
details: { project_id: projectId, ...provenance(this.client) },
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
const keys = await requireProjectCredentials(this.client, projectId, "exporting local project keys");
|
|
57
|
+
return {
|
|
58
|
+
project_id: projectId,
|
|
59
|
+
...keys,
|
|
60
|
+
...provenance(this.client),
|
|
61
|
+
revealed: true,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
async remove(projectId) {
|
|
65
|
+
if (!this.client.credentials.removeProject) {
|
|
66
|
+
throw unsupported("removing local project keys", "removeProject");
|
|
67
|
+
}
|
|
68
|
+
const existed = await this.client.getProjectCredentials(projectId);
|
|
69
|
+
await this.client.credentials.removeProject(projectId);
|
|
70
|
+
return { removed: Boolean(existed), ...(await redactedEntry(projectId, null, provenance(this.client))) };
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function provenance(client) {
|
|
74
|
+
return {
|
|
75
|
+
source: "local_cache",
|
|
76
|
+
...(client.credentials.getProjectCredentialCacheInfo?.() ?? {}),
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
async function redactedEntry(projectId, entry, info) {
|
|
80
|
+
return {
|
|
81
|
+
project_id: projectId,
|
|
82
|
+
configured: Boolean(entry),
|
|
83
|
+
has_anon_key: Boolean(entry?.anon_key),
|
|
84
|
+
has_service_key: Boolean(entry?.service_key),
|
|
85
|
+
anon_key_prefix: prefix(entry?.anon_key),
|
|
86
|
+
service_key_prefix: prefix(entry?.service_key),
|
|
87
|
+
anon_key_fingerprint: await fingerprint(entry?.anon_key),
|
|
88
|
+
service_key_fingerprint: await fingerprint(entry?.service_key),
|
|
89
|
+
site_url: entry?.site_url ?? null,
|
|
90
|
+
cached_at: entry?.cached_at ?? null,
|
|
91
|
+
...info,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
function prefix(value) {
|
|
95
|
+
if (!value)
|
|
96
|
+
return null;
|
|
97
|
+
return `${value.slice(0, 8)}...`;
|
|
98
|
+
}
|
|
99
|
+
async function fingerprint(value) {
|
|
100
|
+
if (!value || !globalThis.crypto?.subtle)
|
|
101
|
+
return null;
|
|
102
|
+
const bytes = new TextEncoder().encode(value);
|
|
103
|
+
const digest = await globalThis.crypto.subtle.digest("SHA-256", bytes);
|
|
104
|
+
return Array.from(new Uint8Array(digest))
|
|
105
|
+
.map((byte) => byte.toString(16).padStart(2, "0"))
|
|
106
|
+
.join("")
|
|
107
|
+
.slice(0, 16);
|
|
108
|
+
}
|
|
109
|
+
function unsupported(context, method) {
|
|
110
|
+
return new LocalError(`The configured credential provider does not support ${method}(). Use @run402/sdk/node for local project-key cache operations.`, context, {
|
|
111
|
+
code: "LOCAL_CREDENTIAL_CACHE_UNSUPPORTED",
|
|
112
|
+
details: { method, source: "local_cache" },
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/namespaces/credentials.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/namespaces/deploy.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/namespaces/deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1596,6 +1596,10 @@ async function pollUntilReady(client, commit, diff, warnings, emit, projectId, s
|
|
|
1596
1596
|
context: "committing deploy",
|
|
1597
1597
|
});
|
|
1598
1598
|
}
|
|
1599
|
+
if (projectId) {
|
|
1600
|
+
const headers = await apikeyHeaders(client, projectId);
|
|
1601
|
+
await drainRecordedOperationEvents(client, commit.operation_id, headers, null, emit);
|
|
1602
|
+
}
|
|
1599
1603
|
emit({
|
|
1600
1604
|
type: "ready",
|
|
1601
1605
|
releaseId: commit.release_id,
|
|
@@ -1693,6 +1697,11 @@ async function pollSnapshotUntilReady(client, initial, diff, warnings, emit, pro
|
|
|
1693
1697
|
context: "polling deploy",
|
|
1694
1698
|
});
|
|
1695
1699
|
}
|
|
1700
|
+
if (recordedEventsSupported && projectId) {
|
|
1701
|
+
const recorded = await drainRecordedOperationEvents(client, snapshot.operation_id, opHeaders, recordedEventCursor, emit);
|
|
1702
|
+
recordedEventsSupported = recorded.supported;
|
|
1703
|
+
recordedEventCursor = recorded.cursor;
|
|
1704
|
+
}
|
|
1696
1705
|
closePreviousPhase();
|
|
1697
1706
|
emit(withSliceKinds({ type: "ready", releaseId: snapshot.release_id, urls: snapshot.urls }));
|
|
1698
1707
|
return {
|
|
@@ -1729,6 +1738,17 @@ async function pollSnapshotUntilReady(client, initial, diff, warnings, emit, pro
|
|
|
1729
1738
|
snapshot = await client.request(`/apply/v1/operations/${encodeURIComponent(snapshot.operation_id)}`, { headers: opHeaders, context: "polling deploy operation" });
|
|
1730
1739
|
}
|
|
1731
1740
|
}
|
|
1741
|
+
async function drainRecordedOperationEvents(client, operationId, headers, cursor, emit) {
|
|
1742
|
+
let nextCursor = cursor;
|
|
1743
|
+
for (let i = 0; i < 10; i += 1) {
|
|
1744
|
+
const recorded = await emitRecordedOperationEvents(client, operationId, headers, nextCursor, emit);
|
|
1745
|
+
nextCursor = recorded.cursor;
|
|
1746
|
+
if (!recorded.supported || !recorded.hasMore) {
|
|
1747
|
+
return { cursor: nextCursor, supported: recorded.supported };
|
|
1748
|
+
}
|
|
1749
|
+
}
|
|
1750
|
+
return { cursor: nextCursor, supported: true };
|
|
1751
|
+
}
|
|
1732
1752
|
async function emitRecordedOperationEvents(client, operationId, headers, cursor, emit) {
|
|
1733
1753
|
const query = cursor
|
|
1734
1754
|
? `?limit=100&cursor=${encodeURIComponent(cursor)}`
|
|
@@ -1738,10 +1758,10 @@ async function emitRecordedOperationEvents(client, operationId, headers, cursor,
|
|
|
1738
1758
|
page = await client.request(`/apply/v1/operations/${encodeURIComponent(operationId)}/events${query}`, { headers, context: "fetching deploy operation events" });
|
|
1739
1759
|
}
|
|
1740
1760
|
catch {
|
|
1741
|
-
return { cursor, supported: false };
|
|
1761
|
+
return { cursor, supported: false, hasMore: false };
|
|
1742
1762
|
}
|
|
1743
1763
|
if (!page || !Array.isArray(page.events)) {
|
|
1744
|
-
return { cursor, supported: false };
|
|
1764
|
+
return { cursor, supported: false, hasMore: false };
|
|
1745
1765
|
}
|
|
1746
1766
|
let nextCursor = cursor;
|
|
1747
1767
|
for (const event of page.events) {
|
|
@@ -1754,7 +1774,7 @@ async function emitRecordedOperationEvents(client, operationId, headers, cursor,
|
|
|
1754
1774
|
nextCursor = eventId;
|
|
1755
1775
|
}
|
|
1756
1776
|
}
|
|
1757
|
-
return { cursor: nextCursor, supported: true };
|
|
1777
|
+
return { cursor: nextCursor, supported: true, hasMore: typeof page.cursor === "string" && page.cursor.length > 0 };
|
|
1758
1778
|
}
|
|
1759
1779
|
function isTerminalStaticActivationError(error) {
|
|
1760
1780
|
if (!error?.code)
|