@faicad/faijs 0.30.9 → 0.31.1
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/api/align/index.d.ts +64 -0
- package/dist/api/align/index.d.ts.map +1 -0
- package/dist/api/align/index.js +101 -0
- package/dist/api/align/index.js.map +1 -0
- package/dist/api/api-namespace.d.ts +5 -4
- package/dist/api/api-namespace.d.ts.map +1 -1
- package/dist/api/api-namespace.js +36 -4
- package/dist/api/api-namespace.js.map +1 -1
- package/dist/api/boolean-op/index.d.ts +65 -0
- package/dist/api/boolean-op/index.d.ts.map +1 -0
- package/dist/api/boolean-op/index.js +113 -0
- package/dist/api/boolean-op/index.js.map +1 -0
- package/dist/api/boolean.d.ts.map +1 -1
- package/dist/api/boolean.js +15 -27
- package/dist/api/boolean.js.map +1 -1
- package/dist/api/brep-operations/healingFns.d.ts +13 -0
- package/dist/api/brep-operations/healingFns.d.ts.map +1 -1
- package/dist/api/brep-operations/healingFns.js +28 -1
- package/dist/api/brep-operations/healingFns.js.map +1 -1
- package/dist/api/brep-operations/topologyFns.d.ts +27 -6
- package/dist/api/brep-operations/topologyFns.d.ts.map +1 -1
- package/dist/api/brep-operations/topologyFns.js +46 -22
- package/dist/api/brep-operations/topologyFns.js.map +1 -1
- package/dist/api/chamfer.d.ts +5 -4
- package/dist/api/chamfer.d.ts.map +1 -1
- package/dist/api/chamfer.js +12 -11
- package/dist/api/chamfer.js.map +1 -1
- package/dist/api/curve-sketch/index.d.ts.map +1 -1
- package/dist/api/curve-sketch/index.js +9 -3
- package/dist/api/curve-sketch/index.js.map +1 -1
- package/dist/api/draft.d.ts.map +1 -1
- package/dist/api/draft.js +1 -3
- package/dist/api/draft.js.map +1 -1
- package/dist/api/engrave.d.ts.map +1 -1
- package/dist/api/engrave.js +3 -13
- package/dist/api/engrave.js.map +1 -1
- package/dist/api/export-3mf.d.ts +73 -0
- package/dist/api/export-3mf.d.ts.map +1 -0
- package/dist/api/export-3mf.js +121 -0
- package/dist/api/export-3mf.js.map +1 -0
- package/dist/api/export-brep.d.ts +6 -0
- package/dist/api/export-brep.d.ts.map +1 -1
- package/dist/api/export-brep.js +11 -2
- package/dist/api/export-brep.js.map +1 -1
- package/dist/api/export-step.d.ts +67 -0
- package/dist/api/export-step.d.ts.map +1 -0
- package/dist/api/export-step.js +98 -0
- package/dist/api/export-step.js.map +1 -0
- package/dist/api/export-stl.d.ts +8 -0
- package/dist/api/export-stl.d.ts.map +1 -1
- package/dist/api/export-stl.js +23 -8
- package/dist/api/export-stl.js.map +1 -1
- package/dist/api/feature-repair.d.ts +1 -1
- package/dist/api/feature-repair.d.ts.map +1 -1
- package/dist/api/feature-repair.js +1 -7
- package/dist/api/feature-repair.js.map +1 -1
- package/dist/api/fillet-variable.d.ts.map +1 -1
- package/dist/api/fillet-variable.js +0 -1
- package/dist/api/fillet-variable.js.map +1 -1
- package/dist/api/fillet.d.ts +3 -3
- package/dist/api/fillet.d.ts.map +1 -1
- package/dist/api/fillet.js +3 -4
- package/dist/api/fillet.js.map +1 -1
- package/dist/api/generated/operations.js +6 -6
- package/dist/api/generated/operations.js.map +1 -1
- package/dist/api/generated/script-face-manifest.d.ts +1 -1
- package/dist/api/generated/script-face-manifest.js +3 -3
- package/dist/api/generated/script-face-manifest.js.map +1 -1
- package/dist/api/generated/script-face.d.ts +1 -1
- package/dist/api/generated/script-face.js +1 -1
- package/dist/api/generated/script-face.js.map +1 -1
- package/dist/api/generated/sketching.js +1 -1
- package/dist/api/generated/sketching.js.map +1 -1
- package/dist/api/generated/topology.js +10 -10
- package/dist/api/generated/topology.js.map +1 -1
- package/dist/api/helix.d.ts +1 -1
- package/dist/api/helix.js +1 -1
- package/dist/api/helix.js.map +1 -1
- package/dist/api/index.d.ts +4 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +16 -4
- package/dist/api/index.js.map +1 -1
- package/dist/api/internal/compat-op.d.ts +6 -6
- package/dist/api/internal/compat-op.d.ts.map +1 -1
- package/dist/api/internal/compat-op.js +7 -9
- package/dist/api/internal/compat-op.js.map +1 -1
- package/dist/api/internal/export-members.d.ts +80 -0
- package/dist/api/internal/export-members.d.ts.map +1 -0
- package/dist/api/internal/export-members.js +104 -0
- package/dist/api/internal/export-members.js.map +1 -0
- package/dist/api/internal/l3-bridge.d.ts +17 -0
- package/dist/api/internal/l3-bridge.d.ts.map +1 -1
- package/dist/api/internal/l3-bridge.js +23 -1
- package/dist/api/internal/l3-bridge.js.map +1 -1
- package/dist/api/measure-query/index.d.ts +262 -0
- package/dist/api/measure-query/index.d.ts.map +1 -0
- package/dist/api/measure-query/index.js +390 -0
- package/dist/api/measure-query/index.js.map +1 -0
- package/dist/api/pattern.d.ts.map +1 -1
- package/dist/api/pattern.js +0 -3
- package/dist/api/pattern.js.map +1 -1
- package/dist/api/primitives.d.ts +6 -6
- package/dist/api/primitives.d.ts.map +1 -1
- package/dist/api/primitives.js +12 -11
- package/dist/api/primitives.js.map +1 -1
- package/dist/api/profile.d.ts.map +1 -1
- package/dist/api/profile.js +0 -1
- package/dist/api/profile.js.map +1 -1
- package/dist/api/punch-hole.d.ts.map +1 -1
- package/dist/api/punch-hole.js +0 -1
- package/dist/api/punch-hole.js.map +1 -1
- package/dist/api/replicate.d.ts +5 -7
- package/dist/api/replicate.d.ts.map +1 -1
- package/dist/api/replicate.js +18 -56
- package/dist/api/replicate.js.map +1 -1
- package/dist/api/section-by-plane.d.ts.map +1 -1
- package/dist/api/section-by-plane.js +0 -1
- package/dist/api/section-by-plane.js.map +1 -1
- package/dist/api/shell.d.ts +1 -1
- package/dist/api/shell.d.ts.map +1 -1
- package/dist/api/shell.js +11 -2
- package/dist/api/shell.js.map +1 -1
- package/dist/api/sketch-on-face.d.ts +3 -3
- package/dist/api/sketch-on-face.d.ts.map +1 -1
- package/dist/api/sketch-on-face.js +6 -4
- package/dist/api/sketch-on-face.js.map +1 -1
- package/dist/api/sketch-on-plane.d.ts.map +1 -1
- package/dist/api/sketch-on-plane.js +0 -1
- package/dist/api/sketch-on-plane.js.map +1 -1
- package/dist/api/split-by-plane.d.ts.map +1 -1
- package/dist/api/split-by-plane.js +0 -1
- package/dist/api/split-by-plane.js.map +1 -1
- package/dist/api/split.d.ts +1 -1
- package/dist/api/split.js +1 -1
- package/dist/api/split.js.map +1 -1
- package/dist/api/surface/arg-spec.d.ts +3 -12
- package/dist/api/surface/arg-spec.d.ts.map +1 -1
- package/dist/api/surface/arg-spec.js +19 -26
- package/dist/api/surface/arg-spec.js.map +1 -1
- package/dist/api/sweep.d.ts +15 -3
- package/dist/api/sweep.d.ts.map +1 -1
- package/dist/api/sweep.js +5 -3
- package/dist/api/sweep.js.map +1 -1
- package/dist/api/thicken.d.ts.map +1 -1
- package/dist/api/thicken.js +11 -2
- package/dist/api/thicken.js.map +1 -1
- package/dist/api/transform.d.ts +3 -3
- package/dist/api/transform.d.ts.map +1 -1
- package/dist/api/transform.js +47 -17
- package/dist/api/transform.js.map +1 -1
- package/dist/boolean/index.d.ts +23 -0
- package/dist/boolean/index.d.ts.map +1 -0
- package/dist/boolean/index.js +27 -0
- package/dist/boolean/index.js.map +1 -0
- package/dist/brep/brep-chain.d.ts +1 -19
- package/dist/brep/brep-chain.d.ts.map +1 -1
- package/dist/brep/brep-chain.js +0 -1
- package/dist/brep/brep-chain.js.map +1 -1
- package/dist/brep/brep-ops.d.ts +4 -1
- package/dist/brep/brep-ops.d.ts.map +1 -1
- package/dist/brep/brep-ops.js +9 -5
- package/dist/brep/brep-ops.js.map +1 -1
- package/dist/brep/engine/adapters/brep-mock.d.ts.map +1 -1
- package/dist/brep/engine/adapters/brep-mock.js +0 -3
- package/dist/brep/engine/adapters/brep-mock.js.map +1 -1
- package/dist/brep/engine/adapters/brepkit.d.ts +4 -3
- package/dist/brep/engine/adapters/brepkit.d.ts.map +1 -1
- package/dist/brep/engine/adapters/brepkit.js +4 -98
- package/dist/brep/engine/adapters/brepkit.js.map +1 -1
- package/dist/brep/engine/adapters/occt.d.ts.map +1 -1
- package/dist/brep/engine/adapters/occt.js +0 -144
- package/dist/brep/engine/adapters/occt.js.map +1 -1
- package/dist/brep/engine/native-history.d.ts +27 -0
- package/dist/brep/engine/native-history.d.ts.map +1 -0
- package/dist/brep/engine/native-history.js +54 -0
- package/dist/brep/engine/native-history.js.map +1 -0
- package/dist/brep/engine/registry.d.ts +2 -4
- package/dist/brep/engine/registry.d.ts.map +1 -1
- package/dist/brep/engine/registry.js +1 -1
- package/dist/brep/engine/registry.js.map +1 -1
- package/dist/brep/engine/types.d.ts +35 -77
- package/dist/brep/engine/types.d.ts.map +1 -1
- package/dist/brep/engine/types.js.map +1 -1
- package/dist/brep/export/export-model.d.ts +21 -0
- package/dist/brep/export/export-model.d.ts.map +1 -1
- package/dist/brep/export/export-model.js +171 -73
- package/dist/brep/export/export-model.js.map +1 -1
- package/dist/brep/export/step.d.ts +17 -1
- package/dist/brep/export/step.d.ts.map +1 -1
- package/dist/brep/export/step.js +133 -0
- package/dist/brep/export/step.js.map +1 -1
- package/dist/brep/export/stl.d.ts +22 -1
- package/dist/brep/export/stl.d.ts.map +1 -1
- package/dist/brep/export/stl.js +58 -10
- package/dist/brep/export/stl.js.map +1 -1
- package/dist/brep/export/transform12.d.ts +47 -0
- package/dist/brep/export/transform12.d.ts.map +1 -0
- package/dist/brep/export/transform12.js +87 -0
- package/dist/brep/export/transform12.js.map +1 -0
- package/dist/brep/face-evolution.d.ts +53 -0
- package/dist/brep/face-evolution.d.ts.map +1 -1
- package/dist/brep/face-evolution.js +65 -0
- package/dist/brep/face-evolution.js.map +1 -1
- package/dist/browser-host/index.d.ts +4 -1
- package/dist/browser-host/index.d.ts.map +1 -1
- package/dist/browser-host/index.js +7 -1
- package/dist/browser-host/index.js.map +1 -1
- package/dist/browser.d.ts +4 -8
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +4 -26
- package/dist/browser.js.map +1 -1
- package/dist/cad-runtime/backend-dispatch.d.ts +13 -58
- package/dist/cad-runtime/backend-dispatch.d.ts.map +1 -1
- package/dist/cad-runtime/backend-dispatch.js +22 -80
- package/dist/cad-runtime/backend-dispatch.js.map +1 -1
- package/dist/cad-runtime/content-key.d.ts +3 -3
- package/dist/cad-runtime/content-key.js +3 -3
- package/dist/cad-runtime/content-key.js.map +1 -1
- package/dist/cad-runtime/ports.d.ts +28 -0
- package/dist/cad-runtime/ports.d.ts.map +1 -1
- package/dist/cad-runtime/ports.js.map +1 -1
- package/dist/cad-runtime/runtime.d.ts +33 -12
- package/dist/cad-runtime/runtime.d.ts.map +1 -1
- package/dist/cad-runtime/runtime.js +44 -48
- package/dist/cad-runtime/runtime.js.map +1 -1
- package/dist/define-op.d.ts +6 -11
- package/dist/define-op.d.ts.map +1 -1
- package/dist/define-op.js +3 -20
- package/dist/define-op.js.map +1 -1
- package/dist/env-agnostic.d.ts +2 -2
- package/dist/env-agnostic.d.ts.map +1 -1
- package/dist/env-agnostic.js +1 -1
- package/dist/env-agnostic.js.map +1 -1
- package/dist/index.d.ts +13 -64
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -75
- package/dist/index.js.map +1 -1
- package/dist/lang/symbol-table.generated.d.ts +17 -0
- package/dist/lang/symbol-table.generated.d.ts.map +1 -1
- package/dist/lang/symbol-table.generated.js +17 -0
- package/dist/lang/symbol-table.generated.js.map +1 -1
- package/dist/mesh/index.d.ts +18 -23
- package/dist/mesh/index.d.ts.map +1 -1
- package/dist/mesh/index.js +18 -20
- package/dist/mesh/index.js.map +1 -1
- package/dist/mesh/io.d.ts +42 -14
- package/dist/mesh/io.d.ts.map +1 -1
- package/dist/mesh/io.js +77 -13
- package/dist/mesh/io.js.map +1 -1
- package/dist/mesh/threemf-loader.d.ts +38 -4
- package/dist/mesh/threemf-loader.d.ts.map +1 -1
- package/dist/mesh/threemf-loader.js +115 -34
- package/dist/mesh/threemf-loader.js.map +1 -1
- package/dist/mesh/types.d.ts +30 -0
- package/dist/mesh/types.d.ts.map +1 -1
- package/dist/mesh/types.js.map +1 -1
- package/dist/node-host/execute-script.d.ts +2 -1
- package/dist/node-host/execute-script.d.ts.map +1 -1
- package/dist/node-host/execute-script.js +5 -4
- package/dist/node-host/execute-script.js.map +1 -1
- package/dist/node-host/index.d.ts +1 -0
- package/dist/node-host/index.d.ts.map +1 -1
- package/dist/node-host/index.js +4 -0
- package/dist/node-host/index.js.map +1 -1
- package/dist/primitives/index.d.ts +19 -0
- package/dist/primitives/index.d.ts.map +1 -0
- package/dist/primitives/index.js +21 -0
- package/dist/primitives/index.js.map +1 -0
- package/dist/runtime-state.d.ts +63 -29
- package/dist/runtime-state.d.ts.map +1 -1
- package/dist/runtime-state.js +57 -0
- package/dist/runtime-state.js.map +1 -1
- package/dist/sdf/index.d.ts +12 -0
- package/dist/sdf/index.d.ts.map +1 -0
- package/dist/sdf/index.js +13 -0
- package/dist/sdf/index.js.map +1 -0
- package/dist/sdk.d.ts +0 -1
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js.map +1 -1
- package/dist/weapp.d.ts +2 -2
- package/dist/weapp.d.ts.map +1 -1
- package/dist/weapp.js +1 -1
- package/dist/weapp.js.map +1 -1
- package/package.json +276 -35
package/dist/index.js
CHANGED
|
@@ -1,75 +1,32 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @faicad/faijs
|
|
2
|
+
* @faicad/faijs — Faicad CAD execution engine
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* -
|
|
7
|
-
* - L1 Mesh 执行层:cad API
|
|
8
|
-
* - L1 Boolean/CSG 辅助:cross-section / deriveNormals / extrude-helpers / joinery-shapes
|
|
9
|
-
* - L1 Primitives:geometry / screw / svg-extrude / text / types
|
|
10
|
-
* - L1 SDF:sdf-runner / templates / types
|
|
11
|
-
* - L1 Knurl:KnurlGenerator / subdivision / textureLoader
|
|
12
|
-
* - L1 Topology:build-face-ids / build-selector-runtime / types
|
|
13
|
-
* - L2 编排层:CadRuntime / HostPorts
|
|
14
|
-
* - L3 Node Host:createNodePorts / CLI
|
|
15
|
-
* - OCCT Kernel:initOcctWasm / getKernel / setOcctWasmInitFn / ...
|
|
16
|
-
* - CSG Backend:setCsgBackend / geoToManifoldMesh / ...
|
|
4
|
+
* Public API umbrella entry. All exports are re-exports (no new signatures).
|
|
5
|
+
* Organized by architecture layer (L0–L3); each layer consumes `export *` from
|
|
6
|
+
* its sub-module index.ts, with explicit disambiguation for same-name types.
|
|
17
7
|
*/
|
|
18
8
|
// ── 共享面(env-agnostic:identity + runtime-state + lang/*)──
|
|
19
|
-
// 手写清单已收敛:三处 umbrella(index/browser/weapp)统一 re-export,防漂移。
|
|
20
9
|
export * from './env-agnostic.js';
|
|
21
|
-
|
|
22
|
-
export
|
|
10
|
+
// ── L1 Mesh(types + knurl + decoration + manifold-loader + query + import-model)──
|
|
11
|
+
export * from './mesh/index.js';
|
|
12
|
+
// ── L1 BREP(ops + chain + utils + export)──
|
|
13
|
+
export * from './brep/index.js';
|
|
23
14
|
export { buildStlBufferFromMesh } from './brep/export/stl.js';
|
|
24
15
|
export { exportStepFromSolid, exportStepFromSolids } from './brep/export/step.js';
|
|
25
|
-
// ── L1
|
|
26
|
-
|
|
27
|
-
// face. `cad` belongs to the script face (host-injected ops); TS consumers import
|
|
28
|
-
// per-module from `@faicad/faijs/mesh/*`.
|
|
29
|
-
// 宿主注入的 mesh 装饰几何(cad.engrave 的文字/SVG 几何链在 @faicad/faijs-extra)
|
|
30
|
-
export { setEngraveDecorationProvider, getEngraveDecorationProvider } from './mesh/decoration-provider.js';
|
|
31
|
-
export { setManifoldWasmUrl, getManifoldWasmUrl, getManifoldModule } from './mesh/manifold-loader.js';
|
|
32
|
-
export { NRAD_DEFAULT, NRAD_MIN, NRAD_MAX, clampNRad } from './mesh/types.js';
|
|
33
|
-
export { faceAt } from './mesh/query.js';
|
|
34
|
-
// ── L1 Boolean/CSG 辅助 ──
|
|
35
|
-
export { computeSection, buildExtrudedProfile } from './boolean/cross-section.js';
|
|
36
|
-
export { manifoldToMeshData, weldPositionsWorker, dovetailBooleanSplit, dowelOrTenonBooleanSplit } from './boolean/csg-core.js';
|
|
37
|
-
export { deriveNormals } from './boolean/deriveNormals.js';
|
|
38
|
-
export { buildExtrudeParts, makeWorldPlane } from './boolean/extrude-helpers.js';
|
|
39
|
-
export { buildWedgeGeometry, buildDowelGeometry, buildStraightTenonGeometry, } from './boolean/joinery-shapes.js';
|
|
40
|
-
// ── CSG Backend ──
|
|
41
|
-
export { setCsgBackend } from './boolean/csg-backend.js';
|
|
42
|
-
export { geoToManifoldMesh, manifoldMeshToGeo } from './boolean/geo-convert.js';
|
|
16
|
+
// ── L1 Boolean/CSG ──
|
|
17
|
+
export * from './boolean/index.js';
|
|
43
18
|
// ── L1 Primitives ──
|
|
44
|
-
export
|
|
45
|
-
export { makeScrew } from './primitives/screw/screw.js';
|
|
46
|
-
export { getScrewSpec, getScrewSpecs, threadToPitchMm, SCREW_HEAD_DIMS } from './primitives/screw/screw-db.js';
|
|
47
|
-
export { parseSvgNaturalSize } from './primitives/parse-svg-size.js';
|
|
48
|
-
export { extractMeshData, primitiveToBrepSolid, geometryToBrepSolid, brepSolidToStep, primitiveToBrepStep, } from './primitives/brep-primitives.js';
|
|
49
|
-
// B 组(svg 挤出 / 3D 文字几何链)已随 @faicad/faijs-extra 迁出;
|
|
50
|
-
// 留 core 的是零 three 的 CJK 字符判定与系统字体装载。
|
|
51
|
-
export { loadSystemCjkFont, containsCjk, isCjkChar } from './primitives/text/cjk-font.js';
|
|
52
|
-
export { nextPrimitiveColor } from './primitives/types.js';
|
|
19
|
+
export * from './primitives/index.js';
|
|
53
20
|
// ── L1 SDF ──
|
|
54
|
-
export
|
|
55
|
-
export { runSdfInline } from './sdf/sdf-core.js';
|
|
56
|
-
export { SDF_TEMPLATES, DEFAULT_SDF_TEMPLATE } from './sdf/templates.js';
|
|
57
|
-
export { boxToTuple, parseParamDefs, defaultParamValues } from './sdf/types.js';
|
|
58
|
-
// ── L1 Knurl ──
|
|
59
|
-
export { applyKnurlDisplacement, KNURL_DEFAULTS } from './mesh/knurl/KnurlGenerator.js';
|
|
60
|
-
export { subdivide } from './mesh/knurl/subdivision.js';
|
|
61
|
-
export { loadKnurlingTexture, setKnurlTextureLoader } from './mesh/knurl/textureLoader.js';
|
|
62
|
-
export { QuantizedPointMap, weldVertices } from './mesh/knurl/meshIndex.js';
|
|
63
|
-
export { computeUV, MODE_TRIPLANAR, getCubicBlendWeights } from './mesh/knurl/mapping.js';
|
|
64
|
-
export { applyDisplacement } from './mesh/knurl/displacement.js';
|
|
21
|
+
export * from './sdf.js';
|
|
65
22
|
// ── L1 Topology ──
|
|
66
23
|
export { TOPOLOGY_FACE_ID_NONE, buildFaceIdsForPart } from './topology/build-face-ids.js';
|
|
67
24
|
export { buildSelectorRuntime, buildSelectorRuntimeData, buildSelectorRuntimeMaps, } from './topology/build-selector-runtime.js';
|
|
68
25
|
export * from './topology/naming/index.js';
|
|
69
|
-
// ── L2
|
|
70
|
-
//
|
|
71
|
-
//
|
|
72
|
-
export { CadRuntime, createRuntime, computeContentKey, AppendPrefixError } from './cad-runtime/
|
|
26
|
+
// ── L2 编排层 ──
|
|
27
|
+
// createRuntime auto-registers the built-in cad namespace (D1, facade-refactor
|
|
28
|
+
// 2026-10-08). Use createBareRuntime for a pure engine without cad.
|
|
29
|
+
export { CadRuntime, createRuntime, createBareRuntime, computeContentKey, AppendPrefixError } from './cad-runtime/runtime.js';
|
|
73
30
|
export { createPreviewExec } from './cad-runtime/preview-exec.js';
|
|
74
31
|
// ── OCCT Kernel ──
|
|
75
32
|
export { initOcctWasm, getKernel, disposeOcctWasm, setOcctWasmInitFn, computeEffectiveDeflection, importStepToMesh, importBrepToMesh, meshesToStep, releaseShape, importAssemblyFromStep, releaseAssemblyTree, collectLeafParts, } from './occt-kernel/occtKernel.js';
|
|
@@ -98,30 +55,15 @@ export { assertShapeSlotExclusive } from './cad-runtime/backend-dispatch.js';
|
|
|
98
55
|
export { buildSolidTopologyRuntime } from './brep/brep-topology.js';
|
|
99
56
|
// ── Font Registry (for browser host injection) ──
|
|
100
57
|
export { setFontLoader, getFontLoader, loadFont, ensureDefaultFont, ensureFont, getFont, clearFonts } from './brep/text/fontRegistry.js';
|
|
101
|
-
// ── L3 Node Host ──
|
|
102
|
-
// node-host 模块已移�?@faicad/faijs/node 入口,避免浏览器环境静�?import
|
|
103
|
-
// node-host 模块(含 Node.js 专用代码�?fs/path)导致生产构�?404�?
|
|
104
|
-
// �?Node.js 环境中:import { createNodePorts } from '@faicad/faijs/node'
|
|
105
58
|
// ── L3 Browser Host ──
|
|
106
59
|
export { createBrowserPorts } from './browser-host/index.js';
|
|
107
|
-
// D3-Browser(§9.4):CDN 通用 libLoader 工厂(a/b 混合)。**不**被 createBrowserPorts
|
|
108
|
-
// 默认装配——demo 的源码 alias HMR 路径必须零网络;CDN 装载由主机显式注入。
|
|
109
60
|
export { createBrowserLibLoader, DEFAULT_CDN_BASE } from './cad-runtime/browser-lib-loader.js';
|
|
110
61
|
export { BrowserEventSink } from './browser-host/browser-event-sink.js';
|
|
111
62
|
export { BrowserFontProvider } from './browser-host/browser-font-provider.js';
|
|
112
63
|
export { FetchAssetResolver } from './browser-host/fetch-asset-resolver.js';
|
|
113
64
|
// ── L3 API 面(api/ 层)──
|
|
114
|
-
// P23 主导出切换(§4.2 / Q1):`export * from './api/index.js'` 现在同时带来
|
|
115
|
-
// ① faijs 特有 dual op(mesh+brep 双路径,D11 双形态归一);
|
|
116
|
-
// ② 生成脚本面 op(`api/generated/script-face.ts`,defineOp({ brep: __own_* }) 直连的
|
|
117
|
-
// brep-only 语句级 op——`cad.*` 脚本面与此同源,B1 三源一致);
|
|
118
|
-
// ③ 2026-09-25 core-decouple:brepjsCompat 命名空间与 op 投影随旧子包删除
|
|
119
|
-
// (裁决 9);`api/geom-types`(原名 api/brepjs-compat,2026-10-07 改名)仅保留 core 内联的 Result / 向量 / 平面 / 错误 /
|
|
120
|
-
// 常量组合器(§5.2),顶层平铺不变。
|
|
121
65
|
export * from './api/index.js';
|
|
122
66
|
export { createApiNamespace } from './api/api-namespace.js';
|
|
123
|
-
//
|
|
124
|
-
// face they are import-free globals (S4_SAFE_GLOBALS subset); TS consumers now
|
|
125
|
-
// get the same names here instead of hunting for the /units subpath.
|
|
67
|
+
// ── Units ──
|
|
126
68
|
export { MM, CM, M, MICRON, INCH, FOOT, YARD, DEGREE, RADIAN, SCRIPT_UNIT_NAMES, } from './units.js';
|
|
127
69
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @faicad/faijs �?Faicad CAD execution engine\n *\n * 公开 API 统一入口。所有导出按层组织:\n * - L0 文本层:parser / codegen / symbol-table / types\n * - L1 几何执行层:BREP ops / Shape / 导出\n * - L1 Mesh 执行层:cad API\n * - L1 Boolean/CSG 辅助:cross-section / deriveNormals / extrude-helpers / joinery-shapes\n * - L1 Primitives:geometry / screw / svg-extrude / text / types\n * - L1 SDF:sdf-runner / templates / types\n * - L1 Knurl:KnurlGenerator / subdivision / textureLoader\n * - L1 Topology:build-face-ids / build-selector-runtime / types\n * - L2 编排层:CadRuntime / HostPorts\n * - L3 Node Host:createNodePorts / CLI\n * - OCCT Kernel:initOcctWasm / getKernel / setOcctWasmInitFn / ...\n * - CSG Backend:setCsgBackend / geoToManifoldMesh / ...\n */\n\n// ── 共享面(env-agnostic:identity + runtime-state + lang/*)──\n// 手写清单已收敛:三处 umbrella(index/browser/weapp)统一 re-export,防漂移。\nexport * from './env-agnostic'\n\n// ── L1 几何执行 ──\nexport type { Shape } from './mesh/types'\nexport type { BrepChainState } from './brep/brep-chain'\nexport {\n createBrepChainState, initBrepChainState, releaseBrepChainState,\n isCadFormat,\n} from './brep/brep-chain'\nexport {\n solidToShape, getSolidBoundingBox,\n translateBrep, rotateBrep, scaleBrep,\n fuseBrep, cutBrep, commonBrep,\n drillBrep, splitBrep, extrudeBrep,\n loadBrep, matrixToArray,\n} from './brep'\nexport type { DrillBrepParams, SplitBrepParams, SplitBrepResult, ExtrudeBrepParams } from './brep'\nexport { buildStlBufferFromMesh } from './brep/export/stl'\nexport { exportStepFromSolid, exportStepFromSolids } from './brep/export/step'\nexport type { StepExportEntry } from './brep/export/step'\n\n// ── L1 Mesh ──\n// B3 correction (2026-10-06): no `cad` / `meshCad` aggregate is exported from the library\n// face. `cad` belongs to the script face (host-injected ops); TS consumers import\n// per-module from `@faicad/faijs/mesh/*`.\n// 宿主注入的 mesh 装饰几何(cad.engrave 的文字/SVG 几何链在 @faicad/faijs-extra)\nexport { setEngraveDecorationProvider, getEngraveDecorationProvider } from './mesh/decoration-provider'\nexport type { EngraveDecorationProvider, EngraveDecorationParams } from './mesh/decoration-provider'\nexport { setManifoldWasmUrl, getManifoldWasmUrl, getManifoldModule } from './mesh/manifold-loader'\nexport type {\n BoundingBox, FaceDescriptor,\n BoxParams, SphereParams, CylinderParams, ConeParams, WedgeParams,\n TextParams, SvgExtrudeParams, SdfParams,\n DrillParams, ExtrudeParams, EngraveParams, KnurlParams,\n SplitPlane, SplitResult,\n} from './mesh/types'\nexport { NRAD_DEFAULT, NRAD_MIN, NRAD_MAX, clampNRad } from './mesh/types'\nexport { faceAt } from './mesh/query'\n\n// ── L1 Boolean/CSG 辅助 ──\nexport { computeSection, buildExtrudedProfile } from './boolean/cross-section'\nexport { manifoldToMeshData, weldPositionsWorker, dovetailBooleanSplit, dowelOrTenonBooleanSplit } from './boolean/csg-core'\nexport { deriveNormals } from './boolean/deriveNormals'\nexport { buildExtrudeParts, makeWorldPlane } from './boolean/extrude-helpers'\nexport type { ExtrudeParts, ExtrudeOffsetMode } from './boolean/extrude-helpers'\nexport {\n buildWedgeGeometry, buildDowelGeometry, buildStraightTenonGeometry,\n} from './boolean/joinery-shapes'\nexport type { JoineryMeshData } from './boolean/joinery-shapes'\n\n// ── CSG Backend ──\nexport { setCsgBackend } from './boolean/csg-backend'\nexport { geoToManifoldMesh, manifoldMeshToGeo } from './boolean/geo-convert'\nexport type {\n ManifoldMeshData, BooleanOperation,\n DovetailGrooveParams, DowelSplitParams, StraightTenonSplitParams,\n} from './boolean/geo-convert'\n\n// ── L1 Primitives ──\nexport { mergeBufferGeometries, makePrimitiveGeo, DEFAULT_SIZE, applyPrimitiveOffset } from './primitives/mesh-primitives'\nexport { makeScrew } from './primitives/screw/screw'\nexport { getScrewSpec, getScrewSpecs, threadToPitchMm, SCREW_HEAD_DIMS } from './primitives/screw/screw-db'\nexport type { ScrewParams, ScrewSpec, ScrewSystem } from './primitives/screw/screw-db'\nexport { parseSvgNaturalSize } from './primitives/parse-svg-size'\nexport {\n extractMeshData, primitiveToBrepSolid, geometryToBrepSolid,\n brepSolidToStep, primitiveToBrepStep,\n} from './primitives/brep-primitives'\nexport type { PrimitiveToBrepResult, PrimitiveParams } from './primitives/brep-primitives'\n// B 组(svg 挤出 / 3D 文字几何链)已随 @faicad/faijs-extra 迁出;\n// 留 core 的是零 three 的 CJK 字符判定与系统字体装载。\nexport { loadSystemCjkFont, containsCjk, isCjkChar } from './primitives/text/cjk-font'\nexport type { CjkFontResult } from './primitives/text/cjk-font'\nexport type {\n PrimitiveType, PrimitiveParamsRecord, PrimitiveArgsRecord, PrimitiveMeta,\n} from './primitives/types'\nexport { nextPrimitiveColor } from './primitives/types'\n\n// ── L1 SDF ──\nexport { runSdf } from './sdf/sdf-runner'\nexport type { SdfMeshData } from './sdf/sdf-runner'\nexport { runSdfInline } from './sdf/sdf-core'\nexport { SDF_TEMPLATES, DEFAULT_SDF_TEMPLATE } from './sdf/templates'\nexport type {\n SdfMeta, SdfBox, SdfParamDef, SdfTemplateCategory,\n SdfWorkerInput, SdfWorkerMessage,\n} from './sdf/types'\nexport { boxToTuple, parseParamDefs, defaultParamValues } from './sdf/types'\n\n// ── L1 Knurl ──\nexport { applyKnurlDisplacement, KNURL_DEFAULTS } from './mesh/knurl/KnurlGenerator'\nexport type { KnurlBounds } from './mesh/knurl/KnurlGenerator'\nexport { subdivide } from './mesh/knurl/subdivision'\nexport { loadKnurlingTexture, setKnurlTextureLoader } from './mesh/knurl/textureLoader'\nexport type { TextureData } from './mesh/knurl/textureLoader'\nexport { QuantizedPointMap, weldVertices } from './mesh/knurl/meshIndex'\nexport { computeUV, MODE_TRIPLANAR, getCubicBlendWeights, type MappingSettings } from './mesh/knurl/mapping'\nexport { applyDisplacement, type DisplacementSettings } from './mesh/knurl/displacement'\n\n// ── L1 Topology ──\nexport { TOPOLOGY_FACE_ID_NONE, buildFaceIdsForPart } from './topology/build-face-ids'\nexport {\n buildSelectorRuntime, buildSelectorRuntimeData, buildSelectorRuntimeMaps,\n} from './topology/build-selector-runtime'\nexport type { SelectorRuntimeData } from './topology/build-selector-runtime'\nexport type {\n SelectorRuntime, SelectorBundle, SelectorManifest, SelectorBuffers,\n FaceRow, EdgeRow, Reference,\n BufferViewDescriptor, SelectorProxy,\n} from './topology/types'\n\nexport * from './topology/naming'\n\n// ── L2 编排�?──\n// D1(2026-09-19):createRuntime 自注册 cad 默认命名空间(引擎 + 标准库定位)。\n// 需要纯引擎(不带 cad)的宿主可直接 import { createRuntime } from './cad-runtime/runtime'。\nexport { CadRuntime, createRuntime, computeContentKey, AppendPrefixError } from './cad-runtime/createRuntimeWithCad'\nexport { createPreviewExec } from './cad-runtime/preview-exec'\nexport type { PreviewExec } from './cad-runtime/preview-exec'\nexport type { ExecutionResult, ExecuteOptions, CheckResult, CheckError, CadRuntimeOptions } from './cad-runtime/runtime'\nexport type {\n HostPorts, CsgBackend, SdfBackend, FontProvider, TextureSampler,\n AssetResolver, EventSink, ExecutionMode,\n MeshData, PlaneParams, SplitResult as CsgSplitResult,\n DovetailGrooveParams as PortDovetailGrooveParams,\n DowelSplitParams as PortDowelSplitParams,\n StraightTenonSplitParams as PortStraightTenonSplitParams,\n LibLoader, ProjectLoader,\n} from './cad-runtime/ports'\n\n// ── OCCT Kernel ──\nexport {\n initOcctWasm, getKernel, disposeOcctWasm, setOcctWasmInitFn,\n computeEffectiveDeflection, importStepToMesh, importBrepToMesh,\n meshesToStep, releaseShape,\n importAssemblyFromStep, releaseAssemblyTree, collectLeafParts,\n} from './occt-kernel/occtKernel'\nexport type {\n WasmTessellatedMesh, WasmImportResult, AssemblyPartNode,\n MeshDeflectionOptions, ShapeHandle, OcctKernel,\n Mesh, EdgeData, SurfaceKind, CurveKind,\n} from './occt-kernel/occtKernel'\n\n// ── OCCT Mesh Reconstruct ──\nexport { reconstructSolidFromMesh, meshToAsciiStl, cadShapeIsValid, meshToStepBrep } from './occt-kernel/meshReconstruct'\n\n// ── OCCT 高层导出(多实体、零 fuse) ──\nexport { exportStepFromSolidsHighLevel } from './occt-kernel/highLevelApi'\n\n// ── OCCT Topology Extension ──\nexport { buildSelectorManifest, buildAssemblySelectorManifest, buildTopologyAdjacency } from './occt-kernel/topologyExt'\nexport type { SelectorManifestInput, PartTopologyInput, AssemblyTopologyResult, TopologyAdjacency } from './occt-kernel/topologyExt'\n\n// ── BREP 引擎注册(宿主装配;引擎可切换——occt 只是默认实现) ──\nexport { registerOcctBrepEngine, OCCT_BREP_ENGINE_ID } from './brep/engine/adapters/occt'\nexport { registerBrepMockEngine, BREP_MOCK_ENGINE_ID, createBrepMockApi } from './brep/engine/adapters/brep-mock'\n// brepkit 端侧 BREP 引擎(微信小程序等无 OCCT 环境):由宿主注入 wasm init 并抢先注册,\n// 使 ensureBrepChain 不回退 OCCT。setBrepkitWasmInitFn 注入自定义初始化(如 WXWebAssembly 实例化)。\nexport { registerBrepkitBrepEngine, BREPKIT_BREP_ENGINE_ID, ensureBrepkitDefaultEngine } from './brep/engine/adapters/brepkit'\n// brepkit 网格实体后端(网格语义路径;与 BREP 槽独立注册)。装了它,`cad.load`\n// 的 STL/3MF 路径才产出「网格实体 + 近似拓扑」;不装则维持裸网格的历史行为。\nexport { registerBrepkitMeshEngine, BREPKIT_MESH_ENGINE_ID, ensureBrepkitMeshBackend } from './brep/engine/adapters/brepkit'\nexport { setBrepkitWasmInitFn, initBrepkitWasm, isBrepkitInitialized } from './brepkit-kernel/brepkitWasm'\nexport {\n registerBrepEngine, getBrepEngine, hasBrepEngine, getActiveBrepEngineId,\n registerMeshEngine, getMeshEngine, getActiveMeshEngineId, freezeEngineRegistries,\n isMeshEngineRegistered, getMeshSolidBackend,\n} from './brep/engine/registry'\nexport type { BrepEngine, BrepEngineProvider, MeshEngine } from './brep/engine/registry'\n// 网格实体(近似拓扑的载体):端口 + 注册表 + 驱动。\nexport { MeshSolidRegistry, normalizeMeshSolid, describeMeshSolid, buildMeshSolidTopology, weldToleranceFor } from './brep/mesh-solid'\nexport type {\n MeshSolidBackend, MeshSolidResult, MeshSolidKernelOps, MeshSolidInput, MeshSolidNormalizeOptions,\n} from './brep/mesh-solid'\n// 槽位互斥不变量(分派前置校验;缺陷即报错)\nexport { assertShapeSlotExclusive } from './cad-runtime/backend-dispatch'\nexport type { BrepEngineApi } from './brep/engine/primitives'\nexport type {\n BrepHandle, BrepMeshResult, BrepBoundingBox, BrepVec3, BrepCapabilities,\n BrepEvolutionData, BrepXcafDocument,\n} from './brep/engine/types'\n\n// ── BREP Topology ──\nexport { buildSolidTopologyRuntime } from './brep/brep-topology'\nexport type { SolidTopologyResult } from './brep/brep-topology'\n\n// ── Font Registry (for browser host injection) ──\nexport { setFontLoader, getFontLoader, loadFont, ensureDefaultFont, ensureFont, getFont, clearFonts } from './brep/text/fontRegistry'\nexport type { FontLoader } from './brep/text/fontRegistry'\n\n// ── L3 Node Host ──\n// node-host 模块已移�?@faicad/faijs/node 入口,避免浏览器环境静�?import\n// node-host 模块(含 Node.js 专用代码�?fs/path)导致生产构�?404�?\n// �?Node.js 环境中:import { createNodePorts } from '@faicad/faijs/node'\n\n// ── L3 Browser Host ──\nexport { createBrowserPorts } from './browser-host'\nexport type { CreateBrowserPortsOptions } from './browser-host'\n// D3-Browser(§9.4):CDN 通用 libLoader 工厂(a/b 混合)。**不**被 createBrowserPorts\n// 默认装配——demo 的源码 alias HMR 路径必须零网络;CDN 装载由主机显式注入。\nexport { createBrowserLibLoader, DEFAULT_CDN_BASE } from './cad-runtime/browser-lib-loader'\nexport type {\n BrowserLibLoader, BrowserLibMeta, CreateBrowserLibLoaderOptions,\n} from './cad-runtime/browser-lib-loader'\nexport { BrowserEventSink } from './browser-host/browser-event-sink'\nexport { BrowserFontProvider } from './browser-host/browser-font-provider'\nexport type { BrowserFontProviderOptions } from './browser-host/browser-font-provider'\nexport { FetchAssetResolver } from './browser-host/fetch-asset-resolver'\nexport type { FetchAssetResolverOptions } from './browser-host/fetch-asset-resolver'\n\n// ── L3 API 面(api/ 层)──\n// P23 主导出切换(§4.2 / Q1):`export * from './api'` 现在同时带来\n// ① faijs 特有 dual op(mesh+brep 双路径,D11 双形态归一);\n// ② 生成脚本面 op(`api/generated/script-face.ts`,defineOp({ brep: __own_* }) 直连的\n// brep-only 语句级 op——`cad.*` 脚本面与此同源,B1 三源一致);\n// ③ 2026-09-25 core-decouple:brepjsCompat 命名空间与 op 投影随旧子包删除\n// (裁决 9);`api/geom-types`(原名 api/brepjs-compat,2026-10-07 改名)仅保留 core 内联的 Result / 向量 / 平面 / 错误 /\n// 常量组合器(§5.2),顶层平铺不变。\nexport * from './api'\nexport { createApiNamespace } from './api/api-namespace'\n// B5 (2026-10-06): unit constants re-exported from the main entry. In the script\n// face they are import-free globals (S4_SAFE_GLOBALS subset); TS consumers now\n// get the same names here instead of hunting for the /units subpath.\nexport {\n MM, CM, M, MICRON, INCH, FOOT, YARD,\n DEGREE, RADIAN,\n SCRIPT_UNIT_NAMES,\n} from './units'\n// Vec3 双源消歧:env-agnostic(lang/types)与 api(mesh/types)均有 Vec3,\n// 显式 re-export 定为 lang 版(与收敛前 index.ts 的具名导出一致)。\nexport type { Vec3 } from './lang/types'\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @faicad/faijs — Faicad CAD execution engine\n *\n * Public API umbrella entry. All exports are re-exports (no new signatures).\n * Organized by architecture layer (L0–L3); each layer consumes `export *` from\n * its sub-module index.ts, with explicit disambiguation for same-name types.\n */\n\n// ── 共享面(env-agnostic:identity + runtime-state + lang/*)──\nexport * from './env-agnostic'\n\n// ── L1 Mesh(types + knurl + decoration + manifold-loader + query + import-model)──\nexport * from './mesh'\n\n// ── L1 BREP(ops + chain + utils + export)──\nexport * from './brep'\nexport { buildStlBufferFromMesh } from './brep/export/stl'\nexport { exportStepFromSolid, exportStepFromSolids } from './brep/export/step'\nexport type { StepExportEntry } from './brep/export/step'\n\n// ── L1 Boolean/CSG ──\nexport * from './boolean'\n\n// ── L1 Primitives ──\nexport * from './primitives'\n\n// ── L1 SDF ──\nexport * from './sdf'\n\n// ── L1 Topology ──\nexport { TOPOLOGY_FACE_ID_NONE, buildFaceIdsForPart } from './topology/build-face-ids'\nexport {\n buildSelectorRuntime, buildSelectorRuntimeData, buildSelectorRuntimeMaps,\n} from './topology/build-selector-runtime'\nexport type { SelectorRuntimeData } from './topology/build-selector-runtime'\nexport type {\n SelectorRuntime, SelectorBundle, SelectorManifest, SelectorBuffers,\n FaceRow, EdgeRow, Reference,\n BufferViewDescriptor, SelectorProxy,\n} from './topology/types'\nexport * from './topology/naming'\n\n// ── L2 编排层 ──\n// createRuntime auto-registers the built-in cad namespace (D1, facade-refactor\n// 2026-10-08). Use createBareRuntime for a pure engine without cad.\nexport { CadRuntime, createRuntime, createBareRuntime, computeContentKey, AppendPrefixError } from './cad-runtime/runtime'\nexport { createPreviewExec } from './cad-runtime/preview-exec'\nexport type { PreviewExec } from './cad-runtime/preview-exec'\nexport type { ExecutionResult, ExecuteOptions, CheckResult, CheckError, CadRuntimeOptions, PartTopology, TopologySource } from './cad-runtime/runtime'\nexport type {\n HostPorts, CsgBackend, SdfBackend, FontProvider, TextureSampler,\n AssetResolver, EventSink, ExecutionMode, HostEnv,\n MeshData, PlaneParams, SplitResult as CsgSplitResult,\n DovetailGrooveParams as PortDovetailGrooveParams,\n DowelSplitParams as PortDowelSplitParams,\n StraightTenonSplitParams as PortStraightTenonSplitParams,\n LibLoader, ProjectLoader,\n} from './cad-runtime/ports'\n\n// ── OCCT Kernel ──\nexport {\n initOcctWasm, getKernel, disposeOcctWasm, setOcctWasmInitFn,\n computeEffectiveDeflection, importStepToMesh, importBrepToMesh,\n meshesToStep, releaseShape,\n importAssemblyFromStep, releaseAssemblyTree, collectLeafParts,\n} from './occt-kernel/occtKernel'\nexport type {\n WasmTessellatedMesh, WasmImportResult, AssemblyPartNode,\n MeshDeflectionOptions, ShapeHandle, OcctKernel,\n Mesh, EdgeData, SurfaceKind, CurveKind,\n} from './occt-kernel/occtKernel'\n\n// ── OCCT Mesh Reconstruct ──\nexport { reconstructSolidFromMesh, meshToAsciiStl, cadShapeIsValid, meshToStepBrep } from './occt-kernel/meshReconstruct'\n\n// ── OCCT 高层导出(多实体、零 fuse) ──\nexport { exportStepFromSolidsHighLevel } from './occt-kernel/highLevelApi'\n\n// ── OCCT Topology Extension ──\nexport { buildSelectorManifest, buildAssemblySelectorManifest, buildTopologyAdjacency } from './occt-kernel/topologyExt'\nexport type { SelectorManifestInput, PartTopologyInput, AssemblyTopologyResult, TopologyAdjacency } from './occt-kernel/topologyExt'\n\n// ── BREP 引擎注册(宿主装配;引擎可切换——occt 只是默认实现) ──\nexport { registerOcctBrepEngine, OCCT_BREP_ENGINE_ID } from './brep/engine/adapters/occt'\nexport { registerBrepMockEngine, BREP_MOCK_ENGINE_ID, createBrepMockApi } from './brep/engine/adapters/brep-mock'\n// brepkit 端侧 BREP 引擎(微信小程序等无 OCCT 环境):由宿主注入 wasm init 并抢先注册,\n// 使 ensureBrepChain 不回退 OCCT。setBrepkitWasmInitFn 注入自定义初始化(如 WXWebAssembly 实例化)。\nexport { registerBrepkitBrepEngine, BREPKIT_BREP_ENGINE_ID, ensureBrepkitDefaultEngine } from './brep/engine/adapters/brepkit'\n// brepkit 网格实体后端(网格语义路径;与 BREP 槽独立注册)。装了它,`cad.load`\n// 的 STL/3MF 路径才产出「网格实体 + 近似拓扑」;不装则维持裸网格的历史行为。\nexport { registerBrepkitMeshEngine, BREPKIT_MESH_ENGINE_ID, ensureBrepkitMeshBackend } from './brep/engine/adapters/brepkit'\nexport { setBrepkitWasmInitFn, initBrepkitWasm, isBrepkitInitialized } from './brepkit-kernel/brepkitWasm'\nexport {\n registerBrepEngine, getBrepEngine, hasBrepEngine, getActiveBrepEngineId,\n registerMeshEngine, getMeshEngine, getActiveMeshEngineId, freezeEngineRegistries,\n isMeshEngineRegistered, getMeshSolidBackend,\n} from './brep/engine/registry'\nexport type { BrepEngine, BrepEngineProvider, MeshEngine } from './brep/engine/registry'\n// 网格实体(近似拓扑的载体):端口 + 注册表 + 驱动。\nexport { MeshSolidRegistry, normalizeMeshSolid, describeMeshSolid, buildMeshSolidTopology, weldToleranceFor } from './brep/mesh-solid'\nexport type {\n MeshSolidBackend, MeshSolidResult, MeshSolidKernelOps, MeshSolidInput, MeshSolidNormalizeOptions,\n} from './brep/mesh-solid'\n// 槽位互斥不变量(分派前置校验;缺陷即报错)\nexport { assertShapeSlotExclusive } from './cad-runtime/backend-dispatch'\nexport type { BrepEngineApi } from './brep/engine/primitives'\nexport type {\n BrepHandle, BrepMeshResult, BrepBoundingBox, BrepVec3, BrepEvolutionKind,\n BrepEvolutionData, BrepXcafDocument,\n} from './brep/engine/types'\n\n// ── BREP Topology ──\nexport { buildSolidTopologyRuntime } from './brep/brep-topology'\nexport type { SolidTopologyResult } from './brep/brep-topology'\n\n// ── Font Registry (for browser host injection) ──\nexport { setFontLoader, getFontLoader, loadFont, ensureDefaultFont, ensureFont, getFont, clearFonts } from './brep/text/fontRegistry'\nexport type { FontLoader } from './brep/text/fontRegistry'\n\n// ── L3 Browser Host ──\nexport { createBrowserPorts } from './browser-host'\nexport type { CreateBrowserPortsOptions } from './browser-host'\nexport { createBrowserLibLoader, DEFAULT_CDN_BASE } from './cad-runtime/browser-lib-loader'\nexport type {\n BrowserLibLoader, BrowserLibMeta, CreateBrowserLibLoaderOptions,\n} from './cad-runtime/browser-lib-loader'\nexport { BrowserEventSink } from './browser-host/browser-event-sink'\nexport { BrowserFontProvider } from './browser-host/browser-font-provider'\nexport type { BrowserFontProviderOptions } from './browser-host/browser-font-provider'\nexport { FetchAssetResolver } from './browser-host/fetch-asset-resolver'\nexport type { FetchAssetResolverOptions } from './browser-host/fetch-asset-resolver'\n\n// ── L3 API 面(api/ 层)──\nexport * from './api'\nexport { createApiNamespace } from './api/api-namespace'\n\n// ── Units ──\nexport {\n MM, CM, M, MICRON, INCH, FOOT, YARD,\n DEGREE, RADIAN,\n SCRIPT_UNIT_NAMES,\n} from './units'\n\n// ── 重名消歧:Vec3 双源(lang/types vs mesh/types),显式指定 lang 版 ──\nexport type { Vec3 } from './lang/types'\n"]}
|
|
@@ -51,6 +51,8 @@ declare const _default: {
|
|
|
51
51
|
halfSpace: {};
|
|
52
52
|
exportStl: {};
|
|
53
53
|
exportBrep: {};
|
|
54
|
+
exportStep: {};
|
|
55
|
+
export3mf: {};
|
|
54
56
|
isEdge: {};
|
|
55
57
|
isFace: {};
|
|
56
58
|
isShell: {};
|
|
@@ -81,6 +83,21 @@ declare const _default: {
|
|
|
81
83
|
outerWire: {};
|
|
82
84
|
draftPrism: {};
|
|
83
85
|
pipe: {};
|
|
86
|
+
containsPoint: {};
|
|
87
|
+
distanceBetween: {};
|
|
88
|
+
inertia: {};
|
|
89
|
+
linearCenterOfMass: {};
|
|
90
|
+
projectPointOnEdge: {};
|
|
91
|
+
projectPointOnFace: {};
|
|
92
|
+
classifyPointOnFace: {};
|
|
93
|
+
uvFromPoint: {};
|
|
94
|
+
vertexPosition: {};
|
|
95
|
+
subShapeCount: {};
|
|
96
|
+
iterShapes: {};
|
|
97
|
+
liftCurve2d: {};
|
|
98
|
+
commonCells: {};
|
|
99
|
+
boolean: {};
|
|
100
|
+
alignTo: {};
|
|
84
101
|
faceNormal: {};
|
|
85
102
|
bboxCenter: {};
|
|
86
103
|
bboxMin: {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbol-table.generated.d.ts","sourceRoot":"","sources":["../../src/lang/symbol-table.generated.ts"],"names":[],"mappings":"AAAA;;;;;GAKG
|
|
1
|
+
{"version":3,"file":"symbol-table.generated.d.ts","sourceRoot":"","sources":["../../src/lang/symbol-table.generated.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACH,wBAqJC"}
|
|
@@ -51,6 +51,8 @@ export default {
|
|
|
51
51
|
"halfSpace": {},
|
|
52
52
|
"exportStl": {},
|
|
53
53
|
"exportBrep": {},
|
|
54
|
+
"exportStep": {},
|
|
55
|
+
"export3mf": {},
|
|
54
56
|
"isEdge": {},
|
|
55
57
|
"isFace": {},
|
|
56
58
|
"isShell": {},
|
|
@@ -81,6 +83,21 @@ export default {
|
|
|
81
83
|
"outerWire": {},
|
|
82
84
|
"draftPrism": {},
|
|
83
85
|
"pipe": {},
|
|
86
|
+
"containsPoint": {},
|
|
87
|
+
"distanceBetween": {},
|
|
88
|
+
"inertia": {},
|
|
89
|
+
"linearCenterOfMass": {},
|
|
90
|
+
"projectPointOnEdge": {},
|
|
91
|
+
"projectPointOnFace": {},
|
|
92
|
+
"classifyPointOnFace": {},
|
|
93
|
+
"uvFromPoint": {},
|
|
94
|
+
"vertexPosition": {},
|
|
95
|
+
"subShapeCount": {},
|
|
96
|
+
"iterShapes": {},
|
|
97
|
+
"liftCurve2d": {},
|
|
98
|
+
"commonCells": {},
|
|
99
|
+
"boolean": {},
|
|
100
|
+
"alignTo": {},
|
|
84
101
|
"faceNormal": {},
|
|
85
102
|
"bboxCenter": {},
|
|
86
103
|
"bboxMin": {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbol-table.generated.js","sourceRoot":"","sources":["../../src/lang/symbol-table.generated.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * symbol-table 生成文件 — 禁手改。\n * 由 scripts/gen-symbol-table.ts 从 api-namespace 的 cad 命名空间生成(键存在性)。\n * keep-syntax P1 后符号表只承载 check() 符号检查(\"函数不存在\"判定);\n * 保留语义由 keep 声明表达,不再有 readonly 标注。\n */\nexport default {\n \"box\": {},\n \"sphere\": {},\n \"cylinder\": {},\n \"cone\": {},\n \"wedge\": {},\n \"screw\": {},\n \"profile\": {},\n \"sketchOnPlane\": {},\n \"sketchOnFace\": {},\n \"punchHole\": {},\n \"wire\": {},\n \"helix\": {},\n \"sdf\": {},\n \"translate\": {},\n \"rotate_euler\": {},\n \"scale\": {},\n \"scale3d\": {},\n \"engrave\": {},\n \"chamfer\": {},\n \"fillet\": {},\n \"knurl\": {},\n \"shell\": {},\n \"draft\": {},\n \"thicken\": {},\n \"filletVariable\": {},\n \"splitByPlane\": {},\n \"sectionByPlane\": {},\n \"defeature\": {},\n \"reverseShape\": {},\n \"unifySameDomain\": {},\n \"sew\": {},\n \"sewAndSolidify\": {},\n \"removeHolesFromFace\": {},\n \"union\": {},\n \"subtract\": {},\n \"intersect\": {},\n \"extrude\": {},\n \"revolve\": {},\n \"sweep\": {},\n \"loft\": {},\n \"surface\": {},\n \"offset2d\": {},\n \"solidFromFaces\": {},\n \"halfSpace\": {},\n \"exportStl\": {},\n \"exportBrep\": {},\n \"isEdge\": {},\n \"isFace\": {},\n \"isShell\": {},\n \"isVertex\": {},\n \"isWire\": {},\n \"isCompound\": {},\n \"isCompSolid\": {},\n \"isEqual\": {},\n \"toSVG\": {},\n \"toMultiviewSVG\": {},\n \"toPNG\": {},\n \"toMultiviewPNG\": {},\n \"edge\": {},\n \"circleArc\": {},\n \"ellipseEdge\": {},\n \"ellipseArc\": {},\n \"tangentArc\": {},\n \"approximatePoints\": {},\n \"interpolateWithTangents\": {},\n \"curveDegreeElevate\": {},\n \"curveKnotInsert\": {},\n \"curveKnotRemove\": {},\n \"curveIsPeriodic\": {},\n \"faceOnSurface\": {},\n \"nonPlanarFace\": {},\n \"makeSolid\": {},\n \"reverseSurfaceU\": {},\n \"outerWire\": {},\n \"draftPrism\": {},\n \"pipe\": {},\n \"faceNormal\": {},\n \"bboxCenter\": {},\n \"bboxMin\": {},\n \"bboxMax\": {},\n \"edgeRef\": {},\n \"faceRef\": {},\n \"jointTrajectory\": {},\n \"inverseKinematics\": {},\n \"mechanismDOF\": {},\n \"asset\": {},\n \"import_brep\": {},\n \"import_step\": {},\n \"compound\": {},\n \"place\": {},\n \"cut\": {},\n \"split\": {},\n \"linearPattern\": {},\n \"circularPattern\": {},\n \"gridPattern\": {},\n \"rectangularPattern\": {},\n \"mirrorJoin\": {},\n \"mirror\": {},\n \"clone\": {},\n \"torus\": {},\n \"fuse\": {},\n \"inspectMassProps\": {},\n \"area\": {},\n \"length\": {},\n \"volume\": {},\n \"centerOfMass\": {},\n \"viewCamera\": {},\n \"projectView\": {},\n \"projectSheet\": {},\n \"complexExtrude\": {},\n \"twistExtrude\": {},\n \"roof\": {},\n \"drill\": {},\n \"pocket\": {},\n \"boss\": {},\n \"thread\": {},\n \"convexHull\": {},\n \"makeBaseBox\": {},\n \"ellipsoid\": {},\n \"rotate\": {},\n \"applyMatrix\": {},\n \"locate\": {},\n \"offset\": {},\n \"heal\": {},\n \"simplify\": {},\n \"isValid\": {},\n \"isSameShape\": {},\n \"autoHeal\": {},\n \"fixShape\": {},\n \"healSolid\": {},\n \"fixSelfIntersection\": {}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"symbol-table.generated.js","sourceRoot":"","sources":["../../src/lang/symbol-table.generated.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAe;IACb,KAAK,EAAE,EAAE;IACT,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,EAAE;IACd,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,EAAE;IACb,eAAe,EAAE,EAAE;IACnB,cAAc,EAAE,EAAE;IAClB,WAAW,EAAE,EAAE;IACf,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,EAAE;IACT,WAAW,EAAE,EAAE;IACf,cAAc,EAAE,EAAE;IAClB,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,EAAE;IACb,gBAAgB,EAAE,EAAE;IACpB,cAAc,EAAE,EAAE;IAClB,gBAAgB,EAAE,EAAE;IACpB,WAAW,EAAE,EAAE;IACf,cAAc,EAAE,EAAE;IAClB,iBAAiB,EAAE,EAAE;IACrB,KAAK,EAAE,EAAE;IACT,gBAAgB,EAAE,EAAE;IACpB,qBAAqB,EAAE,EAAE;IACzB,OAAO,EAAE,EAAE;IACX,UAAU,EAAE,EAAE;IACd,WAAW,EAAE,EAAE;IACf,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,EAAE;IACV,SAAS,EAAE,EAAE;IACb,UAAU,EAAE,EAAE;IACd,gBAAgB,EAAE,EAAE;IACpB,WAAW,EAAE,EAAE;IACf,WAAW,EAAE,EAAE;IACf,YAAY,EAAE,EAAE;IAChB,YAAY,EAAE,EAAE;IAChB,WAAW,EAAE,EAAE;IACf,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,EAAE;IACb,UAAU,EAAE,EAAE;IACd,QAAQ,EAAE,EAAE;IACZ,YAAY,EAAE,EAAE;IAChB,aAAa,EAAE,EAAE;IACjB,SAAS,EAAE,EAAE;IACb,OAAO,EAAE,EAAE;IACX,gBAAgB,EAAE,EAAE;IACpB,OAAO,EAAE,EAAE;IACX,gBAAgB,EAAE,EAAE;IACpB,MAAM,EAAE,EAAE;IACV,WAAW,EAAE,EAAE;IACf,aAAa,EAAE,EAAE;IACjB,YAAY,EAAE,EAAE;IAChB,YAAY,EAAE,EAAE;IAChB,mBAAmB,EAAE,EAAE;IACvB,yBAAyB,EAAE,EAAE;IAC7B,oBAAoB,EAAE,EAAE;IACxB,iBAAiB,EAAE,EAAE;IACrB,iBAAiB,EAAE,EAAE;IACrB,iBAAiB,EAAE,EAAE;IACrB,eAAe,EAAE,EAAE;IACnB,eAAe,EAAE,EAAE;IACnB,WAAW,EAAE,EAAE;IACf,iBAAiB,EAAE,EAAE;IACrB,WAAW,EAAE,EAAE;IACf,YAAY,EAAE,EAAE;IAChB,MAAM,EAAE,EAAE;IACV,eAAe,EAAE,EAAE;IACnB,iBAAiB,EAAE,EAAE;IACrB,SAAS,EAAE,EAAE;IACb,oBAAoB,EAAE,EAAE;IACxB,oBAAoB,EAAE,EAAE;IACxB,oBAAoB,EAAE,EAAE;IACxB,qBAAqB,EAAE,EAAE;IACzB,aAAa,EAAE,EAAE;IACjB,gBAAgB,EAAE,EAAE;IACpB,eAAe,EAAE,EAAE;IACnB,YAAY,EAAE,EAAE;IAChB,aAAa,EAAE,EAAE;IACjB,aAAa,EAAE,EAAE;IACjB,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,YAAY,EAAE,EAAE;IAChB,YAAY,EAAE,EAAE;IAChB,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,iBAAiB,EAAE,EAAE;IACrB,mBAAmB,EAAE,EAAE;IACvB,cAAc,EAAE,EAAE;IAClB,OAAO,EAAE,EAAE;IACX,aAAa,EAAE,EAAE;IACjB,aAAa,EAAE,EAAE;IACjB,UAAU,EAAE,EAAE;IACd,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,EAAE;IACX,eAAe,EAAE,EAAE;IACnB,iBAAiB,EAAE,EAAE;IACrB,aAAa,EAAE,EAAE;IACjB,oBAAoB,EAAE,EAAE;IACxB,YAAY,EAAE,EAAE;IAChB,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,EAAE;IACV,kBAAkB,EAAE,EAAE;IACtB,MAAM,EAAE,EAAE;IACV,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,cAAc,EAAE,EAAE;IAClB,YAAY,EAAE,EAAE;IAChB,aAAa,EAAE,EAAE;IACjB,cAAc,EAAE,EAAE;IAClB,gBAAgB,EAAE,EAAE;IACpB,cAAc,EAAE,EAAE;IAClB,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,EAAE;IACZ,MAAM,EAAE,EAAE;IACV,QAAQ,EAAE,EAAE;IACZ,YAAY,EAAE,EAAE;IAChB,aAAa,EAAE,EAAE;IACjB,WAAW,EAAE,EAAE;IACf,QAAQ,EAAE,EAAE;IACZ,aAAa,EAAE,EAAE;IACjB,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,MAAM,EAAE,EAAE;IACV,UAAU,EAAE,EAAE;IACd,SAAS,EAAE,EAAE;IACb,aAAa,EAAE,EAAE;IACjB,UAAU,EAAE,EAAE;IACd,UAAU,EAAE,EAAE;IACd,WAAW,EAAE,EAAE;IACf,qBAAqB,EAAE,EAAE;CAC1B,CAAA","sourcesContent":["/**\n * symbol-table 生成文件 — 禁手改。\n * 由 scripts/gen-symbol-table.ts 从 api-namespace 的 cad 命名空间生成(键存在性)。\n * keep-syntax P1 后符号表只承载 check() 符号检查(\"函数不存在\"判定);\n * 保留语义由 keep 声明表达,不再有 readonly 标注。\n */\nexport default {\n \"box\": {},\n \"sphere\": {},\n \"cylinder\": {},\n \"cone\": {},\n \"wedge\": {},\n \"screw\": {},\n \"profile\": {},\n \"sketchOnPlane\": {},\n \"sketchOnFace\": {},\n \"punchHole\": {},\n \"wire\": {},\n \"helix\": {},\n \"sdf\": {},\n \"translate\": {},\n \"rotate_euler\": {},\n \"scale\": {},\n \"scale3d\": {},\n \"engrave\": {},\n \"chamfer\": {},\n \"fillet\": {},\n \"knurl\": {},\n \"shell\": {},\n \"draft\": {},\n \"thicken\": {},\n \"filletVariable\": {},\n \"splitByPlane\": {},\n \"sectionByPlane\": {},\n \"defeature\": {},\n \"reverseShape\": {},\n \"unifySameDomain\": {},\n \"sew\": {},\n \"sewAndSolidify\": {},\n \"removeHolesFromFace\": {},\n \"union\": {},\n \"subtract\": {},\n \"intersect\": {},\n \"extrude\": {},\n \"revolve\": {},\n \"sweep\": {},\n \"loft\": {},\n \"surface\": {},\n \"offset2d\": {},\n \"solidFromFaces\": {},\n \"halfSpace\": {},\n \"exportStl\": {},\n \"exportBrep\": {},\n \"exportStep\": {},\n \"export3mf\": {},\n \"isEdge\": {},\n \"isFace\": {},\n \"isShell\": {},\n \"isVertex\": {},\n \"isWire\": {},\n \"isCompound\": {},\n \"isCompSolid\": {},\n \"isEqual\": {},\n \"toSVG\": {},\n \"toMultiviewSVG\": {},\n \"toPNG\": {},\n \"toMultiviewPNG\": {},\n \"edge\": {},\n \"circleArc\": {},\n \"ellipseEdge\": {},\n \"ellipseArc\": {},\n \"tangentArc\": {},\n \"approximatePoints\": {},\n \"interpolateWithTangents\": {},\n \"curveDegreeElevate\": {},\n \"curveKnotInsert\": {},\n \"curveKnotRemove\": {},\n \"curveIsPeriodic\": {},\n \"faceOnSurface\": {},\n \"nonPlanarFace\": {},\n \"makeSolid\": {},\n \"reverseSurfaceU\": {},\n \"outerWire\": {},\n \"draftPrism\": {},\n \"pipe\": {},\n \"containsPoint\": {},\n \"distanceBetween\": {},\n \"inertia\": {},\n \"linearCenterOfMass\": {},\n \"projectPointOnEdge\": {},\n \"projectPointOnFace\": {},\n \"classifyPointOnFace\": {},\n \"uvFromPoint\": {},\n \"vertexPosition\": {},\n \"subShapeCount\": {},\n \"iterShapes\": {},\n \"liftCurve2d\": {},\n \"commonCells\": {},\n \"boolean\": {},\n \"alignTo\": {},\n \"faceNormal\": {},\n \"bboxCenter\": {},\n \"bboxMin\": {},\n \"bboxMax\": {},\n \"edgeRef\": {},\n \"faceRef\": {},\n \"jointTrajectory\": {},\n \"inverseKinematics\": {},\n \"mechanismDOF\": {},\n \"asset\": {},\n \"import_brep\": {},\n \"import_step\": {},\n \"compound\": {},\n \"place\": {},\n \"cut\": {},\n \"split\": {},\n \"linearPattern\": {},\n \"circularPattern\": {},\n \"gridPattern\": {},\n \"rectangularPattern\": {},\n \"mirrorJoin\": {},\n \"mirror\": {},\n \"clone\": {},\n \"torus\": {},\n \"fuse\": {},\n \"inspectMassProps\": {},\n \"area\": {},\n \"length\": {},\n \"volume\": {},\n \"centerOfMass\": {},\n \"viewCamera\": {},\n \"projectView\": {},\n \"projectSheet\": {},\n \"complexExtrude\": {},\n \"twistExtrude\": {},\n \"roof\": {},\n \"drill\": {},\n \"pocket\": {},\n \"boss\": {},\n \"thread\": {},\n \"convexHull\": {},\n \"makeBaseBox\": {},\n \"ellipsoid\": {},\n \"rotate\": {},\n \"applyMatrix\": {},\n \"locate\": {},\n \"offset\": {},\n \"heal\": {},\n \"simplify\": {},\n \"isValid\": {},\n \"isSameShape\": {},\n \"autoHeal\": {},\n \"fixShape\": {},\n \"healSolid\": {},\n \"fixSelfIntersection\": {}\n}\n"]}
|
package/dist/mesh/index.d.ts
CHANGED
|
@@ -9,29 +9,24 @@
|
|
|
9
9
|
* 3. 同步签名、异步执行:API 签名同步(或 async);worker 边界由 ScriptEngine 处理
|
|
10
10
|
* 4. 坐标系:右手系 +Z 向上、毫米、角度用度
|
|
11
11
|
*
|
|
12
|
-
* ⚠️ B3 补正(2026-10-06
|
|
13
|
-
*
|
|
14
|
-
* 此前这里有一个把 primitives / brep / transform / boolean / engrave / query / io
|
|
15
|
-
* 全量聚合进来的对象(曾名 `cad`,B3 一度改名 `meshCad`)。它把内核实现包装成一个
|
|
16
|
-
* 「形似平台 API」的门面,使下游(含本仓测试)能 `import { cad } from '../mesh/index.js'`
|
|
17
|
-
* 把内核当成 faijs 的公开 API——这正是要根除的混淆。改名只是换了张皮,因此聚合
|
|
18
|
-
* 对象已整体删除,不再以任何名字存在。
|
|
19
|
-
*
|
|
20
|
-
* 要哪一层的实现,就从对应模块具名导入:
|
|
21
|
-
* - `mesh/primitives` box / sphere / cylinder / cone / wedge / screw / sdf
|
|
22
|
-
* - `mesh/transform` translate / rotate_euler / scale / scale3d / transformMatrix
|
|
23
|
-
* - `mesh/boolean` union / subtract / intersect
|
|
24
|
-
* - `mesh/engrave` engrave / knurl
|
|
25
|
-
* - `mesh/query` boundingBox / bboxCenter / volume / faceAt
|
|
26
|
-
* - `mesh/io` importFile / detectStepUnit
|
|
27
|
-
* - `brep`、`brep/primitives-brep` BREP(OCCT)路径
|
|
28
|
-
*
|
|
29
|
-
* 注意:脚本面的 `cad`(宿主经 `registerLib('cad', …)` 注入的 op 命名空间)与这一层
|
|
30
|
-
* 是两回事——它不在这里,也不该被这里 import。见 AGENTS.md「库开发者 vs 脚本开发者」。
|
|
12
|
+
* ⚠️ B3 补正(2026-10-06):本文件不导出任何聚合对象(`cad` / `meshCad` 已删除)。
|
|
13
|
+
* 要内核实现就从对应模块具名导入。门面层经 `export * from './mesh.js'` 消费。
|
|
31
14
|
*/
|
|
32
|
-
export type { Shape,
|
|
15
|
+
export type { Shape, BoundingBox, FaceDescriptor, BoxParams, SphereParams, CylinderParams, ConeParams, WedgeParams, TextParams, SvgExtrudeParams, SdfParams, DrillParams, ExtrudeParams, EngraveParams, KnurlParams, SplitPlane, SplitResult, DovetailSplitParams, TenonSplitParams, } from './types.js';
|
|
16
|
+
export { NRAD_DEFAULT, NRAD_MIN, NRAD_MAX, clampNRad } from './types.js';
|
|
17
|
+
export { isMeshShape } from './types.js';
|
|
33
18
|
export { guessStlUnit } from './stl-unit.js';
|
|
34
|
-
export
|
|
35
|
-
export type {
|
|
36
|
-
export {
|
|
19
|
+
export { setEngraveDecorationProvider, getEngraveDecorationProvider } from './decoration-provider.js';
|
|
20
|
+
export type { EngraveDecorationProvider, EngraveDecorationParams } from './decoration-provider.js';
|
|
21
|
+
export { setManifoldWasmUrl, getManifoldWasmUrl, getManifoldModule } from './manifold-loader.js';
|
|
22
|
+
export { faceAt } from './query.js';
|
|
23
|
+
export { applyKnurlDisplacement, KNURL_DEFAULTS } from './knurl/KnurlGenerator.js';
|
|
24
|
+
export type { KnurlBounds } from './knurl/KnurlGenerator.js';
|
|
25
|
+
export { subdivide } from './knurl/subdivision.js';
|
|
26
|
+
export { loadKnurlingTexture, setKnurlTextureLoader } from './knurl/textureLoader.js';
|
|
27
|
+
export type { TextureData } from './knurl/textureLoader.js';
|
|
28
|
+
export { QuantizedPointMap, weldVertices } from './knurl/meshIndex.js';
|
|
29
|
+
export { computeUV, MODE_TRIPLANAR, getCubicBlendWeights, type MappingSettings } from './knurl/mapping.js';
|
|
30
|
+
export { applyDisplacement, type DisplacementSettings } from './knurl/displacement.js';
|
|
31
|
+
export type { ImportModel, ImportPart, ImportAssemblyNode, ImportBambuViews, } from './import-model.js';
|
|
37
32
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/mesh/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mesh/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mesh/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,YAAY,EACV,KAAK,EAAE,WAAW,EAAE,cAAc,EAClC,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAChE,UAAU,EAAE,gBAAgB,EAAE,SAAS,EACvC,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EACtD,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE,gBAAgB,GAC/D,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAGrC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAGzC,OAAO,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAA;AAClG,YAAY,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAG/F,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAG7F,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAGhC,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC/E,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAClF,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,oBAAoB,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACvG,OAAO,EAAE,iBAAiB,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAGnF,YAAY,EACV,WAAW,EAAE,UAAU,EAAE,kBAAkB,EAAE,gBAAgB,GAC9D,MAAM,gBAAgB,CAAA"}
|
package/dist/mesh/index.js
CHANGED
|
@@ -9,26 +9,24 @@
|
|
|
9
9
|
* 3. 同步签名、异步执行:API 签名同步(或 async);worker 边界由 ScriptEngine 处理
|
|
10
10
|
* 4. 坐标系:右手系 +Z 向上、毫米、角度用度
|
|
11
11
|
*
|
|
12
|
-
* ⚠️ B3 补正(2026-10-06
|
|
13
|
-
*
|
|
14
|
-
* 此前这里有一个把 primitives / brep / transform / boolean / engrave / query / io
|
|
15
|
-
* 全量聚合进来的对象(曾名 `cad`,B3 一度改名 `meshCad`)。它把内核实现包装成一个
|
|
16
|
-
* 「形似平台 API」的门面,使下游(含本仓测试)能 `import { cad } from '../mesh/index.js'`
|
|
17
|
-
* 把内核当成 faijs 的公开 API——这正是要根除的混淆。改名只是换了张皮,因此聚合
|
|
18
|
-
* 对象已整体删除,不再以任何名字存在。
|
|
19
|
-
*
|
|
20
|
-
* 要哪一层的实现,就从对应模块具名导入:
|
|
21
|
-
* - `mesh/primitives` box / sphere / cylinder / cone / wedge / screw / sdf
|
|
22
|
-
* - `mesh/transform` translate / rotate_euler / scale / scale3d / transformMatrix
|
|
23
|
-
* - `mesh/boolean` union / subtract / intersect
|
|
24
|
-
* - `mesh/engrave` engrave / knurl
|
|
25
|
-
* - `mesh/query` boundingBox / bboxCenter / volume / faceAt
|
|
26
|
-
* - `mesh/io` importFile / detectStepUnit
|
|
27
|
-
* - `brep`、`brep/primitives-brep` BREP(OCCT)路径
|
|
28
|
-
*
|
|
29
|
-
* 注意:脚本面的 `cad`(宿主经 `registerLib('cad', …)` 注入的 op 命名空间)与这一层
|
|
30
|
-
* 是两回事——它不在这里,也不该被这里 import。见 AGENTS.md「库开发者 vs 脚本开发者」。
|
|
12
|
+
* ⚠️ B3 补正(2026-10-06):本文件不导出任何聚合对象(`cad` / `meshCad` 已删除)。
|
|
13
|
+
* 要内核实现就从对应模块具名导入。门面层经 `export * from './mesh.js'` 消费。
|
|
31
14
|
*/
|
|
15
|
+
export { NRAD_DEFAULT, NRAD_MIN, NRAD_MAX, clampNRad } from './types.js';
|
|
16
|
+
export { isMeshShape } from './types.js';
|
|
17
|
+
// ── stl-unit ──
|
|
32
18
|
export { guessStlUnit } from './stl-unit.js';
|
|
33
|
-
|
|
19
|
+
// ── decoration-provider ──
|
|
20
|
+
export { setEngraveDecorationProvider, getEngraveDecorationProvider } from './decoration-provider.js';
|
|
21
|
+
// ── manifold-loader ──
|
|
22
|
+
export { setManifoldWasmUrl, getManifoldWasmUrl, getManifoldModule } from './manifold-loader.js';
|
|
23
|
+
// ── query ──
|
|
24
|
+
export { faceAt } from './query.js';
|
|
25
|
+
// ── knurl ──
|
|
26
|
+
export { applyKnurlDisplacement, KNURL_DEFAULTS } from './knurl/KnurlGenerator.js';
|
|
27
|
+
export { subdivide } from './knurl/subdivision.js';
|
|
28
|
+
export { loadKnurlingTexture, setKnurlTextureLoader } from './knurl/textureLoader.js';
|
|
29
|
+
export { QuantizedPointMap, weldVertices } from './knurl/meshIndex.js';
|
|
30
|
+
export { computeUV, MODE_TRIPLANAR, getCubicBlendWeights } from './knurl/mapping.js';
|
|
31
|
+
export { applyDisplacement } from './knurl/displacement.js';
|
|
34
32
|
//# sourceMappingURL=index.js.map
|
package/dist/mesh/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mesh/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mesh/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAUH,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAErC,iBAAiB;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEzC,4BAA4B;AAC5B,OAAO,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAA;AAGlG,wBAAwB;AACxB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE7F,cAAc;AACd,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAEhC,cAAc;AACd,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAE/E,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAElF,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,oBAAoB,EAAwB,MAAM,iBAAiB,CAAA;AACvG,OAAO,EAAE,iBAAiB,EAA6B,MAAM,sBAAsB,CAAA","sourcesContent":["/**\n * mesh — 纯数据几何内核(按模块组织的实现层)\n *\n * See docs/api-contract.md §1 (architecture layers) and §10 (api function catalog).\n *\n * 原则(§5.1):\n * 1. 全部纯数据:输入输出是 Shape (ManifoldMeshData),不碰 THREE 场景、不读 store\n * 2. 不可变:每个 API 返回新几何,不修改输入\n * 3. 同步签名、异步执行:API 签名同步(或 async);worker 边界由 ScriptEngine 处理\n * 4. 坐标系:右手系 +Z 向上、毫米、角度用度\n *\n * ⚠️ B3 补正(2026-10-06):本文件不导出任何聚合对象(`cad` / `meshCad` 已删除)。\n * 要内核实现就从对应模块具名导入。门面层经 `export * from './mesh'` 消费。\n */\n\n// ── types ──\nexport type {\n Shape, BoundingBox, FaceDescriptor,\n BoxParams, SphereParams, CylinderParams, ConeParams, WedgeParams,\n TextParams, SvgExtrudeParams, SdfParams,\n DrillParams, ExtrudeParams, EngraveParams, KnurlParams,\n SplitPlane, SplitResult, DovetailSplitParams, TenonSplitParams,\n} from './types'\nexport { NRAD_DEFAULT, NRAD_MIN, NRAD_MAX, clampNRad } from './types'\nexport { isMeshShape } from './types'\n\n// ── stl-unit ──\nexport { guessStlUnit } from './stl-unit'\n\n// ── decoration-provider ──\nexport { setEngraveDecorationProvider, getEngraveDecorationProvider } from './decoration-provider'\nexport type { EngraveDecorationProvider, EngraveDecorationParams } from './decoration-provider'\n\n// ── manifold-loader ──\nexport { setManifoldWasmUrl, getManifoldWasmUrl, getManifoldModule } from './manifold-loader'\n\n// ── query ──\nexport { faceAt } from './query'\n\n// ── knurl ──\nexport { applyKnurlDisplacement, KNURL_DEFAULTS } from './knurl/KnurlGenerator'\nexport type { KnurlBounds } from './knurl/KnurlGenerator'\nexport { subdivide } from './knurl/subdivision'\nexport { loadKnurlingTexture, setKnurlTextureLoader } from './knurl/textureLoader'\nexport type { TextureData } from './knurl/textureLoader'\nexport { QuantizedPointMap, weldVertices } from './knurl/meshIndex'\nexport { computeUV, MODE_TRIPLANAR, getCubicBlendWeights, type MappingSettings } from './knurl/mapping'\nexport { applyDisplacement, type DisplacementSettings } from './knurl/displacement'\n\n// ── import-model ──\nexport type {\n ImportModel, ImportPart, ImportAssemblyNode, ImportBambuViews,\n} from './import-model'\n"]}
|
package/dist/mesh/io.d.ts
CHANGED
|
@@ -6,20 +6,29 @@
|
|
|
6
6
|
* 坐标永远以 faijs 基准长度单位(mm)存储 — Shape 不贴 unit 标签(D3)。
|
|
7
7
|
*
|
|
8
8
|
* 单位换算边界(unit-system §5.2):
|
|
9
|
-
* - STL
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
9
|
+
* - 本模块只处理 **mesh 格式(STL/3MF)**,坐标可直接折算 → `opts.unit` 提供即
|
|
10
|
+
* **强制设置模型的源单位**(直接指定,覆盖/忽略模型内部记录的单位——STL 无
|
|
11
|
+
* 内部单位、3MF `<model unit>` 声明被覆盖),按 `unitScale(unit)` 折算坐标。
|
|
12
|
+
* 它**只可能来自调用方的显式知识**(脚本作者手写 `cad.load({ file, unit })`、
|
|
13
|
+
* 或宿主让用户选定单位后传入);调用方不知道单位时**必须省略**——省略时:
|
|
14
|
+
* STL 走 faijs 启发式(`guessStlUnit`,unified 方案 §6.1/§8 —— 3d_editor
|
|
15
|
+
* 迁移回归的单位断言依赖此行为)、3MF 走文件 `<model unit>`(无声明 →
|
|
16
|
+
* millimeter)。猜测/折算收敛在 faijs 内(红线 R0:宿主不自实现单位换算),
|
|
17
|
+
* G0 = 折算后坐标,渲染 = 拓扑 = G0。
|
|
18
|
+
* - **STEP/.brep 不经过本模块**(走 BREP 链,load op 内 OCCT 读取):OCCT 按
|
|
19
|
+
* 文件内部单位声明折算(SI_UNIT),**不支持强制设置单位**——load op 对
|
|
20
|
+
* BREP 路径 + 用户显式 unit 直接**明确报错**(不缩放、不 workaround)。
|
|
13
21
|
* - 3MF `<model unit>` 由解析器读取并换算(micron/mm/cm/inch/foot/meter)。
|
|
14
22
|
*
|
|
15
23
|
* 返回契约(unit-system §10.6):`importFile` 返回 `{ shape, unit }` — `unit`
|
|
16
|
-
* 是文件源单位(必然有值;faijs 是单一真源):3MF
|
|
17
|
-
* →
|
|
18
|
-
*
|
|
19
|
-
*
|
|
24
|
+
* 是文件源单位(必然有值;faijs 是单一真源):3MF 取 opts.unit(强制)或文件
|
|
25
|
+
* 声明(无声明 → millimeter),STL 取 opts.unit 或 guessStlUnit 启发式猜测。
|
|
26
|
+
* 坐标恒为基准值 — `unit` 只作元数据(sourceUnit 记录、导出目标判定),绝不
|
|
27
|
+
* 参与几何缩放(读入折算已由解析器完成,二次缩放 = 双重换算)。
|
|
20
28
|
*/
|
|
21
29
|
import { type UnitName } from '../units.js';
|
|
22
30
|
import type { Shape } from './types.js';
|
|
31
|
+
import type { CompoundShape } from '../shape.js';
|
|
23
32
|
import type { FileMeta } from '../api/meta.js';
|
|
24
33
|
import type { ImportModel } from './import-model.js';
|
|
25
34
|
/** Result of a unit-aware file import. */
|
|
@@ -33,8 +42,10 @@ export interface ImportFileResult {
|
|
|
33
42
|
parts: Shape[];
|
|
34
43
|
/**
|
|
35
44
|
* The file's source unit (always present; faijs is the single source of truth).
|
|
36
|
-
* 3MF
|
|
37
|
-
* STL: opts.unit if
|
|
45
|
+
* 3MF: opts.unit (forced) if provided, else the file's declared unit
|
|
46
|
+
* (无声明 → millimeter). STL: opts.unit (forced) if provided, else the
|
|
47
|
+
* guessStlUnit heuristic result. STEP/BREP 不经过本模块(OCCT 链不支持
|
|
48
|
+
* 强制设置单位,load op 报错)。
|
|
38
49
|
* Metadata only — coordinates are already in the faijs base unit (mm).
|
|
39
50
|
*/
|
|
40
51
|
unit: UnitName;
|
|
@@ -54,6 +65,15 @@ export interface ImportFileResult {
|
|
|
54
65
|
* 单/多零件均登记(单零件 parts 长度 1)。
|
|
55
66
|
*/
|
|
56
67
|
importModel?: ImportModel;
|
|
68
|
+
/**
|
|
69
|
+
* 装配层级(方案 2026-10-08 §2.1 / 第 5 步「导入归一」):当 3MF 含 `<components>`
|
|
70
|
+
* 装配结构时,按层级重建为 `CompoundShape`,每个子节点携带相对父的 `transform`
|
|
71
|
+
* (来自 3MF `<component transform>` / build `<item transform>`,行主序 3×4,平移在
|
|
72
|
+
* 末列,与写出器同源)。仅当存在真实装配(多 item 或任一 item 带 components)时存在;
|
|
73
|
+
* 单零件平铺导入不走它(`shape` / `parts` 已覆盖)。viewer 用 `parts`(已烘焙实例),
|
|
74
|
+
* 往返/层级消费者用 `assembly`(局部几何 + 节点 transform)。
|
|
75
|
+
*/
|
|
76
|
+
assembly?: Shape | CompoundShape;
|
|
57
77
|
}
|
|
58
78
|
/**
|
|
59
79
|
* Bounded scan window for `detectStepUnit`. Unit entities sit at the front of
|
|
@@ -88,10 +108,18 @@ export declare function detectStepUnit(stepText: string): UnitName | null;
|
|
|
88
108
|
* @param buffer - the raw file bytes to parse (already decompressed; stpz
|
|
89
109
|
* unzipping is the caller's job — faijs never unzips implicitly).
|
|
90
110
|
* @param format - format identifier such as 'stl', '3mf'/'threemf' or 'step'
|
|
91
|
-
* (defaults to 'stl').
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
111
|
+
* (defaults to 'stl'). **仅 mesh 格式(STL/3MF)走本模块**;STEP/BREP 走
|
|
112
|
+
* BREP 链(load op 内 OCCT 读取,不支持强制设置单位)。
|
|
113
|
+
* @param opts - optional settings; `unit` (a UnitName string) **force-sets the
|
|
114
|
+
* model's source unit** (STL/3MF): it is NOT a default, it directly specifies
|
|
115
|
+
* the unit and overrides/ignores any unit recorded inside the model (3MF
|
|
116
|
+
* `<model unit>`; STL has none), geometry scaled by `unitScale(unit)`. Only
|
|
117
|
+
* provide it when the caller actually knows the unit (author-written
|
|
118
|
+
* `cad.load({ file, unit })`, or a host unit picker). When the caller does
|
|
119
|
+
* NOT know the unit, it MUST omit `unit` — STL then guesses via
|
|
120
|
+
* `guessStlUnit` (the only allowed guessing path), 3MF uses the file
|
|
121
|
+
* declaration (none → millimeter). A wrong explicit unit scales geometry
|
|
122
|
+
* wrongly and is never re-guessed.
|
|
95
123
|
* @returns the shape with base-unit coordinates plus the file's source unit
|
|
96
124
|
* (`unit`, metadata only; always present — faijs is the single source of truth).
|
|
97
125
|
*/
|
package/dist/mesh/io.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../../src/mesh/io.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../../src/mesh/io.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAOH,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAA;AAEnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAEjD,0CAA0C;AAC1C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,KAAK,CAAA;IACZ;;;;OAIG;IACH,KAAK,EAAE,KAAK,EAAE,CAAA;IACd;;;;;;;OAOG;IACH,IAAI,EAAE,QAAQ,CAAA;IACd;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,KAAK,GAAG,aAAa,CAAA;CACjC;AAuBD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,QAAa,CAAA;AAE/C;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAqBhE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,WAAW,EACnB,MAAM,CAAC,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,QAAQ,CAAA;CAAE,GACzB,OAAO,CAAC,gBAAgB,CAAC,CAmG3B"}
|