run402 3.7.14 → 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/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
package/lib/sdk.mjs
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import { run402 } from "#sdk/node";
|
|
11
|
-
import { allowanceFile,
|
|
11
|
+
import { allowanceFile, profileStateFile, projectCredentialsFile } from "./config.mjs";
|
|
12
12
|
|
|
13
13
|
export function getSdk(opts = {}) {
|
|
14
14
|
// surface: "cli" opts the default credential resolution into `auto` — wallet
|
|
@@ -16,7 +16,8 @@ export function getSdk(opts = {}) {
|
|
|
16
16
|
return run402({
|
|
17
17
|
surface: "cli",
|
|
18
18
|
allowancePath: allowanceFile(),
|
|
19
|
-
keystorePath:
|
|
19
|
+
keystorePath: projectCredentialsFile(),
|
|
20
|
+
profileStatePath: profileStateFile(),
|
|
20
21
|
...opts,
|
|
21
22
|
});
|
|
22
23
|
}
|
package/package.json
CHANGED
package/sdk/core-dist/config.js
CHANGED
|
@@ -119,8 +119,17 @@ export function getConfigDir() {
|
|
|
119
119
|
return profile === DEFAULT_PROFILE ? base : join(base, "profiles", profile);
|
|
120
120
|
}
|
|
121
121
|
export function getKeystorePath() {
|
|
122
|
+
return getProjectCredentialsPath();
|
|
123
|
+
}
|
|
124
|
+
export function getLegacyProjectsPath() {
|
|
122
125
|
return join(getConfigDir(), "projects.json");
|
|
123
126
|
}
|
|
127
|
+
export function getProjectCredentialsPath() {
|
|
128
|
+
return join(getConfigDir(), "credentials", "project-keys.v1.json");
|
|
129
|
+
}
|
|
130
|
+
export function getProfileStatePath() {
|
|
131
|
+
return join(getConfigDir(), "state.json");
|
|
132
|
+
}
|
|
124
133
|
export function getApiTargetConfigPath() {
|
|
125
134
|
return join(getConfigDir(), "target.json");
|
|
126
135
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { readFileSync, writeFileSync, mkdirSync, renameSync, chmodSync, rmdirSync } from "node:fs";
|
|
1
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync, renameSync, chmodSync, rmdirSync } from "node:fs";
|
|
2
2
|
import { dirname, join } from "node:path";
|
|
3
3
|
import { randomBytes } from "node:crypto";
|
|
4
|
-
import {
|
|
4
|
+
import { getLegacyProjectsPath, getProjectCredentialsPath } from "./config.js";
|
|
5
|
+
import { clearActiveProjectId as clearProfileActiveProjectId, getActiveProjectId as getProfileActiveProjectId, recordMigration, setActiveProjectId as setProfileActiveProjectId, } from "./profile-state.js";
|
|
5
6
|
function withFileLock(path, fn, { retries = 200, delayMs = 20 } = {}) {
|
|
6
7
|
const lockDir = path + ".lock";
|
|
7
8
|
mkdirSync(dirname(path), { recursive: true });
|
|
@@ -29,56 +30,107 @@ function withFileLock(path, fn, { retries = 200, delayMs = 20 } = {}) {
|
|
|
29
30
|
}
|
|
30
31
|
throw new Error(`Could not acquire keystore lock after ${retries} retries: ${lockDir}`);
|
|
31
32
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
for (const item of parsed) {
|
|
46
|
-
if (item.project_id) {
|
|
47
|
-
projects[item.project_id] = {
|
|
48
|
-
anon_key: item.anon_key,
|
|
49
|
-
service_key: item.service_key,
|
|
50
|
-
...(item.site_url && { site_url: item.site_url }),
|
|
51
|
-
...(item.deployed_at && { deployed_at: item.deployed_at }),
|
|
52
|
-
};
|
|
53
|
-
}
|
|
33
|
+
function normalizeParsedKeyStore(parsed) {
|
|
34
|
+
if (Array.isArray(parsed)) {
|
|
35
|
+
const projects = {};
|
|
36
|
+
for (const item of parsed) {
|
|
37
|
+
if (item.project_id) {
|
|
38
|
+
projects[item.project_id] = {
|
|
39
|
+
anon_key: item.anon_key,
|
|
40
|
+
service_key: item.service_key,
|
|
41
|
+
...(item.site_url && { site_url: item.site_url }),
|
|
42
|
+
...(item.deployed_at && { deployed_at: item.deployed_at }),
|
|
43
|
+
cached_at: new Date().toISOString(),
|
|
44
|
+
source: "legacy_projects_json",
|
|
45
|
+
};
|
|
54
46
|
}
|
|
55
|
-
return { projects };
|
|
56
47
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
48
|
+
return { version: 1, source: "local_cache", projects };
|
|
49
|
+
}
|
|
50
|
+
if (parsed && typeof parsed === "object" && "projects" in parsed) {
|
|
51
|
+
const obj = parsed;
|
|
52
|
+
const rawProjects = obj.projects && typeof obj.projects === "object" && !Array.isArray(obj.projects)
|
|
53
|
+
? obj.projects
|
|
54
|
+
: {};
|
|
55
|
+
const projects = {};
|
|
56
|
+
for (const [id, proj] of Object.entries(rawProjects)) {
|
|
57
|
+
const rec = { ...proj };
|
|
58
|
+
delete rec.tier;
|
|
59
|
+
delete rec.lease_expires_at;
|
|
60
|
+
delete rec.expires_at;
|
|
61
|
+
projects[id] = rec;
|
|
69
62
|
}
|
|
70
|
-
return {
|
|
63
|
+
return {
|
|
64
|
+
version: 1,
|
|
65
|
+
source: "local_cache",
|
|
66
|
+
...(typeof obj.active_project_id === "string" && { active_project_id: obj.active_project_id }),
|
|
67
|
+
...(typeof obj.previous_active_project_id === "string" && { previous_active_project_id: obj.previous_active_project_id }),
|
|
68
|
+
projects,
|
|
69
|
+
...(typeof obj.migrated_from === "string" && { migrated_from: obj.migrated_from }),
|
|
70
|
+
...(typeof obj.migrated_at === "string" && { migrated_at: obj.migrated_at }),
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
return { version: 1, source: "local_cache", projects: {} };
|
|
74
|
+
}
|
|
75
|
+
function loadParsedKeyStore(path) {
|
|
76
|
+
try {
|
|
77
|
+
return normalizeParsedKeyStore(JSON.parse(readFileSync(path, "utf-8")));
|
|
71
78
|
}
|
|
72
79
|
catch {
|
|
73
|
-
return { projects: {} };
|
|
80
|
+
return { version: 1, source: "local_cache", projects: {} };
|
|
74
81
|
}
|
|
75
82
|
}
|
|
83
|
+
function migrateLegacyProjectsJson(targetPath) {
|
|
84
|
+
const legacyPath = getLegacyProjectsPath();
|
|
85
|
+
if (existsSync(targetPath) || !existsSync(legacyPath))
|
|
86
|
+
return;
|
|
87
|
+
const legacy = loadParsedKeyStore(legacyPath);
|
|
88
|
+
const migratedAt = new Date().toISOString();
|
|
89
|
+
const cache = {
|
|
90
|
+
version: 1,
|
|
91
|
+
source: "local_cache",
|
|
92
|
+
projects: legacy.projects,
|
|
93
|
+
migrated_from: legacyPath,
|
|
94
|
+
migrated_at: migratedAt,
|
|
95
|
+
};
|
|
96
|
+
saveKeyStore(cache, targetPath);
|
|
97
|
+
if (legacy.active_project_id) {
|
|
98
|
+
setProfileActiveProjectId(legacy.active_project_id);
|
|
99
|
+
}
|
|
100
|
+
recordMigration("projects_json_import", {
|
|
101
|
+
legacy_path: legacyPath,
|
|
102
|
+
cache_path: targetPath,
|
|
103
|
+
project_count: Object.keys(legacy.projects).length,
|
|
104
|
+
imported_at: migratedAt,
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Load the project-key credential cache from disk.
|
|
109
|
+
* Auto-imports legacy `projects.json` formats into the new cache path when using
|
|
110
|
+
* the default location:
|
|
111
|
+
* - Array format (CLI legacy): [{project_id, ...}] → {projects: {id: {...}}}
|
|
112
|
+
* - Object format: {active_project_id, projects} → credentials cache + state.json
|
|
113
|
+
* - Old metadata fields: tier/expires_at/lease_expires_at are stripped
|
|
114
|
+
*/
|
|
115
|
+
export function loadKeyStore(path) {
|
|
116
|
+
const p = path ?? getProjectCredentialsPath();
|
|
117
|
+
if (!path)
|
|
118
|
+
migrateLegacyProjectsJson(p);
|
|
119
|
+
return loadParsedKeyStore(p);
|
|
120
|
+
}
|
|
76
121
|
export function saveKeyStore(store, path) {
|
|
77
|
-
const p = path ??
|
|
122
|
+
const p = path ?? getProjectCredentialsPath();
|
|
78
123
|
const dir = dirname(p);
|
|
79
124
|
mkdirSync(dir, { recursive: true });
|
|
80
|
-
const
|
|
81
|
-
|
|
125
|
+
const cache = {
|
|
126
|
+
version: 1,
|
|
127
|
+
source: "local_cache",
|
|
128
|
+
...(store.migrated_from ? { migrated_from: store.migrated_from } : {}),
|
|
129
|
+
...(store.migrated_at ? { migrated_at: store.migrated_at } : {}),
|
|
130
|
+
projects: store.projects,
|
|
131
|
+
};
|
|
132
|
+
const tmp = join(dir, `.project-keys.${randomBytes(4).toString("hex")}.tmp`);
|
|
133
|
+
writeFileSync(tmp, JSON.stringify(cache, null, 2), { mode: 0o600 });
|
|
82
134
|
renameSync(tmp, p);
|
|
83
135
|
chmodSync(p, 0o600);
|
|
84
136
|
}
|
|
@@ -87,55 +139,38 @@ export function getProject(projectId, path) {
|
|
|
87
139
|
return store.projects[projectId];
|
|
88
140
|
}
|
|
89
141
|
export function saveProject(projectId, project, path) {
|
|
90
|
-
const p = path ??
|
|
142
|
+
const p = path ?? getProjectCredentialsPath();
|
|
91
143
|
withFileLock(p, () => {
|
|
92
144
|
const store = loadKeyStore(p);
|
|
93
|
-
store.projects[projectId] = project;
|
|
145
|
+
store.projects[projectId] = { ...project, cached_at: project.cached_at ?? new Date().toISOString() };
|
|
94
146
|
saveKeyStore(store, p);
|
|
95
147
|
});
|
|
96
148
|
}
|
|
97
149
|
export function updateProject(projectId, update, path) {
|
|
98
|
-
const p = path ??
|
|
150
|
+
const p = path ?? getProjectCredentialsPath();
|
|
99
151
|
withFileLock(p, () => {
|
|
100
152
|
const store = loadKeyStore(p);
|
|
101
153
|
const existing = store.projects[projectId];
|
|
102
154
|
if (existing) {
|
|
103
|
-
store.projects[projectId] = { ...existing, ...update };
|
|
155
|
+
store.projects[projectId] = { ...existing, ...update, cached_at: existing.cached_at ?? new Date().toISOString() };
|
|
104
156
|
saveKeyStore(store, p);
|
|
105
157
|
}
|
|
106
158
|
});
|
|
107
159
|
}
|
|
108
160
|
export function removeProject(projectId, path) {
|
|
109
|
-
const p = path ??
|
|
161
|
+
const p = path ?? getProjectCredentialsPath();
|
|
110
162
|
withFileLock(p, () => {
|
|
111
163
|
const store = loadKeyStore(p);
|
|
112
164
|
delete store.projects[projectId];
|
|
113
|
-
if (store.active_project_id === projectId) {
|
|
114
|
-
const fallback = store.previous_active_project_id;
|
|
115
|
-
if (fallback && fallback !== projectId && store.projects[fallback]) {
|
|
116
|
-
store.active_project_id = fallback;
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
119
|
-
delete store.active_project_id;
|
|
120
|
-
}
|
|
121
|
-
delete store.previous_active_project_id;
|
|
122
|
-
}
|
|
123
165
|
saveKeyStore(store, p);
|
|
124
166
|
});
|
|
167
|
+
if (!path)
|
|
168
|
+
clearProfileActiveProjectId(projectId);
|
|
125
169
|
}
|
|
126
170
|
export function getActiveProjectId(path) {
|
|
127
|
-
|
|
128
|
-
return store.active_project_id;
|
|
171
|
+
return getProfileActiveProjectId(path);
|
|
129
172
|
}
|
|
130
173
|
export function setActiveProjectId(projectId, path) {
|
|
131
|
-
|
|
132
|
-
withFileLock(p, () => {
|
|
133
|
-
const store = loadKeyStore(p);
|
|
134
|
-
if (store.active_project_id && store.active_project_id !== projectId) {
|
|
135
|
-
store.previous_active_project_id = store.active_project_id;
|
|
136
|
-
}
|
|
137
|
-
store.active_project_id = projectId;
|
|
138
|
-
saveKeyStore(store, p);
|
|
139
|
-
});
|
|
174
|
+
setProfileActiveProjectId(projectId, path);
|
|
140
175
|
}
|
|
141
176
|
//# sourceMappingURL=keystore.js.map
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { readFileSync, writeFileSync, mkdirSync, renameSync, chmodSync, rmdirSync } from "node:fs";
|
|
2
|
+
import { dirname, join } from "node:path";
|
|
3
|
+
import { randomBytes } from "node:crypto";
|
|
4
|
+
import { getActiveProfile, getApiBase, getProfileStatePath } from "./config.js";
|
|
5
|
+
function withFileLock(path, fn, { retries = 200, delayMs = 20 } = {}) {
|
|
6
|
+
const lockDir = path + ".lock";
|
|
7
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
8
|
+
for (let i = 0; i < retries; i++) {
|
|
9
|
+
try {
|
|
10
|
+
mkdirSync(lockDir, { mode: 0o700 });
|
|
11
|
+
}
|
|
12
|
+
catch (e) {
|
|
13
|
+
const code = e.code;
|
|
14
|
+
if (code !== "EEXIST")
|
|
15
|
+
throw e;
|
|
16
|
+
const until = Date.now() + delayMs;
|
|
17
|
+
while (Date.now() < until) { /* spin */ }
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
try {
|
|
21
|
+
return fn();
|
|
22
|
+
}
|
|
23
|
+
finally {
|
|
24
|
+
try {
|
|
25
|
+
rmdirSync(lockDir);
|
|
26
|
+
}
|
|
27
|
+
catch { /* best-effort */ }
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
throw new Error(`Could not acquire profile-state lock after ${retries} retries: ${lockDir}`);
|
|
31
|
+
}
|
|
32
|
+
export function loadProfileState(path) {
|
|
33
|
+
const p = path ?? getProfileStatePath();
|
|
34
|
+
try {
|
|
35
|
+
const parsed = JSON.parse(readFileSync(p, "utf-8"));
|
|
36
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed))
|
|
37
|
+
return {};
|
|
38
|
+
return parsed;
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
return {};
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export function saveProfileState(state, path) {
|
|
45
|
+
const p = path ?? getProfileStatePath();
|
|
46
|
+
const dir = dirname(p);
|
|
47
|
+
mkdirSync(dir, { recursive: true });
|
|
48
|
+
const tmp = join(dir, `.state.${randomBytes(4).toString("hex")}.tmp`);
|
|
49
|
+
writeFileSync(tmp, JSON.stringify({ version: 1, ...state }, null, 2), { mode: 0o600 });
|
|
50
|
+
renameSync(tmp, p);
|
|
51
|
+
chmodSync(p, 0o600);
|
|
52
|
+
}
|
|
53
|
+
export function defaultActiveProjectScope(scope = {}) {
|
|
54
|
+
return {
|
|
55
|
+
api_base: scope.api_base ?? getApiBase(),
|
|
56
|
+
profile: scope.profile ?? getActiveProfile(),
|
|
57
|
+
principal: scope.principal ?? null,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
export function activeProjectScopeKey(scope = {}) {
|
|
61
|
+
const resolved = defaultActiveProjectScope(scope);
|
|
62
|
+
return JSON.stringify({
|
|
63
|
+
api_base: resolved.api_base,
|
|
64
|
+
profile: resolved.profile,
|
|
65
|
+
principal: resolved.principal ?? "unknown",
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
export function getActiveProjectId(path, scope = {}) {
|
|
69
|
+
const state = loadProfileState(path);
|
|
70
|
+
const key = activeProjectScopeKey(scope);
|
|
71
|
+
return state.active_projects?.[key]?.project_id ?? state.active_project_id;
|
|
72
|
+
}
|
|
73
|
+
export function setActiveProjectId(projectId, path, scope = {}) {
|
|
74
|
+
const p = path ?? getProfileStatePath();
|
|
75
|
+
withFileLock(p, () => {
|
|
76
|
+
const state = loadProfileState(p);
|
|
77
|
+
const key = activeProjectScopeKey(scope);
|
|
78
|
+
const resolved = defaultActiveProjectScope(scope);
|
|
79
|
+
const current = state.active_projects?.[key]?.project_id ?? state.active_project_id;
|
|
80
|
+
const previous = current && current !== projectId ? current : undefined;
|
|
81
|
+
state.active_projects = state.active_projects ?? {};
|
|
82
|
+
state.active_projects[key] = {
|
|
83
|
+
project_id: projectId,
|
|
84
|
+
...(previous ? { previous_project_id: previous } : {}),
|
|
85
|
+
api_base: resolved.api_base,
|
|
86
|
+
principal: resolved.principal ?? null,
|
|
87
|
+
profile: resolved.profile,
|
|
88
|
+
updated_at: new Date().toISOString(),
|
|
89
|
+
};
|
|
90
|
+
state.active_project_id = projectId;
|
|
91
|
+
if (previous)
|
|
92
|
+
state.previous_active_project_id = previous;
|
|
93
|
+
else
|
|
94
|
+
delete state.previous_active_project_id;
|
|
95
|
+
saveProfileState(state, p);
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
export function clearActiveProjectId(projectId, path, scope = {}) {
|
|
99
|
+
const p = path ?? getProfileStatePath();
|
|
100
|
+
withFileLock(p, () => {
|
|
101
|
+
const state = loadProfileState(p);
|
|
102
|
+
const key = activeProjectScopeKey(scope);
|
|
103
|
+
const scoped = state.active_projects?.[key];
|
|
104
|
+
if (scoped?.project_id === projectId && state.active_projects) {
|
|
105
|
+
if (scoped.previous_project_id) {
|
|
106
|
+
state.active_projects[key] = {
|
|
107
|
+
...scoped,
|
|
108
|
+
project_id: scoped.previous_project_id,
|
|
109
|
+
previous_project_id: undefined,
|
|
110
|
+
updated_at: new Date().toISOString(),
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
delete state.active_projects[key];
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (state.active_project_id === projectId) {
|
|
118
|
+
if (state.previous_active_project_id && state.previous_active_project_id !== projectId) {
|
|
119
|
+
state.active_project_id = state.previous_active_project_id;
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
delete state.active_project_id;
|
|
123
|
+
}
|
|
124
|
+
delete state.previous_active_project_id;
|
|
125
|
+
}
|
|
126
|
+
saveProfileState(state, p);
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
export function recordMigration(marker, value, path) {
|
|
130
|
+
const p = path ?? getProfileStatePath();
|
|
131
|
+
withFileLock(p, () => {
|
|
132
|
+
const state = loadProfileState(p);
|
|
133
|
+
state.migrations = { ...(state.migrations ?? {}), [marker]: value };
|
|
134
|
+
saveProfileState(state, p);
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=profile-state.js.map
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
* Credential provider interface for the Run402 SDK.
|
|
3
3
|
*
|
|
4
4
|
* The SDK's request kernel calls `getAuth` before each request to obtain
|
|
5
|
-
* signed auth headers, and `
|
|
6
|
-
* keys. All filesystem, environment, and session-state access
|
|
7
|
-
* provider implementations — never in the kernel.
|
|
5
|
+
* signed auth headers, and `getProjectCredentials` to resolve per-project
|
|
6
|
+
* anon/service keys. All filesystem, environment, and session-state access
|
|
7
|
+
* lives inside provider implementations — never in the kernel.
|
|
8
8
|
*
|
|
9
9
|
* Node consumers use {@link NodeCredentialsProvider} from `@run402/sdk/node`
|
|
10
10
|
* which wraps the local keystore + allowance. Sandbox consumers supply their
|
|
11
11
|
* own implementation bound to a session token issued by the supervisor.
|
|
12
12
|
*
|
|
13
|
-
* The two required methods (`getAuth`, `
|
|
13
|
+
* The two required methods (`getAuth`, `getProjectCredentials`) support every API call.
|
|
14
14
|
* The optional methods let providers opt in to local persistence (keystore
|
|
15
15
|
* writes, active-project tracking). Namespace methods that need a missing
|
|
16
16
|
* optional method throw a descriptive error at runtime.
|
|
@@ -23,6 +23,13 @@ export interface ProjectKeys {
|
|
|
23
23
|
last_deployment_id?: string;
|
|
24
24
|
mailbox_id?: string;
|
|
25
25
|
mailbox_address?: string;
|
|
26
|
+
cached_at?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface ProjectCredentialCacheInfo {
|
|
29
|
+
source: "local_cache";
|
|
30
|
+
cache_path?: string;
|
|
31
|
+
wallet?: string;
|
|
32
|
+
profile?: string;
|
|
26
33
|
}
|
|
27
34
|
export interface AllowanceData {
|
|
28
35
|
address: string;
|
|
@@ -78,10 +85,18 @@ export interface CredentialsProvider {
|
|
|
78
85
|
*/
|
|
79
86
|
getAuth(path: string, metadata?: AuthRequestMeta): Promise<Record<string, string> | null>;
|
|
80
87
|
/**
|
|
81
|
-
* Resolve the anon/service keys for a project. Returns null
|
|
82
|
-
*
|
|
88
|
+
* Resolve the anon/service keys for a project. Returns null when local
|
|
89
|
+
* credentials are absent. This is a credential-cache lookup, not a project
|
|
90
|
+
* existence check.
|
|
91
|
+
*/
|
|
92
|
+
getProjectCredentials?(id: string): Promise<ProjectKeys | null>;
|
|
93
|
+
/**
|
|
94
|
+
* @deprecated Use `getProjectCredentials`. This alias is retained only for
|
|
95
|
+
* older custom providers; first-party SDK code must use the explicit name.
|
|
83
96
|
*/
|
|
84
|
-
getProject(id: string): Promise<ProjectKeys | null>;
|
|
97
|
+
getProject?(id: string): Promise<ProjectKeys | null>;
|
|
98
|
+
/** List locally cached project credentials. Optional and local-cache only; not project inventory. */
|
|
99
|
+
listProjectCredentials?(): Promise<Record<string, ProjectKeys>>;
|
|
85
100
|
/**
|
|
86
101
|
* Persist project keys after a successful provision or deploy. Optional:
|
|
87
102
|
* providers without local storage (pure session providers) may omit this.
|
|
@@ -103,6 +118,8 @@ export interface CredentialsProvider {
|
|
|
103
118
|
createAllowance?(): Promise<AllowanceData>;
|
|
104
119
|
/** Return the absolute path to the local allowance file, for diagnostic output. Optional. */
|
|
105
120
|
getAllowancePath?(): string;
|
|
121
|
+
/** Return safe provenance for the local project credential cache. Optional. */
|
|
122
|
+
getProjectCredentialCacheInfo?(): ProjectCredentialCacheInfo;
|
|
106
123
|
/**
|
|
107
124
|
* Return the active wallet's display identity (local name + address + cached
|
|
108
125
|
* server label). The Node provider derives this from the active profile;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"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"}
|
package/sdk/dist/credentials.js
CHANGED
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
* Credential provider interface for the Run402 SDK.
|
|
3
3
|
*
|
|
4
4
|
* The SDK's request kernel calls `getAuth` before each request to obtain
|
|
5
|
-
* signed auth headers, and `
|
|
6
|
-
* keys. All filesystem, environment, and session-state access
|
|
7
|
-
* provider implementations — never in the kernel.
|
|
5
|
+
* signed auth headers, and `getProjectCredentials` to resolve per-project
|
|
6
|
+
* anon/service keys. All filesystem, environment, and session-state access
|
|
7
|
+
* lives inside provider implementations — never in the kernel.
|
|
8
8
|
*
|
|
9
9
|
* Node consumers use {@link NodeCredentialsProvider} from `@run402/sdk/node`
|
|
10
10
|
* which wraps the local keystore + allowance. Sandbox consumers supply their
|
|
11
11
|
* own implementation bound to a session token issued by the supervisor.
|
|
12
12
|
*
|
|
13
|
-
* The two required methods (`getAuth`, `
|
|
13
|
+
* The two required methods (`getAuth`, `getProjectCredentials`) support every API call.
|
|
14
14
|
* The optional methods let providers opt in to local persistence (keystore
|
|
15
15
|
* writes, active-project tracking). Namespace methods that need a missing
|
|
16
16
|
* optional method throw a descriptive error at runtime.
|
package/sdk/dist/errors.d.ts
CHANGED
|
@@ -166,7 +166,7 @@ export declare class LocalError extends Run402Error {
|
|
|
166
166
|
* @param message Human-readable error message.
|
|
167
167
|
* @param context Short verb phrase identifying the operation (used for triage).
|
|
168
168
|
* @param opts Optional. Pass a raw `unknown` for back-compat (treated as `cause`),
|
|
169
|
-
* or an options bag `{ cause?, code?, details? }` to thread a stable error
|
|
169
|
+
* or an options bag `{ cause?, code?, details?, next_actions? }` to thread a stable error
|
|
170
170
|
* `code` (mirrors a gateway error code so client-side validators throw with
|
|
171
171
|
* the same `code` field consumers branch on).
|
|
172
172
|
*/
|
|
@@ -174,8 +174,16 @@ export declare class LocalError extends Run402Error {
|
|
|
174
174
|
cause?: unknown;
|
|
175
175
|
code?: string;
|
|
176
176
|
details?: unknown;
|
|
177
|
+
next_actions?: unknown[];
|
|
177
178
|
});
|
|
178
179
|
}
|
|
180
|
+
/** Local credential-cache miss — the project may exist, but no cached keys are available locally. */
|
|
181
|
+
export declare class ProjectCredentialNotFound extends LocalError {
|
|
182
|
+
readonly projectId: string;
|
|
183
|
+
constructor(projectId: string, context: string, details?: Record<string, unknown>);
|
|
184
|
+
}
|
|
185
|
+
export declare const PROJECT_CREDENTIAL_ERROR_CODES: readonly ["PROJECT_CREDENTIAL_NOT_FOUND", "PROJECT_CREDENTIAL_INVALID", "PROJECT_CREDENTIAL_EXPIRED", "PROJECT_CREDENTIAL_PROJECT_MISMATCH"];
|
|
186
|
+
export type ProjectCredentialErrorCode = typeof PROJECT_CREDENTIAL_ERROR_CODES[number];
|
|
179
187
|
/**
|
|
180
188
|
* Deploy-state-machine failure surfaced from the v2 deploy flow. Carries the
|
|
181
189
|
* structured error envelope the gateway returns alongside the operation
|
|
@@ -349,6 +357,24 @@ export declare function isRun402Error(e: unknown): e is Run402Error;
|
|
|
349
357
|
export declare function isPaymentRequired(e: unknown): e is PaymentRequired;
|
|
350
358
|
/** True if `e` is a {@link ProjectNotFound}. */
|
|
351
359
|
export declare function isProjectNotFound(e: unknown): e is ProjectNotFound;
|
|
360
|
+
/** True if `e` is a local project credential-cache miss. */
|
|
361
|
+
export declare function isProjectCredentialNotFound(e: unknown): e is ProjectCredentialNotFound;
|
|
362
|
+
/** True if `e` carries any stable project-credential error code. */
|
|
363
|
+
export declare function isProjectCredentialError(e: unknown): e is Run402Error & {
|
|
364
|
+
code: ProjectCredentialErrorCode;
|
|
365
|
+
};
|
|
366
|
+
/** True if cached or supplied project credentials were rejected as invalid. */
|
|
367
|
+
export declare function isProjectCredentialInvalid(e: unknown): e is Run402Error & {
|
|
368
|
+
code: "PROJECT_CREDENTIAL_INVALID";
|
|
369
|
+
};
|
|
370
|
+
/** True if cached or supplied project credentials were rejected as expired. */
|
|
371
|
+
export declare function isProjectCredentialExpired(e: unknown): e is Run402Error & {
|
|
372
|
+
code: "PROJECT_CREDENTIAL_EXPIRED";
|
|
373
|
+
};
|
|
374
|
+
/** True if service-key auth was supplied for a different explicit project id. */
|
|
375
|
+
export declare function isProjectCredentialProjectMismatch(e: unknown): e is Run402Error & {
|
|
376
|
+
code: "PROJECT_CREDENTIAL_PROJECT_MISMATCH";
|
|
377
|
+
};
|
|
352
378
|
/** True if `e` is an {@link Unauthorized}. */
|
|
353
379
|
export declare function isUnauthorized(e: unknown): e is Unauthorized;
|
|
354
380
|
/** True if `e` is a {@link NotAuthorizedError} (org-owned control-plane denial, gateway v1.77+). */
|
package/sdk/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;GAIG;AACH,MAAM,MAAM,eAAe,GACvB,kBAAkB,GAClB,mBAAmB,GACnB,cAAc,GACd,gBAAgB,GAChB,WAAW,GACX,eAAe,GACf,aAAa,GACb,cAAc,GACd,iBAAiB,GACjB,kBAAkB,GAClB,4BAA4B,CAAC;AAEjC;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,SAAS,CAAC;AAE1D,8BAAsB,WAAY,SAAQ,KAAK;IAC7C;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,EAAG,IAAI,CAAU;IACvC;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IACxC,iFAAiF;IACjF,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,2FAA2F;IAC3F,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,mFAAmF;IACnF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,+DAA+D;IAC/D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,kDAAkD;IAClD,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,yFAAyF;IACzF,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,sEAAsE;IACtE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,mFAAmF;IACnF,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,yGAAyG;IACzG,QAAQ,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IACpC;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC;gBAE3B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM;IAyClF;;;;;;OAMG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAmBlC;AAkBD,oGAAoG;AACpG,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,MAAM,CAAC,QAAQ,CAAC,YAAY,sBAAsB;IAClD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,sBAAsB;IACtD,MAAM,CAAC,QAAQ,CAAC,iBAAiB,SAAS;IAC1C,QAAQ,CAAC,IAAI,EAAG,kBAAkB,CAAU;CAC7C;AAED,qGAAqG;AACrG,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,MAAM,CAAC,QAAQ,CAAC,YAAY,uBAAuB;IACnD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,eAAe;IAC/C,MAAM,CAAC,QAAQ,CAAC,iBAAiB,SAAS;IAC1C,QAAQ,CAAC,IAAI,EAAG,mBAAmB,CAAU;IAC7C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBACf,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,GAAG,IAAW,EAAE,IAAI,GAAE,OAAc;CAInG;AAED,4FAA4F;AAC5F,qBAAa,YAAa,SAAQ,WAAW;IAC3C,MAAM,CAAC,QAAQ,CAAC,YAAY,kBAAkB;IAC9C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,UAAU;IAC1C,MAAM,CAAC,QAAQ,CAAC,iBAAiB,SAAS;IAC1C,QAAQ,CAAC,IAAI,EAAG,cAAc,CAAU;CACzC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,MAAM,CAAC,QAAQ,CAAC,YAAY,oBAAoB;IAChD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,UAAU;IAC1C,MAAM,CAAC,QAAQ,CAAC,iBAAiB,SAAS;IAC1C,QAAQ,CAAC,IAAI,EAAG,gBAAgB,CAAU;IAC1C,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,sGAAsG;IACtG,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,gGAAgG;IAChG,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;gBAEnB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM;IAuBlE,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAS3C;AAED,wDAAwD;AACxD,qBAAa,QAAS,SAAQ,WAAW;IACvC,MAAM,CAAC,QAAQ,CAAC,YAAY,eAAe;IAC3C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,SAAS;IACzC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,SAAS;IAC1C,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAU;CACtC;AAED,iGAAiG;AACjG,qBAAa,YAAa,SAAQ,WAAW;IAC3C,MAAM,CAAC,QAAQ,CAAC,YAAY,mBAAmB;IAC/C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,aAAa;IAC7C,MAAM,CAAC,QAAQ,CAAC,iBAAiB,QAAQ;IACzC,QAAQ,CAAC,IAAI,EAAG,eAAe,CAAU;IACzC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;gBACZ,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM;CAI7D;AAED,iGAAiG;AACjG,qBAAa,UAAW,SAAQ,WAAW;IACzC,MAAM,CAAC,QAAQ,CAAC,YAAY,iBAAiB;IAC7C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,WAAW;IAC3C,MAAM,CAAC,QAAQ,CAAC,iBAAiB,SAAS;IAC1C,QAAQ,CAAC,IAAI,EAAG,aAAa,CAAU;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB;;;;;;;OAOG;gBAED,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,OAAO,GAAG;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE;CAyBnG;AAED,qGAAqG;AACrG,qBAAa,yBAA0B,SAAQ,UAAU;IACvD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBAGzB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAyBxC;AAED,eAAO,MAAM,8BAA8B,8IAKjC,CAAC;AAEX,MAAM,MAAM,0BAA0B,GAAG,OAAO,8BAA8B,CAAC,MAAM,CAAC,CAAC;AAIvF;;;;;;;;;GASG;AACH,MAAM,MAAM,qBAAqB,GAC7B,kBAAkB,GAClB,6BAA6B,GAC7B,yBAAyB,GACzB,uBAAuB,GACvB,kBAAkB,GAClB,+BAA+B,GAC/B,uBAAuB,GACvB,mBAAmB,GACnB,qBAAqB,GACrB,mBAAmB,GACnB,uBAAuB,GACvB,uBAAuB,GACvB,cAAc,GACd,qBAAqB,GACrB,gBAAgB,GAChB,qBAAqB,GACrB,eAAe,GACf,eAAe,GACf,eAAe,GACf,gBAAgB,GAChB,eAAe,GACf,mBAAmB,GACnB,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,qBAAa,iBAAkB,SAAQ,WAAW;IAChD,QAAQ,CAAC,IAAI,EAAG,cAAc,CAAU;IACxC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,GAAG,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,qBAAqB,CAAC;gBAG7C,OAAO,EAAE,MAAM,EACf,IAAI,EAAE;QACJ,IAAI,EAAE,qBAAqB,CAAC;QAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,GAAG,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACvB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,qBAAqB,CAAC;QACtC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;KACjB;IAiBM,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAgB3C;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,mBAAoB,SAAQ,WAAW;IAClD,MAAM,CAAC,QAAQ,CAAC,YAAY,kCAAkC;IAC9D,MAAM,CAAC,QAAQ,CAAC,gBAAgB,gBAAgB;IAChD,MAAM,CAAC,QAAQ,CAAC,iBAAiB,SAAS;IAC1C,QAAQ,CAAC,IAAI,EAAG,iBAAiB,CAAU;IAC3C,6DAA6D;IAC7D,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,wFAAwF;IACxF,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,qDAAqD;IACrD,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;gBAEtB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM;CAgB5E;AAED;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GACtB,OAAO,GACP,cAAc,GACd,gBAAgB,GAChB,YAAY,GACZ,aAAa,GACb,eAAe,GACf,cAAc,GACd,gBAAgB,GAChB,gBAAgB,GAChB,mBAAmB,GACnB,QAAQ,GACR,kBAAkB,GAClB,iBAAiB,CAAC;AAEtB;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,cAAc,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACrC,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAgCD;;;;;;;;;;;GAWG;AACH,qBAAa,mBAAoB,SAAQ,WAAW;IAClD,MAAM,CAAC,QAAQ,CAAC,YAAY,sBAAsB;IAClD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,UAAU;IAC1C,MAAM,CAAC,QAAQ,CAAC,iBAAiB,SAAS;IAC1C,QAAQ,CAAC,IAAI,EAAG,kBAAkB,CAAU;IAC5C,mGAAmG;IACnG,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;IAC/B,uFAAuF;IACvF,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,4EAA4E;IAC5E,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,uFAAuF;IACvF,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;gBAEnB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM;IAuBlE,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAS3C;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,6BAA8B,SAAQ,WAAW;IAC5D,MAAM,CAAC,QAAQ,CAAC,YAAY,yBAAyB;IACrD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,UAAU;IAC1C,MAAM,CAAC,QAAQ,CAAC,iBAAiB,SAAS;IAC1C,QAAQ,CAAC,IAAI,EAAG,4BAA4B,CAAU;IACtD,oFAAoF;IACpF,QAAQ,CAAC,SAAS,EAAG,UAAU,CAAU;IACzC,kFAAkF;IAClF,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,8EAA8E;IAC9E,QAAQ,CAAC,MAAM,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACjE,2FAA2F;IAC3F,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;gBAGrC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,UAAU,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAA;KAAE;IAexF,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAS3C;AA4BD,yGAAyG;AACzG,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,WAAW,CAM1D;AAED,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,eAAe,CAElE;AAED,gDAAgD;AAChD,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,eAAe,CAElE;AAED,4DAA4D;AAC5D,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,yBAAyB,CAEtF;AAED,oEAAoE;AACpE,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,WAAW,GAAG;IAAE,IAAI,EAAE,0BAA0B,CAAA;CAAE,CAE5G;AAED,+EAA+E;AAC/E,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,WAAW,GAAG;IAAE,IAAI,EAAE,4BAA4B,CAAA;CAAE,CAEhH;AAED,+EAA+E;AAC/E,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,WAAW,GAAG;IAAE,IAAI,EAAE,4BAA4B,CAAA;CAAE,CAEhH;AAED,iFAAiF;AACjF,wBAAgB,kCAAkC,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,WAAW,GAAG;IAAE,IAAI,EAAE,qCAAqC,CAAA;CAAE,CAEjI;AAED,8CAA8C;AAC9C,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,YAAY,CAE5D;AAED,oGAAoG;AACpG,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,kBAAkB,CAEnE;AAED,0CAA0C;AAC1C,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,QAAQ,CAEpD;AAED,6CAA6C;AAC7C,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,YAAY,CAE5D;AAED,2CAA2C;AAC3C,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,UAAU,CAExD;AAED,kDAAkD;AAClD,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,iBAAiB,CAEhE;AAED,oDAAoD;AACpD,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,mBAAmB,CAE1E;AAED,8FAA8F;AAC9F,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,mBAAmB,CAErE;AAED,4GAA4G;AAC5G,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,6BAA6B,CAEzF;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,GAAG,SAAS,CAEtE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAU1D"}
|