easyeda-mcp-pro 0.6.9 → 0.7.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/README.md CHANGED
@@ -5,6 +5,7 @@
5
5
  [![CI](https://github.com/oaslananka/easyeda-mcp-pro/actions/workflows/ci.yml/badge.svg)](https://github.com/oaslananka/easyeda-mcp-pro/actions/workflows/ci.yml)
6
6
  [![npm version](https://img.shields.io/npm/v/easyeda-mcp-pro.svg)](https://www.npmjs.com/package/easyeda-mcp-pro)
7
7
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
8
+ [![OpenSSF Best Practices](https://www.bestpractices.dev/projects/13406/badge)](https://www.bestpractices.dev/projects/13406)
8
9
  [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/oaslananka/easyeda-mcp-pro)
9
10
 
10
11
  <p align="center">
@@ -45,7 +46,7 @@ For advanced configurations, manual instructions, and specific clients, see [Ins
45
46
 
46
47
  ## Overview
47
48
 
48
- easyeda-mcp-pro is a [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server that bridges AI assistants with hardware design workflows in EasyEDA Pro. It exposes 50 default profile-gated MCP tools for schematic inspection and editing, controlled EasyEDA Pro API calls, BOM management, design rule checks, PCB board analysis, fabrication exports, and supplier integration.
49
+ easyeda-mcp-pro is a [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server that bridges AI assistants with hardware design workflows in EasyEDA Pro. It exposes 52 profile-gated MCP tools for schematic inspection and editing, controlled EasyEDA Pro API calls, BOM management, design rule checks, PCB board analysis, fabrication exports, and supplier integration.
49
50
 
50
51
  The server connects to EasyEDA Pro via a WebSocket bridge extension, enabling real-time access to open project data. It integrates with JLCPCB, LCSC, Mouser, and DigiKey for BOM sourcing and pricing.
51
52
 
@@ -1 +1 @@
1
- export declare const SERVER_VERSION = "0.6.9";
1
+ export declare const SERVER_VERSION = "0.7.0";
@@ -1,2 +1,2 @@
1
- export const SERVER_VERSION = '0.6.9'; // x-release-please-version
1
+ export const SERVER_VERSION = '0.7.0'; // x-release-please-version
2
2
  //# sourceMappingURL=version.js.map
@@ -21,6 +21,22 @@ export declare const ExportManifestCode: {
21
21
  readonly CHECKSUM_MISMATCH: "CHECKSUM_MISMATCH";
22
22
  /** Artifact's declared file type does not match its content/name. */
23
23
  readonly WRONG_FILE_TYPE: "WRONG_FILE_TYPE";
24
+ /** Required artifact is missing checksum metadata. */
25
+ readonly MISSING_CHECKSUM: "MISSING_CHECKSUM";
26
+ /** Required artifact is missing file size metadata. */
27
+ readonly MISSING_FILE_SIZE: "MISSING_FILE_SIZE";
28
+ /** Required artifact is missing generation metadata. */
29
+ readonly MISSING_GENERATION_METADATA: "MISSING_GENERATION_METADATA";
30
+ /** Required manufacturing artifact role is missing from the package. */
31
+ readonly MISSING_REQUIRED_ROLE: "MISSING_REQUIRED_ROLE";
32
+ /** Board outline artifact is missing or invalid. */
33
+ readonly MISSING_BOARD_OUTLINE: "MISSING_BOARD_OUTLINE";
34
+ /** Drill artifact is missing or invalid. */
35
+ readonly MISSING_DRILL_FILE: "MISSING_DRILL_FILE";
36
+ /** BOM and pick-and-place designators are inconsistent. */
37
+ readonly BOM_PNP_MISMATCH: "BOM_PNP_MISMATCH";
38
+ /** Manifest lacks required project / EasyEDA metadata. */
39
+ readonly MISSING_PROJECT_METADATA: "MISSING_PROJECT_METADATA";
24
40
  /** Artifact is missing a human-readable purpose description. */
25
41
  readonly MISSING_PURPOSE: "MISSING_PURPOSE";
26
42
  /** Artifact is missing a generation timestamp. */
@@ -23,6 +23,22 @@ export const ExportManifestCode = {
23
23
  CHECKSUM_MISMATCH: 'CHECKSUM_MISMATCH',
24
24
  /** Artifact's declared file type does not match its content/name. */
25
25
  WRONG_FILE_TYPE: 'WRONG_FILE_TYPE',
26
+ /** Required artifact is missing checksum metadata. */
27
+ MISSING_CHECKSUM: 'MISSING_CHECKSUM',
28
+ /** Required artifact is missing file size metadata. */
29
+ MISSING_FILE_SIZE: 'MISSING_FILE_SIZE',
30
+ /** Required artifact is missing generation metadata. */
31
+ MISSING_GENERATION_METADATA: 'MISSING_GENERATION_METADATA',
32
+ /** Required manufacturing artifact role is missing from the package. */
33
+ MISSING_REQUIRED_ROLE: 'MISSING_REQUIRED_ROLE',
34
+ /** Board outline artifact is missing or invalid. */
35
+ MISSING_BOARD_OUTLINE: 'MISSING_BOARD_OUTLINE',
36
+ /** Drill artifact is missing or invalid. */
37
+ MISSING_DRILL_FILE: 'MISSING_DRILL_FILE',
38
+ /** BOM and pick-and-place designators are inconsistent. */
39
+ BOM_PNP_MISMATCH: 'BOM_PNP_MISMATCH',
40
+ /** Manifest lacks required project / EasyEDA metadata. */
41
+ MISSING_PROJECT_METADATA: 'MISSING_PROJECT_METADATA',
26
42
  // ── Metadata errors ────────────────────────────────────────────────────
27
43
  /** Artifact is missing a human-readable purpose description. */
28
44
  MISSING_PURPOSE: 'MISSING_PURPOSE',
@@ -1 +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"}
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,sDAAsD;IACtD,gBAAgB,EAAE,kBAAkB;IACpC,uDAAuD;IACvD,iBAAiB,EAAE,mBAAmB;IACtC,wDAAwD;IACxD,2BAA2B,EAAE,6BAA6B;IAC1D,wEAAwE;IACxE,qBAAqB,EAAE,uBAAuB;IAC9C,oDAAoD;IACpD,qBAAqB,EAAE,uBAAuB;IAC9C,4CAA4C;IAC5C,kBAAkB,EAAE,oBAAoB;IACxC,2DAA2D;IAC3D,gBAAgB,EAAE,kBAAkB;IACpC,0DAA0D;IAC1D,wBAAwB,EAAE,0BAA0B;IAEpD,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"}
@@ -3,8 +3,8 @@
3
3
  *
4
4
  * @module
5
5
  */
6
- export { ArtifactType } from './types.js';
7
- export type { ExportManifestEntry, ExpectedArtifact, ExportManifestInput, ExportManifestIssue, ExportManifestSummary, ExportManifestReport, } from './types.js';
6
+ export { ArtifactType, ExportArtifactRole } from './types.js';
7
+ export type { ExportManifestEntry, ExpectedArtifact, ExportProjectMetadata, AssemblyConsistencyMetadata, ManufacturingExportPolicy, ExportManifestInput, ExportManifestIssue, ExportManifestSummary, ExportManifestReport, } from './types.js';
8
8
  export { ExportManifestCode, manifestIssue, manifestError, manifestWarning } from './errors.js';
9
9
  export type { ExportManifestCode as ExportManifestCodeType } from './errors.js';
10
10
  export { validateExportManifest } from './validation.js';
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * @module
5
5
  */
6
- export { ArtifactType } from './types.js';
6
+ export { ArtifactType, ExportArtifactRole } from './types.js';
7
7
  export { ExportManifestCode, manifestIssue, manifestError, manifestWarning } from './errors.js';
8
8
  export { validateExportManifest } from './validation.js';
9
9
  //# sourceMappingURL=index.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/export-manifest/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAa9D,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGhG,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -31,6 +31,32 @@ export declare enum ArtifactType {
31
31
  /** Design rules check report. */
32
32
  DrcReport = "drc-report"
33
33
  }
34
+ /**
35
+ * Manufacturing handoff role for an export artifact.
36
+ *
37
+ * File extensions alone are often ambiguous. Roles let the validator check
38
+ * that a fabrication package has the required copper, mask, drill, outline,
39
+ * assembly, and documentation artifacts.
40
+ */
41
+ export declare enum ExportArtifactRole {
42
+ TopCopper = "top-copper",
43
+ BottomCopper = "bottom-copper",
44
+ InnerCopper = "inner-copper",
45
+ TopSolderMask = "top-solder-mask",
46
+ BottomSolderMask = "bottom-solder-mask",
47
+ TopSilkscreen = "top-silkscreen",
48
+ BottomSilkscreen = "bottom-silkscreen",
49
+ BoardOutline = "board-outline",
50
+ DrillPlated = "drill-plated",
51
+ DrillNonPlated = "drill-nonplated",
52
+ Bom = "bom",
53
+ PickPlace = "pick-place",
54
+ SchematicPdf = "schematic-pdf",
55
+ BoardPdf = "board-pdf",
56
+ Netlist = "netlist",
57
+ DrcReport = "drc-report",
58
+ ErcReport = "erc-report"
59
+ }
34
60
  /**
35
61
  * A single artifact entry in an export manifest.
36
62
  *
@@ -46,14 +72,18 @@ export interface ExportManifestEntry {
46
72
  fileType: ArtifactType;
47
73
  /** Human-readable purpose (e.g. "Top copper layer"). */
48
74
  purpose: string;
75
+ /** Manufacturing role used for package completeness checks. */
76
+ role?: ExportArtifactRole;
49
77
  /** Source project identifier. */
50
78
  sourceProject?: string;
51
79
  /** Tool that generated this artifact (e.g. "easyeda-export-gerbers"). */
52
80
  generatedByTool?: string;
53
81
  /** ISO-8601 timestamp when this artifact was generated. */
54
82
  timestamp?: string;
55
- /** Hex-encoded SHA-256 or MD5 checksum. */
83
+ /** Hex-encoded checksum, preferably SHA-256. */
56
84
  checksum?: string;
85
+ /** Algorithm used to compute checksum. */
86
+ checksumAlgorithm?: 'sha256' | 'sha512' | 'md5';
57
87
  /** File size in bytes. */
58
88
  fileSize?: number;
59
89
  /** Whether this artifact is required for the export to be valid. */
@@ -71,11 +101,54 @@ export interface ExpectedArtifact {
71
101
  filename: string;
72
102
  /** Expected file type. */
73
103
  fileType: ArtifactType;
104
+ /** Expected manufacturing role. */
105
+ role?: ExportArtifactRole;
74
106
  /** Minimum acceptable file size in bytes. */
75
107
  minSizeBytes?: number;
76
108
  /** Whether this artifact is required (missing = validation error). */
77
109
  required?: boolean;
78
110
  }
111
+ /** Project metadata captured at export time. */
112
+ export interface ExportProjectMetadata {
113
+ /** EasyEDA project id or repository-specific project id. */
114
+ projectId: string;
115
+ /** Human-readable project name. */
116
+ projectName?: string;
117
+ /** EasyEDA editor/runtime version when available. */
118
+ easyedaVersion?: string;
119
+ /** EasyEDA bridge extension version when available. */
120
+ bridgeVersion?: string;
121
+ /** Source document or board id when available. */
122
+ documentId?: string;
123
+ /** Board revision or release identifier. */
124
+ revision?: string;
125
+ }
126
+ /** Assembly cross-check metadata for BOM and pick-and-place consistency. */
127
+ export interface AssemblyConsistencyMetadata {
128
+ /** BOM designators extracted from the exported BOM. */
129
+ bomDesignators?: string[];
130
+ /** Pick-and-place designators extracted from the centroid file. */
131
+ pnpDesignators?: string[];
132
+ /** Expected BOM row/designator count. */
133
+ expectedBomDesignatorCount?: number;
134
+ /** Expected pick-and-place row/designator count. */
135
+ expectedPnpDesignatorCount?: number;
136
+ }
137
+ /** Manufacturing package validation policy. */
138
+ export interface ManufacturingExportPolicy {
139
+ /** Required artifact roles for this export profile. */
140
+ requiredRoles?: ExportArtifactRole[];
141
+ /** Require each required artifact to include checksum metadata. */
142
+ requireChecksums?: boolean;
143
+ /** Require each required artifact to include non-zero fileSize. */
144
+ requireFileSizes?: boolean;
145
+ /** Require each required artifact to include generatedByTool and timestamp. */
146
+ requireGenerationMetadata?: boolean;
147
+ /** Require manifest-level EasyEDA and project metadata. */
148
+ requireProjectMetadata?: boolean;
149
+ /** Require BOM and pick-and-place designator consistency checks. */
150
+ requireBomPnpConsistency?: boolean;
151
+ }
79
152
  /**
80
153
  * Complete input to export manifest validation.
81
154
  *
@@ -95,6 +168,12 @@ export interface ExportManifestInput {
95
168
  serverVersion?: string;
96
169
  /** EasyEDA / bridge metadata if available. */
97
170
  bridgeMetadata?: Record<string, unknown>;
171
+ /** Structured project metadata captured at export time. */
172
+ projectMetadata?: ExportProjectMetadata;
173
+ /** Manufacturing package policy for strict handoff checks. */
174
+ manufacturingPolicy?: ManufacturingExportPolicy;
175
+ /** Optional assembly data used to compare BOM and pick-and-place outputs. */
176
+ assemblyConsistency?: AssemblyConsistencyMetadata;
98
177
  /** Artifacts produced by the export. */
99
178
  artifacts: ExportManifestEntry[];
100
179
  /** Expected artifacts for comparison-based validation. */
@@ -154,6 +233,20 @@ export interface ExportManifestSummary {
154
233
  missingTimestamps: number;
155
234
  /** Count of artifacts missing a source project reference. */
156
235
  missingSourceProjects: number;
236
+ /** Count of artifacts missing checksum metadata. */
237
+ missingChecksums: number;
238
+ /** Count of artifacts missing file size metadata. */
239
+ missingFileSizes: number;
240
+ /** Count of missing manufacturing roles. */
241
+ missingRequiredRoles: number;
242
+ /** Count of board outline package errors. */
243
+ missingBoardOutlines: number;
244
+ /** Count of drill package errors. */
245
+ missingDrillFiles: number;
246
+ /** Count of BOM / pick-and-place consistency errors. */
247
+ bomPnpMismatches: number;
248
+ /** Count of manifest/project metadata errors. */
249
+ missingProjectMetadata: number;
157
250
  }
158
251
  /**
159
252
  * Complete export manifest validation report.
@@ -33,4 +33,31 @@ export var ArtifactType;
33
33
  /** Design rules check report. */
34
34
  ArtifactType["DrcReport"] = "drc-report";
35
35
  })(ArtifactType || (ArtifactType = {}));
36
+ /**
37
+ * Manufacturing handoff role for an export artifact.
38
+ *
39
+ * File extensions alone are often ambiguous. Roles let the validator check
40
+ * that a fabrication package has the required copper, mask, drill, outline,
41
+ * assembly, and documentation artifacts.
42
+ */
43
+ export var ExportArtifactRole;
44
+ (function (ExportArtifactRole) {
45
+ ExportArtifactRole["TopCopper"] = "top-copper";
46
+ ExportArtifactRole["BottomCopper"] = "bottom-copper";
47
+ ExportArtifactRole["InnerCopper"] = "inner-copper";
48
+ ExportArtifactRole["TopSolderMask"] = "top-solder-mask";
49
+ ExportArtifactRole["BottomSolderMask"] = "bottom-solder-mask";
50
+ ExportArtifactRole["TopSilkscreen"] = "top-silkscreen";
51
+ ExportArtifactRole["BottomSilkscreen"] = "bottom-silkscreen";
52
+ ExportArtifactRole["BoardOutline"] = "board-outline";
53
+ ExportArtifactRole["DrillPlated"] = "drill-plated";
54
+ ExportArtifactRole["DrillNonPlated"] = "drill-nonplated";
55
+ ExportArtifactRole["Bom"] = "bom";
56
+ ExportArtifactRole["PickPlace"] = "pick-place";
57
+ ExportArtifactRole["SchematicPdf"] = "schematic-pdf";
58
+ ExportArtifactRole["BoardPdf"] = "board-pdf";
59
+ ExportArtifactRole["Netlist"] = "netlist";
60
+ ExportArtifactRole["DrcReport"] = "drc-report";
61
+ ExportArtifactRole["ErcReport"] = "erc-report";
62
+ })(ExportArtifactRole || (ExportArtifactRole = {}));
36
63
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/export-manifest/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,CAAN,IAAY,YAiBX;AAjBD,WAAY,YAAY;IACtB,2CAA2C;IAC3C,iCAAiB,CAAA;IACjB,gCAAgC;IAChC,+BAAe,CAAA;IACf,+BAA+B;IAC/B,2BAAW,CAAA;IACX,4CAA4C;IAC5C,2BAAW,CAAA;IACX,8CAA8C;IAC9C,2BAAW,CAAA;IACX,gDAAgD;IAChD,mCAAmB,CAAA;IACnB,qCAAqC;IACrC,wCAAwB,CAAA;IACxB,iCAAiC;IACjC,wCAAwB,CAAA;AAC1B,CAAC,EAjBW,YAAY,KAAZ,YAAY,QAiBvB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/export-manifest/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,CAAN,IAAY,YAiBX;AAjBD,WAAY,YAAY;IACtB,2CAA2C;IAC3C,iCAAiB,CAAA;IACjB,gCAAgC;IAChC,+BAAe,CAAA;IACf,+BAA+B;IAC/B,2BAAW,CAAA;IACX,4CAA4C;IAC5C,2BAAW,CAAA;IACX,8CAA8C;IAC9C,2BAAW,CAAA;IACX,gDAAgD;IAChD,mCAAmB,CAAA;IACnB,qCAAqC;IACrC,wCAAwB,CAAA;IACxB,iCAAiC;IACjC,wCAAwB,CAAA;AAC1B,CAAC,EAjBW,YAAY,KAAZ,YAAY,QAiBvB;AAED;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,kBAkBX;AAlBD,WAAY,kBAAkB;IAC5B,8CAAwB,CAAA;IACxB,oDAA8B,CAAA;IAC9B,kDAA4B,CAAA;IAC5B,uDAAiC,CAAA;IACjC,6DAAuC,CAAA;IACvC,sDAAgC,CAAA;IAChC,4DAAsC,CAAA;IACtC,oDAA8B,CAAA;IAC9B,kDAA4B,CAAA;IAC5B,wDAAkC,CAAA;IAClC,iCAAW,CAAA;IACX,8CAAwB,CAAA;IACxB,oDAA8B,CAAA;IAC9B,4CAAsB,CAAA;IACtB,yCAAmB,CAAA;IACnB,8CAAwB,CAAA;IACxB,8CAAwB,CAAA;AAC1B,CAAC,EAlBW,kBAAkB,KAAlB,kBAAkB,QAkB7B"}
@@ -15,6 +15,10 @@
15
15
  * 8. Missing required file — error when expected artifact not found in output
16
16
  * 9. Unexpected file — warning when output file not in expected set
17
17
  * 10. Wrong file type — error when artifact type doesn't match expected
18
+ * 11. Missing artifact metadata — error/warning for missing checksum, size, or generator data
19
+ * 12. Manufacturing roles — error when required board outline, drill, or layer roles are missing
20
+ * 13. Project metadata — error when EasyEDA/project metadata is required but absent
21
+ * 14. BOM/PNP consistency — error when pick-and-place designators are not represented in BOM
18
22
  *
19
23
  * @module
20
24
  */
@@ -35,5 +39,9 @@ import type { ExportManifestInput, ExportManifestReport } from './types.js';
35
39
  * 8. Missing required file — error when expected artifact not in output
36
40
  * 9. Unexpected file — warning when output file not in expected set
37
41
  * 10. Wrong file type — error when artifact type !== expected type
42
+ * 11. Required metadata — error when manufacturing policy requires missing checksums, sizes, or generation metadata
43
+ * 12. Manufacturing roles — error when required board outline, drill, layer, BOM, or pick-place roles are missing
44
+ * 13. Project metadata — error when EasyEDA/project metadata required by policy is absent
45
+ * 14. BOM/PNP consistency — error when assembly designator data is inconsistent
38
46
  */
39
47
  export declare function validateExportManifest(input: ExportManifestInput): ExportManifestReport;
@@ -15,10 +15,15 @@
15
15
  * 8. Missing required file — error when expected artifact not found in output
16
16
  * 9. Unexpected file — warning when output file not in expected set
17
17
  * 10. Wrong file type — error when artifact type doesn't match expected
18
+ * 11. Missing artifact metadata — error/warning for missing checksum, size, or generator data
19
+ * 12. Manufacturing roles — error when required board outline, drill, or layer roles are missing
20
+ * 13. Project metadata — error when EasyEDA/project metadata is required but absent
21
+ * 14. BOM/PNP consistency — error when pick-and-place designators are not represented in BOM
18
22
  *
19
23
  * @module
20
24
  */
21
25
  import { ExportManifestCode, manifestError, manifestWarning } from './errors.js';
26
+ import { ExportArtifactRole } from './types.js';
22
27
  // ── Constants ───────────────────────────────────────────────────────────────
23
28
  /** Simple semver regex: major.minor.patch with optional pre-release. */
24
29
  const SEMVER_RE = /^\d+\.\d+\.\d+(?:-[a-zA-Z0-9.]+)?$/;
@@ -221,6 +226,206 @@ function checkWrongFileTypes(input) {
221
226
  }
222
227
  return issues;
223
228
  }
229
+ // ── Rule: required artifact metadata ────────────────────────────────────────
230
+ function checkRequiredArtifactMetadata(input) {
231
+ const issues = [];
232
+ const policy = input.manufacturingPolicy;
233
+ if (!policy)
234
+ return issues;
235
+ for (const [i, artifact] of input.artifacts.entries()) {
236
+ if (!artifact.required)
237
+ continue;
238
+ if (policy.requireChecksums && (!artifact.checksum || artifact.checksum.trim().length === 0)) {
239
+ issues.push(manifestError(ExportManifestCode.MISSING_CHECKSUM, `Required artifact "${artifact.filename}" is missing checksum metadata`, {
240
+ path: `artifacts[${i}].checksum`,
241
+ artifactPath: artifact.filename,
242
+ artifactType: artifact.fileType,
243
+ remediationHint: 'Compute and store a SHA-256 checksum for every required export artifact before manufacturing handoff',
244
+ }));
245
+ }
246
+ if (policy.requireChecksums && artifact.checksum && !artifact.checksumAlgorithm) {
247
+ issues.push(manifestWarning(ExportManifestCode.MISSING_CHECKSUM, `Artifact "${artifact.filename}" has a checksum but no checksumAlgorithm`, {
248
+ path: `artifacts[${i}].checksumAlgorithm`,
249
+ artifactPath: artifact.filename,
250
+ artifactType: artifact.fileType,
251
+ remediationHint: 'Set checksumAlgorithm to sha256, sha512, or md5; sha256 is preferred',
252
+ }));
253
+ }
254
+ if (policy.requireFileSizes && artifact.fileSize === undefined) {
255
+ issues.push(manifestError(ExportManifestCode.MISSING_FILE_SIZE, `Required artifact "${artifact.filename}" is missing fileSize metadata`, {
256
+ path: `artifacts[${i}].fileSize`,
257
+ artifactPath: artifact.filename,
258
+ artifactType: artifact.fileType,
259
+ remediationHint: 'Record the actual file size from disk so empty/truncated package artifacts can be detected',
260
+ }));
261
+ }
262
+ if (policy.requireGenerationMetadata) {
263
+ const missingFields = [
264
+ !artifact.generatedByTool ? 'generatedByTool' : undefined,
265
+ !artifact.timestamp ? 'timestamp' : undefined,
266
+ !artifact.sourceProject ? 'sourceProject' : undefined,
267
+ ].filter((field) => Boolean(field));
268
+ if (missingFields.length > 0) {
269
+ issues.push(manifestError(ExportManifestCode.MISSING_GENERATION_METADATA, `Required artifact "${artifact.filename}" is missing generation metadata: ${missingFields.join(', ')}`, {
270
+ path: `artifacts[${i}]`,
271
+ artifactPath: artifact.filename,
272
+ artifactType: artifact.fileType,
273
+ remediationHint: 'Record sourceProject, generatedByTool, and timestamp for every required artifact so the package is reproducible and auditable',
274
+ details: { missingFields },
275
+ }));
276
+ }
277
+ }
278
+ }
279
+ return issues;
280
+ }
281
+ // ── Rule: expected role mismatch ────────────────────────────────────────────
282
+ function checkExpectedRoles(input) {
283
+ const issues = [];
284
+ if (!input.expectedArtifacts || input.expectedArtifacts.length === 0)
285
+ return issues;
286
+ const artifactByFilename = new Map(input.artifacts.map((artifact) => [artifact.filename, artifact]));
287
+ for (const [i, expected] of input.expectedArtifacts.entries()) {
288
+ if (!expected.role)
289
+ continue;
290
+ const artifact = artifactByFilename.get(expected.filename);
291
+ if (!artifact)
292
+ continue;
293
+ if (artifact.role !== expected.role) {
294
+ issues.push(manifestError(ExportManifestCode.MISSING_REQUIRED_ROLE, `Artifact "${expected.filename}" has role "${artifact.role ?? '<missing>'}" but expected "${expected.role}"`, {
295
+ path: `expectedArtifacts[${i}].role`,
296
+ artifactPath: expected.filename,
297
+ artifactType: expected.fileType,
298
+ remediationHint: 'Assign the correct manufacturing role to the artifact so package completeness checks can reason about layers and assembly outputs',
299
+ details: { actualRole: artifact.role, expectedRole: expected.role },
300
+ }));
301
+ }
302
+ }
303
+ return issues;
304
+ }
305
+ // ── Rule: manufacturing required roles ──────────────────────────────────────
306
+ function checkManufacturingRoles(input) {
307
+ const issues = [];
308
+ const requiredRoles = input.manufacturingPolicy?.requiredRoles ?? [];
309
+ if (requiredRoles.length === 0)
310
+ return issues;
311
+ const presentRoles = new Set(input.artifacts.map((artifact) => artifact.role).filter(Boolean));
312
+ for (const requiredRole of requiredRoles) {
313
+ if (presentRoles.has(requiredRole))
314
+ continue;
315
+ let code = ExportManifestCode.MISSING_REQUIRED_ROLE;
316
+ let message = `Required manufacturing artifact role "${requiredRole}" is missing from the export package`;
317
+ let hint = 'Re-run the export or add the missing artifact to the package manifest before manufacturing handoff';
318
+ if (requiredRole === ExportArtifactRole.BoardOutline) {
319
+ code = ExportManifestCode.MISSING_BOARD_OUTLINE;
320
+ message = 'Board outline artifact is missing from the manufacturing export package';
321
+ hint =
322
+ 'Export the board outline/mechanical layer; fabrication packages without a board outline should not be handed off';
323
+ }
324
+ else if (requiredRole === ExportArtifactRole.DrillPlated ||
325
+ requiredRole === ExportArtifactRole.DrillNonPlated) {
326
+ code = ExportManifestCode.MISSING_DRILL_FILE;
327
+ message = `Required drill artifact role "${requiredRole}" is missing from the manufacturing export package`;
328
+ hint =
329
+ 'Export the required NC drill file and verify it is non-empty before fabrication handoff';
330
+ }
331
+ issues.push(manifestError(code, message, {
332
+ path: 'manufacturingPolicy.requiredRoles',
333
+ artifactType: requiredRole,
334
+ remediationHint: hint,
335
+ details: { requiredRole },
336
+ }));
337
+ if (code !== ExportManifestCode.MISSING_REQUIRED_ROLE) {
338
+ issues.push(manifestError(ExportManifestCode.MISSING_REQUIRED_ROLE, `Required manufacturing artifact role "${requiredRole}" is missing from the export package`, {
339
+ path: 'manufacturingPolicy.requiredRoles',
340
+ artifactType: requiredRole,
341
+ remediationHint: hint,
342
+ details: { requiredRole },
343
+ }));
344
+ }
345
+ }
346
+ return issues;
347
+ }
348
+ // ── Rule: project / EasyEDA metadata ────────────────────────────────────────
349
+ function checkProjectMetadata(input) {
350
+ const issues = [];
351
+ if (!input.manufacturingPolicy?.requireProjectMetadata)
352
+ return issues;
353
+ const metadata = input.projectMetadata;
354
+ const missingFields = [
355
+ !metadata?.projectId ? 'projectMetadata.projectId' : undefined,
356
+ !metadata?.projectName && !input.sourceProjectName ? 'projectMetadata.projectName' : undefined,
357
+ !metadata?.easyedaVersion ? 'projectMetadata.easyedaVersion' : undefined,
358
+ !metadata?.bridgeVersion ? 'projectMetadata.bridgeVersion' : undefined,
359
+ !input.serverVersion ? 'serverVersion' : undefined,
360
+ ].filter((field) => Boolean(field));
361
+ if (missingFields.length > 0) {
362
+ issues.push(manifestError(ExportManifestCode.MISSING_PROJECT_METADATA, `Manufacturing manifest is missing required project/EasyEDA metadata: ${missingFields.join(', ')}`, {
363
+ path: 'projectMetadata',
364
+ remediationHint: 'Attach EasyEDA version, bridge version, server version, project id, and project name to the manifest before releasing manufacturing files',
365
+ details: { missingFields },
366
+ }));
367
+ }
368
+ return issues;
369
+ }
370
+ // ── Rule: BOM / pick-and-place consistency ──────────────────────────────────
371
+ function normalizeDesignator(value) {
372
+ return value.trim().toUpperCase();
373
+ }
374
+ function checkBomPnpConsistency(input) {
375
+ const issues = [];
376
+ const consistency = input.assemblyConsistency;
377
+ if (!input.manufacturingPolicy?.requireBomPnpConsistency && !consistency)
378
+ return issues;
379
+ const artifactsByRole = new Set(input.artifacts.map((artifact) => artifact.role).filter(Boolean));
380
+ const hasBom = artifactsByRole.has(ExportArtifactRole.Bom);
381
+ const hasPnp = artifactsByRole.has(ExportArtifactRole.PickPlace);
382
+ if (input.manufacturingPolicy?.requireBomPnpConsistency && (!hasBom || !hasPnp)) {
383
+ const missing = [
384
+ !hasBom ? ExportArtifactRole.Bom : undefined,
385
+ !hasPnp ? ExportArtifactRole.PickPlace : undefined,
386
+ ].filter((role) => Boolean(role));
387
+ issues.push(manifestError(ExportManifestCode.BOM_PNP_MISMATCH, `BOM / pick-and-place consistency was requested but package is missing: ${missing.join(', ')}`, {
388
+ path: 'artifacts',
389
+ remediationHint: 'Export both BOM and pick-and-place files before running assembly consistency checks',
390
+ details: { missingRoles: missing },
391
+ }));
392
+ }
393
+ if (!consistency)
394
+ return issues;
395
+ const bomDesignators = new Set((consistency.bomDesignators ?? []).map(normalizeDesignator));
396
+ const pnpDesignators = new Set((consistency.pnpDesignators ?? []).map(normalizeDesignator));
397
+ if (consistency.expectedBomDesignatorCount !== undefined &&
398
+ bomDesignators.size !== consistency.expectedBomDesignatorCount) {
399
+ issues.push(manifestError(ExportManifestCode.BOM_PNP_MISMATCH, `BOM designator count mismatch: expected ${consistency.expectedBomDesignatorCount}, got ${bomDesignators.size}`, {
400
+ path: 'assemblyConsistency.expectedBomDesignatorCount',
401
+ remediationHint: 'Regenerate the BOM or update the expected designator count from the exported file parser',
402
+ details: {
403
+ expected: consistency.expectedBomDesignatorCount,
404
+ actual: bomDesignators.size,
405
+ },
406
+ }));
407
+ }
408
+ if (consistency.expectedPnpDesignatorCount !== undefined &&
409
+ pnpDesignators.size !== consistency.expectedPnpDesignatorCount) {
410
+ issues.push(manifestError(ExportManifestCode.BOM_PNP_MISMATCH, `Pick-and-place designator count mismatch: expected ${consistency.expectedPnpDesignatorCount}, got ${pnpDesignators.size}`, {
411
+ path: 'assemblyConsistency.expectedPnpDesignatorCount',
412
+ remediationHint: 'Regenerate the pick-and-place file or update the expected designator count from the exported file parser',
413
+ details: {
414
+ expected: consistency.expectedPnpDesignatorCount,
415
+ actual: pnpDesignators.size,
416
+ },
417
+ }));
418
+ }
419
+ const missingFromBom = [...pnpDesignators].filter((designator) => !bomDesignators.has(designator));
420
+ if (missingFromBom.length > 0) {
421
+ issues.push(manifestError(ExportManifestCode.BOM_PNP_MISMATCH, `Pick-and-place contains designators not present in BOM: ${missingFromBom.join(', ')}`, {
422
+ path: 'assemblyConsistency.pnpDesignators',
423
+ remediationHint: 'Ensure every placed assembly designator is represented in the BOM, or explicitly mark non-BOM mechanical/fiducial rows as excluded before handoff',
424
+ details: { missingFromBom },
425
+ }));
426
+ }
427
+ return issues;
428
+ }
224
429
  const RULES = [
225
430
  checkManifestVersion,
226
431
  checkSourceProject,
@@ -232,6 +437,11 @@ const RULES = [
232
437
  checkMissingRequiredFiles,
233
438
  checkUnexpectedFiles,
234
439
  checkWrongFileTypes,
440
+ checkRequiredArtifactMetadata,
441
+ checkExpectedRoles,
442
+ checkManufacturingRoles,
443
+ checkProjectMetadata,
444
+ checkBomPnpConsistency,
235
445
  ];
236
446
  // ── Summary builder ─────────────────────────────────────────────────────────
237
447
  function buildSummary(issues, input) {
@@ -252,6 +462,16 @@ function buildSummary(issues, input) {
252
462
  missingPurposes: issues.filter((i) => i.code === ExportManifestCode.MISSING_PURPOSE).length,
253
463
  missingTimestamps: issues.filter((i) => i.code === ExportManifestCode.MISSING_GENERATED_TIMESTAMP).length,
254
464
  missingSourceProjects: issues.filter((i) => i.code === ExportManifestCode.MISSING_SOURCE_PROJECT).length,
465
+ missingChecksums: issues.filter((i) => i.code === ExportManifestCode.MISSING_CHECKSUM).length,
466
+ missingFileSizes: issues.filter((i) => i.code === ExportManifestCode.MISSING_FILE_SIZE).length,
467
+ missingRequiredRoles: issues.filter((i) => i.code === ExportManifestCode.MISSING_REQUIRED_ROLE)
468
+ .length,
469
+ missingBoardOutlines: issues.filter((i) => i.code === ExportManifestCode.MISSING_BOARD_OUTLINE)
470
+ .length,
471
+ missingDrillFiles: issues.filter((i) => i.code === ExportManifestCode.MISSING_DRILL_FILE)
472
+ .length,
473
+ bomPnpMismatches: issues.filter((i) => i.code === ExportManifestCode.BOM_PNP_MISMATCH).length,
474
+ missingProjectMetadata: issues.filter((i) => i.code === ExportManifestCode.MISSING_PROJECT_METADATA).length,
255
475
  };
256
476
  }
257
477
  // ── Main entry point ────────────────────────────────────────────────────────
@@ -271,6 +491,10 @@ function buildSummary(issues, input) {
271
491
  * 8. Missing required file — error when expected artifact not in output
272
492
  * 9. Unexpected file — warning when output file not in expected set
273
493
  * 10. Wrong file type — error when artifact type !== expected type
494
+ * 11. Required metadata — error when manufacturing policy requires missing checksums, sizes, or generation metadata
495
+ * 12. Manufacturing roles — error when required board outline, drill, layer, BOM, or pick-place roles are missing
496
+ * 13. Project metadata — error when EasyEDA/project metadata required by policy is absent
497
+ * 14. BOM/PNP consistency — error when assembly designator data is inconsistent
274
498
  */
275
499
  export function validateExportManifest(input) {
276
500
  const issues = [];
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/export-manifest/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAIjF,+EAA+E;AAE/E,wEAAwE;AACxE,MAAM,SAAS,GAAG,oCAAoC,CAAC;AAEvD,+EAA+E;AAE/E,SAAS,oBAAoB,CAAC,KAA0B;IACtD,MAAM,MAAM,GAA0B,EAAE,CAAC;IAEzC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACrD,MAAM,CAAC,IAAI,CACT,aAAa,CACX,kBAAkB,CAAC,wBAAwB,EAC3C,qBAAqB,KAAK,CAAC,OAAO,IAAI,EAAE,wDAAwD,EAChG;YACE,IAAI,EAAE,SAAS;YACf,eAAe,EAAE,gEAAgE;YACjF,OAAO,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,OAAO,EAAE;SAC5C,CACF,CACF,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+EAA+E;AAE/E,SAAS,kBAAkB,CAAC,KAA0B;IACpD,MAAM,MAAM,GAA0B,EAAE,CAAC;IAEzC,IAAI,CAAC,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxE,MAAM,CAAC,IAAI,CACT,aAAa,CACX,kBAAkB,CAAC,sBAAsB,EACzC,iDAAiD,EACjD;YACE,IAAI,EAAE,iBAAiB;YACvB,eAAe,EACb,2EAA2E;SAC9E,CACF,CACF,CAAC;IACJ,CAAC;IAED,yCAAyC;IACzC,KAAK,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,aAAa,IAAI,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1E,MAAM,CAAC,IAAI,CACT,eAAe,CACb,kBAAkB,CAAC,sBAAsB,EACzC,aAAa,QAAQ,CAAC,QAAQ,yCAAyC,EACvE;gBACE,IAAI,EAAE,aAAa,CAAC,GAAG;gBACvB,YAAY,EAAE,QAAQ,CAAC,QAAQ;gBAC/B,eAAe,EACb,2EAA2E;aAC9E,CACF,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,gFAAgF;AAEhF,SAAS,wBAAwB,CAAC,KAA0B;IAC1D,MAAM,MAAM,GAA0B,EAAE,CAAC;IAEzC,iCAAiC;IACjC,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,CAAC,IAAI,CACT,aAAa,CACX,kBAAkB,CAAC,2BAA2B,EAC9C,4CAA4C,EAC5C;YACE,IAAI,EAAE,aAAa;YACnB,eAAe,EAAE,gEAAgE;SAClF,CACF,CACF,CAAC;IACJ,CAAC;IAED,gCAAgC;IAChC,KAAK,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClE,MAAM,CAAC,IAAI,CACT,eAAe,CACb,kBAAkB,CAAC,2BAA2B,EAC9C,aAAa,QAAQ,CAAC,QAAQ,qCAAqC,EACnE;gBACE,IAAI,EAAE,aAAa,CAAC,GAAG;gBACvB,YAAY,EAAE,QAAQ,CAAC,QAAQ;gBAC/B,eAAe,EAAE,mEAAmE;aACrF,CACF,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,gFAAgF;AAEhF,SAAS,oBAAoB,CAAC,KAA0B;IACtD,MAAM,MAAM,GAA0B,EAAE,CAAC;IAEzC,KAAK,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9D,MAAM,CAAC,IAAI,CACT,eAAe,CACb,kBAAkB,CAAC,eAAe,EAClC,aAAa,QAAQ,CAAC,QAAQ,oCAAoC,EAClE;gBACE,IAAI,EAAE,aAAa,CAAC,GAAG;gBACvB,YAAY,EAAE,QAAQ,CAAC,QAAQ;gBAC/B,eAAe,EACb,4EAA4E;aAC/E,CACF,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,gFAAgF;AAEhF,SAAS,eAAe,CAAC,KAA0B;IACjD,MAAM,MAAM,GAA0B,EAAE,CAAC;IAEzC,KAAK,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;QACtD,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC/D,MAAM,CAAC,IAAI,CACT,aAAa,CACX,kBAAkB,CAAC,UAAU,EAC7B,aAAa,QAAQ,CAAC,QAAQ,sBAAsB,EACpD;gBACE,IAAI,EAAE,aAAa,CAAC,GAAG;gBACvB,YAAY,EAAE,QAAQ,CAAC,QAAQ;gBAC/B,YAAY,EAAE,QAAQ,CAAC,QAAQ;gBAC/B,eAAe,EACb,kGAAkG;gBACpG,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE;aACzC,CACF,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,gFAAgF;AAEhF,SAAS,eAAe,CAAC,KAA0B;IACjD,MAAM,MAAM,GAA0B,EAAE,CAAC;IAEzC,KAAK,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;QACtD,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CACT,eAAe,CACb,kBAAkB,CAAC,UAAU,EAC7B,aAAa,QAAQ,CAAC,QAAQ,mDAAmD,EACjF;gBACE,IAAI,EAAE,aAAa,CAAC,GAAG;gBACvB,YAAY,EAAE,QAAQ,CAAC,QAAQ;gBAC/B,YAAY,EAAE,QAAQ,CAAC,QAAQ;gBAC/B,eAAe,EACb,yEAAyE;gBAC3E,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;aACzB,CACF,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+EAA+E;AAE/E,SAAS,uBAAuB,CAAC,KAA0B;IACzD,MAAM,MAAM,GAA0B,EAAE,CAAC;IAEzC,KAAK,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;QACtD,IACE,QAAQ,CAAC,QAAQ,KAAK,SAAS;YAC/B,QAAQ,CAAC,QAAQ,KAAK,IAAI;YAC1B,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;YACnC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,2CAA2C;UAC3E,CAAC;YACD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,QAAQ,IAAI,MAAM,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBAC9C,MAAM,CAAC,IAAI,CACT,aAAa,CACX,kBAAkB,CAAC,iBAAiB,EACpC,0BAA0B,QAAQ,CAAC,QAAQ,eAAe,QAAQ,SAAS,MAAM,EAAE,EACnF;oBACE,IAAI,EAAE,aAAa,CAAC,GAAG;oBACvB,YAAY,EAAE,QAAQ,CAAC,QAAQ;oBAC/B,eAAe,EAAE,wDAAwD;oBACzE,OAAO,EAAE;wBACP,gBAAgB,EAAE,QAAQ;wBAC1B,cAAc,EAAE,MAAM;qBACvB;iBACF,CACF,CACF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+EAA+E;AAE/E,SAAS,yBAAyB,CAAC,KAA0B;IAC3D,MAAM,MAAM,GAA0B,EAAE,CAAC;IAEzC,IAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEtE,KAAK,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,CAAC;QAC9D,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,sBAAsB;QACpE,IAAI,UAAU,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxD,MAAM,CAAC,IAAI,CACT,aAAa,CACX,kBAAkB,CAAC,qBAAqB,EACxC,sBAAsB,QAAQ,CAAC,QAAQ,MAAM,QAAQ,CAAC,QAAQ,sCAAsC,EACpG;gBACE,IAAI,EAAE,qBAAqB,CAAC,GAAG;gBAC/B,YAAY,EAAE,QAAQ,CAAC,QAAQ;gBAC/B,eAAe,EAAE,8DAA8D;gBAC/E,OAAO,EAAE;oBACP,gBAAgB,EAAE,QAAQ,CAAC,QAAQ;oBACnC,gBAAgB,EAAE,QAAQ,CAAC,QAAQ;iBACpC;aACF,CACF,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+EAA+E;AAE/E,SAAS,oBAAoB,CAAC,KAA0B;IACtD,MAAM,MAAM,GAA0B,EAAE,CAAC;IAEzC,IAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE9E,KAAK,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;QACtD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1C,MAAM,CAAC,IAAI,CACT,eAAe,CACb,kBAAkB,CAAC,eAAe,EAClC,wBAAwB,QAAQ,CAAC,QAAQ,qDAAqD,EAC9F;gBACE,IAAI,EAAE,aAAa,CAAC,GAAG;gBACvB,YAAY,EAAE,QAAQ,CAAC,QAAQ;gBAC/B,YAAY,EAAE,QAAQ,CAAC,QAAQ;gBAC/B,eAAe,EACb,2FAA2F;gBAC7F,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE;aACzC,CACF,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+EAA+E;AAE/E,SAAS,mBAAmB,CAAC,KAA0B;IACrD,MAAM,MAAM,GAA0B,EAAE,CAAC;IAEzC,IAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,iDAAiD;IACjD,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACrD,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC/C,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;QACtD,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC/D,IAAI,YAAY,IAAI,QAAQ,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;YACvD,MAAM,CAAC,IAAI,CACT,aAAa,CACX,kBAAkB,CAAC,eAAe,EAClC,aAAa,QAAQ,CAAC,QAAQ,eAAe,QAAQ,CAAC,QAAQ,mBAAmB,YAAY,GAAG,EAChG;gBACE,IAAI,EAAE,aAAa,CAAC,GAAG;gBACvB,YAAY,EAAE,QAAQ,CAAC,QAAQ;gBAC/B,YAAY,EAAE,QAAQ,CAAC,QAAQ;gBAC/B,eAAe,EACb,mFAAmF;gBACrF,OAAO,EAAE;oBACP,UAAU,EAAE,QAAQ,CAAC,QAAQ;oBAC7B,YAAY;iBACb;aACF,CACF,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAMD,MAAM,KAAK,GAAa;IACtB,oBAAoB;IACpB,kBAAkB;IAClB,wBAAwB;IACxB,oBAAoB;IACpB,eAAe;IACf,eAAe;IACf,uBAAuB;IACvB,yBAAyB;IACzB,oBAAoB;IACpB,mBAAmB;CACpB,CAAC;AAEF,+EAA+E;AAE/E,SAAS,YAAY,CACnB,MAA6B,EAC7B,KAA0B;IAE1B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;IACnE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IAEvE,OAAO;QACL,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;QAClC,MAAM;QACN,QAAQ;QACR,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,qBAAqB,CAAC;aACvF,MAAM;QACT,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,UAAU,CAAC,CAAC,MAAM;QACjF,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,UAAU,CAAC,CAAC,MAAM;QACjF,kBAAkB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,iBAAiB,CAAC;aACtF,MAAM;QACT,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,eAAe,CAAC,CAAC,MAAM;QAC3F,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,eAAe,CAAC,CAAC,MAAM;QAC1F,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,eAAe,CAAC,CAAC,MAAM;QAC3F,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,2BAA2B,CACjE,CAAC,MAAM;QACR,qBAAqB,EAAE,MAAM,CAAC,MAAM,CAClC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,sBAAsB,CAC5D,CAAC,MAAM;KACT,CAAC;AACJ,CAAC;AAED,+EAA+E;AAE/E;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAA0B;IAC/D,MAAM,MAAM,GAA0B,EAAE,CAAC;IAEzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;IAEnE,OAAO;QACL,KAAK,EAAE,MAAM,KAAK,CAAC;QACnB,QAAQ,EAAE,KAAK;QACf,MAAM;QACN,OAAO,EAAE,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC;KACrC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/export-manifest/validation.ts"],"names":[],"mappings":"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"}
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "easyeda-mcp-pro",
3
- "version": "0.6.9",
3
+ "version": "0.7.0",
4
4
  "mcpName": "io.github.oaslananka/easyeda-mcp-pro",
5
5
  "description": "MCP server for EasyEDA Pro: PCB inspection, BOM, exports, and hardware review.",
6
6
  "keywords": [