easyeda-mcp-pro 0.4.0 → 0.5.2
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/README.md +68 -24
- package/dist/bom-quality/adapter.d.ts +90 -0
- package/dist/bom-quality/adapter.js +295 -0
- package/dist/bom-quality/adapter.js.map +1 -0
- package/dist/bom-quality/index.d.ts +10 -0
- package/dist/bom-quality/index.js +9 -0
- package/dist/bom-quality/index.js.map +1 -0
- package/dist/bom-quality/quality.d.ts +28 -0
- package/dist/bom-quality/quality.js +179 -0
- package/dist/bom-quality/quality.js.map +1 -0
- package/dist/bom-quality/types.d.ts +94 -0
- package/dist/bom-quality/types.js +12 -0
- package/dist/bom-quality/types.js.map +1 -0
- package/dist/bridge/manager.d.ts +41 -0
- package/dist/bridge/manager.js +333 -51
- package/dist/bridge/manager.js.map +1 -1
- package/dist/bridge/protocol.d.ts +47 -1
- package/dist/bridge/protocol.js +42 -1
- package/dist/bridge/protocol.js.map +1 -1
- package/dist/bridge/types.d.ts +6 -0
- package/dist/bridge/types.js +6 -0
- package/dist/bridge/types.js.map +1 -1
- package/dist/catalog/errors.d.ts +49 -0
- package/dist/catalog/errors.js +60 -0
- package/dist/catalog/errors.js.map +1 -0
- package/dist/catalog/index.d.ts +15 -0
- package/dist/catalog/index.js +17 -0
- package/dist/catalog/index.js.map +1 -0
- package/dist/catalog/schema.d.ts +268 -0
- package/dist/catalog/schema.js +245 -0
- package/dist/catalog/schema.js.map +1 -0
- package/dist/catalog/starter.d.ts +159 -0
- package/dist/catalog/starter.js +579 -0
- package/dist/catalog/starter.js.map +1 -0
- package/dist/catalog/validation.d.ts +48 -0
- package/dist/catalog/validation.js +263 -0
- package/dist/catalog/validation.js.map +1 -0
- package/dist/circuit/circuit-ir.d.ts +460 -0
- package/dist/circuit/circuit-ir.js +292 -0
- package/dist/circuit/circuit-ir.js.map +1 -0
- package/dist/circuit/compiler.d.ts +55 -0
- package/dist/circuit/compiler.js +197 -0
- package/dist/circuit/compiler.js.map +1 -0
- package/dist/circuit/design-intent.d.ts +94 -0
- package/dist/circuit/design-intent.js +118 -0
- package/dist/circuit/design-intent.js.map +1 -0
- package/dist/circuit/errors.d.ts +50 -0
- package/dist/circuit/errors.js +61 -0
- package/dist/circuit/errors.js.map +1 -0
- package/dist/circuit/index.d.ts +17 -0
- package/dist/circuit/index.js +18 -0
- package/dist/circuit/index.js.map +1 -0
- package/dist/circuit/types.d.ts +186 -0
- package/dist/circuit/types.js +123 -0
- package/dist/circuit/types.js.map +1 -0
- package/dist/cli/auto-setup.d.ts +1 -8
- package/dist/cli/auto-setup.js +10 -178
- package/dist/cli/auto-setup.js.map +1 -1
- package/dist/cli/client-definitions.d.ts +34 -0
- package/dist/cli/client-definitions.js +194 -0
- package/dist/cli/client-definitions.js.map +1 -0
- package/dist/cli/local-setup.js +2 -2
- package/dist/cli/local-setup.js.map +1 -1
- package/dist/config/env.d.ts +6 -1
- package/dist/config/env.js +93 -5
- package/dist/config/env.js.map +1 -1
- package/dist/config/version.d.ts +1 -1
- package/dist/config/version.js +1 -1
- package/dist/export-manifest/errors.d.ts +55 -0
- package/dist/export-manifest/errors.js +69 -0
- package/dist/export-manifest/errors.js.map +1 -0
- package/dist/export-manifest/index.d.ts +10 -0
- package/dist/export-manifest/index.js +9 -0
- package/dist/export-manifest/index.js.map +1 -0
- package/dist/export-manifest/types.d.ts +170 -0
- package/dist/export-manifest/types.js +36 -0
- package/dist/export-manifest/types.js.map +1 -0
- package/dist/export-manifest/validation.d.ts +39 -0
- package/dist/export-manifest/validation.js +298 -0
- package/dist/export-manifest/validation.js.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/net-validation/errors.d.ts +89 -0
- package/dist/net-validation/errors.js +69 -0
- package/dist/net-validation/errors.js.map +1 -0
- package/dist/net-validation/fixtures.d.ts +38 -0
- package/dist/net-validation/fixtures.js +215 -0
- package/dist/net-validation/fixtures.js.map +1 -0
- package/dist/net-validation/index.d.ts +10 -0
- package/dist/net-validation/index.js +9 -0
- package/dist/net-validation/index.js.map +1 -0
- package/dist/net-validation/schema.d.ts +118 -0
- package/dist/net-validation/schema.js +140 -0
- package/dist/net-validation/schema.js.map +1 -0
- package/dist/net-validation/validation.d.ts +45 -0
- package/dist/net-validation/validation.js +369 -0
- package/dist/net-validation/validation.js.map +1 -0
- package/dist/pcb-constraints/errors.d.ts +39 -0
- package/dist/pcb-constraints/errors.js +133 -0
- package/dist/pcb-constraints/errors.js.map +1 -0
- package/dist/pcb-constraints/index.d.ts +9 -0
- package/dist/pcb-constraints/index.js +9 -0
- package/dist/pcb-constraints/index.js.map +1 -0
- package/dist/pcb-constraints/types.d.ts +102 -0
- package/dist/pcb-constraints/types.js +7 -0
- package/dist/pcb-constraints/types.js.map +1 -0
- package/dist/pcb-constraints/validation.d.ts +70 -0
- package/dist/pcb-constraints/validation.js +309 -0
- package/dist/pcb-constraints/validation.js.map +1 -0
- package/dist/server/factory.js +2 -0
- package/dist/server/factory.js.map +1 -1
- package/dist/server/transports/http.d.ts +20 -1
- package/dist/server/transports/http.js +156 -34
- package/dist/server/transports/http.js.map +1 -1
- package/dist/storage/database.d.ts +25 -0
- package/dist/storage/database.js +126 -51
- package/dist/storage/database.js.map +1 -1
- package/dist/tools/{L0_diagnostics.d.ts → L0_diagnostics_api.d.ts} +2 -2
- package/dist/tools/L0_diagnostics_api.js +152 -0
- package/dist/tools/L0_diagnostics_api.js.map +1 -0
- package/dist/tools/L0_diagnostics_core.d.ts +6 -0
- package/dist/tools/{L0_diagnostics.js → L0_diagnostics_core.js} +50 -124
- package/dist/tools/L0_diagnostics_core.js.map +1 -0
- package/dist/tools/L1_board.js +20 -4
- package/dist/tools/L1_board.js.map +1 -1
- package/dist/tools/{L1_bom.d.ts → L1_bom_core.d.ts} +2 -2
- package/dist/tools/{L1_bom.js → L1_bom_core.js} +21 -101
- package/dist/tools/L1_bom_core.js.map +1 -0
- package/dist/tools/{L1_schematic.d.ts → L1_bom_sourcing.d.ts} +2 -2
- package/dist/tools/L1_bom_sourcing.js +265 -0
- package/dist/tools/L1_bom_sourcing.js.map +1 -0
- package/dist/tools/L1_drc_erc.js +15 -3
- package/dist/tools/L1_drc_erc.js.map +1 -1
- package/dist/tools/L1_export.js +20 -4
- package/dist/tools/L1_export.js.map +1 -1
- package/dist/tools/L1_pcb_constraints.d.ts +6 -0
- package/dist/tools/L1_pcb_constraints.js +234 -0
- package/dist/tools/L1_pcb_constraints.js.map +1 -0
- package/dist/tools/L1_pcb_write.js +26 -12
- package/dist/tools/L1_pcb_write.js.map +1 -1
- package/dist/tools/L1_schematic_read.d.ts +6 -0
- package/dist/tools/{L1_schematic.js → L1_schematic_read.js} +125 -194
- package/dist/tools/L1_schematic_read.js.map +1 -0
- package/dist/tools/L1_schematic_write.d.ts +6 -0
- package/dist/tools/L1_schematic_write.js +516 -0
- package/dist/tools/L1_schematic_write.js.map +1 -0
- package/dist/tools/register.js +15 -7
- package/dist/tools/register.js.map +1 -1
- package/dist/tools/registry.d.ts +41 -7
- package/dist/tools/registry.js +95 -25
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/types.d.ts +16 -0
- package/dist/utils/logger.d.ts +1 -1
- package/dist/utils/logger.js +1 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/vendors/base-http-client.d.ts +48 -0
- package/dist/vendors/base-http-client.js +75 -0
- package/dist/vendors/base-http-client.js.map +1 -0
- package/dist/vendors/digikey/client.js +10 -19
- package/dist/vendors/digikey/client.js.map +1 -1
- package/dist/vendors/jlcpcb/client.js +41 -70
- package/dist/vendors/jlcpcb/client.js.map +1 -1
- package/dist/vendors/lcsc/client.js +5 -18
- package/dist/vendors/lcsc/client.js.map +1 -1
- package/dist/vendors/mouser/client.js +4 -12
- package/dist/vendors/mouser/client.js.map +1 -1
- package/easyeda-bridge-extension.eext +0 -0
- package/package.json +11 -10
- package/dist/tools/L0_diagnostics.js.map +0 -1
- package/dist/tools/L1_bom.js.map +0 -1
- package/dist/tools/L1_schematic.js.map +0 -1
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
2
|
+
import { dirname, join } from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import { execFile } from 'node:child_process';
|
|
5
|
+
// ── Constants ───────────────────────────────────────────────
|
|
6
|
+
export const SERVER_NAME = 'easyeda-mcp-pro';
|
|
7
|
+
export const NPX_COMMAND = 'npx';
|
|
8
|
+
export const NPX_ARGS = ['-y', `${SERVER_NAME}@latest`];
|
|
9
|
+
// ── Package / extension helpers ─────────────────────────────
|
|
10
|
+
export function resolvePackageRoot() {
|
|
11
|
+
return fileURLToPath(new URL('../../', import.meta.url));
|
|
12
|
+
}
|
|
13
|
+
export function getExtensionPath() {
|
|
14
|
+
return join(resolvePackageRoot(), 'easyeda-bridge-extension.eext');
|
|
15
|
+
}
|
|
16
|
+
// ── Path helpers ────────────────────────────────────────────
|
|
17
|
+
export function home() {
|
|
18
|
+
return process.env.HOME ?? process.env.USERPROFILE ?? '';
|
|
19
|
+
}
|
|
20
|
+
export function appData() {
|
|
21
|
+
return process.env.APPDATA ?? join(home(), 'AppData', 'Roaming');
|
|
22
|
+
}
|
|
23
|
+
// ── Client definitions ──────────────────────────────────────
|
|
24
|
+
export const CLIENTS = [
|
|
25
|
+
{
|
|
26
|
+
name: 'claude',
|
|
27
|
+
displayName: 'Claude Desktop',
|
|
28
|
+
serverKey: 'mcpServers',
|
|
29
|
+
configPaths: [
|
|
30
|
+
{ platform: 'win32', path: join(appData(), 'Claude', 'claude_desktop_config.json') },
|
|
31
|
+
{
|
|
32
|
+
platform: 'darwin',
|
|
33
|
+
path: join(home(), 'Library', 'Application Support', 'Claude', 'claude_desktop_config.json'),
|
|
34
|
+
},
|
|
35
|
+
{ platform: 'linux', path: join(home(), '.config', 'Claude', 'claude_desktop_config.json') },
|
|
36
|
+
],
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'cursor',
|
|
40
|
+
displayName: 'Cursor IDE',
|
|
41
|
+
serverKey: 'mcpServers',
|
|
42
|
+
configPaths: [{ platform: 'all', path: join(home(), '.cursor', 'mcp.json') }],
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'vscode',
|
|
46
|
+
displayName: 'VS Code (Copilot)',
|
|
47
|
+
serverKey: 'servers',
|
|
48
|
+
configPaths: [
|
|
49
|
+
{ platform: 'win32', path: join(appData(), 'Code', 'User', 'mcp.json') },
|
|
50
|
+
{
|
|
51
|
+
platform: 'darwin',
|
|
52
|
+
path: join(home(), 'Library', 'Application Support', 'Code', 'User', 'mcp.json'),
|
|
53
|
+
},
|
|
54
|
+
{ platform: 'linux', path: join(home(), '.config', 'Code', 'User', 'mcp.json') },
|
|
55
|
+
],
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
name: 'windsurf',
|
|
59
|
+
displayName: 'Windsurf (Codeium)',
|
|
60
|
+
serverKey: 'mcpServers',
|
|
61
|
+
configPaths: [
|
|
62
|
+
{ platform: 'all', path: join(home(), '.codeium', 'windsurf', 'mcp_config.json') },
|
|
63
|
+
],
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: 'cline',
|
|
67
|
+
displayName: 'Cline',
|
|
68
|
+
serverKey: 'mcpServers',
|
|
69
|
+
configPaths: [
|
|
70
|
+
{
|
|
71
|
+
platform: 'win32',
|
|
72
|
+
path: join(appData(), 'Code', 'User', 'globalStorage', 'saoudrizwan.claude-dev', 'settings', 'cline_mcp_settings.json'),
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
platform: 'darwin',
|
|
76
|
+
path: join(home(), 'Library', 'Application Support', 'Code', 'User', 'globalStorage', 'saoudrizwan.claude-dev', 'settings', 'cline_mcp_settings.json'),
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
platform: 'linux',
|
|
80
|
+
path: join(home(), '.config', 'Code', 'User', 'globalStorage', 'saoudrizwan.claude-dev', 'settings', 'cline_mcp_settings.json'),
|
|
81
|
+
},
|
|
82
|
+
],
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
name: 'gemini',
|
|
86
|
+
displayName: 'Gemini CLI / Antigravity',
|
|
87
|
+
serverKey: 'mcpServers',
|
|
88
|
+
configPaths: [{ platform: 'all', path: join(home(), '.gemini', 'settings.json') }],
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
name: 'zed',
|
|
92
|
+
displayName: 'Zed Editor',
|
|
93
|
+
serverKey: 'context_servers',
|
|
94
|
+
configPaths: [
|
|
95
|
+
{ platform: 'darwin', path: join(home(), '.config', 'zed', 'settings.json') },
|
|
96
|
+
{ platform: 'linux', path: join(home(), '.config', 'zed', 'settings.json') },
|
|
97
|
+
{ platform: 'win32', path: join(appData(), 'Zed', 'settings.json') },
|
|
98
|
+
],
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
name: 'amazonq',
|
|
102
|
+
displayName: 'Amazon Q Developer',
|
|
103
|
+
serverKey: 'mcpServers',
|
|
104
|
+
configPaths: [{ platform: 'all', path: join(home(), '.aws', 'amazonq', 'mcp.json') }],
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
name: 'continue',
|
|
108
|
+
displayName: 'Continue.dev',
|
|
109
|
+
serverKey: 'mcpServers',
|
|
110
|
+
configPaths: [{ platform: 'all', path: join(home(), '.continue', 'config.json') }],
|
|
111
|
+
},
|
|
112
|
+
];
|
|
113
|
+
// ── Detection ───────────────────────────────────────────────
|
|
114
|
+
export function findConfigPath(client) {
|
|
115
|
+
const platform = process.platform;
|
|
116
|
+
// First try to find an existing config file
|
|
117
|
+
for (const cp of client.configPaths) {
|
|
118
|
+
if (cp.platform === 'all' || cp.platform === platform) {
|
|
119
|
+
if (existsSync(cp.path))
|
|
120
|
+
return cp.path;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// If none exists, return the first matching platform path
|
|
124
|
+
for (const cp of client.configPaths) {
|
|
125
|
+
if (cp.platform === 'all' || cp.platform === platform) {
|
|
126
|
+
return cp.path;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
131
|
+
export function detectInstalledClients() {
|
|
132
|
+
return CLIENTS.filter((client) => {
|
|
133
|
+
const configPath = findConfigPath(client);
|
|
134
|
+
if (!configPath)
|
|
135
|
+
return false;
|
|
136
|
+
// Check if config file exists
|
|
137
|
+
if (existsSync(configPath))
|
|
138
|
+
return true;
|
|
139
|
+
// Check if parent directory exists (client is likely installed)
|
|
140
|
+
const parentDir = dirname(configPath);
|
|
141
|
+
return existsSync(parentDir);
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
export function configHasServer(configPath, serverKey) {
|
|
145
|
+
try {
|
|
146
|
+
const data = readJsonFile(configPath);
|
|
147
|
+
const servers = data[serverKey];
|
|
148
|
+
return servers !== undefined && SERVER_NAME in servers;
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
return false;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
// ── Platform helpers ────────────────────────────────────────
|
|
155
|
+
export function openFileLocation(filePath) {
|
|
156
|
+
const dir = dirname(filePath);
|
|
157
|
+
try {
|
|
158
|
+
switch (process.platform) {
|
|
159
|
+
case 'win32':
|
|
160
|
+
execFile('explorer', ['/select,' + filePath.replace(/\//g, '\\')]);
|
|
161
|
+
break;
|
|
162
|
+
case 'darwin':
|
|
163
|
+
execFile('open', ['-R', filePath]);
|
|
164
|
+
break;
|
|
165
|
+
default:
|
|
166
|
+
execFile('xdg-open', [dir]);
|
|
167
|
+
break;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
catch {
|
|
171
|
+
// Silently ignore — the path is already printed
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
// ── Status helpers ───────────────────────────────────────────
|
|
175
|
+
export function ok(text) {
|
|
176
|
+
return ` ✅ ${text}`;
|
|
177
|
+
}
|
|
178
|
+
export function info(text) {
|
|
179
|
+
return ` ℹ️ ${text}`;
|
|
180
|
+
}
|
|
181
|
+
export function warn(text) {
|
|
182
|
+
return ` ⚠️ ${text}`;
|
|
183
|
+
}
|
|
184
|
+
// ── Shared JSON helper (also used by configHasServer) ───────
|
|
185
|
+
function readJsonFile(path) {
|
|
186
|
+
try {
|
|
187
|
+
const raw = readFileSync(path, 'utf8');
|
|
188
|
+
return JSON.parse(raw);
|
|
189
|
+
}
|
|
190
|
+
catch {
|
|
191
|
+
return {};
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=client-definitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-definitions.js","sourceRoot":"","sources":["../../src/cli/client-definitions.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/local-setup.js
CHANGED
|
@@ -100,7 +100,7 @@ export async function createDoctorReport(packageRoot = resolvePackageRoot()) {
|
|
|
100
100
|
const setup = getLocalSetupInfo(packageRoot);
|
|
101
101
|
const env = parseCliEnv();
|
|
102
102
|
const bridgeHost = env.config?.BRIDGE_HOST ?? '127.0.0.1';
|
|
103
|
-
const ports = parsePortScanSpec(env.config?.BRIDGE_PORT_SCAN ?? '
|
|
103
|
+
const ports = parsePortScanSpec(env.config?.BRIDGE_PORT_SCAN ?? '49620');
|
|
104
104
|
const bridgePorts = [];
|
|
105
105
|
for (const port of ports.slice(0, 20)) {
|
|
106
106
|
bridgePorts.push({
|
|
@@ -169,7 +169,7 @@ export function formatVersion(packageRoot = resolvePackageRoot()) {
|
|
|
169
169
|
const packageInfo = readPackageInfo(packageRoot);
|
|
170
170
|
return `${packageInfo.name}@${packageInfo.version}`;
|
|
171
171
|
}
|
|
172
|
-
async function checkTcpPort(host, port, timeoutMs =
|
|
172
|
+
async function checkTcpPort(host, port, timeoutMs = 2000) {
|
|
173
173
|
return new Promise((resolve) => {
|
|
174
174
|
const socket = createConnection({ host, port });
|
|
175
175
|
let settled = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-setup.js","sourceRoot":"","sources":["../../src/cli/local-setup.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"local-setup.js","sourceRoot":"","sources":["../../src/cli/local-setup.ts"],"names":[],"mappings":"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"}
|
package/dist/config/env.d.ts
CHANGED
|
@@ -31,6 +31,7 @@ export declare const EnvSchema: z.ZodObject<{
|
|
|
31
31
|
HTTP_AUTH_DISABLED: z.ZodDefault<z.ZodPreprocess<z.ZodBoolean>>;
|
|
32
32
|
HTTP_RATE_LIMIT_MAX: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
33
33
|
CORS_ORIGIN: z.ZodDefault<z.ZodString>;
|
|
34
|
+
ALLOWED_ORIGINS: z.ZodDefault<z.ZodString>;
|
|
34
35
|
MCP_TASKS_ENABLED: z.ZodDefault<z.ZodPreprocess<z.ZodBoolean>>;
|
|
35
36
|
MCP_APPS_ENABLED: z.ZodDefault<z.ZodPreprocess<z.ZodBoolean>>;
|
|
36
37
|
MCP_V2_EXPERIMENTAL: z.ZodDefault<z.ZodPreprocess<z.ZodBoolean>>;
|
|
@@ -39,7 +40,9 @@ export declare const EnvSchema: z.ZodObject<{
|
|
|
39
40
|
BRIDGE_PORT_SCAN: z.ZodDefault<z.ZodString>;
|
|
40
41
|
BRIDGE_TIMEOUT_MS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
41
42
|
BRIDGE_HEARTBEAT_MS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
42
|
-
|
|
43
|
+
BRIDGE_RECONNECT_MAX_ATTEMPTS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
44
|
+
BRIDGE_WAIT_FOR_EDA_MS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
45
|
+
BRIDGE_MAX_PAYLOAD_SIZE: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
43
46
|
BRIDGE_TOKEN: z.ZodDefault<z.ZodString>;
|
|
44
47
|
EASYEDA_DEV_BRIDGE: z.ZodDefault<z.ZodPreprocess<z.ZodBoolean>>;
|
|
45
48
|
BRIDGE_RAW_EXEC_ENABLED: z.ZodDefault<z.ZodPreprocess<z.ZodBoolean>>;
|
|
@@ -96,4 +99,6 @@ export declare const EnvSchema: z.ZodObject<{
|
|
|
96
99
|
TRACE_SAMPLE_RATE: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
97
100
|
}, z.core.$strip>;
|
|
98
101
|
export type EnvConfig = z.infer<typeof EnvSchema>;
|
|
102
|
+
export declare function detectUnknownEnvVars(env: Record<string, string | undefined>): string[];
|
|
99
103
|
export declare function loadEnvConfig(): EnvConfig;
|
|
104
|
+
export declare function validateSafeConfig(config: EnvConfig): void;
|
package/dist/config/env.js
CHANGED
|
@@ -21,15 +21,18 @@ export const EnvSchema = z.object({
|
|
|
21
21
|
HTTP_AUTH_DISABLED: envBoolean().default(false),
|
|
22
22
|
HTTP_RATE_LIMIT_MAX: z.coerce.number().int().min(1).max(10000).default(100),
|
|
23
23
|
CORS_ORIGIN: z.string().default(''),
|
|
24
|
+
ALLOWED_ORIGINS: z.string().default(''),
|
|
24
25
|
MCP_TASKS_ENABLED: envBoolean().default(false),
|
|
25
26
|
MCP_APPS_ENABLED: envBoolean().default(false),
|
|
26
27
|
MCP_V2_EXPERIMENTAL: envBoolean().default(false),
|
|
27
28
|
BRIDGE_HOST: z.string().default('127.0.0.1'),
|
|
28
|
-
BRIDGE_PORT: z.coerce.number().int().min(1).max(65535).default(
|
|
29
|
-
BRIDGE_PORT_SCAN: z.string().default('
|
|
29
|
+
BRIDGE_PORT: z.coerce.number().int().min(1).max(65535).default(49620),
|
|
30
|
+
BRIDGE_PORT_SCAN: z.string().default('49620-49629'),
|
|
30
31
|
BRIDGE_TIMEOUT_MS: z.coerce.number().int().min(1000).max(120000).default(15000),
|
|
31
32
|
BRIDGE_HEARTBEAT_MS: z.coerce.number().int().min(1000).max(60000).default(10000),
|
|
32
|
-
|
|
33
|
+
BRIDGE_RECONNECT_MAX_ATTEMPTS: z.coerce.number().int().min(0).max(100).default(0),
|
|
34
|
+
BRIDGE_WAIT_FOR_EDA_MS: z.coerce.number().int().min(0).max(60000).default(30000),
|
|
35
|
+
BRIDGE_MAX_PAYLOAD_SIZE: z.coerce.number().int().min(1024).max(10485760).default(1048576),
|
|
33
36
|
BRIDGE_TOKEN: z.string().default(''),
|
|
34
37
|
EASYEDA_DEV_BRIDGE: envBoolean().default(false),
|
|
35
38
|
BRIDGE_RAW_EXEC_ENABLED: envBoolean().default(false),
|
|
@@ -72,30 +75,115 @@ export const EnvSchema = z.object({
|
|
|
72
75
|
OTEL_EXPORTER_OTLP_ENDPOINT: z.string().default(''),
|
|
73
76
|
TRACE_SAMPLE_RATE: z.coerce.number().min(0).max(1).default(1.0),
|
|
74
77
|
});
|
|
78
|
+
const PROJECT_VAR_PREFIXES = [
|
|
79
|
+
'NODE_ENV',
|
|
80
|
+
'LOG_LEVEL',
|
|
81
|
+
'TOOL_PROFILE',
|
|
82
|
+
'MCP_PROTOCOL_VERSION',
|
|
83
|
+
'TRANSPORT',
|
|
84
|
+
'HTTP_',
|
|
85
|
+
'CORS_',
|
|
86
|
+
'MCP_',
|
|
87
|
+
'BRIDGE_',
|
|
88
|
+
'EASYEDA_',
|
|
89
|
+
'DATA_DIR',
|
|
90
|
+
'SQLITE_',
|
|
91
|
+
'ARTIFACT_',
|
|
92
|
+
'CACHE_',
|
|
93
|
+
'AI_',
|
|
94
|
+
'JLCPCB_',
|
|
95
|
+
'JLCSEARCH_',
|
|
96
|
+
'LCSC_',
|
|
97
|
+
'MOUSER_',
|
|
98
|
+
'DIGIKEY_',
|
|
99
|
+
'OAUTH_',
|
|
100
|
+
'OTEL_',
|
|
101
|
+
'TRACE_',
|
|
102
|
+
];
|
|
103
|
+
export function detectUnknownEnvVars(env) {
|
|
104
|
+
const knownKeys = new Set(Object.keys(EnvSchema.shape));
|
|
105
|
+
const warnings = [];
|
|
106
|
+
for (const key of Object.keys(env)) {
|
|
107
|
+
if (knownKeys.has(key))
|
|
108
|
+
continue;
|
|
109
|
+
const isProjectVar = PROJECT_VAR_PREFIXES.some((prefix) => key === prefix || key.startsWith(prefix));
|
|
110
|
+
if (!isProjectVar)
|
|
111
|
+
continue;
|
|
112
|
+
const msg = `Unknown environment variable "${key}" is not recognized by this server. ` +
|
|
113
|
+
'Check for typos or remove if unused.';
|
|
114
|
+
// Logger not yet initialized — env config is loaded first
|
|
115
|
+
console.warn('WARNING:', msg);
|
|
116
|
+
warnings.push(msg);
|
|
117
|
+
}
|
|
118
|
+
return warnings;
|
|
119
|
+
}
|
|
75
120
|
export function loadEnvConfig() {
|
|
76
121
|
const result = EnvSchema.safeParse(process.env);
|
|
77
122
|
if (!result.success) {
|
|
123
|
+
// Logger not yet initialized — env config is loaded first
|
|
78
124
|
console.error('Config validation failed:');
|
|
79
125
|
for (const issue of result.error.issues) {
|
|
126
|
+
// Logger not yet initialized — env config is loaded first
|
|
80
127
|
console.error(` - ${issue.path.join('.')}: ${issue.message}`);
|
|
81
128
|
}
|
|
82
129
|
process.exit(1);
|
|
83
130
|
}
|
|
131
|
+
detectUnknownEnvVars(process.env);
|
|
84
132
|
validateSafeConfig(result.data);
|
|
85
133
|
return result.data;
|
|
86
134
|
}
|
|
87
|
-
|
|
135
|
+
/** Check whether HTTP_HOST refers to a loopback address. */
|
|
136
|
+
function isLoopbackHost(host) {
|
|
137
|
+
return host === '127.0.0.1' || host === 'localhost' || host === '::1';
|
|
138
|
+
}
|
|
139
|
+
export function validateSafeConfig(config) {
|
|
140
|
+
// ── CORS / origin policy ─────────────────────────────────
|
|
141
|
+
if (config.TRANSPORT === 'http' && !isLoopbackHost(config.HTTP_HOST) && !config.ALLOWED_ORIGINS) {
|
|
142
|
+
// Logger not yet initialized — env config is loaded first
|
|
143
|
+
console.error('SAFETY: HTTP_HOST is not a loopback address but ALLOWED_ORIGINS is empty. ' +
|
|
144
|
+
'Non-loopback HTTP deployments must declare an explicit origin allowlist. ' +
|
|
145
|
+
'Set ALLOWED_ORIGINS to a comma-separated list of allowed origins or use HTTP_HOST=127.0.0.1.');
|
|
146
|
+
process.exit(1);
|
|
147
|
+
}
|
|
148
|
+
// ── OAuth/JWKS validation ─────────────────────────────────
|
|
149
|
+
if (config.OAUTH_ENABLED && !isLoopbackHost(config.HTTP_HOST)) {
|
|
150
|
+
const missing = [];
|
|
151
|
+
if (!config.OAUTH_JWKS_URI)
|
|
152
|
+
missing.push('OAUTH_JWKS_URI');
|
|
153
|
+
if (!config.OAUTH_ISSUER)
|
|
154
|
+
missing.push('OAUTH_ISSUER');
|
|
155
|
+
if (!config.OAUTH_AUDIENCE)
|
|
156
|
+
missing.push('OAUTH_AUDIENCE');
|
|
157
|
+
if (missing.length > 0) {
|
|
158
|
+
// Logger not yet initialized — env config is loaded first
|
|
159
|
+
console.error(`SAFETY: OAuth is enabled for non-loopback HTTP but required variables are missing: ${missing.join(', ')}. ` +
|
|
160
|
+
'Set all required OAuth variables or use HTTP_HOST=127.0.0.1 for local development.');
|
|
161
|
+
process.exit(1);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
// No weak-token fallback: if OAuth is enabled, JWKS must be configured
|
|
165
|
+
if (config.OAUTH_ENABLED && !config.OAUTH_JWKS_URI) {
|
|
166
|
+
// Logger not yet initialized — env config is loaded first
|
|
167
|
+
console.error('SAFETY: OAUTH_ENABLED=true requires OAUTH_JWKS_URI. ' +
|
|
168
|
+
'The weak bearer-token fallback (no JWKS) is no longer supported. ' +
|
|
169
|
+
'Configure a valid JWKS endpoint or disable OAuth.');
|
|
170
|
+
process.exit(1);
|
|
171
|
+
}
|
|
172
|
+
// ── NODE_ENV production checks ──────────────────────────
|
|
88
173
|
if (config.NODE_ENV === 'production') {
|
|
89
|
-
if (config.HTTP_HOST
|
|
174
|
+
if (!isLoopbackHost(config.HTTP_HOST) && !config.OAUTH_ENABLED) {
|
|
175
|
+
// Logger not yet initialized — env config is loaded first
|
|
90
176
|
console.error('SAFETY: HTTP_HOST is not localhost but OAUTH_ENABLED is false. ' +
|
|
91
177
|
'Set OAUTH_ENABLED=true or use HTTP_HOST=127.0.0.1.');
|
|
92
178
|
process.exit(1);
|
|
93
179
|
}
|
|
94
180
|
if (config.BRIDGE_RAW_EXEC_ENABLED) {
|
|
181
|
+
// Logger not yet initialized — env config is loaded first
|
|
95
182
|
console.error('SAFETY: BRIDGE_RAW_EXEC_ENABLED=true is not allowed in production mode.');
|
|
96
183
|
process.exit(1);
|
|
97
184
|
}
|
|
98
185
|
if (config.JLCPCB_ENABLE_ORDERING && config.JLCPCB_MODE !== 'approved_api') {
|
|
186
|
+
// Logger not yet initialized — env config is loaded first
|
|
99
187
|
console.error('SAFETY: JLCPCB_ENABLE_ORDERING=true requires JLCPCB_MODE=approved_api.');
|
|
100
188
|
process.exit(1);
|
|
101
189
|
}
|
package/dist/config/env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,SAAS,UAAU;IACjB,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE;QAC1B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;YACvC,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,EAAE;gBAAE,OAAO,KAAK,CAAC;YACrE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;IAC9E,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACjG,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACpF,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC;IAEtD,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACrD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;IAC1C,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAClE,kBAAkB,EAAE,UAAU,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC/C,mBAAmB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IAC3E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,SAAS,UAAU;IACjB,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE;QAC1B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;YACvC,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,EAAE;gBAAE,OAAO,KAAK,CAAC;YACrE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;IAC9E,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACjG,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACpF,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC;IAEtD,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACrD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;IAC1C,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAClE,kBAAkB,EAAE,UAAU,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC/C,mBAAmB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IAC3E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACnC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAEvC,iBAAiB,EAAE,UAAU,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC9C,gBAAgB,EAAE,UAAU,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC7C,mBAAmB,EAAE,UAAU,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAEhD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;IAC5C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACrE,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;IACnD,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC/E,mBAAmB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAChF,6BAA6B,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACjF,sBAAsB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAChF,uBAAuB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACzF,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACpC,kBAAkB,EAAE,UAAU,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC/C,uBAAuB,EAAE,UAAU,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAEpD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC;IAChD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,yCAAyC,CAAC;IAC1E,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,4BAA4B,CAAC;IAC9D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,wBAAwB,CAAC;IAEvD,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAC3F,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAChC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAClC,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACvE,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC3E,yBAAyB,EAAE,UAAU,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAEtD,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAC7E,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5C,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,wBAAwB,CAAC;IACjE,sBAAsB,EAAE,UAAU,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACnD,uBAAuB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAE9D,iBAAiB,EAAE,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7C,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,iCAAiC,CAAC;IACzE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACpC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAEvC,cAAc,EAAE,UAAU,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC3C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACtC,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,wBAAwB,CAAC;IAEjE,eAAe,EAAE,UAAU,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC5C,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACzC,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7C,eAAe,EAAE,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IAC3C,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAE3C,aAAa,EAAE,UAAU,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC1C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACpC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC;IACrD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACtC,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC;IAEzD,YAAY,EAAE,UAAU,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACzC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC;IACxD,2BAA2B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACnD,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;CAChE,CAAC,CAAC;AAIH,MAAM,oBAAoB,GAAG;IAC3B,UAAU;IACV,WAAW;IACX,cAAc;IACd,sBAAsB;IACtB,WAAW;IACX,OAAO;IACP,OAAO;IACP,MAAM;IACN,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,WAAW;IACX,QAAQ;IACR,KAAK;IACL,SAAS;IACT,YAAY;IACZ,OAAO;IACP,SAAS;IACT,UAAU;IACV,QAAQ;IACR,OAAO;IACP,QAAQ;CACT,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,GAAuC;IAC1E,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QACjC,MAAM,YAAY,GAAG,oBAAoB,CAAC,IAAI,CAC5C,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CACrD,CAAC;QACF,IAAI,CAAC,YAAY;YAAE,SAAS;QAC5B,MAAM,GAAG,GACP,iCAAiC,GAAG,sCAAsC;YAC1E,sCAAsC,CAAC;QACzC,0DAA0D;QAC1D,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,0DAA0D;QAC1D,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC3C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACxC,0DAA0D;YAC1D,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,4DAA4D;AAC5D,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,KAAK,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAiB;IAClD,4DAA4D;IAC5D,IAAI,MAAM,CAAC,SAAS,KAAK,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAChG,0DAA0D;QAC1D,OAAO,CAAC,KAAK,CACX,4EAA4E;YAC1E,2EAA2E;YAC3E,8FAA8F,CACjG,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,6DAA6D;IAC7D,IAAI,MAAM,CAAC,aAAa,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9D,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,cAAc;YAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,CAAC,YAAY;YAAE,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,CAAC,cAAc;YAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC3D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,0DAA0D;YAC1D,OAAO,CAAC,KAAK,CACX,sFAAsF,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gBAC1G,oFAAoF,CACvF,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,IAAI,MAAM,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QACnD,0DAA0D;QAC1D,OAAO,CAAC,KAAK,CACX,sDAAsD;YACpD,mEAAmE;YACnE,mDAAmD,CACtD,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,2DAA2D;IAC3D,IAAI,MAAM,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QACrC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC/D,0DAA0D;YAC1D,OAAO,CAAC,KAAK,CACX,iEAAiE;gBAC/D,oDAAoD,CACvD,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,MAAM,CAAC,uBAAuB,EAAE,CAAC;YACnC,0DAA0D;YAC1D,OAAO,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;YACzF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,MAAM,CAAC,sBAAsB,IAAI,MAAM,CAAC,WAAW,KAAK,cAAc,EAAE,CAAC;YAC3E,0DAA0D;YAC1D,OAAO,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC;YACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;AACH,CAAC"}
|
package/dist/config/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const SERVER_VERSION = "0.
|
|
1
|
+
export declare const SERVER_VERSION = "0.5.2";
|
package/dist/config/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const SERVER_VERSION = '0.
|
|
1
|
+
export const SERVER_VERSION = '0.5.2';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Export manifest — error codes, structured issues, and factories.
|
|
3
|
+
*
|
|
4
|
+
* Follows the same pattern as `net-validation/errors.ts`:
|
|
5
|
+
* a const-object error code enum, a structured issue interface
|
|
6
|
+
* (re-exported from types.ts), and factory helpers.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
import type { ExportManifestIssue } from './types.js';
|
|
11
|
+
export declare const ExportManifestCode: {
|
|
12
|
+
/** A required artifact file was not found in the export output. */
|
|
13
|
+
readonly MISSING_REQUIRED_FILE: "MISSING_REQUIRED_FILE";
|
|
14
|
+
/** An artifact file exists but has zero bytes. */
|
|
15
|
+
readonly EMPTY_FILE: "EMPTY_FILE";
|
|
16
|
+
/** An artifact is flagged as stale (outdated). */
|
|
17
|
+
readonly STALE_FILE: "STALE_FILE";
|
|
18
|
+
/** An artifact appears in the output but was not in the expected set. */
|
|
19
|
+
readonly UNEXPECTED_FILE: "UNEXPECTED_FILE";
|
|
20
|
+
/** Artifact checksum does not match the expected value. */
|
|
21
|
+
readonly CHECKSUM_MISMATCH: "CHECKSUM_MISMATCH";
|
|
22
|
+
/** Artifact's declared file type does not match its content/name. */
|
|
23
|
+
readonly WRONG_FILE_TYPE: "WRONG_FILE_TYPE";
|
|
24
|
+
/** Artifact is missing a human-readable purpose description. */
|
|
25
|
+
readonly MISSING_PURPOSE: "MISSING_PURPOSE";
|
|
26
|
+
/** Artifact is missing a generation timestamp. */
|
|
27
|
+
readonly MISSING_GENERATED_TIMESTAMP: "MISSING_GENERATED_TIMESTAMP";
|
|
28
|
+
/** Artifact is missing a source project reference. */
|
|
29
|
+
readonly MISSING_SOURCE_PROJECT: "MISSING_SOURCE_PROJECT";
|
|
30
|
+
/** Manifest version string is not valid semver. */
|
|
31
|
+
readonly INVALID_MANIFEST_VERSION: "INVALID_MANIFEST_VERSION";
|
|
32
|
+
/** Validation could not be completed due to an internal error. */
|
|
33
|
+
readonly MANIFEST_INTERNAL: "MANIFEST_INTERNAL";
|
|
34
|
+
};
|
|
35
|
+
export type ExportManifestCode = (typeof ExportManifestCode)[keyof typeof ExportManifestCode];
|
|
36
|
+
/**
|
|
37
|
+
* Create a single export manifest issue.
|
|
38
|
+
*/
|
|
39
|
+
export declare function manifestIssue(code: ExportManifestCode, message: string, opts?: {
|
|
40
|
+
severity?: 'error' | 'warning';
|
|
41
|
+
path?: string;
|
|
42
|
+
artifactPath?: string;
|
|
43
|
+
artifactType?: string;
|
|
44
|
+
purpose?: string;
|
|
45
|
+
remediationHint?: string;
|
|
46
|
+
details?: Record<string, unknown>;
|
|
47
|
+
}): ExportManifestIssue;
|
|
48
|
+
/**
|
|
49
|
+
* Convenience: create an error-severity issue.
|
|
50
|
+
*/
|
|
51
|
+
export declare function manifestError(code: ExportManifestCode, message: string, opts?: Omit<Parameters<typeof manifestIssue>[2], 'severity'>): ExportManifestIssue;
|
|
52
|
+
/**
|
|
53
|
+
* Convenience: create a warning-severity issue.
|
|
54
|
+
*/
|
|
55
|
+
export declare function manifestWarning(code: ExportManifestCode, message: string, opts?: Omit<Parameters<typeof manifestIssue>[2], 'severity'>): ExportManifestIssue;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Export manifest — error codes, structured issues, and factories.
|
|
3
|
+
*
|
|
4
|
+
* Follows the same pattern as `net-validation/errors.ts`:
|
|
5
|
+
* a const-object error code enum, a structured issue interface
|
|
6
|
+
* (re-exported from types.ts), and factory helpers.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
// ── Error codes ─────────────────────────────────────────────────────────────
|
|
11
|
+
export const ExportManifestCode = {
|
|
12
|
+
// ── Completeness errors ────────────────────────────────────────────────
|
|
13
|
+
/** A required artifact file was not found in the export output. */
|
|
14
|
+
MISSING_REQUIRED_FILE: 'MISSING_REQUIRED_FILE',
|
|
15
|
+
/** An artifact file exists but has zero bytes. */
|
|
16
|
+
EMPTY_FILE: 'EMPTY_FILE',
|
|
17
|
+
/** An artifact is flagged as stale (outdated). */
|
|
18
|
+
STALE_FILE: 'STALE_FILE',
|
|
19
|
+
/** An artifact appears in the output but was not in the expected set. */
|
|
20
|
+
UNEXPECTED_FILE: 'UNEXPECTED_FILE',
|
|
21
|
+
// ── Integrity errors ───────────────────────────────────────────────────
|
|
22
|
+
/** Artifact checksum does not match the expected value. */
|
|
23
|
+
CHECKSUM_MISMATCH: 'CHECKSUM_MISMATCH',
|
|
24
|
+
/** Artifact's declared file type does not match its content/name. */
|
|
25
|
+
WRONG_FILE_TYPE: 'WRONG_FILE_TYPE',
|
|
26
|
+
// ── Metadata errors ────────────────────────────────────────────────────
|
|
27
|
+
/** Artifact is missing a human-readable purpose description. */
|
|
28
|
+
MISSING_PURPOSE: 'MISSING_PURPOSE',
|
|
29
|
+
/** Artifact is missing a generation timestamp. */
|
|
30
|
+
MISSING_GENERATED_TIMESTAMP: 'MISSING_GENERATED_TIMESTAMP',
|
|
31
|
+
/** Artifact is missing a source project reference. */
|
|
32
|
+
MISSING_SOURCE_PROJECT: 'MISSING_SOURCE_PROJECT',
|
|
33
|
+
// ── Schema errors ──────────────────────────────────────────────────────
|
|
34
|
+
/** Manifest version string is not valid semver. */
|
|
35
|
+
INVALID_MANIFEST_VERSION: 'INVALID_MANIFEST_VERSION',
|
|
36
|
+
// ── Internal ───────────────────────────────────────────────────────────
|
|
37
|
+
/** Validation could not be completed due to an internal error. */
|
|
38
|
+
MANIFEST_INTERNAL: 'MANIFEST_INTERNAL',
|
|
39
|
+
};
|
|
40
|
+
// ── Factory ─────────────────────────────────────────────────────────────────
|
|
41
|
+
/**
|
|
42
|
+
* Create a single export manifest issue.
|
|
43
|
+
*/
|
|
44
|
+
export function manifestIssue(code, message, opts) {
|
|
45
|
+
return {
|
|
46
|
+
code,
|
|
47
|
+
message,
|
|
48
|
+
severity: opts?.severity ?? 'error',
|
|
49
|
+
path: opts?.path,
|
|
50
|
+
artifactPath: opts?.artifactPath,
|
|
51
|
+
artifactType: opts?.artifactType,
|
|
52
|
+
purpose: opts?.purpose,
|
|
53
|
+
remediationHint: opts?.remediationHint ?? '',
|
|
54
|
+
details: opts?.details,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Convenience: create an error-severity issue.
|
|
59
|
+
*/
|
|
60
|
+
export function manifestError(code, message, opts) {
|
|
61
|
+
return manifestIssue(code, message, { ...opts, severity: 'error' });
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Convenience: create a warning-severity issue.
|
|
65
|
+
*/
|
|
66
|
+
export function manifestWarning(code, message, opts) {
|
|
67
|
+
return manifestIssue(code, message, { ...opts, severity: 'warning' });
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/export-manifest/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,+EAA+E;AAE/E,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,0EAA0E;IAE1E,mEAAmE;IACnE,qBAAqB,EAAE,uBAAuB;IAC9C,kDAAkD;IAClD,UAAU,EAAE,YAAY;IACxB,kDAAkD;IAClD,UAAU,EAAE,YAAY;IACxB,yEAAyE;IACzE,eAAe,EAAE,iBAAiB;IAElC,0EAA0E;IAE1E,2DAA2D;IAC3D,iBAAiB,EAAE,mBAAmB;IACtC,qEAAqE;IACrE,eAAe,EAAE,iBAAiB;IAElC,0EAA0E;IAE1E,gEAAgE;IAChE,eAAe,EAAE,iBAAiB;IAClC,kDAAkD;IAClD,2BAA2B,EAAE,6BAA6B;IAC1D,sDAAsD;IACtD,sBAAsB,EAAE,wBAAwB;IAEhD,0EAA0E;IAE1E,mDAAmD;IACnD,wBAAwB,EAAE,0BAA0B;IAEpD,0EAA0E;IAE1E,kEAAkE;IAClE,iBAAiB,EAAE,mBAAmB;CAC9B,CAAC;AAIX,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAwB,EACxB,OAAe,EACf,IAQC;IAED,OAAO;QACL,IAAI;QACJ,OAAO;QACP,QAAQ,EAAE,IAAI,EAAE,QAAQ,IAAI,OAAO;QACnC,IAAI,EAAE,IAAI,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI,EAAE,YAAY;QAChC,YAAY,EAAE,IAAI,EAAE,YAAY;QAChC,OAAO,EAAE,IAAI,EAAE,OAAO;QACtB,eAAe,EAAE,IAAI,EAAE,eAAe,IAAI,EAAE;QAC5C,OAAO,EAAE,IAAI,EAAE,OAAO;KACvB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAwB,EACxB,OAAe,EACf,IAA4D;IAE5D,OAAO,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;AACtE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAwB,EACxB,OAAe,EACf,IAA4D;IAE5D,OAAO,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;AACxE,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Export manifest — public API barrel export.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
export { ArtifactType } from './types.js';
|
|
7
|
+
export type { ExportManifestEntry, ExpectedArtifact, ExportManifestInput, ExportManifestIssue, ExportManifestSummary, ExportManifestReport, } from './types.js';
|
|
8
|
+
export { ExportManifestCode, manifestIssue, manifestError, manifestWarning } from './errors.js';
|
|
9
|
+
export type { ExportManifestCode as ExportManifestCodeType } from './errors.js';
|
|
10
|
+
export { validateExportManifest } from './validation.js';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Export manifest — public API barrel export.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
export { ArtifactType } from './types.js';
|
|
7
|
+
export { ExportManifestCode, manifestIssue, manifestError, manifestWarning } from './errors.js';
|
|
8
|
+
export { validateExportManifest } from './validation.js';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/export-manifest/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAU1C,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGhG,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC"}
|