kicadts 0.0.2 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +4466 -0
- package/dist/index.js +14253 -0
- package/package.json +5 -2
- package/.cursor/rules/use-bun-instead-of-node-vite-npm-pnpm.mdc +0 -111
- package/.github/workflows/bun-formatcheck.yml +0 -26
- package/.github/workflows/bun-pver-release.yml +0 -70
- package/.github/workflows/bun-test.yml +0 -32
- package/.github/workflows/bun-typecheck.yml +0 -26
- package/.vscode/settings.json +0 -16
- package/AGENTS.md +0 -31
- package/TODO.md +0 -46
- package/biome.json +0 -93
- package/bunfig.toml +0 -5
- package/lib/index.ts +0 -1
- package/lib/sexpr/base-classes/SxClass.ts +0 -164
- package/lib/sexpr/base-classes/SxPrimitiveBoolean.ts +0 -35
- package/lib/sexpr/base-classes/SxPrimitiveNumber.ts +0 -26
- package/lib/sexpr/base-classes/SxPrimitiveString.ts +0 -26
- package/lib/sexpr/classes/At.ts +0 -53
- package/lib/sexpr/classes/Bus.ts +0 -103
- package/lib/sexpr/classes/BusEntry.ts +0 -169
- package/lib/sexpr/classes/Color.ts +0 -29
- package/lib/sexpr/classes/Dnp.ts +0 -8
- package/lib/sexpr/classes/EmbeddedFonts.ts +0 -68
- package/lib/sexpr/classes/ExcludeFromSim.ts +0 -8
- package/lib/sexpr/classes/FieldsAutoplaced.ts +0 -8
- package/lib/sexpr/classes/Footprint.ts +0 -849
- package/lib/sexpr/classes/FootprintAttr.ts +0 -104
- package/lib/sexpr/classes/FootprintAutoplaceCost180.ts +0 -9
- package/lib/sexpr/classes/FootprintAutoplaceCost90.ts +0 -9
- package/lib/sexpr/classes/FootprintClearance.ts +0 -9
- package/lib/sexpr/classes/FootprintDescr.ts +0 -44
- package/lib/sexpr/classes/FootprintLocked.ts +0 -32
- package/lib/sexpr/classes/FootprintModel.ts +0 -142
- package/lib/sexpr/classes/FootprintNetTiePadGroups.ts +0 -52
- package/lib/sexpr/classes/FootprintPad.ts +0 -857
- package/lib/sexpr/classes/FootprintPath.ts +0 -44
- package/lib/sexpr/classes/FootprintPlaced.ts +0 -32
- package/lib/sexpr/classes/FootprintPrivateLayers.ts +0 -56
- package/lib/sexpr/classes/FootprintSheetfile.ts +0 -44
- package/lib/sexpr/classes/FootprintSheetname.ts +0 -44
- package/lib/sexpr/classes/FootprintSolderMaskMargin.ts +0 -9
- package/lib/sexpr/classes/FootprintSolderPasteMargin.ts +0 -9
- package/lib/sexpr/classes/FootprintSolderPasteRatio.ts +0 -9
- package/lib/sexpr/classes/FootprintTags.ts +0 -44
- package/lib/sexpr/classes/FootprintTedit.ts +0 -21
- package/lib/sexpr/classes/FootprintThermalGap.ts +0 -9
- package/lib/sexpr/classes/FootprintThermalWidth.ts +0 -9
- package/lib/sexpr/classes/FootprintZoneConnect.ts +0 -9
- package/lib/sexpr/classes/FpArc.ts +0 -312
- package/lib/sexpr/classes/FpCircle.ts +0 -314
- package/lib/sexpr/classes/FpLine.ts +0 -316
- package/lib/sexpr/classes/FpPoly.ts +0 -286
- package/lib/sexpr/classes/FpPolyFill.ts +0 -48
- package/lib/sexpr/classes/FpPolyLocked.ts +0 -40
- package/lib/sexpr/classes/FpRect.ts +0 -314
- package/lib/sexpr/classes/FpText.ts +0 -375
- package/lib/sexpr/classes/FpTextBox.ts +0 -450
- package/lib/sexpr/classes/GrLine.ts +0 -264
- package/lib/sexpr/classes/GrLineAngle.ts +0 -32
- package/lib/sexpr/classes/GrLineEnd.ts +0 -61
- package/lib/sexpr/classes/GrLineLocked.ts +0 -40
- package/lib/sexpr/classes/GrLineStart.ts +0 -61
- package/lib/sexpr/classes/GrText.ts +0 -228
- package/lib/sexpr/classes/Image.ts +0 -283
- package/lib/sexpr/classes/InBom.ts +0 -8
- package/lib/sexpr/classes/Junction.ts +0 -166
- package/lib/sexpr/classes/KicadPcb.ts +0 -361
- package/lib/sexpr/classes/KicadSch.ts +0 -397
- package/lib/sexpr/classes/KicadSchGenerator.ts +0 -32
- package/lib/sexpr/classes/KicadSchGeneratorVersion.ts +0 -30
- package/lib/sexpr/classes/KicadSchVersion.ts +0 -22
- package/lib/sexpr/classes/Label.ts +0 -176
- package/lib/sexpr/classes/Layer.ts +0 -51
- package/lib/sexpr/classes/Layers.ts +0 -47
- package/lib/sexpr/classes/LibSymbols.ts +0 -61
- package/lib/sexpr/classes/NoConnect.ts +0 -90
- package/lib/sexpr/classes/OnBoard.ts +0 -8
- package/lib/sexpr/classes/PadChamfer.ts +0 -50
- package/lib/sexpr/classes/PadChamferRatio.ts +0 -9
- package/lib/sexpr/classes/PadClearance.ts +0 -9
- package/lib/sexpr/classes/PadDieLength.ts +0 -9
- package/lib/sexpr/classes/PadDrill.ts +0 -145
- package/lib/sexpr/classes/PadDrillOffset.ts +0 -54
- package/lib/sexpr/classes/PadLayers.ts +0 -71
- package/lib/sexpr/classes/PadNet.ts +0 -56
- package/lib/sexpr/classes/PadOptions.ts +0 -181
- package/lib/sexpr/classes/PadPinFunction.ts +0 -9
- package/lib/sexpr/classes/PadPinType.ts +0 -9
- package/lib/sexpr/classes/PadPrimitiveGrArc.ts +0 -272
- package/lib/sexpr/classes/PadPrimitiveGrCircle.ts +0 -298
- package/lib/sexpr/classes/PadPrimitiveGrLine.ts +0 -126
- package/lib/sexpr/classes/PadPrimitives.ts +0 -291
- package/lib/sexpr/classes/PadRectDelta.ts +0 -57
- package/lib/sexpr/classes/PadRoundrectRratio.ts +0 -9
- package/lib/sexpr/classes/PadSize.ts +0 -69
- package/lib/sexpr/classes/PadSolderMaskMargin.ts +0 -9
- package/lib/sexpr/classes/PadSolderPasteMargin.ts +0 -9
- package/lib/sexpr/classes/PadSolderPasteMarginRatio.ts +0 -9
- package/lib/sexpr/classes/PadTeardrops.ts +0 -210
- package/lib/sexpr/classes/PadThermalBridgeAngle.ts +0 -9
- package/lib/sexpr/classes/PadThermalGap.ts +0 -9
- package/lib/sexpr/classes/PadThermalWidth.ts +0 -9
- package/lib/sexpr/classes/PadZoneConnect.ts +0 -9
- package/lib/sexpr/classes/Paper.ts +0 -119
- package/lib/sexpr/classes/PcbGeneral.ts +0 -82
- package/lib/sexpr/classes/PcbGeneralLegacyTeardrops.ts +0 -44
- package/lib/sexpr/classes/PcbGeneralThickness.ts +0 -9
- package/lib/sexpr/classes/PcbGenerator.ts +0 -16
- package/lib/sexpr/classes/PcbGeneratorVersion.ts +0 -16
- package/lib/sexpr/classes/PcbLayerDefinition.ts +0 -106
- package/lib/sexpr/classes/PcbLayers.ts +0 -34
- package/lib/sexpr/classes/PcbNet.ts +0 -56
- package/lib/sexpr/classes/PcbVersion.ts +0 -9
- package/lib/sexpr/classes/Property.ts +0 -301
- package/lib/sexpr/classes/PropertyHide.ts +0 -9
- package/lib/sexpr/classes/PropertyUnlocked.ts +0 -9
- package/lib/sexpr/classes/Pts.ts +0 -67
- package/lib/sexpr/classes/RenderCache.ts +0 -221
- package/lib/sexpr/classes/SchematicText.ts +0 -171
- package/lib/sexpr/classes/Segment.ts +0 -243
- package/lib/sexpr/classes/SegmentEnd.ts +0 -59
- package/lib/sexpr/classes/SegmentLocked.ts +0 -33
- package/lib/sexpr/classes/SegmentNet.ts +0 -64
- package/lib/sexpr/classes/SegmentStart.ts +0 -59
- package/lib/sexpr/classes/Setup/PcbPlotParams.ts +0 -689
- package/lib/sexpr/classes/Setup/PcbPlotParamsBase.ts +0 -9
- package/lib/sexpr/classes/Setup/PcbPlotParamsNumericProperties.ts +0 -105
- package/lib/sexpr/classes/Setup/PcbPlotParamsStringPropertiesA.ts +0 -104
- package/lib/sexpr/classes/Setup/PcbPlotParamsStringPropertiesB.ts +0 -105
- package/lib/sexpr/classes/Setup/Setup.ts +0 -574
- package/lib/sexpr/classes/Setup/SetupPropertyTypes.ts +0 -119
- package/lib/sexpr/classes/Setup/Stackup.ts +0 -135
- package/lib/sexpr/classes/Setup/StackupLayer.ts +0 -233
- package/lib/sexpr/classes/Setup/StackupLayerProperties.ts +0 -80
- package/lib/sexpr/classes/Setup/StackupProperties.ts +0 -40
- package/lib/sexpr/classes/Setup/base.ts +0 -165
- package/lib/sexpr/classes/Setup/index.ts +0 -14
- package/lib/sexpr/classes/Setup/setupMultiValueProperties.ts +0 -53
- package/lib/sexpr/classes/Setup/setupNumericProperties.ts +0 -151
- package/lib/sexpr/classes/Setup/setupPropertyHandlers.ts +0 -90
- package/lib/sexpr/classes/Setup/setupStringProperties.ts +0 -75
- package/lib/sexpr/classes/Sheet.ts +0 -287
- package/lib/sexpr/classes/SheetFill.ts +0 -44
- package/lib/sexpr/classes/SheetInstances.ts +0 -168
- package/lib/sexpr/classes/SheetInstancesRoot.ts +0 -165
- package/lib/sexpr/classes/SheetPin.ts +0 -125
- package/lib/sexpr/classes/SheetProperty.ts +0 -115
- package/lib/sexpr/classes/SheetSize.ts +0 -44
- package/lib/sexpr/classes/Stroke.ts +0 -58
- package/lib/sexpr/classes/StrokeType.ts +0 -34
- package/lib/sexpr/classes/Symbol.ts +0 -1666
- package/lib/sexpr/classes/TextEffects.ts +0 -461
- package/lib/sexpr/classes/TitleBlock.ts +0 -369
- package/lib/sexpr/classes/Unit.ts +0 -28
- package/lib/sexpr/classes/Uuid.ts +0 -8
- package/lib/sexpr/classes/Via.ts +0 -363
- package/lib/sexpr/classes/ViaNet.ts +0 -60
- package/lib/sexpr/classes/Width.ts +0 -8
- package/lib/sexpr/classes/Wire.ts +0 -111
- package/lib/sexpr/classes/Xy.ts +0 -33
- package/lib/sexpr/classes/Zone.ts +0 -39
- package/lib/sexpr/index.ts +0 -130
- package/lib/sexpr/parseKicadSexpr.ts +0 -5
- package/lib/sexpr/parseToPrimitiveSExpr.ts +0 -245
- package/lib/sexpr/utils/indentLines.ts +0 -3
- package/lib/sexpr/utils/parseYesNo.ts +0 -12
- package/lib/sexpr/utils/quoteSExprString.ts +0 -8
- package/lib/sexpr/utils/strokeFromArgs.ts +0 -18
- package/lib/sexpr/utils/toNumberValue.ts +0 -13
- package/lib/sexpr/utils/toStringValue.ts +0 -11
- package/scripts/download-references.ts +0 -68
- package/tests/fixtures/expectEqualPrimitiveSExpr.ts +0 -199
- package/tests/fixtures/png-matcher.ts +0 -109
- package/tests/fixtures/preload.ts +0 -1
- package/tests/sexpr/KicadPcbDemos.test.ts +0 -48
- package/tests/sexpr/KicadSchDemos.test.ts +0 -49
- package/tests/sexpr/classes/Footprint.test.ts +0 -277
- package/tests/sexpr/classes/FootprintPad.test.ts +0 -78
- package/tests/sexpr/classes/FpArc.test.ts +0 -45
- package/tests/sexpr/classes/FpCircle.test.ts +0 -39
- package/tests/sexpr/classes/FpPoly.test.ts +0 -43
- package/tests/sexpr/classes/FpRect.test.ts +0 -40
- package/tests/sexpr/classes/FpTextBox.test.ts +0 -84
- package/tests/sexpr/classes/Image.test.ts +0 -58
- package/tests/sexpr/classes/KicadSch.test.ts +0 -95
- package/tests/sexpr/classes/Paper.test.ts +0 -30
- package/tests/sexpr/classes/Property.test.ts +0 -48
- package/tests/sexpr/classes/Setup.test.ts +0 -188
- package/tests/sexpr/classes/Sheet.test.ts +0 -107
- package/tests/sexpr/classes/Stroke.test.ts +0 -15
- package/tests/sexpr/classes/Symbol.test.ts +0 -96
- package/tests/sexpr/classes/TextEffects.test.ts +0 -56
- package/tests/sexpr/classes/TitleBlock.test.ts +0 -40
- package/tsconfig.json +0 -35
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { SxClass } from "../base-classes/SxClass"
|
|
2
|
-
import { SxPrimitiveBoolean } from "../base-classes/SxPrimitiveBoolean"
|
|
3
|
-
import type { PrimitiveSExpr } from "../parseToPrimitiveSExpr"
|
|
4
|
-
|
|
5
|
-
const truthyStrings = new Set(["true", "yes", "1"])
|
|
6
|
-
|
|
7
|
-
export class SegmentLocked extends SxPrimitiveBoolean {
|
|
8
|
-
static override token = "locked"
|
|
9
|
-
static override parentToken = "segment"
|
|
10
|
-
override token = "locked"
|
|
11
|
-
|
|
12
|
-
constructor(value: boolean) {
|
|
13
|
-
super(value)
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
static override fromSexprPrimitives(
|
|
17
|
-
primitiveSexprs: PrimitiveSExpr[],
|
|
18
|
-
): SegmentLocked {
|
|
19
|
-
const [rawValue] = primitiveSexprs
|
|
20
|
-
if (typeof rawValue === "boolean") {
|
|
21
|
-
return new SegmentLocked(rawValue)
|
|
22
|
-
}
|
|
23
|
-
if (typeof rawValue === "string") {
|
|
24
|
-
return new SegmentLocked(truthyStrings.has(rawValue.toLowerCase()))
|
|
25
|
-
}
|
|
26
|
-
return new SegmentLocked(false)
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
override getString(): string {
|
|
30
|
-
return `(locked ${this.value ? "yes" : "no"})`
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
SxClass.register(SegmentLocked)
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { SxClass } from "../base-classes/SxClass"
|
|
2
|
-
import type { PrimitiveSExpr } from "../parseToPrimitiveSExpr"
|
|
3
|
-
import { quoteSExprString } from "../utils/quoteSExprString"
|
|
4
|
-
import { toNumberValue } from "../utils/toNumberValue"
|
|
5
|
-
import { toStringValue } from "../utils/toStringValue"
|
|
6
|
-
|
|
7
|
-
export class SegmentNet extends SxClass {
|
|
8
|
-
static override token = "net"
|
|
9
|
-
static override parentToken = "segment"
|
|
10
|
-
override token = "net"
|
|
11
|
-
|
|
12
|
-
private _id: number
|
|
13
|
-
private _name?: string
|
|
14
|
-
|
|
15
|
-
constructor(id: number, name?: string) {
|
|
16
|
-
super()
|
|
17
|
-
this._id = id
|
|
18
|
-
this._name = name
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
static override fromSexprPrimitives(
|
|
22
|
-
primitiveSexprs: PrimitiveSExpr[],
|
|
23
|
-
): SegmentNet {
|
|
24
|
-
const [rawId, rawName] = primitiveSexprs
|
|
25
|
-
const id = toNumberValue(rawId)
|
|
26
|
-
if (id === undefined) {
|
|
27
|
-
throw new Error("net expects a numeric identifier")
|
|
28
|
-
}
|
|
29
|
-
const name = rawName === undefined ? undefined : toStringValue(rawName)
|
|
30
|
-
return new SegmentNet(id, name ?? undefined)
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
get id(): number {
|
|
34
|
-
return this._id
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
set id(value: number) {
|
|
38
|
-
this._id = value
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
get name(): string | undefined {
|
|
42
|
-
return this._name
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
set name(value: string | undefined) {
|
|
46
|
-
this._name = value === "" ? undefined : value
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
toObject(): { id: number; name?: string } {
|
|
50
|
-
return this._name === undefined
|
|
51
|
-
? { id: this._id }
|
|
52
|
-
: { id: this._id, name: this._name }
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
override getChildren(): SxClass[] {
|
|
56
|
-
return []
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
override getString(): string {
|
|
60
|
-
const namePart = this._name ? ` ${quoteSExprString(this._name)}` : ""
|
|
61
|
-
return `(net ${this._id}${namePart})`
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
SxClass.register(SegmentNet)
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { SxClass } from "../base-classes/SxClass"
|
|
2
|
-
import type { PrimitiveSExpr } from "../parseToPrimitiveSExpr"
|
|
3
|
-
import { toNumberValue } from "../utils/toNumberValue"
|
|
4
|
-
|
|
5
|
-
export class SegmentStart extends SxClass {
|
|
6
|
-
static override token = "start"
|
|
7
|
-
static override parentToken = "segment"
|
|
8
|
-
override token = "start"
|
|
9
|
-
|
|
10
|
-
private _x: number
|
|
11
|
-
private _y: number
|
|
12
|
-
|
|
13
|
-
constructor(x: number, y: number) {
|
|
14
|
-
super()
|
|
15
|
-
this._x = x
|
|
16
|
-
this._y = y
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
static override fromSexprPrimitives(
|
|
20
|
-
primitiveSexprs: PrimitiveSExpr[],
|
|
21
|
-
): SegmentStart {
|
|
22
|
-
const [rawX, rawY] = primitiveSexprs
|
|
23
|
-
const x = toNumberValue(rawX)
|
|
24
|
-
const y = toNumberValue(rawY)
|
|
25
|
-
if (x === undefined || y === undefined) {
|
|
26
|
-
throw new Error("start expects two numeric arguments")
|
|
27
|
-
}
|
|
28
|
-
return new SegmentStart(x, y)
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
get x(): number {
|
|
32
|
-
return this._x
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
set x(value: number) {
|
|
36
|
-
this._x = value
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
get y(): number {
|
|
40
|
-
return this._y
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
set y(value: number) {
|
|
44
|
-
this._y = value
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
toObject(): { x: number; y: number } {
|
|
48
|
-
return { x: this._x, y: this._y }
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
override getChildren(): SxClass[] {
|
|
52
|
-
return []
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
override getString(): string {
|
|
56
|
-
return `(start ${this._x} ${this._y})`
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
SxClass.register(SegmentStart)
|