cxgrd 0.1.1 → 0.1.4
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/auth/audit-usage.js +34 -21
- package/dist/auth/audit-usage.js.map +1 -1
- package/dist/auth/auth-session.d.ts.map +1 -1
- package/dist/auth/auth-session.js +50 -32
- package/dist/auth/auth-session.js.map +1 -1
- package/dist/auth/auth-store.js +22 -16
- package/dist/auth/auth-store.js.map +1 -1
- package/dist/auth/entitlements.js +35 -22
- package/dist/auth/entitlements.js.map +1 -1
- package/dist/auth/open-browser.js +6 -3
- package/dist/auth/open-browser.js.map +1 -1
- package/dist/auth/plans.js +13 -6
- package/dist/auth/plans.js.map +1 -1
- package/dist/auth/plans.test.js +23 -18
- package/dist/auth/plans.test.js.map +1 -1
- package/dist/cg-directory.js +40 -35
- package/dist/cg-directory.js.map +1 -1
- package/dist/check/check-runner.js +16 -13
- package/dist/check/check-runner.js.map +1 -1
- package/dist/check/compiler-service.js +22 -19
- package/dist/check/compiler-service.js.map +1 -1
- package/dist/check/parsers/cargo.js +4 -1
- package/dist/check/parsers/cargo.js.map +1 -1
- package/dist/check/parsers/parsers.test.js +30 -25
- package/dist/check/parsers/parsers.test.js.map +1 -1
- package/dist/check/parsers/pyright.js +4 -1
- package/dist/check/parsers/pyright.js.map +1 -1
- package/dist/check/parsers/tsc-cli.js +4 -1
- package/dist/check/parsers/tsc-cli.js.map +1 -1
- package/dist/check/project-tooling.js +23 -16
- package/dist/check/project-tooling.js.map +1 -1
- package/dist/check/run-command.js +9 -5
- package/dist/check/run-command.js.map +1 -1
- package/dist/check/scope.js +14 -8
- package/dist/check/scope.js.map +1 -1
- package/dist/check/scope.test.js +15 -10
- package/dist/check/scope.test.js.map +1 -1
- package/dist/check/strict-mode.js +6 -2
- package/dist/check/strict-mode.js.map +1 -1
- package/dist/check/strict-mode.test.js +19 -14
- package/dist/check/strict-mode.test.js.map +1 -1
- package/dist/check/structural-checks.js +4 -1
- package/dist/check/structural-checks.js.map +1 -1
- package/dist/check/types.js +2 -1
- package/dist/check/verifiers/python.js +11 -8
- package/dist/check/verifiers/python.js.map +1 -1
- package/dist/check/verifiers/rust.js +11 -8
- package/dist/check/verifiers/rust.js.map +1 -1
- package/dist/check/verifiers/typescript.js +24 -18
- package/dist/check/verifiers/typescript.js.map +1 -1
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +64 -34
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/check.js +49 -43
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/doctor.js +33 -27
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init-hooks.js +34 -31
- package/dist/commands/init-hooks.js.map +1 -1
- package/dist/commands/input.js +46 -43
- package/dist/commands/input.js.map +1 -1
- package/dist/commands/prompt.js +40 -34
- package/dist/commands/prompt.js.map +1 -1
- package/dist/commands/scan.js +49 -43
- package/dist/commands/scan.js.map +1 -1
- package/dist/commands/watch.js +20 -17
- package/dist/commands/watch.js.map +1 -1
- package/dist/config/env.js +21 -16
- package/dist/config/env.js.map +1 -1
- package/dist/graph.js +38 -36
- package/dist/graph.js.map +1 -1
- package/dist/index.js +32 -27
- package/dist/index.js.map +1 -1
- package/dist/memory/pattern-analyzer.js +6 -2
- package/dist/memory/pattern-analyzer.js.map +1 -1
- package/dist/memory/repo-memory.js +10 -4
- package/dist/memory/repo-memory.js.map +1 -1
- package/dist/memory/types.js +2 -1
- package/dist/prompt/llm-client.js +10 -7
- package/dist/prompt/llm-client.js.map +1 -1
- package/dist/prompt/subgraph.js +10 -6
- package/dist/prompt/subgraph.js.map +1 -1
- package/dist/scanner.js +51 -49
- package/dist/scanner.js.map +1 -1
- package/dist/team/audit.js +10 -7
- package/dist/team/audit.js.map +1 -1
- package/dist/team/cloud-client.js +23 -17
- package/dist/team/cloud-client.js.map +1 -1
- package/dist/team/dev-store.js +34 -25
- package/dist/team/dev-store.js.map +1 -1
- package/dist/team/graph-sync.js +28 -20
- package/dist/team/graph-sync.js.map +1 -1
- package/dist/team/policy-cache.js +19 -14
- package/dist/team/policy-cache.js.map +1 -1
- package/dist/team/policy-engine.js +4 -1
- package/dist/team/policy-engine.js.map +1 -1
- package/dist/team/policy-engine.test.js +18 -13
- package/dist/team/policy-engine.test.js.map +1 -1
- package/dist/team/repo-identity.js +9 -6
- package/dist/team/repo-identity.js.map +1 -1
- package/dist/team/types.js +2 -1
- package/dist/toolchain/probe.js +23 -14
- package/dist/toolchain/probe.js.map +1 -1
- package/dist/toolchain/project-languages.js +20 -16
- package/dist/toolchain/project-languages.js.map +1 -1
- package/dist/toolchain/types.js +2 -1
- package/dist/utils/blast-radius-analyzer.js +7 -2
- package/dist/utils/blast-radius-analyzer.js.map +1 -1
- package/dist/utils/change-detector.js +8 -3
- package/dist/utils/change-detector.js.map +1 -1
- package/dist/utils/cli-formatter.js +34 -26
- package/dist/utils/cli-formatter.js.map +1 -1
- package/dist/utils/git-hook-manager.js +42 -34
- package/dist/utils/git-hook-manager.js.map +1 -1
- package/dist/utils/project-watcher.js +17 -12
- package/dist/utils/project-watcher.js.map +1 -1
- package/package.json +1 -2
package/dist/scanner.js
CHANGED
|
@@ -1,47 +1,48 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FileScanner = void 0;
|
|
4
|
+
const promises_1 = require("fs/promises");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
class FileScanner {
|
|
7
|
+
ignorePatterns = [
|
|
8
|
+
'node_modules',
|
|
9
|
+
'.git',
|
|
10
|
+
'dist',
|
|
11
|
+
'build',
|
|
12
|
+
'.next',
|
|
13
|
+
'.venv',
|
|
14
|
+
'__pycache__',
|
|
15
|
+
'target',
|
|
16
|
+
'.cg',
|
|
17
|
+
'.vscode',
|
|
18
|
+
'.idea',
|
|
19
|
+
'coverage',
|
|
20
|
+
"venv",
|
|
21
|
+
".env",
|
|
22
|
+
"env",
|
|
23
|
+
"site-packages",
|
|
24
|
+
];
|
|
25
|
+
languageMap = {
|
|
26
|
+
'.ts': 'typescript',
|
|
27
|
+
'.tsx': 'typescript',
|
|
28
|
+
'.js': 'javascript',
|
|
29
|
+
'.jsx': 'javascript',
|
|
30
|
+
'.py': 'python',
|
|
31
|
+
'.java': 'java',
|
|
32
|
+
'.cpp': 'cpp',
|
|
33
|
+
'.cc': 'cpp',
|
|
34
|
+
'.cxx': 'cpp',
|
|
35
|
+
'.h': 'cpp',
|
|
36
|
+
'.hpp': 'cpp',
|
|
37
|
+
'.cs': 'csharp',
|
|
38
|
+
'.rb': 'ruby',
|
|
39
|
+
'.go': 'go',
|
|
40
|
+
'.rs': 'rust',
|
|
41
|
+
'.sql': 'sql',
|
|
42
|
+
'.json': 'json',
|
|
43
|
+
'.yaml': 'yaml',
|
|
44
|
+
'.yml': 'yaml',
|
|
45
|
+
};
|
|
45
46
|
shouldIgnore(filePath) {
|
|
46
47
|
return this.ignorePatterns.some(pattern => {
|
|
47
48
|
const parts = filePath.replace(/\\/g, '/').split('/');
|
|
@@ -52,10 +53,10 @@ export class FileScanner {
|
|
|
52
53
|
const files = [];
|
|
53
54
|
const walkDir = async (dir) => {
|
|
54
55
|
try {
|
|
55
|
-
const entries = await readdir(dir, { withFileTypes: true });
|
|
56
|
+
const entries = await (0, promises_1.readdir)(dir, { withFileTypes: true });
|
|
56
57
|
for (const entry of entries) {
|
|
57
|
-
const fullPath = join(dir, entry.name);
|
|
58
|
-
const relativePath = relative(rootPath, fullPath);
|
|
58
|
+
const fullPath = (0, path_1.join)(dir, entry.name);
|
|
59
|
+
const relativePath = (0, path_1.relative)(rootPath, fullPath);
|
|
59
60
|
if (this.shouldIgnore(relativePath)) {
|
|
60
61
|
continue;
|
|
61
62
|
}
|
|
@@ -63,11 +64,11 @@ export class FileScanner {
|
|
|
63
64
|
await walkDir(fullPath);
|
|
64
65
|
}
|
|
65
66
|
else if (entry.isFile()) {
|
|
66
|
-
const ext = extname(entry.name).toLowerCase();
|
|
67
|
+
const ext = (0, path_1.extname)(entry.name).toLowerCase();
|
|
67
68
|
const language = this.languageMap[ext];
|
|
68
69
|
if (language) {
|
|
69
70
|
try {
|
|
70
|
-
const content = await readFile(fullPath, 'utf-8');
|
|
71
|
+
const content = await (0, promises_1.readFile)(fullPath, 'utf-8');
|
|
71
72
|
files.push({
|
|
72
73
|
path: relativePath.replace(/\\/g, '/'),
|
|
73
74
|
content,
|
|
@@ -89,4 +90,5 @@ export class FileScanner {
|
|
|
89
90
|
return files;
|
|
90
91
|
}
|
|
91
92
|
}
|
|
93
|
+
exports.FileScanner = FileScanner;
|
|
92
94
|
//# sourceMappingURL=scanner.js.map
|
package/dist/scanner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"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"}
|
package/dist/team/audit.js
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.recordAuditEventIfTeam = recordAuditEventIfTeam;
|
|
4
|
+
const plans_1 = require("../auth/plans");
|
|
5
|
+
const cloud_client_1 = require("./cloud-client");
|
|
6
|
+
const repo_identity_1 = require("./repo-identity");
|
|
7
|
+
async function recordAuditEventIfTeam(session, projectRoot, partial) {
|
|
5
8
|
if (!session?.orgId)
|
|
6
9
|
return;
|
|
7
|
-
if (!planIncludesFeature(session.plan, 'team_cloud'))
|
|
10
|
+
if (!(0, plans_1.planIncludesFeature)(session.plan, 'team_cloud'))
|
|
8
11
|
return;
|
|
9
|
-
const identity = resolveRepoIdentity(projectRoot);
|
|
10
|
-
await postAuditEvent(session, {
|
|
12
|
+
const identity = (0, repo_identity_1.resolveRepoIdentity)(projectRoot);
|
|
13
|
+
await (0, cloud_client_1.postAuditEvent)(session, {
|
|
11
14
|
...partial,
|
|
12
15
|
repoId: identity.repoId,
|
|
13
16
|
gitRef: identity.gitRef,
|
package/dist/team/audit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/team/audit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/team/audit.ts"],"names":[],"mappings":";;AAMA,wDAcC;AAnBD,yCAAoD;AAEpD,iDAAgD;AAChD,mDAAsD;AAE/C,KAAK,UAAU,sBAAsB,CAC1C,OAA6B,EAC7B,WAAmB,EACnB,OAAqD;IAErD,IAAI,CAAC,OAAO,EAAE,KAAK;QAAE,OAAO;IAC5B,IAAI,CAAC,IAAA,2BAAmB,EAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC;QAAE,OAAO;IAE7D,MAAM,QAAQ,GAAG,IAAA,mCAAmB,EAAC,WAAW,CAAC,CAAC;IAClD,MAAM,IAAA,6BAAc,EAAC,OAAO,EAAE;QAC5B,GAAG,OAAO;QACV,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;KACxB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.pushGraph = pushGraph;
|
|
4
|
+
exports.pullGraph = pullGraph;
|
|
5
|
+
exports.fetchOrgPolicy = fetchOrgPolicy;
|
|
6
|
+
exports.postAuditEvent = postAuditEvent;
|
|
7
|
+
const env_1 = require("../config/env");
|
|
8
|
+
const dev_store_1 = require("./dev-store");
|
|
3
9
|
function apiBase() {
|
|
4
|
-
return envString('CXGRD_AUTH_BASE_URL', 'https://cxgrd.com').replace(/\/$/, '');
|
|
10
|
+
return (0, env_1.envString)('CXGRD_AUTH_BASE_URL', 'https://cxgrd.com').replace(/\/$/, '');
|
|
5
11
|
}
|
|
6
12
|
function authHeaders(token) {
|
|
7
13
|
return {
|
|
@@ -17,15 +23,15 @@ async function apiFetch(path, token, init) {
|
|
|
17
23
|
});
|
|
18
24
|
}
|
|
19
25
|
function useDevStore(session) {
|
|
20
|
-
return isDevCloudEnabled() || session.source === 'dev_override';
|
|
26
|
+
return (0, dev_store_1.isDevCloudEnabled)() || session.source === 'dev_override';
|
|
21
27
|
}
|
|
22
|
-
|
|
28
|
+
async function pushGraph(session, bundle) {
|
|
23
29
|
const orgId = session.orgId;
|
|
24
30
|
if (!orgId) {
|
|
25
31
|
throw new Error('No organization on this account. Team features require an org.');
|
|
26
32
|
}
|
|
27
33
|
if (useDevStore(session)) {
|
|
28
|
-
await devPutGraph(orgId, bundle);
|
|
34
|
+
await (0, dev_store_1.devPutGraph)(orgId, bundle);
|
|
29
35
|
return;
|
|
30
36
|
}
|
|
31
37
|
const res = await apiFetch(`/api/orgs/${orgId}/graphs`, session.token, {
|
|
@@ -33,7 +39,7 @@ export async function pushGraph(session, bundle) {
|
|
|
33
39
|
body: JSON.stringify(bundle),
|
|
34
40
|
});
|
|
35
41
|
if (res.status === 404 || res.status === 501) {
|
|
36
|
-
await devPutGraph(orgId, bundle);
|
|
42
|
+
await (0, dev_store_1.devPutGraph)(orgId, bundle);
|
|
37
43
|
return;
|
|
38
44
|
}
|
|
39
45
|
if (!res.ok) {
|
|
@@ -41,20 +47,20 @@ export async function pushGraph(session, bundle) {
|
|
|
41
47
|
throw new Error(`Graph push failed (${res.status}): ${body || res.statusText}`);
|
|
42
48
|
}
|
|
43
49
|
}
|
|
44
|
-
|
|
50
|
+
async function pullGraph(session, repoId, gitRef) {
|
|
45
51
|
const orgId = session.orgId;
|
|
46
52
|
if (!orgId) {
|
|
47
53
|
throw new Error('No organization on this account.');
|
|
48
54
|
}
|
|
49
55
|
if (useDevStore(session)) {
|
|
50
|
-
return devGetGraph(orgId, repoId, gitRef);
|
|
56
|
+
return (0, dev_store_1.devGetGraph)(orgId, repoId, gitRef);
|
|
51
57
|
}
|
|
52
58
|
const res = await apiFetch(`/api/orgs/${orgId}/graphs?repoId=${encodeURIComponent(repoId)}&ref=${encodeURIComponent(gitRef)}`, session.token, { method: 'GET' });
|
|
53
59
|
if (res.status === 404) {
|
|
54
|
-
return devGetGraph(orgId, repoId, gitRef);
|
|
60
|
+
return (0, dev_store_1.devGetGraph)(orgId, repoId, gitRef);
|
|
55
61
|
}
|
|
56
62
|
if (res.status === 501) {
|
|
57
|
-
return devGetGraph(orgId, repoId, gitRef);
|
|
63
|
+
return (0, dev_store_1.devGetGraph)(orgId, repoId, gitRef);
|
|
58
64
|
}
|
|
59
65
|
if (!res.ok) {
|
|
60
66
|
const body = await res.text().catch(() => '');
|
|
@@ -62,18 +68,18 @@ export async function pullGraph(session, repoId, gitRef) {
|
|
|
62
68
|
}
|
|
63
69
|
return (await res.json());
|
|
64
70
|
}
|
|
65
|
-
|
|
71
|
+
async function fetchOrgPolicy(session) {
|
|
66
72
|
const orgId = session.orgId;
|
|
67
73
|
if (!orgId) {
|
|
68
74
|
throw new Error('No organization on this account.');
|
|
69
75
|
}
|
|
70
76
|
if (useDevStore(session)) {
|
|
71
|
-
const policy = await devGetPolicy(orgId);
|
|
77
|
+
const policy = await (0, dev_store_1.devGetPolicy)(orgId);
|
|
72
78
|
return policy;
|
|
73
79
|
}
|
|
74
80
|
const res = await apiFetch(`/api/orgs/${orgId}/policies`, session.token, { method: 'GET' });
|
|
75
81
|
if (res.status === 404 || res.status === 501) {
|
|
76
|
-
const policy = await devGetPolicy(orgId);
|
|
82
|
+
const policy = await (0, dev_store_1.devGetPolicy)(orgId);
|
|
77
83
|
return policy;
|
|
78
84
|
}
|
|
79
85
|
if (!res.ok) {
|
|
@@ -82,12 +88,12 @@ export async function fetchOrgPolicy(session) {
|
|
|
82
88
|
}
|
|
83
89
|
return (await res.json());
|
|
84
90
|
}
|
|
85
|
-
|
|
91
|
+
async function postAuditEvent(session, payload) {
|
|
86
92
|
const orgId = session.orgId;
|
|
87
93
|
if (!orgId)
|
|
88
94
|
return;
|
|
89
95
|
if (useDevStore(session)) {
|
|
90
|
-
await devAppendEvent(orgId, payload);
|
|
96
|
+
await (0, dev_store_1.devAppendEvent)(orgId, payload);
|
|
91
97
|
return;
|
|
92
98
|
}
|
|
93
99
|
const res = await apiFetch(`/api/orgs/${orgId}/events`, session.token, {
|
|
@@ -95,7 +101,7 @@ export async function postAuditEvent(session, payload) {
|
|
|
95
101
|
body: JSON.stringify(payload),
|
|
96
102
|
});
|
|
97
103
|
if (res.status === 404 || res.status === 501) {
|
|
98
|
-
await devAppendEvent(orgId, payload);
|
|
104
|
+
await (0, dev_store_1.devAppendEvent)(orgId, payload);
|
|
99
105
|
return;
|
|
100
106
|
}
|
|
101
107
|
if (!res.ok) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-client.js","sourceRoot":"","sources":["../../src/team/cloud-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cloud-client.js","sourceRoot":"","sources":["../../src/team/cloud-client.ts"],"names":[],"mappings":"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"}
|
package/dist/team/dev-store.js
CHANGED
|
@@ -1,51 +1,60 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isDevCloudEnabled = isDevCloudEnabled;
|
|
4
|
+
exports.devPutGraph = devPutGraph;
|
|
5
|
+
exports.devGetGraph = devGetGraph;
|
|
6
|
+
exports.devGetPolicy = devGetPolicy;
|
|
7
|
+
exports.devPutPolicy = devPutPolicy;
|
|
8
|
+
exports.devAppendEvent = devAppendEvent;
|
|
9
|
+
exports.getDevCloudRoot = getDevCloudRoot;
|
|
10
|
+
const promises_1 = require("fs/promises");
|
|
11
|
+
const fs_1 = require("fs");
|
|
12
|
+
const os_1 = require("os");
|
|
13
|
+
const path_1 = require("path");
|
|
14
|
+
const DEV_ROOT = (0, path_1.join)((0, os_1.homedir)(), '.cg', 'dev-cloud');
|
|
15
|
+
function isDevCloudEnabled() {
|
|
7
16
|
const v = process.env.CXGRD_DEV_CLOUD?.trim().toLowerCase();
|
|
8
17
|
return v === '1' || v === 'true' || v === 'yes';
|
|
9
18
|
}
|
|
10
19
|
function graphPath(orgId, repoId, gitRef) {
|
|
11
20
|
const safeRef = gitRef.replace(/[^a-zA-Z0-9._-]/g, '_');
|
|
12
|
-
return join(DEV_ROOT, 'orgs', orgId, 'graphs', repoId, `${safeRef}.json`);
|
|
21
|
+
return (0, path_1.join)(DEV_ROOT, 'orgs', orgId, 'graphs', repoId, `${safeRef}.json`);
|
|
13
22
|
}
|
|
14
23
|
function policyPath(orgId) {
|
|
15
|
-
return join(DEV_ROOT, 'orgs', orgId, 'policy.json');
|
|
24
|
+
return (0, path_1.join)(DEV_ROOT, 'orgs', orgId, 'policy.json');
|
|
16
25
|
}
|
|
17
26
|
function eventsPath(orgId) {
|
|
18
|
-
return join(DEV_ROOT, 'orgs', orgId, 'events.jsonl');
|
|
27
|
+
return (0, path_1.join)(DEV_ROOT, 'orgs', orgId, 'events.jsonl');
|
|
19
28
|
}
|
|
20
|
-
|
|
29
|
+
async function devPutGraph(orgId, bundle) {
|
|
21
30
|
const path = graphPath(orgId, bundle.repoId, bundle.gitRef);
|
|
22
|
-
await mkdir(join(path, '..'), { recursive: true });
|
|
23
|
-
await writeFile(path, JSON.stringify(bundle, null, 2), 'utf-8');
|
|
31
|
+
await (0, promises_1.mkdir)((0, path_1.join)(path, '..'), { recursive: true });
|
|
32
|
+
await (0, promises_1.writeFile)(path, JSON.stringify(bundle, null, 2), 'utf-8');
|
|
24
33
|
}
|
|
25
|
-
|
|
34
|
+
async function devGetGraph(orgId, repoId, gitRef) {
|
|
26
35
|
const path = graphPath(orgId, repoId, gitRef);
|
|
27
|
-
if (!existsSync(path))
|
|
36
|
+
if (!(0, fs_1.existsSync)(path))
|
|
28
37
|
return null;
|
|
29
|
-
const raw = await readFile(path, 'utf-8');
|
|
38
|
+
const raw = await (0, promises_1.readFile)(path, 'utf-8');
|
|
30
39
|
return JSON.parse(raw);
|
|
31
40
|
}
|
|
32
|
-
|
|
41
|
+
async function devGetPolicy(orgId) {
|
|
33
42
|
const path = policyPath(orgId);
|
|
34
|
-
if (!existsSync(path)) {
|
|
43
|
+
if (!(0, fs_1.existsSync)(path)) {
|
|
35
44
|
return defaultDevPolicy(orgId);
|
|
36
45
|
}
|
|
37
|
-
const raw = await readFile(path, 'utf-8');
|
|
46
|
+
const raw = await (0, promises_1.readFile)(path, 'utf-8');
|
|
38
47
|
return JSON.parse(raw);
|
|
39
48
|
}
|
|
40
|
-
|
|
49
|
+
async function devPutPolicy(orgId, policy) {
|
|
41
50
|
const path = policyPath(orgId);
|
|
42
|
-
await mkdir(join(path, '..'), { recursive: true });
|
|
43
|
-
await writeFile(path, JSON.stringify(policy, null, 2), 'utf-8');
|
|
51
|
+
await (0, promises_1.mkdir)((0, path_1.join)(path, '..'), { recursive: true });
|
|
52
|
+
await (0, promises_1.writeFile)(path, JSON.stringify(policy, null, 2), 'utf-8');
|
|
44
53
|
}
|
|
45
|
-
|
|
54
|
+
async function devAppendEvent(orgId, payload) {
|
|
46
55
|
const path = eventsPath(orgId);
|
|
47
|
-
await mkdir(join(path, '..'), { recursive: true });
|
|
48
|
-
await appendFile(path, `${JSON.stringify({ ...payload, recordedAt: Date.now() })}\n`, 'utf-8');
|
|
56
|
+
await (0, promises_1.mkdir)((0, path_1.join)(path, '..'), { recursive: true });
|
|
57
|
+
await (0, promises_1.appendFile)(path, `${JSON.stringify({ ...payload, recordedAt: Date.now() })}\n`, 'utf-8');
|
|
49
58
|
}
|
|
50
59
|
function defaultDevPolicy(orgId) {
|
|
51
60
|
return {
|
|
@@ -63,7 +72,7 @@ function defaultDevPolicy(orgId) {
|
|
|
63
72
|
},
|
|
64
73
|
};
|
|
65
74
|
}
|
|
66
|
-
|
|
75
|
+
function getDevCloudRoot() {
|
|
67
76
|
return DEV_ROOT;
|
|
68
77
|
}
|
|
69
78
|
//# sourceMappingURL=dev-store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-store.js","sourceRoot":"","sources":["../../src/team/dev-store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dev-store.js","sourceRoot":"","sources":["../../src/team/dev-store.ts"],"names":[],"mappings":";;AAQA,8CAGC;AAeD,kCAIC;AAED,kCASC;AAED,oCAOC;AAED,oCAIC;AAED,wCAIC;AAmBD,0CAEC;AAnFD,0CAAqE;AACrE,2BAAgC;AAChC,2BAA6B;AAC7B,+BAA4B;AAG5B,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;AAErD,SAAgB,iBAAiB;IAC/B,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5D,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,KAAK,CAAC;AAClD,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,MAAc,EAAE,MAAc;IAC9D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;IACxD,OAAO,IAAA,WAAI,EAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,OAAO,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,IAAA,WAAI,EAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,IAAA,WAAI,EAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;AACvD,CAAC;AAEM,KAAK,UAAU,WAAW,CAAC,KAAa,EAAE,MAAmB;IAClE,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,IAAA,gBAAK,EAAC,IAAA,WAAI,EAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,MAAM,IAAA,oBAAS,EAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAClE,CAAC;AAEM,KAAK,UAAU,WAAW,CAC/B,KAAa,EACb,MAAc,EACd,MAAc;IAEd,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,IAAI,CAAC,IAAA,eAAU,EAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,GAAG,GAAG,MAAM,IAAA,mBAAQ,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,CAAC;AACxC,CAAC;AAEM,KAAK,UAAU,YAAY,CAAC,KAAa;IAC9C,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,CAAC,IAAA,eAAU,EAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,IAAA,mBAAQ,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAsB,CAAC;AAC9C,CAAC;AAEM,KAAK,UAAU,YAAY,CAAC,KAAa,EAAE,MAAyB;IACzE,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,IAAA,gBAAK,EAAC,IAAA,WAAI,EAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,MAAM,IAAA,oBAAS,EAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAClE,CAAC;AAEM,KAAK,UAAU,cAAc,CAAC,KAAa,EAAE,OAA0B;IAC5E,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,IAAA,gBAAK,EAAC,IAAA,WAAI,EAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,MAAM,IAAA,qBAAU,EAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACjG,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACrC,OAAO;QACL,OAAO,EAAE,CAAC;QACV,KAAK;QACL,qBAAqB,EAAE,GAAG;QAC1B,KAAK,EAAE;YACL,MAAM,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,iBAAiB,EAAE,CAAC,UAAU,CAAC,EAAE;YAC/D,IAAI,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,iBAAiB,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE;YACrE,KAAK,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,iBAAiB,EAAE,EAAE,EAAE;SACtD;QACD,KAAK,EAAE;YACL,uBAAuB,EAAE,EAAE;YAC3B,gBAAgB,EAAE,KAAK;SACxB;KACF,CAAC;AACJ,CAAC;AAED,SAAgB,eAAe;IAC7B,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/dist/team/graph-sync.js
CHANGED
|
@@ -1,13 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildBundleFromCg = buildBundleFromCg;
|
|
4
|
+
exports.applyBundleToCg = applyBundleToCg;
|
|
5
|
+
exports.readSyncMeta = readSyncMeta;
|
|
6
|
+
exports.writeSyncMeta = writeSyncMeta;
|
|
7
|
+
exports.syncPush = syncPush;
|
|
8
|
+
exports.syncPull = syncPull;
|
|
9
|
+
const path_1 = require("path");
|
|
10
|
+
const promises_1 = require("fs/promises");
|
|
11
|
+
const fs_1 = require("fs");
|
|
12
|
+
const repo_identity_1 = require("./repo-identity");
|
|
13
|
+
const cloud_client_1 = require("./cloud-client");
|
|
14
|
+
async function buildBundleFromCg(cgDir, projectRoot, session) {
|
|
7
15
|
const graph = await cgDir.readGraph();
|
|
8
16
|
if (!graph)
|
|
9
17
|
return null;
|
|
10
|
-
const identity = resolveRepoIdentity(projectRoot);
|
|
18
|
+
const identity = (0, repo_identity_1.resolveRepoIdentity)(projectRoot);
|
|
11
19
|
return {
|
|
12
20
|
version: 1,
|
|
13
21
|
repoId: identity.repoId,
|
|
@@ -21,7 +29,7 @@ export async function buildBundleFromCg(cgDir, projectRoot, session) {
|
|
|
21
29
|
patterns: await cgDir.readPatterns(),
|
|
22
30
|
};
|
|
23
31
|
}
|
|
24
|
-
|
|
32
|
+
async function applyBundleToCg(cgDir, bundle) {
|
|
25
33
|
await cgDir.writeGraph(bundle.graph);
|
|
26
34
|
await cgDir.writeSymbols(bundle.symbols);
|
|
27
35
|
if (bundle.arch)
|
|
@@ -31,27 +39,27 @@ export async function applyBundleToCg(cgDir, bundle) {
|
|
|
31
39
|
if (bundle.patterns)
|
|
32
40
|
await cgDir.writePatterns(bundle.patterns);
|
|
33
41
|
}
|
|
34
|
-
|
|
35
|
-
const path = join(cgDir.getPath(), 'sync-meta.json');
|
|
36
|
-
if (!existsSync(path))
|
|
42
|
+
async function readSyncMeta(cgDir) {
|
|
43
|
+
const path = (0, path_1.join)(cgDir.getPath(), 'sync-meta.json');
|
|
44
|
+
if (!(0, fs_1.existsSync)(path))
|
|
37
45
|
return null;
|
|
38
46
|
try {
|
|
39
|
-
return JSON.parse(await readFile(path, 'utf-8'));
|
|
47
|
+
return JSON.parse(await (0, promises_1.readFile)(path, 'utf-8'));
|
|
40
48
|
}
|
|
41
49
|
catch {
|
|
42
50
|
return null;
|
|
43
51
|
}
|
|
44
52
|
}
|
|
45
|
-
|
|
46
|
-
const path = join(cgDir.getPath(), 'sync-meta.json');
|
|
47
|
-
await writeFile(path, JSON.stringify(meta, null, 2), 'utf-8');
|
|
53
|
+
async function writeSyncMeta(cgDir, meta) {
|
|
54
|
+
const path = (0, path_1.join)(cgDir.getPath(), 'sync-meta.json');
|
|
55
|
+
await (0, promises_1.writeFile)(path, JSON.stringify(meta, null, 2), 'utf-8');
|
|
48
56
|
}
|
|
49
|
-
|
|
57
|
+
async function syncPush(cgDir, projectRoot, session) {
|
|
50
58
|
const bundle = await buildBundleFromCg(cgDir, projectRoot, session);
|
|
51
59
|
if (!bundle) {
|
|
52
60
|
throw new Error('No local graph. Run cxgrd scan first.');
|
|
53
61
|
}
|
|
54
|
-
await pushGraph(session, bundle);
|
|
62
|
+
await (0, cloud_client_1.pushGraph)(session, bundle);
|
|
55
63
|
await writeSyncMeta(cgDir, {
|
|
56
64
|
repoId: bundle.repoId,
|
|
57
65
|
gitRef: bundle.gitRef,
|
|
@@ -60,9 +68,9 @@ export async function syncPush(cgDir, projectRoot, session) {
|
|
|
60
68
|
});
|
|
61
69
|
return bundle;
|
|
62
70
|
}
|
|
63
|
-
|
|
64
|
-
const identity = resolveRepoIdentity(projectRoot);
|
|
65
|
-
const remote = await pullGraph(session, identity.repoId, identity.gitRef);
|
|
71
|
+
async function syncPull(cgDir, projectRoot, session) {
|
|
72
|
+
const identity = (0, repo_identity_1.resolveRepoIdentity)(projectRoot);
|
|
73
|
+
const remote = await (0, cloud_client_1.pullGraph)(session, identity.repoId, identity.gitRef);
|
|
66
74
|
if (!remote) {
|
|
67
75
|
return null;
|
|
68
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-sync.js","sourceRoot":"","sources":["../../src/team/graph-sync.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graph-sync.js","sourceRoot":"","sources":["../../src/team/graph-sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.refreshOrgPolicyCache = refreshOrgPolicyCache;
|
|
4
|
+
exports.readCachedOrgPolicy = readCachedOrgPolicy;
|
|
5
|
+
exports.getOrgPolicy = getOrgPolicy;
|
|
6
|
+
const promises_1 = require("fs/promises");
|
|
7
|
+
const path_1 = require("path");
|
|
8
|
+
const fs_1 = require("fs");
|
|
9
|
+
const cloud_client_1 = require("./cloud-client");
|
|
10
|
+
async function refreshOrgPolicyCache(cgDir, session) {
|
|
11
|
+
const policy = await (0, cloud_client_1.fetchOrgPolicy)(session);
|
|
12
|
+
const path = (0, path_1.join)(cgDir.getPath(), 'org-policy.json');
|
|
13
|
+
await (0, promises_1.mkdir)(cgDir.getPath(), { recursive: true });
|
|
14
|
+
await (0, promises_1.writeFile)(path, JSON.stringify(policy, null, 2), 'utf-8');
|
|
10
15
|
return policy;
|
|
11
16
|
}
|
|
12
|
-
|
|
13
|
-
const path = join(cgDir.getPath(), 'org-policy.json');
|
|
14
|
-
if (!existsSync(path))
|
|
17
|
+
async function readCachedOrgPolicy(cgDir) {
|
|
18
|
+
const path = (0, path_1.join)(cgDir.getPath(), 'org-policy.json');
|
|
19
|
+
if (!(0, fs_1.existsSync)(path))
|
|
15
20
|
return null;
|
|
16
21
|
try {
|
|
17
|
-
return JSON.parse(await readFile(path, 'utf-8'));
|
|
22
|
+
return JSON.parse(await (0, promises_1.readFile)(path, 'utf-8'));
|
|
18
23
|
}
|
|
19
24
|
catch {
|
|
20
25
|
return null;
|
|
21
26
|
}
|
|
22
27
|
}
|
|
23
|
-
|
|
28
|
+
async function getOrgPolicy(cgDir, session, refresh = false) {
|
|
24
29
|
if (!refresh) {
|
|
25
30
|
const cached = await readCachedOrgPolicy(cgDir);
|
|
26
31
|
if (cached)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-cache.js","sourceRoot":"","sources":["../../src/team/policy-cache.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"policy-cache.js","sourceRoot":"","sources":["../../src/team/policy-cache.ts"],"names":[],"mappings":";;AAQA,sDASC;AAED,kDAQC;AAED,oCAUC;AAvCD,0CAAyD;AACzD,+BAA4B;AAC5B,2BAAgC;AAGhC,iDAAgD;AAGzC,KAAK,UAAU,qBAAqB,CACzC,KAAkB,EAClB,OAAsB;IAEtB,MAAM,MAAM,GAAG,MAAM,IAAA,6BAAc,EAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,IAAA,WAAI,EAAC,KAAK,CAAC,OAAO,EAAE,EAAE,iBAAiB,CAAC,CAAC;IACtD,MAAM,IAAA,gBAAK,EAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,MAAM,IAAA,oBAAS,EAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAChE,OAAO,MAAM,CAAC;AAChB,CAAC;AAEM,KAAK,UAAU,mBAAmB,CAAC,KAAkB;IAC1D,MAAM,IAAI,GAAG,IAAA,WAAI,EAAC,KAAK,CAAC,OAAO,EAAE,EAAE,iBAAiB,CAAC,CAAC;IACtD,IAAI,CAAC,IAAA,eAAU,EAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,IAAA,mBAAQ,EAAC,IAAI,EAAE,OAAO,CAAC,CAAsB,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,YAAY,CAChC,KAAkB,EAClB,OAAsB,EACtB,OAAO,GAAG,KAAK;IAEf,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;IAC5B,CAAC;IACD,OAAO,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.evaluateOrgPolicy = evaluateOrgPolicy;
|
|
4
|
+
function evaluateOrgPolicy(riskScore, riskLevel, role, policy) {
|
|
2
5
|
const rolePolicy = policy.roles[role] || policy.roles.member;
|
|
3
6
|
const mergeThreshold = policy.merge.blockIfBlastRadiusAbove;
|
|
4
7
|
const roleThreshold = rolePolicy.maxBlastRadius;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-engine.js","sourceRoot":"","sources":["../../src/team/policy-engine.ts"],"names":[],"mappings":"AAEA,
|
|
1
|
+
{"version":3,"file":"policy-engine.js","sourceRoot":"","sources":["../../src/team/policy-engine.ts"],"names":[],"mappings":";;AAEA,8CA0CC;AA1CD,SAAgB,iBAAiB,CAC/B,SAAiB,EACjB,SAAiB,EACjB,IAAa,EACb,MAAyB;IAEzB,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;IAC7D,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC;IAC5D,MAAM,aAAa,GAAG,UAAU,CAAC,cAAc,CAAC;IAChD,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IAEnE,MAAM,eAAe,GAAG,SAAS,CAAC,WAAW,EAA4C,CAAC;IAE1F,IAAI,UAAU,CAAC,iBAAiB,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC3D,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,gDAAgD,eAAe,cAAc,IAAI,GAAG;YAC5F,SAAS;YACT,SAAS;YACT,aAAa,EAAE,kBAAkB;YACjC,IAAI;SACL,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,GAAG,kBAAkB,EAAE,CAAC;QACnC,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,sBAAsB,SAAS,0BAA0B,kBAAkB,WAAW,IAAI,GAAG;YACrG,SAAS;YACT,SAAS;YACT,aAAa,EAAE,kBAAkB;YACjC,IAAI;SACL,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,SAAS;QACT,SAAS;QACT,aAAa,EAAE,kBAAkB;QACjC,IAAI;KACL,CAAC;AACJ,CAAC"}
|