@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
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,38 @@
|
|
|
1
1
|
# @jlcpcb/core
|
|
2
2
|
|
|
3
|
+
## 0.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- cd6df88: Packages to select: @jlcpcb/cli (minor), @jlcpcb/core (minor)
|
|
8
|
+
|
|
9
|
+
Summary to paste:
|
|
10
|
+
|
|
11
|
+
Add `jlc easyeda install [uuid]` command for EasyEDA community components
|
|
12
|
+
|
|
13
|
+
CLI changes:
|
|
14
|
+
- New `jlc easyeda install [uuid]` subcommand with -p/--project, --with-3d, -f/--force options
|
|
15
|
+
- Dedicated EasyEDAInfoScreen and EasyEDADetailView showing community-specific fields
|
|
16
|
+
- Installation status detection: shows "R Regenerate" if installed, "Enter Install" if not
|
|
17
|
+
- "✓ Installed" indicator next to component title when already in library
|
|
18
|
+
- `jlc install` now rejects non-LCSC IDs with helpful redirect to `jlc easyeda install`
|
|
19
|
+
|
|
20
|
+
Core changes:
|
|
21
|
+
- Add `isEasyEDAInstalled()` method to check if component exists in EasyEDA library
|
|
22
|
+
- Register EasyEDA library in global KiCad tables with portable ${KICAD9_3RD_PARTY} paths
|
|
23
|
+
- Support global installation for community components (no projectPath required)
|
|
24
|
+
- Separate library names (EasyEDA vs EasyEDA-local) to avoid global/local collision
|
|
25
|
+
|
|
26
|
+
## 0.1.1
|
|
27
|
+
|
|
28
|
+
### Patch Changes
|
|
29
|
+
|
|
30
|
+
- **@jlcpcb/core:**
|
|
31
|
+
- Fix: Restrict built-in footprints to 2-pad passives only — prevents pin-flip issues on multi-pin components
|
|
32
|
+
|
|
33
|
+
**@jlcpcb/cli & @jlcpcb/mcp:**
|
|
34
|
+
- Updated dependencies
|
|
35
|
+
|
|
3
36
|
## 0.1.0
|
|
4
37
|
|
|
5
38
|
### Minor Changes
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EasyEDA Community Library API client
|
|
3
|
+
* For searching and fetching user-contributed components
|
|
4
|
+
*
|
|
5
|
+
* Uses shared parsers from common/parsers for all shape types.
|
|
6
|
+
*/
|
|
7
|
+
import type { EasyEDACommunitySearchParams, EasyEDACommunitySearchResult, EasyEDACommunityComponent } from '../types/index.js';
|
|
8
|
+
export declare class EasyEDACommunityClient {
|
|
9
|
+
/**
|
|
10
|
+
* Search the EasyEDA community library
|
|
11
|
+
*/
|
|
12
|
+
search(params: EasyEDACommunitySearchParams): Promise<EasyEDACommunitySearchResult[]>;
|
|
13
|
+
/**
|
|
14
|
+
* Get full component details by UUID
|
|
15
|
+
*/
|
|
16
|
+
getComponent(uuid: string): Promise<EasyEDACommunityComponent | null>;
|
|
17
|
+
/**
|
|
18
|
+
* Download 3D model for a component
|
|
19
|
+
*/
|
|
20
|
+
get3DModel(uuid: string, format?: 'step' | 'obj'): Promise<Buffer | null>;
|
|
21
|
+
/**
|
|
22
|
+
* Parse search results from the API response
|
|
23
|
+
*/
|
|
24
|
+
private parseSearchResults;
|
|
25
|
+
/**
|
|
26
|
+
* Parse a single search result item
|
|
27
|
+
*/
|
|
28
|
+
private parseSearchItem;
|
|
29
|
+
/**
|
|
30
|
+
* Parse full component data from the API response
|
|
31
|
+
* Uses shared parsers for consistent shape parsing with LCSC client.
|
|
32
|
+
*/
|
|
33
|
+
private parseComponent;
|
|
34
|
+
}
|
|
35
|
+
export declare const easyedaCommunityClient: EasyEDACommunityClient;
|
|
36
|
+
//# sourceMappingURL=easyeda-community.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"easyeda-community.d.ts","sourceRoot":"","sources":["../../src/api/easyeda-community.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,4BAA4B,EAC5B,4BAA4B,EAC5B,yBAAyB,EAC1B,MAAM,mBAAmB,CAAA;AAkB1B,qBAAa,sBAAsB;IACjC;;OAEG;IACG,MAAM,CACV,MAAM,EAAE,4BAA4B,GACnC,OAAO,CAAC,4BAA4B,EAAE,CAAC;IAgC1C;;OAEG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC;IAoB3E;;OAEG;IACG,UAAU,CACd,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,MAAM,GAAG,KAAc,GAC9B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAczB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAyB1B;;OAEG;IACH,OAAO,CAAC,eAAe;IA+BvB;;;OAGG;IACH,OAAO,CAAC,cAAc;CAgFvB;AAED,eAAO,MAAM,sBAAsB,wBAA+B,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EasyEDA API client for component library fetching
|
|
3
|
+
*
|
|
4
|
+
* Uses shared parsers from common/parsers for all shape types.
|
|
5
|
+
*/
|
|
6
|
+
import type { EasyEDAComponentData } from '../types/index.js';
|
|
7
|
+
export declare class EasyEDAClient {
|
|
8
|
+
private userAgent;
|
|
9
|
+
/**
|
|
10
|
+
* Fetch component data from EasyEDA API
|
|
11
|
+
*/
|
|
12
|
+
getComponentData(lcscPartNumber: string): Promise<EasyEDAComponentData | null>;
|
|
13
|
+
/**
|
|
14
|
+
* Download 3D model for a component
|
|
15
|
+
*/
|
|
16
|
+
get3DModel(uuid: string, format?: 'step' | 'obj'): Promise<Buffer | null>;
|
|
17
|
+
/**
|
|
18
|
+
* Parse raw EasyEDA API response into structured data
|
|
19
|
+
*/
|
|
20
|
+
private parseComponentData;
|
|
21
|
+
}
|
|
22
|
+
export declare const easyedaClient: EasyEDAClient;
|
|
23
|
+
//# sourceMappingURL=easyeda.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"easyeda.d.ts","sourceRoot":"","sources":["../../src/api/easyeda.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAc9D,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAA2B;IAE5C;;OAEG;IACG,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAoBpF;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,GAAG,KAAc,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAavF;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAqF3B;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API clients for JLC and EasyEDA
|
|
3
|
+
*/
|
|
4
|
+
export { JLCClient, jlcClient } from './jlc.js';
|
|
5
|
+
export { EasyEDAClient, easyedaClient } from './easyeda.js';
|
|
6
|
+
export { EasyEDACommunityClient, easyedaCommunityClient } from './easyeda-community.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JLC API client for component search and details
|
|
3
|
+
* Uses JLCPCB's parts library API which provides LCSC component data
|
|
4
|
+
*/
|
|
5
|
+
import type { LCSCSearchOptions, ComponentSearchResult } from '../types/index.js';
|
|
6
|
+
export interface LCSCProduct {
|
|
7
|
+
productCode: string;
|
|
8
|
+
productModel: string;
|
|
9
|
+
brandNameEn: string;
|
|
10
|
+
encapStandard: string;
|
|
11
|
+
productPriceList: Array<{
|
|
12
|
+
ladder: number;
|
|
13
|
+
productPrice: number;
|
|
14
|
+
currencySymbol: string;
|
|
15
|
+
}>;
|
|
16
|
+
stockNumber: number;
|
|
17
|
+
productIntroEn: string;
|
|
18
|
+
}
|
|
19
|
+
export declare class JLCClient {
|
|
20
|
+
/**
|
|
21
|
+
* Search for components via JLCPCB API
|
|
22
|
+
*/
|
|
23
|
+
search(query: string, options?: LCSCSearchOptions): Promise<ComponentSearchResult[]>;
|
|
24
|
+
/**
|
|
25
|
+
* Get stock and pricing information for a component
|
|
26
|
+
*/
|
|
27
|
+
getStock(lcscPartNumber: string): Promise<{
|
|
28
|
+
stock: number;
|
|
29
|
+
priceBreaks: Array<{
|
|
30
|
+
quantity: number;
|
|
31
|
+
price: number;
|
|
32
|
+
}>;
|
|
33
|
+
}>;
|
|
34
|
+
/**
|
|
35
|
+
* Get detailed component information including attributes
|
|
36
|
+
* Used to enrich EasyEDA data with JLC-specific attributes
|
|
37
|
+
*/
|
|
38
|
+
getComponentDetails(lcscPartNumber: string): Promise<ComponentSearchResult | null>;
|
|
39
|
+
}
|
|
40
|
+
export declare const jlcClient: JLCClient;
|
|
41
|
+
//# sourceMappingURL=jlc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jlc.d.ts","sourceRoot":"","sources":["../../src/api/jlc.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AA6ClF,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,KAAK,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,SAAS;IACpB;;OAEG;IACG,MAAM,CACV,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,qBAAqB,EAAE,CAAC;IA+EnC;;OAEG;IACG,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC;QAC9C,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,KAAK,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACzD,CAAC;IAeF;;;OAGG;IACG,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;CAOzF;AAED,eAAO,MAAM,SAAS,WAAkB,CAAC"}
|