@jlcpcb/core 0.1.0 → 0.2.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/CHANGELOG.md +33 -0
- package/dist/api/easyeda-community.d.ts +36 -0
- package/dist/api/easyeda-community.d.ts.map +1 -0
- package/dist/api/easyeda.d.ts +23 -0
- package/dist/api/easyeda.d.ts.map +1 -0
- package/dist/api/index.d.ts +7 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/jlc.d.ts +41 -0
- package/dist/api/jlc.d.ts.map +1 -0
- package/dist/assets/search.html +528 -0
- package/dist/browser/index.d.ts +8 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/kicad-renderer.d.ts +13 -0
- package/dist/browser/kicad-renderer.d.ts.map +1 -0
- package/dist/browser/sexpr-parser.d.ts +84 -0
- package/dist/browser/sexpr-parser.d.ts.map +1 -0
- package/dist/constants/design-rules.d.ts +34 -0
- package/dist/constants/design-rules.d.ts.map +1 -0
- package/dist/constants/footprints.d.ts +134 -0
- package/dist/constants/footprints.d.ts.map +1 -0
- package/dist/constants/index.d.ts +7 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/kicad.d.ts +67 -0
- package/dist/constants/kicad.d.ts.map +1 -0
- package/dist/converter/category-router.d.ts +47 -0
- package/dist/converter/category-router.d.ts.map +1 -0
- package/dist/converter/footprint-mapper.d.ts +40 -0
- package/dist/converter/footprint-mapper.d.ts.map +1 -0
- package/dist/converter/footprint-mapper.test.d.ts +2 -0
- package/dist/converter/footprint-mapper.test.d.ts.map +1 -0
- package/dist/converter/footprint.d.ts +116 -0
- package/dist/converter/footprint.d.ts.map +1 -0
- package/dist/converter/global-lib-table.d.ts +29 -0
- package/dist/converter/global-lib-table.d.ts.map +1 -0
- package/dist/converter/index.d.ts +12 -0
- package/dist/converter/index.d.ts.map +1 -0
- package/dist/converter/lib-table.d.ts +61 -0
- package/dist/converter/lib-table.d.ts.map +1 -0
- package/dist/converter/svg-arc.d.ts +45 -0
- package/dist/converter/svg-arc.d.ts.map +1 -0
- package/dist/converter/symbol-templates.d.ts +34 -0
- package/dist/converter/symbol-templates.d.ts.map +1 -0
- package/dist/converter/symbol.d.ts +223 -0
- package/dist/converter/symbol.d.ts.map +1 -0
- package/dist/converter/value-normalizer.d.ts +33 -0
- package/dist/converter/value-normalizer.d.ts.map +1 -0
- package/dist/http/index.d.ts +5 -0
- package/dist/http/index.d.ts.map +1 -0
- package/dist/http/routes.d.ts +12 -0
- package/dist/http/routes.d.ts.map +1 -0
- package/dist/http/server.d.ts +18 -0
- package/dist/http/server.d.ts.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9633 -0
- package/dist/parsers/easyeda-shapes.d.ts +115 -0
- package/dist/parsers/easyeda-shapes.d.ts.map +1 -0
- package/dist/parsers/http-client.d.ts +16 -0
- package/dist/parsers/http-client.d.ts.map +1 -0
- package/dist/parsers/index.d.ts +11 -0
- package/dist/parsers/index.d.ts.map +1 -0
- package/dist/parsers/utils.d.ts +17 -0
- package/dist/parsers/utils.d.ts.map +1 -0
- package/dist/services/component-service.d.ts +31 -0
- package/dist/services/component-service.d.ts.map +1 -0
- package/dist/services/fix-service.d.ts +40 -0
- package/dist/services/fix-service.d.ts.map +1 -0
- package/dist/services/index.d.ts +8 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/library-service.d.ts +112 -0
- package/dist/services/library-service.d.ts.map +1 -0
- package/dist/types/component.d.ts +56 -0
- package/dist/types/component.d.ts.map +1 -0
- package/dist/types/easyeda-community.d.ts +74 -0
- package/dist/types/easyeda-community.d.ts.map +1 -0
- package/dist/types/easyeda.d.ts +326 -0
- package/dist/types/easyeda.d.ts.map +1 -0
- package/dist/types/index.d.ts +12 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/jlc.d.ts +78 -0
- package/dist/types/jlc.d.ts.map +1 -0
- package/dist/types/kicad.d.ts +141 -0
- package/dist/types/kicad.d.ts.map +1 -0
- package/dist/types/mcp.d.ts +66 -0
- package/dist/types/mcp.d.ts.map +1 -0
- package/dist/types/project.d.ts +60 -0
- package/dist/types/project.d.ts.map +1 -0
- package/dist/utils/conversion.d.ts +59 -0
- package/dist/utils/conversion.d.ts.map +1 -0
- package/dist/utils/file-system.d.ts +59 -0
- package/dist/utils/file-system.d.ts.map +1 -0
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/logger.d.ts +26 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/validation.d.ts +259 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/package.json +5 -3
- package/scripts/build-search-page.ts +68 -0
- package/src/assets/search-built.html +528 -0
- package/src/assets/search.html +458 -0
- package/src/browser/index.ts +389 -0
- package/src/browser/kicad-renderer.ts +813 -0
- package/src/browser/sexpr-parser.ts +333 -0
- package/src/converter/footprint-mapper.test.ts +159 -0
- package/src/converter/footprint-mapper.ts +42 -134
- package/src/converter/footprint.ts +208 -36
- package/src/converter/global-lib-table.ts +71 -0
- package/src/http/index.ts +5 -0
- package/src/http/routes.ts +266 -0
- package/src/http/server.ts +83 -0
- package/src/index.ts +3 -0
- package/src/parsers/easyeda-shapes.ts +2 -1
- package/src/services/library-service.ts +73 -22
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified EasyEDA shape parser
|
|
3
|
+
* Parses both symbol and footprint shapes from EasyEDA format
|
|
4
|
+
*
|
|
5
|
+
* Shape format reference (from easyeda2kicad):
|
|
6
|
+
* - All shapes use tilde (~) as field delimiter
|
|
7
|
+
* - Coordinates are in 10mil units (0.254mm per unit)
|
|
8
|
+
* - Symbol shapes have Y-axis flipped relative to footprint
|
|
9
|
+
*/
|
|
10
|
+
import type { EasyEDAPin, EasyEDASymbolRect, EasyEDASymbolCircle, EasyEDASymbolEllipse, EasyEDASymbolArc, EasyEDASymbolPolyline, EasyEDASymbolPolygon, EasyEDASymbolPath, ParsedSymbolData, EasyEDAPad, EasyEDATrack, EasyEDAHole, EasyEDACircle, EasyEDAArc, EasyEDARect, EasyEDAVia, EasyEDAText, EasyEDASolidRegion, ParsedFootprintData } from '../types/easyeda.js';
|
|
11
|
+
/**
|
|
12
|
+
* Parse EasyEDA symbol pin format
|
|
13
|
+
* Format: P~show~type~number~x~y~rotation~id~locked^^dotData^^pathData^^nameData^^numData^^dot^^clock
|
|
14
|
+
*
|
|
15
|
+
* Segments:
|
|
16
|
+
* [0] = P~show~type~number~x~y~rotation~id~locked (main settings)
|
|
17
|
+
* [1] = dot display data (visual dot, not inversion)
|
|
18
|
+
* [2] = SVG path for pin line (M x y h LENGTH or v LENGTH)
|
|
19
|
+
* [3] = name text data (1~x~y~rotation~name~fontSize~...)
|
|
20
|
+
* [4] = number text data
|
|
21
|
+
* [5] = inverted bubble indicator - "1" if inverted
|
|
22
|
+
* [6] = clock triangle indicator - non-empty if clock
|
|
23
|
+
*/
|
|
24
|
+
export declare function parseSymbolPin(pinData: string): EasyEDAPin | null;
|
|
25
|
+
/**
|
|
26
|
+
* Parse symbol Rectangle shape
|
|
27
|
+
* Format: R~x~y~rx~ry~width~height~strokeColor~strokeWidth~strokeStyle~fillColor~id~locked
|
|
28
|
+
*/
|
|
29
|
+
export declare function parseSymbolRect(data: string): EasyEDASymbolRect | null;
|
|
30
|
+
/**
|
|
31
|
+
* Parse symbol Circle shape
|
|
32
|
+
* Format: C~cx~cy~radius~strokeColor~strokeWidth~strokeStyle~fillColor~id~locked
|
|
33
|
+
*/
|
|
34
|
+
export declare function parseSymbolCircle(data: string): EasyEDASymbolCircle | null;
|
|
35
|
+
/**
|
|
36
|
+
* Parse symbol Ellipse shape
|
|
37
|
+
* Format: E~cx~cy~rx~ry~strokeColor~strokeWidth~strokeStyle~fillColor~id~locked
|
|
38
|
+
*/
|
|
39
|
+
export declare function parseSymbolEllipse(data: string): EasyEDASymbolEllipse | null;
|
|
40
|
+
/**
|
|
41
|
+
* Parse symbol Arc shape (SVG path format)
|
|
42
|
+
* Format: A~path~strokeColor~strokeWidth~strokeStyle~fillColor~id~locked
|
|
43
|
+
*/
|
|
44
|
+
export declare function parseSymbolArc(data: string): EasyEDASymbolArc | null;
|
|
45
|
+
/**
|
|
46
|
+
* Parse symbol Polyline shape (open path)
|
|
47
|
+
* Format: PL~points~strokeColor~strokeWidth~strokeStyle~fillColor~id~locked
|
|
48
|
+
*/
|
|
49
|
+
export declare function parseSymbolPolyline(data: string): EasyEDASymbolPolyline | null;
|
|
50
|
+
/**
|
|
51
|
+
* Parse symbol Polygon shape (closed filled path)
|
|
52
|
+
* Format: PG~points~strokeColor~strokeWidth~strokeStyle~fillColor~id~locked
|
|
53
|
+
*/
|
|
54
|
+
export declare function parseSymbolPolygon(data: string): EasyEDASymbolPolygon | null;
|
|
55
|
+
/**
|
|
56
|
+
* Parse symbol SVG Path shape
|
|
57
|
+
* Format: PT~path~strokeColor~strokeWidth~strokeStyle~fillColor~id~locked
|
|
58
|
+
*/
|
|
59
|
+
export declare function parseSymbolPath(data: string): EasyEDASymbolPath | null;
|
|
60
|
+
/**
|
|
61
|
+
* Parse PAD element - 18 fields
|
|
62
|
+
* Format: PAD~shape~cx~cy~width~height~layerId~net~number~holeRadius~points~rotation~id~holeLength~holePoint~isPlated~isLocked
|
|
63
|
+
*/
|
|
64
|
+
export declare function parsePad(data: string): EasyEDAPad | null;
|
|
65
|
+
/**
|
|
66
|
+
* Parse TRACK element - silkscreen/fab lines
|
|
67
|
+
* Format: TRACK~strokeWidth~layerId~net~points~id~isLocked
|
|
68
|
+
*/
|
|
69
|
+
export declare function parseTrack(data: string): EasyEDATrack | null;
|
|
70
|
+
/**
|
|
71
|
+
* Parse HOLE element - NPTH
|
|
72
|
+
* Format: HOLE~cx~cy~radius~id~isLocked
|
|
73
|
+
*/
|
|
74
|
+
export declare function parseHole(data: string): EasyEDAHole | null;
|
|
75
|
+
/**
|
|
76
|
+
* Parse CIRCLE element (footprint)
|
|
77
|
+
* Format: CIRCLE~cx~cy~radius~strokeWidth~layerId~id~isLocked
|
|
78
|
+
*/
|
|
79
|
+
export declare function parseCircle(data: string): EasyEDACircle | null;
|
|
80
|
+
/**
|
|
81
|
+
* Parse ARC element (footprint) with SVG path
|
|
82
|
+
* Format: ARC~strokeWidth~layerId~net~path~helperDots~id~isLocked
|
|
83
|
+
*/
|
|
84
|
+
export declare function parseArc(data: string): EasyEDAArc | null;
|
|
85
|
+
/**
|
|
86
|
+
* Parse RECT element (footprint)
|
|
87
|
+
* Format: RECT~x~y~width~height~strokeWidth~id~layerId~isLocked
|
|
88
|
+
*/
|
|
89
|
+
export declare function parseRect(data: string): EasyEDARect | null;
|
|
90
|
+
/**
|
|
91
|
+
* Parse VIA element
|
|
92
|
+
* Format: VIA~cx~cy~diameter~net~radius~id~isLocked
|
|
93
|
+
*/
|
|
94
|
+
export declare function parseVia(data: string): EasyEDAVia | null;
|
|
95
|
+
/**
|
|
96
|
+
* Parse TEXT element
|
|
97
|
+
* Format: TEXT~type~cx~cy~strokeWidth~rotation~mirror~layerId~net~fontSize~text~textPath~isDisplayed~id~isLocked
|
|
98
|
+
*/
|
|
99
|
+
export declare function parseText(data: string): EasyEDAText | null;
|
|
100
|
+
/**
|
|
101
|
+
* Parse SOLIDREGION element - filled polygon region
|
|
102
|
+
* Format: SOLIDREGION~layerId~~path~fillType~id~~~~
|
|
103
|
+
*/
|
|
104
|
+
export declare function parseSolidRegion(data: string): EasyEDASolidRegion | null;
|
|
105
|
+
/**
|
|
106
|
+
* Parse all symbol shapes from raw shape strings
|
|
107
|
+
* Returns parsed data without origin - origin is added by client after parsing.
|
|
108
|
+
*/
|
|
109
|
+
export declare function parseSymbolShapes(shapes: string[]): ParsedSymbolData;
|
|
110
|
+
/**
|
|
111
|
+
* Parse all footprint shapes from raw shape strings
|
|
112
|
+
* Returns parsed data without origin - origin is added by client after parsing.
|
|
113
|
+
*/
|
|
114
|
+
export declare function parseFootprintShapes(shapes: string[]): ParsedFootprintData;
|
|
115
|
+
//# sourceMappingURL=easyeda-shapes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"easyeda-shapes.d.ts","sourceRoot":"","sources":["../../src/parsers/easyeda-shapes.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAEV,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAEhB,UAAU,EACV,YAAY,EACZ,WAAW,EACX,aAAa,EACb,UAAU,EACV,WAAW,EACX,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAQ7B;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CA2CjE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAiBtE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAc1E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAe5E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAYpE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI,CAY9E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAY5E;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAYtE;AAMD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAwBxD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAc5D;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAa1D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAe9D;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAexD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAgB1D;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAexD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAuB1D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAexE;AAMD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAwEpE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAmB,CAoG1E"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared HTTP client for EasyEDA API calls
|
|
3
|
+
* Used by both LCSC and Community API clients
|
|
4
|
+
*/
|
|
5
|
+
export interface FetchOptions {
|
|
6
|
+
method?: 'GET' | 'POST';
|
|
7
|
+
body?: string;
|
|
8
|
+
contentType?: string;
|
|
9
|
+
binary?: boolean;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Fetch URL with curl fallback for reliability
|
|
13
|
+
* Falls back to curl when Node fetch fails (proxy issues, etc.)
|
|
14
|
+
*/
|
|
15
|
+
export declare function fetchWithCurlFallback(url: string, options?: FetchOptions): Promise<string | Buffer>;
|
|
16
|
+
//# sourceMappingURL=http-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/parsers/http-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAuE1B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared EasyEDA parsing utilities
|
|
3
|
+
*
|
|
4
|
+
* This module consolidates all EasyEDA parsing logic used by both
|
|
5
|
+
* the LCSC API client and EasyEDA Community API client.
|
|
6
|
+
*/
|
|
7
|
+
export { fetchWithCurlFallback, type FetchOptions } from './http-client.js';
|
|
8
|
+
export { parseBool, safeParseFloat, safeParseInt } from './utils.js';
|
|
9
|
+
export { parseSymbolPin, parseSymbolRect, parseSymbolCircle, parseSymbolEllipse, parseSymbolArc, parseSymbolPolyline, parseSymbolPolygon, parseSymbolPath, parseSymbolShapes, } from './easyeda-shapes.js';
|
|
10
|
+
export { parsePad, parseTrack, parseHole, parseCircle, parseArc, parseRect, parseVia, parseText, parseFootprintShapes, } from './easyeda-shapes.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,qBAAqB,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAG5E,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGrE,OAAO,EACL,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,QAAQ,EACR,UAAU,EACV,SAAS,EACT,WAAW,EACX,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,oBAAoB,GACrB,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared parsing utilities for EasyEDA data
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Parse boolean from EasyEDA format
|
|
6
|
+
* Empty string = false, "0" = false, any other value = true
|
|
7
|
+
*/
|
|
8
|
+
export declare function parseBool(value: string | undefined): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Safely parse float with default value
|
|
11
|
+
*/
|
|
12
|
+
export declare function safeParseFloat(value: string | undefined, defaultValue?: number): number;
|
|
13
|
+
/**
|
|
14
|
+
* Safely parse int with default value
|
|
15
|
+
*/
|
|
16
|
+
export declare function safeParseInt(value: string | undefined, defaultValue?: number): number;
|
|
17
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/parsers/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAE5D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,YAAY,SAAI,GAAG,MAAM,CAIlF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,YAAY,SAAI,GAAG,MAAM,CAIhF"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Component Service
|
|
3
|
+
* High-level API for searching and fetching components
|
|
4
|
+
*/
|
|
5
|
+
import type { ComponentSearchResult, EasyEDAComponentData, EasyEDACommunityComponent } from '../types/index.js';
|
|
6
|
+
export interface SearchOptions {
|
|
7
|
+
limit?: number;
|
|
8
|
+
inStock?: boolean;
|
|
9
|
+
basicOnly?: boolean;
|
|
10
|
+
source?: 'lcsc' | 'easyeda-community' | 'all';
|
|
11
|
+
}
|
|
12
|
+
export interface ComponentDetails {
|
|
13
|
+
lcscId: string;
|
|
14
|
+
name: string;
|
|
15
|
+
manufacturer: string;
|
|
16
|
+
description: string;
|
|
17
|
+
category: string;
|
|
18
|
+
package: string;
|
|
19
|
+
pinCount: number;
|
|
20
|
+
padCount: number;
|
|
21
|
+
has3DModel: boolean;
|
|
22
|
+
datasheet?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface ComponentService {
|
|
25
|
+
search(query: string, options?: SearchOptions): Promise<ComponentSearchResult[]>;
|
|
26
|
+
fetch(id: string): Promise<EasyEDAComponentData | null>;
|
|
27
|
+
fetchCommunity(uuid: string): Promise<EasyEDACommunityComponent | null>;
|
|
28
|
+
getDetails(lcscId: string): Promise<ComponentDetails>;
|
|
29
|
+
}
|
|
30
|
+
export declare function createComponentService(): ComponentService;
|
|
31
|
+
//# sourceMappingURL=component-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-service.d.ts","sourceRoot":"","sources":["../../src/services/component-service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAKhH,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,GAAG,mBAAmB,GAAG,KAAK,CAAC;CAC/C;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACjF,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IACxD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAC;IACxE,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACvD;AASD,wBAAgB,sBAAsB,IAAI,gBAAgB,CAuDzD"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fix Service
|
|
3
|
+
* High-level API for applying pin corrections to components
|
|
4
|
+
*/
|
|
5
|
+
import type { LibraryCategory } from '../converter/category-router.js';
|
|
6
|
+
export interface PinCorrection {
|
|
7
|
+
action: 'modify' | 'swap' | 'add' | 'remove';
|
|
8
|
+
pinNumber?: string;
|
|
9
|
+
newName?: string;
|
|
10
|
+
newType?: string;
|
|
11
|
+
swapWith?: string;
|
|
12
|
+
addPin?: {
|
|
13
|
+
number: string;
|
|
14
|
+
name: string;
|
|
15
|
+
type: string;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export interface FixOptions {
|
|
19
|
+
projectPath?: string;
|
|
20
|
+
force?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface FixResult {
|
|
23
|
+
success: boolean;
|
|
24
|
+
id: string;
|
|
25
|
+
category: LibraryCategory;
|
|
26
|
+
symbolRef: string;
|
|
27
|
+
footprintRef: string;
|
|
28
|
+
correctionsApplied: number;
|
|
29
|
+
files: {
|
|
30
|
+
symbolLibrary: string;
|
|
31
|
+
footprint?: string;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export interface FixService {
|
|
35
|
+
fix(lcscId: string, corrections: {
|
|
36
|
+
pins?: PinCorrection[];
|
|
37
|
+
}, options?: FixOptions): Promise<FixResult>;
|
|
38
|
+
}
|
|
39
|
+
export declare function createFixService(): FixService;
|
|
40
|
+
//# sourceMappingURL=fix-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fix-service.d.ts","sourceRoot":"","sources":["../../src/services/fix-service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,eAAe,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE;QACL,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE;QAAE,IAAI,CAAC,EAAE,aAAa,EAAE,CAAA;KAAE,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;CACxG;AAED,wBAAgB,gBAAgB,IAAI,UAAU,CAO7C"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* High-level services for jlc-core
|
|
3
|
+
* Provides a clean API for common operations
|
|
4
|
+
*/
|
|
5
|
+
export { createComponentService, type ComponentService, type SearchOptions, type ComponentDetails } from './component-service.js';
|
|
6
|
+
export { createLibraryService, type LibraryService, type InstallOptions, type InstallResult, type InstalledComponent, type ListOptions, type LibraryStatus } from './library-service.js';
|
|
7
|
+
export { createFixService, type FixService, type FixOptions, type FixResult } from './fix-service.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,sBAAsB,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAClI,OAAO,EAAE,oBAAoB,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,KAAK,kBAAkB,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACzL,OAAO,EAAE,gBAAgB,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Library Service
|
|
3
|
+
* High-level API for installing components to KiCad libraries
|
|
4
|
+
*/
|
|
5
|
+
import type { LibraryCategory } from '../converter/category-router.js';
|
|
6
|
+
export interface InstallOptions {
|
|
7
|
+
projectPath?: string;
|
|
8
|
+
include3d?: boolean;
|
|
9
|
+
force?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface InstallResult {
|
|
12
|
+
success: boolean;
|
|
13
|
+
id: string;
|
|
14
|
+
source: 'lcsc' | 'easyeda_community';
|
|
15
|
+
storageMode: 'global' | 'project-local';
|
|
16
|
+
category?: string;
|
|
17
|
+
symbolName: string;
|
|
18
|
+
symbolRef: string;
|
|
19
|
+
footprintRef: string;
|
|
20
|
+
footprintType: 'reference' | 'generated';
|
|
21
|
+
datasheet?: string;
|
|
22
|
+
files: {
|
|
23
|
+
symbolLibrary: string;
|
|
24
|
+
footprint?: string;
|
|
25
|
+
model3d?: string;
|
|
26
|
+
};
|
|
27
|
+
symbolAction: 'created' | 'appended' | 'exists' | 'replaced';
|
|
28
|
+
validationData: ValidationData;
|
|
29
|
+
}
|
|
30
|
+
export interface ValidationData {
|
|
31
|
+
component: {
|
|
32
|
+
name: string;
|
|
33
|
+
description?: string;
|
|
34
|
+
package?: string;
|
|
35
|
+
manufacturer?: string;
|
|
36
|
+
datasheet_url?: string;
|
|
37
|
+
};
|
|
38
|
+
symbol: {
|
|
39
|
+
pin_count: number;
|
|
40
|
+
pins: Array<{
|
|
41
|
+
number: string;
|
|
42
|
+
name: string;
|
|
43
|
+
electrical_type?: string;
|
|
44
|
+
}>;
|
|
45
|
+
};
|
|
46
|
+
footprint: {
|
|
47
|
+
type: string;
|
|
48
|
+
pad_count: number;
|
|
49
|
+
pads?: Array<{
|
|
50
|
+
number: string;
|
|
51
|
+
shape: string;
|
|
52
|
+
}> | null;
|
|
53
|
+
is_kicad_standard: boolean;
|
|
54
|
+
kicad_ref: string;
|
|
55
|
+
};
|
|
56
|
+
checks: {
|
|
57
|
+
pin_pad_count_match: boolean;
|
|
58
|
+
has_power_pins: boolean;
|
|
59
|
+
has_ground_pins: boolean;
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
export interface InstalledComponent {
|
|
63
|
+
lcscId: string;
|
|
64
|
+
name: string;
|
|
65
|
+
category: LibraryCategory;
|
|
66
|
+
symbolRef: string;
|
|
67
|
+
footprintRef: string;
|
|
68
|
+
library: string;
|
|
69
|
+
has3dModel: boolean;
|
|
70
|
+
}
|
|
71
|
+
export interface LibraryStatus {
|
|
72
|
+
installed: boolean;
|
|
73
|
+
linked: boolean;
|
|
74
|
+
version: string;
|
|
75
|
+
componentCount: number;
|
|
76
|
+
paths: {
|
|
77
|
+
symbolsDir: string;
|
|
78
|
+
footprintsDir: string;
|
|
79
|
+
models3dDir: string;
|
|
80
|
+
symLibTable: string;
|
|
81
|
+
fpLibTable: string;
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
export interface ListOptions {
|
|
85
|
+
category?: LibraryCategory;
|
|
86
|
+
projectPath?: string;
|
|
87
|
+
}
|
|
88
|
+
export interface UpdateOptions {
|
|
89
|
+
category?: LibraryCategory;
|
|
90
|
+
projectPath?: string;
|
|
91
|
+
dryRun?: boolean;
|
|
92
|
+
}
|
|
93
|
+
export interface UpdateResult {
|
|
94
|
+
updated: number;
|
|
95
|
+
failed: number;
|
|
96
|
+
skipped: number;
|
|
97
|
+
components: Array<{
|
|
98
|
+
id: string;
|
|
99
|
+
status: 'updated' | 'failed' | 'skipped';
|
|
100
|
+
error?: string;
|
|
101
|
+
}>;
|
|
102
|
+
}
|
|
103
|
+
export interface LibraryService {
|
|
104
|
+
install(id: string, options?: InstallOptions): Promise<InstallResult>;
|
|
105
|
+
listInstalled(options?: ListOptions): Promise<InstalledComponent[]>;
|
|
106
|
+
update(options?: UpdateOptions): Promise<UpdateResult>;
|
|
107
|
+
ensureGlobalTables(): Promise<void>;
|
|
108
|
+
getStatus(): Promise<LibraryStatus>;
|
|
109
|
+
isEasyEDAInstalled(componentName: string): Promise<boolean>;
|
|
110
|
+
}
|
|
111
|
+
export declare function createLibraryService(): LibraryService;
|
|
112
|
+
//# sourceMappingURL=library-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"library-service.d.ts","sourceRoot":"","sources":["../../src/services/library-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Component and part types for the AI-EDA toolkit
|
|
3
|
+
*/
|
|
4
|
+
export interface Component {
|
|
5
|
+
lcscPartNumber: string;
|
|
6
|
+
manufacturerPart: string;
|
|
7
|
+
manufacturer: string;
|
|
8
|
+
description: string;
|
|
9
|
+
category: string;
|
|
10
|
+
subcategory: string;
|
|
11
|
+
package: string;
|
|
12
|
+
stock: number;
|
|
13
|
+
price: PriceTier[];
|
|
14
|
+
datasheet?: string;
|
|
15
|
+
footprint?: FootprintRef;
|
|
16
|
+
symbol?: SymbolRef;
|
|
17
|
+
}
|
|
18
|
+
export interface PriceTier {
|
|
19
|
+
quantity: number;
|
|
20
|
+
price: number;
|
|
21
|
+
currency: string;
|
|
22
|
+
}
|
|
23
|
+
export interface FootprintRef {
|
|
24
|
+
source: 'easyeda' | 'kicad' | 'local';
|
|
25
|
+
id: string;
|
|
26
|
+
localPath?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface SymbolRef {
|
|
29
|
+
source: 'easyeda' | 'kicad' | 'local';
|
|
30
|
+
id: string;
|
|
31
|
+
localPath?: string;
|
|
32
|
+
}
|
|
33
|
+
export interface ComponentSelection {
|
|
34
|
+
role: string;
|
|
35
|
+
selected?: Component;
|
|
36
|
+
alternatives?: Component[];
|
|
37
|
+
requirements: string[];
|
|
38
|
+
status: 'pending' | 'selected' | 'placed' | 'routed';
|
|
39
|
+
}
|
|
40
|
+
export interface ComponentSearchResult {
|
|
41
|
+
lcscId: string;
|
|
42
|
+
name: string;
|
|
43
|
+
manufacturer: string;
|
|
44
|
+
package: string;
|
|
45
|
+
price?: number;
|
|
46
|
+
stock: number;
|
|
47
|
+
description: string;
|
|
48
|
+
productUrl?: string;
|
|
49
|
+
datasheetPdf?: string;
|
|
50
|
+
category?: string;
|
|
51
|
+
/** JLCPCB assembly type: "basic" = no setup fee, "extended" = setup fee required */
|
|
52
|
+
libraryType?: 'basic' | 'extended';
|
|
53
|
+
/** Component specifications (e.g., "Output Voltage": "3.3V", "Output Current": "100mA") */
|
|
54
|
+
attributes?: Record<string, string>;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/types/component.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,YAAY,CAAC,EAAE,SAAS,EAAE,CAAC;IAC3B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;CACtD;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,WAAW,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACnC,2FAA2F;IAC3F,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for EasyEDA community library API
|
|
3
|
+
* These are for user-contributed components (not official LCSC parts)
|
|
4
|
+
*
|
|
5
|
+
* NOTE: Community components now use the same parsed structure as LCSC components.
|
|
6
|
+
* The only differences are community-specific metadata (owner, creator, etc.)
|
|
7
|
+
*/
|
|
8
|
+
import type { EasyEDASymbolData, EasyEDAFootprintData } from './easyeda.js';
|
|
9
|
+
/**
|
|
10
|
+
* Owner information for a community component
|
|
11
|
+
*/
|
|
12
|
+
export interface EasyEDACommunityOwner {
|
|
13
|
+
uuid: string;
|
|
14
|
+
username: string;
|
|
15
|
+
nickname: string;
|
|
16
|
+
avatar?: string;
|
|
17
|
+
team?: boolean;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Search result from EasyEDA community library
|
|
21
|
+
*/
|
|
22
|
+
export interface EasyEDACommunitySearchResult {
|
|
23
|
+
uuid: string;
|
|
24
|
+
title: string;
|
|
25
|
+
thumb: string;
|
|
26
|
+
description: string;
|
|
27
|
+
tags: string[];
|
|
28
|
+
package: string;
|
|
29
|
+
packageUuid?: string;
|
|
30
|
+
manufacturer?: string;
|
|
31
|
+
owner: EasyEDACommunityOwner;
|
|
32
|
+
contributor?: string;
|
|
33
|
+
has3DModel: boolean;
|
|
34
|
+
docType: number;
|
|
35
|
+
updateTime?: number;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Search parameters for EasyEDA community library
|
|
39
|
+
*/
|
|
40
|
+
export interface EasyEDACommunitySearchParams {
|
|
41
|
+
query: string;
|
|
42
|
+
source?: 'user' | 'lcsc' | 'easyeda' | 'all';
|
|
43
|
+
limit?: number;
|
|
44
|
+
page?: number;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Full component data from EasyEDA community library
|
|
48
|
+
* Uses the same symbol/footprint structure as EasyEDAComponentData with
|
|
49
|
+
* additional community-specific metadata.
|
|
50
|
+
*/
|
|
51
|
+
export interface EasyEDACommunityComponent {
|
|
52
|
+
uuid: string;
|
|
53
|
+
title: string;
|
|
54
|
+
description: string;
|
|
55
|
+
tags: string[];
|
|
56
|
+
owner: EasyEDACommunityOwner;
|
|
57
|
+
creator?: EasyEDACommunityOwner;
|
|
58
|
+
updateTime: number;
|
|
59
|
+
docType: number;
|
|
60
|
+
verify: boolean;
|
|
61
|
+
symbol: EasyEDASymbolData & {
|
|
62
|
+
head: Record<string, unknown>;
|
|
63
|
+
};
|
|
64
|
+
footprint: EasyEDAFootprintData & {
|
|
65
|
+
uuid: string;
|
|
66
|
+
head: Record<string, unknown>;
|
|
67
|
+
};
|
|
68
|
+
model3d?: {
|
|
69
|
+
name: string;
|
|
70
|
+
uuid: string;
|
|
71
|
+
};
|
|
72
|
+
rawData: object;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=easyeda-community.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"easyeda-community.d.ts","sourceRoot":"","sources":["../../src/types/easyeda-community.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,qBAAqB,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,qBAAqB,CAAC;IAC7B,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,iBAAiB,GAAG;QAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC/B,CAAC;IACF,SAAS,EAAE,oBAAoB,GAAG;QAChC,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC/B,CAAC;IACF,OAAO,CAAC,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;CACjB"}
|