@faicad/faijs 0.13.1 → 0.14.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/api-namespace.d.ts.map +1 -1
- package/dist/api/api-namespace.js +30 -4
- package/dist/api/api-namespace.js.map +1 -1
- package/dist/api/boolean.d.ts +19 -0
- package/dist/api/boolean.d.ts.map +1 -1
- package/dist/api/boolean.js +51 -10
- package/dist/api/boolean.js.map +1 -1
- package/dist/api/chamfer.d.ts.map +1 -1
- package/dist/api/chamfer.js +8 -7
- package/dist/api/chamfer.js.map +1 -1
- package/dist/api/compound-geom.d.ts +45 -0
- package/dist/api/compound-geom.d.ts.map +1 -0
- package/dist/api/compound-geom.js +85 -0
- package/dist/api/compound-geom.js.map +1 -0
- package/dist/api/compound.d.ts +2 -0
- package/dist/api/compound.d.ts.map +1 -1
- package/dist/api/compound.js +2 -0
- package/dist/api/compound.js.map +1 -1
- package/dist/api/copy.d.ts +1 -0
- package/dist/api/copy.d.ts.map +1 -1
- package/dist/api/copy.js +4 -2
- package/dist/api/copy.js.map +1 -1
- package/dist/api/edge-ref.d.ts +3 -2
- package/dist/api/edge-ref.d.ts.map +1 -1
- package/dist/api/edge-ref.js +10 -6
- package/dist/api/edge-ref.js.map +1 -1
- package/dist/api/engrave.d.ts.map +1 -1
- package/dist/api/engrave.js +1 -0
- package/dist/api/engrave.js.map +1 -1
- package/dist/api/extrude.d.ts.map +1 -1
- package/dist/api/extrude.js +131 -3
- package/dist/api/extrude.js.map +1 -1
- package/dist/api/face-ref.d.ts.map +1 -1
- package/dist/api/face-ref.js +7 -4
- package/dist/api/face-ref.js.map +1 -1
- package/dist/api/fai_drill.d.ts +1 -1
- package/dist/api/fai_drill.d.ts.map +1 -1
- package/dist/api/fai_drill.js +31 -18
- package/dist/api/fai_drill.js.map +1 -1
- package/dist/api/fai_extrude.d.ts +1 -1
- package/dist/api/fai_extrude.d.ts.map +1 -1
- package/dist/api/fai_extrude.js +2 -1
- package/dist/api/fai_extrude.js.map +1 -1
- package/dist/api/fai_split.d.ts +1 -1
- package/dist/api/fai_split.d.ts.map +1 -1
- package/dist/api/fai_split.js +2 -1
- package/dist/api/fai_split.js.map +1 -1
- package/dist/api/fillet.d.ts.map +1 -1
- package/dist/api/fillet.js +6 -5
- package/dist/api/fillet.js.map +1 -1
- package/dist/api/generated/operations.js +16 -16
- package/dist/api/generated/operations.js.map +1 -1
- package/dist/api/generated/script-face-manifest.d.ts.map +1 -1
- package/dist/api/generated/script-face-manifest.js +0 -1
- package/dist/api/generated/script-face-manifest.js.map +1 -1
- package/dist/api/generated/script-face.d.ts +1 -4
- package/dist/api/generated/script-face.d.ts.map +1 -1
- package/dist/api/generated/script-face.js +2 -3
- 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.d.ts +0 -48
- package/dist/api/generated/topology.d.ts.map +1 -1
- package/dist/api/generated/topology.js +20 -62
- package/dist/api/generated/topology.js.map +1 -1
- package/dist/api/import-brep.d.ts +36 -0
- package/dist/api/import-brep.d.ts.map +1 -0
- package/dist/api/import-brep.js +72 -0
- package/dist/api/import-brep.js.map +1 -0
- package/dist/api/import-step.d.ts +28 -0
- package/dist/api/import-step.d.ts.map +1 -0
- package/dist/api/import-step.js +57 -0
- package/dist/api/import-step.js.map +1 -0
- package/dist/api/index.d.ts +7 -2
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +19 -5
- package/dist/api/index.js.map +1 -1
- package/dist/api/internal/compat-op.d.ts +2 -0
- package/dist/api/internal/compat-op.d.ts.map +1 -1
- package/dist/api/internal/compat-op.js +10 -2
- package/dist/api/internal/compat-op.js.map +1 -1
- package/dist/api/knurl.d.ts.map +1 -1
- package/dist/api/knurl.js +1 -0
- package/dist/api/knurl.js.map +1 -1
- package/dist/api/load.d.ts +3 -1
- package/dist/api/load.d.ts.map +1 -1
- package/dist/api/load.js +3 -1
- package/dist/api/load.js.map +1 -1
- package/dist/api/pattern.d.ts +32 -0
- package/dist/api/pattern.d.ts.map +1 -0
- package/dist/api/pattern.js +121 -0
- package/dist/api/pattern.js.map +1 -0
- package/dist/api/place.d.ts +35 -0
- package/dist/api/place.d.ts.map +1 -0
- package/dist/api/place.js +113 -0
- package/dist/api/place.js.map +1 -0
- package/dist/api/primitives.d.ts.map +1 -1
- package/dist/api/primitives.js +10 -3
- package/dist/api/primitives.js.map +1 -1
- package/dist/api/screw.d.ts.map +1 -1
- package/dist/api/screw.js +1 -0
- package/dist/api/screw.js.map +1 -1
- package/dist/api/sdf.d.ts.map +1 -1
- package/dist/api/sdf.js +1 -0
- package/dist/api/sdf.js.map +1 -1
- package/dist/api/sketch.d.ts.map +1 -1
- package/dist/api/sketch.js +1 -0
- package/dist/api/sketch.js.map +1 -1
- package/dist/api/split.d.ts +31 -0
- package/dist/api/split.d.ts.map +1 -0
- package/dist/api/split.js +96 -0
- package/dist/api/split.js.map +1 -0
- package/dist/api/surface/arg-spec.d.ts +9 -0
- package/dist/api/surface/arg-spec.d.ts.map +1 -1
- package/dist/api/surface/arg-spec.js +49 -30
- package/dist/api/surface/arg-spec.js.map +1 -1
- package/dist/api/svgExtrude.d.ts.map +1 -1
- package/dist/api/svgExtrude.js +1 -0
- package/dist/api/svgExtrude.js.map +1 -1
- package/dist/api/text.d.ts.map +1 -1
- package/dist/api/text.js +1 -0
- package/dist/api/text.js.map +1 -1
- package/dist/api/topo-resolve.d.ts.map +1 -1
- package/dist/api/topo-resolve.js +65 -3
- package/dist/api/topo-resolve.js.map +1 -1
- package/dist/api/transform.d.ts +4 -0
- package/dist/api/transform.d.ts.map +1 -1
- package/dist/api/transform.js +44 -12
- package/dist/api/transform.js.map +1 -1
- package/dist/brep/brep-ops.d.ts +34 -1
- package/dist/brep/brep-ops.d.ts.map +1 -1
- package/dist/brep/brep-ops.js +62 -22
- 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 +8 -0
- package/dist/brep/engine/adapters/brep-mock.js.map +1 -1
- package/dist/brep/engine/adapters/brepkit.d.ts.map +1 -1
- package/dist/brep/engine/adapters/brepkit.js +6 -1
- 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 +24 -1
- package/dist/brep/engine/adapters/occt.js.map +1 -1
- package/dist/brep/engine/primitives.d.ts +17 -0
- package/dist/brep/engine/primitives.d.ts.map +1 -1
- package/dist/brep/engine/primitives.js.map +1 -1
- package/dist/brep/engine/types.d.ts +49 -6
- package/dist/brep/engine/types.d.ts.map +1 -1
- package/dist/brep/engine/types.js.map +1 -1
- package/dist/brep/export/step.d.ts.map +1 -1
- package/dist/brep/export/step.js +6 -1
- package/dist/brep/export/step.js.map +1 -1
- package/dist/brep/face-evolution.d.ts +78 -8
- package/dist/brep/face-evolution.d.ts.map +1 -1
- package/dist/brep/face-evolution.js +130 -17
- package/dist/brep/face-evolution.js.map +1 -1
- package/dist/brepkit-kernel/brepkitKernel.d.ts +1 -1
- package/dist/brepkit-kernel/brepkitKernel.d.ts.map +1 -1
- package/dist/brepkit-kernel/brepkitKernel.js +27 -1
- package/dist/brepkit-kernel/brepkitKernel.js.map +1 -1
- package/dist/browser.d.ts +0 -2
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +2 -2
- package/dist/browser.js.map +1 -1
- package/dist/cad-runtime/admit-compat-lib.d.ts +19 -1
- package/dist/cad-runtime/admit-compat-lib.d.ts.map +1 -1
- package/dist/cad-runtime/admit-compat-lib.js +21 -1
- package/dist/cad-runtime/admit-compat-lib.js.map +1 -1
- package/dist/cad-runtime/backend-dispatch.d.ts +44 -3
- package/dist/cad-runtime/backend-dispatch.d.ts.map +1 -1
- package/dist/cad-runtime/backend-dispatch.js +46 -3
- package/dist/cad-runtime/backend-dispatch.js.map +1 -1
- package/dist/cad-runtime/browser-lib-loader.d.ts +2 -0
- package/dist/cad-runtime/browser-lib-loader.d.ts.map +1 -1
- package/dist/cad-runtime/browser-lib-loader.js +9 -1
- package/dist/cad-runtime/browser-lib-loader.js.map +1 -1
- package/dist/cad-runtime/direct-executor.d.ts.map +1 -1
- package/dist/cad-runtime/direct-executor.js +14 -4
- package/dist/cad-runtime/direct-executor.js.map +1 -1
- package/dist/cad-runtime/module-registry.d.ts +3 -1
- package/dist/cad-runtime/module-registry.d.ts.map +1 -1
- package/dist/cad-runtime/module-registry.js +13 -1
- package/dist/cad-runtime/module-registry.js.map +1 -1
- package/dist/cad-runtime/ports.d.ts +7 -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-concurrent-error.d.ts +38 -0
- package/dist/cad-runtime/runtime-concurrent-error.d.ts.map +1 -0
- package/dist/cad-runtime/runtime-concurrent-error.js +43 -0
- package/dist/cad-runtime/runtime-concurrent-error.js.map +1 -0
- package/dist/cad-runtime/runtime.d.ts +54 -2
- package/dist/cad-runtime/runtime.d.ts.map +1 -1
- package/dist/cad-runtime/runtime.js +186 -10
- package/dist/cad-runtime/runtime.js.map +1 -1
- package/dist/define-op.d.ts +22 -0
- package/dist/define-op.d.ts.map +1 -1
- package/dist/define-op.js +82 -12
- package/dist/define-op.js.map +1 -1
- package/dist/fcstd/attachment.d.ts +72 -0
- package/dist/fcstd/attachment.d.ts.map +1 -0
- package/dist/fcstd/attachment.js +93 -0
- package/dist/fcstd/attachment.js.map +1 -0
- package/dist/fcstd/build-fai-zip.d.ts +11 -0
- package/dist/fcstd/build-fai-zip.d.ts.map +1 -1
- package/dist/fcstd/build-fai-zip.js +21 -8
- package/dist/fcstd/build-fai-zip.js.map +1 -1
- package/dist/fcstd/cli.d.ts +3 -0
- package/dist/fcstd/cli.d.ts.map +1 -0
- package/dist/fcstd/cli.js +37 -0
- package/dist/fcstd/cli.js.map +1 -0
- package/dist/fcstd/codegen.d.ts +23 -1
- package/dist/fcstd/codegen.d.ts.map +1 -1
- package/dist/fcstd/codegen.js +159 -48
- package/dist/fcstd/codegen.js.map +1 -1
- package/dist/fcstd/container.d.ts +16 -1
- package/dist/fcstd/container.d.ts.map +1 -1
- package/dist/fcstd/container.js +12 -1
- package/dist/fcstd/container.js.map +1 -1
- package/dist/fcstd/contour.d.ts +9 -1
- package/dist/fcstd/contour.d.ts.map +1 -1
- package/dist/fcstd/contour.js +28 -18
- package/dist/fcstd/contour.js.map +1 -1
- package/dist/fcstd/convert.d.ts +31 -2
- package/dist/fcstd/convert.d.ts.map +1 -1
- package/dist/fcstd/convert.js +73 -22
- package/dist/fcstd/convert.js.map +1 -1
- package/dist/fcstd/document.d.ts +8 -1
- package/dist/fcstd/document.d.ts.map +1 -1
- package/dist/fcstd/document.js +4 -1
- package/dist/fcstd/document.js.map +1 -1
- package/dist/fcstd/expressions.d.ts +14 -1
- package/dist/fcstd/expressions.d.ts.map +1 -1
- package/dist/fcstd/expressions.js +11 -1
- package/dist/fcstd/expressions.js.map +1 -1
- package/dist/fcstd/external-geo.d.ts +27 -2
- package/dist/fcstd/external-geo.d.ts.map +1 -1
- package/dist/fcstd/external-geo.js +23 -2
- package/dist/fcstd/external-geo.js.map +1 -1
- package/dist/fcstd/feature-translate.d.ts +85 -3
- package/dist/fcstd/feature-translate.d.ts.map +1 -1
- package/dist/fcstd/feature-translate.js +189 -9
- package/dist/fcstd/feature-translate.js.map +1 -1
- package/dist/fcstd/index.d.ts +23 -0
- package/dist/fcstd/index.d.ts.map +1 -0
- package/dist/fcstd/index.js +19 -0
- package/dist/fcstd/index.js.map +1 -0
- package/dist/fcstd/placement.d.ts +49 -6
- package/dist/fcstd/placement.d.ts.map +1 -1
- package/dist/fcstd/placement.js +46 -6
- package/dist/fcstd/placement.js.map +1 -1
- package/dist/fcstd/planegcs-backend.d.ts +16 -1
- package/dist/fcstd/planegcs-backend.d.ts.map +1 -1
- package/dist/fcstd/planegcs-backend.js +16 -1
- package/dist/fcstd/planegcs-backend.js.map +1 -1
- package/dist/fcstd/sketch-parse.d.ts +43 -0
- package/dist/fcstd/sketch-parse.d.ts.map +1 -1
- package/dist/fcstd/sketch-parse.js +26 -0
- package/dist/fcstd/sketch-parse.js.map +1 -1
- package/dist/fcstd/sketch-solver.d.ts +20 -2
- package/dist/fcstd/sketch-solver.d.ts.map +1 -1
- package/dist/fcstd/sketch-solver.js +6 -1
- package/dist/fcstd/sketch-solver.js.map +1 -1
- package/dist/fcstd/sketch-verify.d.ts +19 -1
- package/dist/fcstd/sketch-verify.d.ts.map +1 -1
- package/dist/fcstd/sketch-verify.js +14 -1
- package/dist/fcstd/sketch-verify.js.map +1 -1
- package/dist/fcstd/structural-types.d.ts +83 -0
- package/dist/fcstd/structural-types.d.ts.map +1 -0
- package/dist/fcstd/structural-types.js +116 -0
- package/dist/fcstd/structural-types.js.map +1 -0
- package/dist/fcstd/unpack.d.ts +21 -2
- package/dist/fcstd/unpack.d.ts.map +1 -1
- package/dist/fcstd/unpack.js +11 -2
- package/dist/fcstd/unpack.js.map +1 -1
- package/dist/fcstd-convert.d.ts +30 -0
- package/dist/fcstd-convert.d.ts.map +1 -0
- package/dist/fcstd-convert.js +27 -0
- package/dist/fcstd-convert.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lang/determinism-scanner.d.ts +62 -0
- package/dist/lang/determinism-scanner.d.ts.map +1 -0
- package/dist/lang/determinism-scanner.js +619 -0
- package/dist/lang/determinism-scanner.js.map +1 -0
- package/dist/lang/symbol-table.generated.d.ts +7 -3
- package/dist/lang/symbol-table.generated.d.ts.map +1 -1
- package/dist/lang/symbol-table.generated.js +7 -3
- package/dist/lang/symbol-table.generated.js.map +1 -1
- package/dist/mesh/index.d.ts.map +1 -1
- package/dist/mesh/index.js +3 -2
- package/dist/mesh/index.js.map +1 -1
- package/dist/node-host/cli.d.ts.map +1 -1
- package/dist/node-host/cli.js +56 -2
- package/dist/node-host/cli.js.map +1 -1
- package/dist/runtime-state.d.ts +18 -6
- package/dist/runtime-state.d.ts.map +1 -1
- package/dist/runtime-state.js +9 -1
- package/dist/runtime-state.js.map +1 -1
- package/dist/shape.d.ts +15 -0
- package/dist/shape.d.ts.map +1 -1
- package/dist/shape.js +26 -3
- package/dist/shape.js.map +1 -1
- package/dist/topology/naming/build-naming.d.ts +14 -30
- package/dist/topology/naming/build-naming.d.ts.map +1 -1
- package/dist/topology/naming/build-naming.js +21 -54
- package/dist/topology/naming/build-naming.js.map +1 -1
- package/dist/topology/naming/capture-topo-ref.d.ts.map +1 -1
- package/dist/topology/naming/capture-topo-ref.js +5 -0
- package/dist/topology/naming/capture-topo-ref.js.map +1 -1
- package/dist/topology/naming/index.d.ts +3 -0
- package/dist/topology/naming/index.d.ts.map +1 -1
- package/dist/topology/naming/index.js +3 -0
- package/dist/topology/naming/index.js.map +1 -1
- package/dist/topology/naming/lineage-resolve.d.ts +80 -0
- package/dist/topology/naming/lineage-resolve.d.ts.map +1 -0
- package/dist/topology/naming/lineage-resolve.js +120 -0
- package/dist/topology/naming/lineage-resolve.js.map +1 -0
- package/dist/topology/naming/lineage.d.ts +349 -0
- package/dist/topology/naming/lineage.d.ts.map +1 -0
- package/dist/topology/naming/lineage.js +398 -0
- package/dist/topology/naming/lineage.js.map +1 -0
- package/dist/topology/naming/migrate.d.ts +41 -0
- package/dist/topology/naming/migrate.d.ts.map +1 -0
- package/dist/topology/naming/migrate.js +88 -0
- package/dist/topology/naming/migrate.js.map +1 -0
- package/dist/topology/naming/role-name.d.ts +176 -0
- package/dist/topology/naming/role-name.d.ts.map +1 -0
- package/dist/topology/naming/role-name.js +344 -0
- package/dist/topology/naming/role-name.js.map +1 -0
- package/dist/topology/naming/roles.d.ts +20 -22
- package/dist/topology/naming/roles.d.ts.map +1 -1
- package/dist/topology/naming/roles.js +51 -49
- package/dist/topology/naming/roles.js.map +1 -1
- package/dist/topology/naming/types.d.ts +65 -18
- package/dist/topology/naming/types.d.ts.map +1 -1
- package/dist/topology/naming/types.js.map +1 -1
- package/dist/weapp.d.ts +22 -0
- package/dist/weapp.d.ts.map +1 -0
- package/dist/weapp.js +23 -0
- package/dist/weapp.js.map +1 -0
- package/package.json +18 -5
package/dist/fcstd/unpack.js
CHANGED
|
@@ -8,9 +8,12 @@
|
|
|
8
8
|
* faijs contract: unit mm, errors via Result (ok/err).
|
|
9
9
|
*/
|
|
10
10
|
import { unzipSync } from 'fflate';
|
|
11
|
-
import { err, ok } from '../
|
|
11
|
+
import { err, ok } from '../api/result.js';
|
|
12
12
|
/**
|
|
13
13
|
* Unpack an FCStd file. Only requirement: valid ZIP + root `Document.xml`.
|
|
14
|
+
*
|
|
15
|
+
* @param data - the raw FCStd file bytes.
|
|
16
|
+
* @returns the unpacked archive, or a structured UnpackError.
|
|
14
17
|
*/
|
|
15
18
|
export function unpackFcstd(data) {
|
|
16
19
|
let entries;
|
|
@@ -45,7 +48,13 @@ function readZipComment(data) {
|
|
|
45
48
|
}
|
|
46
49
|
return null;
|
|
47
50
|
}
|
|
48
|
-
/**
|
|
51
|
+
/**
|
|
52
|
+
* UTF-8 text decode helper for XML members.
|
|
53
|
+
*
|
|
54
|
+
* @param archive - the unpacked FCStd container.
|
|
55
|
+
* @param path - member path inside the ZIP, e.g. "Document.xml".
|
|
56
|
+
* @returns the member decoded as UTF-8 text, or undefined when absent.
|
|
57
|
+
*/
|
|
49
58
|
export function memberText(archive, path) {
|
|
50
59
|
const bytes = archive.members.get(path);
|
|
51
60
|
if (!bytes)
|
package/dist/fcstd/unpack.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unpack.js","sourceRoot":"","sources":["../../src/fcstd/unpack.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAe,MAAM,
|
|
1
|
+
{"version":3,"file":"unpack.js","sourceRoot":"","sources":["../../src/fcstd/unpack.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAe,MAAM,kBAAkB,CAAC;AA4BxD;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,IAAgB;IAC1C,IAAI,OAAmC,CAAC;IACxC,IAAI,CAAC;QACH,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,GAAG,CAAC;YACT,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,uBAAuB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;SAC7E,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,CAAC,cAAc,IAAI,OAAO,CAAC,EAAE,CAAC;QACjC,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC,CAAC;IACzF,CAAC;IACD,wEAAwE;IACxE,0EAA0E;IAC1E,2DAA2D;IAC3D,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC3C,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,cAAc,CAAC,IAAgB;IACtC,kDAAkD;IAClD,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/E,IACE,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EACxF,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,CAAE,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAE,IAAI,CAAC,CAAC,CAAC;YACjD,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC;YACrB,IAAI,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YAC3C,OAAO,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,OAAqB,EAAE,IAAY;IAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC","sourcesContent":["/**\n * M1.1 — FCStd container unpacking.\n *\n * Validation rules per plan §5.5.6 (corrected): a file is an FCStd iff it opens\n * as a ZIP and contains `Document.xml` at its root. The ZIP comment is advisory\n * only and must never cause rejection.\n *\n * faijs contract: unit mm, errors via Result (ok/err).\n */\nimport { unzipSync } from 'fflate';\nimport { err, ok, type Result } from '../api/result.js';\n\n/**\n * One raw file inside the FCStd ZIP container.\n */\nexport interface FcstdMember {\n /** path inside the ZIP, e.g. \"Document.xml\", \"PartShape.brp\" */\n path: string;\n /** the member's raw bytes */\n bytes: Uint8Array;\n}\n\n/**\n * The unpacked FCStd container: all ZIP members plus the advisory comment.\n */\nexport interface FcstdArchive {\n members: Map<string, Uint8Array>;\n /** advisory ZIP comment; may be empty (2/56 samples have empty comments) */\n zipComment: string;\n}\n\n/**\n * Structured unpack failure: not a valid ZIP, or missing root `Document.xml`.\n */\nexport type UnpackError =\n | { kind: 'not-zip'; message: string }\n | { kind: 'no-document-xml'; message: string };\n\n/**\n * Unpack an FCStd file. Only requirement: valid ZIP + root `Document.xml`.\n *\n * @param data - the raw FCStd file bytes.\n * @returns the unpacked archive, or a structured UnpackError.\n */\nexport function unpackFcstd(data: Uint8Array): Result<FcstdArchive, UnpackError> {\n let entries: Record<string, Uint8Array>;\n try {\n entries = unzipSync(data);\n } catch (e) {\n return err({\n kind: 'not-zip',\n message: `cannot open as ZIP: ${e instanceof Error ? e.message : String(e)}`,\n });\n }\n if (!('Document.xml' in entries)) {\n return err({ kind: 'no-document-xml', message: 'root Document.xml not found in ZIP' });\n }\n // fflate does not expose the raw ZIP comment through unzipSync; read it\n // directly from the EOCD record (22 bytes from end when comment is empty,\n // else longer). Advisory only — never used for validation.\n const comment = readZipComment(data) ?? '';\n return ok({ members: new Map(Object.entries(entries)), zipComment: comment });\n}\n\nfunction readZipComment(data: Uint8Array): string | null {\n // scan for EOCD signature 0x06054b50 from the end\n for (let i = data.length - 22; i >= Math.max(0, data.length - 22 - 65535); i--) {\n if (\n data[i] === 0x50 && data[i + 1] === 0x4b && data[i + 2] === 0x05 && data[i + 3] === 0x06\n ) {\n const len = data[i + 20]! | (data[i + 21]! << 8);\n const start = i + 22;\n if (start + len > data.length) return null;\n return new TextDecoder('latin1').decode(data.subarray(start, start + len));\n }\n }\n return null;\n}\n\n/**\n * UTF-8 text decode helper for XML members.\n *\n * @param archive - the unpacked FCStd container.\n * @param path - member path inside the ZIP, e.g. \"Document.xml\".\n * @returns the member decoded as UTF-8 text, or undefined when absent.\n */\nexport function memberText(archive: FcstdArchive, path: string): string | undefined {\n const bytes = archive.members.get(path);\n if (!bytes) return undefined;\n return new TextDecoder('utf-8').decode(bytes);\n}\n"]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public conversion surface (`@faicad/faijs/fcstd-convert`).
|
|
3
|
+
*
|
|
4
|
+
* The `./fcstd` subpath is the dependency-light **read layer** (fflate + xmldom
|
|
5
|
+
* only). This subpath is the **conversion pipeline** on top of it: it pulls the
|
|
6
|
+
* planegcs constraint solver (and, through external-geometry resolution, the
|
|
7
|
+
* occt kernel peer). Keep it Node-only — `planegcs-backend` resolves the solver
|
|
8
|
+
* WASM from node_modules.
|
|
9
|
+
*
|
|
10
|
+
* Why the solver and the classifier are part of the public surface: the corpus
|
|
11
|
+
* tooling (owned by the FCStd port project, not by this repository) must measure
|
|
12
|
+
* solve outcomes and translation scope without re-implementing any of the
|
|
13
|
+
* pipeline. One fact, one home — the tools consume these exports instead of
|
|
14
|
+
* reaching into `src/`.
|
|
15
|
+
*
|
|
16
|
+
* GOTCHA: this entry lives at the top level (`src/fcstd-convert.ts`), not inside
|
|
17
|
+
* `src/fcstd/`, because vitest and tsconfig resolve `@faicad/faijs/*` by string
|
|
18
|
+
* prefix substitution to `src/*`. A barrel at `src/fcstd/convert-api.ts` would
|
|
19
|
+
* make `@faicad/faijs/fcstd-convert` resolve to a non-existent path — tsc would
|
|
20
|
+
* silently fall back to node_modules/dist while vitest fails outright.
|
|
21
|
+
*/
|
|
22
|
+
export { convertFcstdFile, SKETCH_T1, ALLOWED_DISPOSITIONS } from './fcstd/convert.js';
|
|
23
|
+
export type { ConvertSummary, ConvertOptions } from './fcstd/convert.js';
|
|
24
|
+
export { createPlanegcsSolver, planegcsWasmPath } from './fcstd/planegcs-backend.js';
|
|
25
|
+
export { classifySketch, maxPointDistance } from './fcstd/sketch-verify.js';
|
|
26
|
+
export type { SketchVerdict } from './fcstd/sketch-verify.js';
|
|
27
|
+
export { resolveExternalGeometry } from './fcstd/external-geo.js';
|
|
28
|
+
export type { ExternalGeoResult, ExternalLink } from './fcstd/external-geo.js';
|
|
29
|
+
export { isWhitelisted } from './fcstd/feature-translate.js';
|
|
30
|
+
//# sourceMappingURL=fcstd-convert.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fcstd-convert.d.ts","sourceRoot":"","sources":["../src/fcstd-convert.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACvF,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public conversion surface (`@faicad/faijs/fcstd-convert`).
|
|
3
|
+
*
|
|
4
|
+
* The `./fcstd` subpath is the dependency-light **read layer** (fflate + xmldom
|
|
5
|
+
* only). This subpath is the **conversion pipeline** on top of it: it pulls the
|
|
6
|
+
* planegcs constraint solver (and, through external-geometry resolution, the
|
|
7
|
+
* occt kernel peer). Keep it Node-only — `planegcs-backend` resolves the solver
|
|
8
|
+
* WASM from node_modules.
|
|
9
|
+
*
|
|
10
|
+
* Why the solver and the classifier are part of the public surface: the corpus
|
|
11
|
+
* tooling (owned by the FCStd port project, not by this repository) must measure
|
|
12
|
+
* solve outcomes and translation scope without re-implementing any of the
|
|
13
|
+
* pipeline. One fact, one home — the tools consume these exports instead of
|
|
14
|
+
* reaching into `src/`.
|
|
15
|
+
*
|
|
16
|
+
* GOTCHA: this entry lives at the top level (`src/fcstd-convert.ts`), not inside
|
|
17
|
+
* `src/fcstd/`, because vitest and tsconfig resolve `@faicad/faijs/*` by string
|
|
18
|
+
* prefix substitution to `src/*`. A barrel at `src/fcstd/convert-api.ts` would
|
|
19
|
+
* make `@faicad/faijs/fcstd-convert` resolve to a non-existent path — tsc would
|
|
20
|
+
* silently fall back to node_modules/dist while vitest fails outright.
|
|
21
|
+
*/
|
|
22
|
+
export { convertFcstdFile, SKETCH_T1, ALLOWED_DISPOSITIONS } from './fcstd/convert.js';
|
|
23
|
+
export { createPlanegcsSolver, planegcsWasmPath } from './fcstd/planegcs-backend.js';
|
|
24
|
+
export { classifySketch, maxPointDistance } from './fcstd/sketch-verify.js';
|
|
25
|
+
export { resolveExternalGeometry } from './fcstd/external-geo.js';
|
|
26
|
+
export { isWhitelisted } from './fcstd/feature-translate.js';
|
|
27
|
+
//# sourceMappingURL=fcstd-convert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fcstd-convert.js","sourceRoot":"","sources":["../src/fcstd-convert.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAEvF,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC","sourcesContent":["/**\n * Public conversion surface (`@faicad/faijs/fcstd-convert`).\n *\n * The `./fcstd` subpath is the dependency-light **read layer** (fflate + xmldom\n * only). This subpath is the **conversion pipeline** on top of it: it pulls the\n * planegcs constraint solver (and, through external-geometry resolution, the\n * occt kernel peer). Keep it Node-only — `planegcs-backend` resolves the solver\n * WASM from node_modules.\n *\n * Why the solver and the classifier are part of the public surface: the corpus\n * tooling (owned by the FCStd port project, not by this repository) must measure\n * solve outcomes and translation scope without re-implementing any of the\n * pipeline. One fact, one home — the tools consume these exports instead of\n * reaching into `src/`.\n *\n * GOTCHA: this entry lives at the top level (`src/fcstd-convert.ts`), not inside\n * `src/fcstd/`, because vitest and tsconfig resolve `@faicad/faijs/*` by string\n * prefix substitution to `src/*`. A barrel at `src/fcstd/convert-api.ts` would\n * make `@faicad/faijs/fcstd-convert` resolve to a non-existent path — tsc would\n * silently fall back to node_modules/dist while vitest fails outright.\n */\nexport { convertFcstdFile, SKETCH_T1, ALLOWED_DISPOSITIONS } from './fcstd/convert.js';\nexport type { ConvertSummary, ConvertOptions } from './fcstd/convert.js';\nexport { createPlanegcsSolver, planegcsWasmPath } from './fcstd/planegcs-backend.js';\nexport { classifySketch, maxPointDistance } from './fcstd/sketch-verify.js';\nexport type { SketchVerdict } from './fcstd/sketch-verify.js';\nexport { resolveExternalGeometry } from './fcstd/external-geo.js';\nexport type { ExternalGeoResult, ExternalLink } from './fcstd/external-geo.js';\nexport { isWhitelisted } from './fcstd/feature-translate.js';\n"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ export { asFileId, asInnerId, asScopedId, asStmtId, asPartName, asGroupName, asR
|
|
|
20
20
|
export { configureBackends, getBackends, setCurrentStmt, getCurrentStmt, keep, keepHidden, getRuntimeState, nameOf, setName, setKeepSink, setPendingAssemblyTransforms, takePendingAssemblyTransforms, assertContractVersion, CONTRACT_VERSION, } from './runtime-state.js';
|
|
21
21
|
export type { Backends, FaijsRuntimeState, ShapeSlot, KeepSink, RuntimeExecutionMode, AssemblyTransform, StdlibFn, StdlibNamespace, ExecutionAnchor, } from './runtime-state.js';
|
|
22
22
|
export type { Vec3, JsonValue, TerminalShape, ParamDef, } from './lang/types.js';
|
|
23
|
+
export type { Provenance, NewFaceRule } from './topology/naming/lineage.js';
|
|
23
24
|
export { derivePartName, getMaxModelNum, } from './lang/allocate-id.js';
|
|
24
25
|
export type { DerivePartNameInput, DerivePartNameResult } from './lang/allocate-id.js';
|
|
25
26
|
export { fmtNum, formatCodeLine } from './lang/codegen.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,YAAY,EACV,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EACtD,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,EACtD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,GAClD,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAClE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAChE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAC5B,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,GACjD,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,iBAAiB,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAC9D,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAC/D,4BAA4B,EAAE,6BAA6B,EAAE,qBAAqB,EAClF,gBAAgB,GACjB,MAAM,iBAAiB,CAAA;AACxB,YAAY,EACV,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,QAAQ,EAAE,oBAAoB,EACtE,iBAAiB,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe,GAC9D,MAAM,iBAAiB,CAAA;AAGxB,YAAY,EACV,IAAI,EAAE,SAAS,EACf,aAAa,EAAE,QAAQ,GACxB,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
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// ── identity:品牌类型 + 信任点(f0,零依赖)\nexport type {\n FileId, InnerId, ScopedId, StmtId, PartName, GroupName,\n RefId, ReferenceId, SelectorKey, OccurrenceId, ShapeId,\n FaceId, EdgeId, NodeId, StatementId, FaceSelector,\n} from './identity'\nexport {\n asFileId, asInnerId, asScopedId, asStmtId, asPartName, asGroupName,\n asRefId, asReferenceId, asSelectorKey, asOccurrenceId, asShapeId,\n asFaceId, asEdgeId, asNodeId,\n toScopedId, splitScopedId, isScopedId, toInnerId,\n} from './identity'\n\n// ── 运行时状态锚点(零依赖层;引擎与库共享)\nexport {\n configureBackends, getBackends, setCurrentStmt, getCurrentStmt,\n keep, keepHidden, getRuntimeState, nameOf, setName, setKeepSink,\n setPendingAssemblyTransforms, takePendingAssemblyTransforms, assertContractVersion,\n CONTRACT_VERSION,\n} from './runtime-state'\nexport type {\n Backends, FaijsRuntimeState, ShapeSlot, KeepSink, RuntimeExecutionMode,\n AssemblyTransform, StdlibFn, StdlibNamespace, ExecutionAnchor,\n} from './runtime-state'\n\n// ── L0 文本层(IR 是引擎内部实现细节,不导出;公开面只有代码文本工具与结果类型)\nexport type {\n Vec3, JsonValue,\n TerminalShape, ParamDef,\n} from './lang/types'\nexport {\n derivePartName, getMaxModelNum,\n} from './lang/allocate-id'\nexport type { DerivePartNameInput, DerivePartNameResult } from './lang/allocate-id'\nexport { fmtNum, formatCodeLine } from './lang/codegen'\nexport type { FormatCodeLineInput } from './lang/codegen'\nexport { analyzeCode } from './lang/statement-summary'\nexport type { StatementSummary } from './lang/statement-summary'\nexport { codeToArgs } from './lang/code-to-args'\nexport type { CodeToArgsResult } from './lang/code-to-args'\n// MetadataExtractor — 无 IR 元数据提取器(UI 通道语义源;UiMetadata 全量)\nexport { extractMetadata } from './lang/metadata-extractor'\nexport type {\n UiMetadata, ParamEntry, ImportEntry, FunctionEntry, BlockEntry, KeepEntry,\n ExtractMetadataOptions,\n} from './lang/metadata-extractor'\n// SecurityScanner — 静态安全门禁(纵深防御第一层)\nexport { scanSource, scanAst, assertSecure } from './lang/security-scanner'\nexport type {\n SecurityPolicy, SecurityRuleId, SecurityViolation,\n SecurityScanOptions, SecurityScanResult,\n} from './lang/security-scanner'\n// HostArg — 宿主友好位置参数类型(IR 屏蔽层)\nexport type {\n HostArg, HostRef, HostVarRef, HostParamRef, HostCallRef, HostExprRef, HostRefKind,\n} from './lang/host-arg'\nexport {\n isHostVarRef, isHostParamRef, isHostCallRef, isHostExprRef, isHostRef,\n hostArgToDisplay, hostArgToLiteral, HOST_REF_KINDS,\n} from './lang/host-arg'\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 执行�?──\nexport { cad } from './mesh'\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 { svgToExtrudedGeometry } from './primitives/svg-extrude'\nexport {\n extractMeshData, primitiveToBrepSolid, geometryToBrepSolid,\n brepSolidToStep, primitiveToBrepStep,\n} from './primitives/brep-primitives'\nexport type { PrimitiveToBrepResult, PrimitiveParams } from './primitives/brep-primitives'\nexport { loadSystemCjkFont, containsCjk, isCjkChar, createMixedTextGeometry } from './primitives/text/cjk'\nexport type { CjkFontResult } from './primitives/text/cjk'\nexport { createTextGeometry, getOpentypeFont, opentypePathToGeometry } from './primitives/text-geometry'\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'\nexport { setBrepkitWasmInitFn, initBrepkitWasm, isBrepkitInitialized } from './brepkit-kernel/brepkitWasm'\nexport {\n registerBrepEngine, getBrepEngine, hasBrepEngine, getActiveBrepEngineId,\n registerMeshEngine, getMeshEngine, getActiveMeshEngineId, freezeEngineRegistries,\n} from './brep/engine/registry'\nexport type { BrepEngine, BrepEngineProvider, MeshEngine } from './brep/engine/registry'\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, 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 面(原 packages/stdlib 迁入,P6/D1)──\n// P23 主导出切换(§4.2 / Q1):`export * from './api'` 现在同时带来\n// ① faijs 特有 dual op(mesh+brep 双路径,D11 双形态归一);\n// ② 生成脚本面 op(`api/generated/script-face.ts`,compatOp(projectBrepOp(…)) 包装的\n// brep-only 语句级 op——`cad.*` 脚本面与此同源,B1 三源一致);\n// ③ brepjs 形态 TS 兼容面(`api/brepjs-compat`,以 `brepjsCompat` 命名空间导出——库作者面,\n// 句柄进出 + Result 语义)及其 Result / 向量 / 平面组合器(顶层平铺)。\n// op 符号不平铺 brepjsCompat 版:`brepjsCompat.fuse`(句柄形态)与顶层 `fuse`(faijs 形态)\n// 是同一 vendored 实现的两个投影,按「一个名字一份实现」红线(§6.3)只保留脚本面那份。\nexport * from './api'\nexport { createApiNamespace } from './api/api-namespace'\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 * 公开 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// ── identity:品牌类型 + 信任点(f0,零依赖)\nexport type {\n FileId, InnerId, ScopedId, StmtId, PartName, GroupName,\n RefId, ReferenceId, SelectorKey, OccurrenceId, ShapeId,\n FaceId, EdgeId, NodeId, StatementId, FaceSelector,\n} from './identity'\nexport {\n asFileId, asInnerId, asScopedId, asStmtId, asPartName, asGroupName,\n asRefId, asReferenceId, asSelectorKey, asOccurrenceId, asShapeId,\n asFaceId, asEdgeId, asNodeId,\n toScopedId, splitScopedId, isScopedId, toInnerId,\n} from './identity'\n\n// ── 运行时状态锚点(零依赖层;引擎与库共享)\nexport {\n configureBackends, getBackends, setCurrentStmt, getCurrentStmt,\n keep, keepHidden, getRuntimeState, nameOf, setName, setKeepSink,\n setPendingAssemblyTransforms, takePendingAssemblyTransforms, assertContractVersion,\n CONTRACT_VERSION,\n} from './runtime-state'\nexport type {\n Backends, FaijsRuntimeState, ShapeSlot, KeepSink, RuntimeExecutionMode,\n AssemblyTransform, StdlibFn, StdlibNamespace, ExecutionAnchor,\n} from './runtime-state'\n\n// ── L0 文本层(IR 是引擎内部实现细节,不导出;公开面只有代码文本工具与结果类型)\nexport type {\n Vec3, JsonValue,\n TerminalShape, ParamDef,\n} from './lang/types'\n// Phase 2.11-②:三库(fai_cq_gears / fai_cq_warehouse / sheetmetal)的 fn.naming 声明需要此类型。\nexport type { Provenance, NewFaceRule } from './topology/naming/lineage'\nexport {\n derivePartName, getMaxModelNum,\n} from './lang/allocate-id'\nexport type { DerivePartNameInput, DerivePartNameResult } from './lang/allocate-id'\nexport { fmtNum, formatCodeLine } from './lang/codegen'\nexport type { FormatCodeLineInput } from './lang/codegen'\nexport { analyzeCode } from './lang/statement-summary'\nexport type { StatementSummary } from './lang/statement-summary'\nexport { codeToArgs } from './lang/code-to-args'\nexport type { CodeToArgsResult } from './lang/code-to-args'\n// MetadataExtractor — 无 IR 元数据提取器(UI 通道语义源;UiMetadata 全量)\nexport { extractMetadata } from './lang/metadata-extractor'\nexport type {\n UiMetadata, ParamEntry, ImportEntry, FunctionEntry, BlockEntry, KeepEntry,\n ExtractMetadataOptions,\n} from './lang/metadata-extractor'\n// SecurityScanner — 静态安全门禁(纵深防御第一层)\nexport { scanSource, scanAst, assertSecure } from './lang/security-scanner'\nexport type {\n SecurityPolicy, SecurityRuleId, SecurityViolation,\n SecurityScanOptions, SecurityScanResult,\n} from './lang/security-scanner'\n// HostArg — 宿主友好位置参数类型(IR 屏蔽层)\nexport type {\n HostArg, HostRef, HostVarRef, HostParamRef, HostCallRef, HostExprRef, HostRefKind,\n} from './lang/host-arg'\nexport {\n isHostVarRef, isHostParamRef, isHostCallRef, isHostExprRef, isHostRef,\n hostArgToDisplay, hostArgToLiteral, HOST_REF_KINDS,\n} from './lang/host-arg'\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 执行�?──\nexport { cad } from './mesh'\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 { svgToExtrudedGeometry } from './primitives/svg-extrude'\nexport {\n extractMeshData, primitiveToBrepSolid, geometryToBrepSolid,\n brepSolidToStep, primitiveToBrepStep,\n} from './primitives/brep-primitives'\nexport type { PrimitiveToBrepResult, PrimitiveParams } from './primitives/brep-primitives'\nexport { loadSystemCjkFont, containsCjk, isCjkChar, createMixedTextGeometry } from './primitives/text/cjk'\nexport type { CjkFontResult } from './primitives/text/cjk'\nexport { createTextGeometry, getOpentypeFont, opentypePathToGeometry } from './primitives/text-geometry'\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'\nexport { setBrepkitWasmInitFn, initBrepkitWasm, isBrepkitInitialized } from './brepkit-kernel/brepkitWasm'\nexport {\n registerBrepEngine, getBrepEngine, hasBrepEngine, getActiveBrepEngineId,\n registerMeshEngine, getMeshEngine, getActiveMeshEngineId, freezeEngineRegistries,\n} from './brep/engine/registry'\nexport type { BrepEngine, BrepEngineProvider, MeshEngine } from './brep/engine/registry'\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, 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 面(原 packages/stdlib 迁入,P6/D1)──\n// P23 主导出切换(§4.2 / Q1):`export * from './api'` 现在同时带来\n// ① faijs 特有 dual op(mesh+brep 双路径,D11 双形态归一);\n// ② 生成脚本面 op(`api/generated/script-face.ts`,compatOp(projectBrepOp(…)) 包装的\n// brep-only 语句级 op——`cad.*` 脚本面与此同源,B1 三源一致);\n// ③ brepjs 形态 TS 兼容面(`api/brepjs-compat`,以 `brepjsCompat` 命名空间导出——库作者面,\n// 句柄进出 + Result 语义)及其 Result / 向量 / 平面组合器(顶层平铺)。\n// op 符号不平铺 brepjsCompat 版:`brepjsCompat.fuse`(句柄形态)与顶层 `fuse`(faijs 形态)\n// 是同一 vendored 实现的两个投影,按「一个名字一份实现」红线(§6.3)只保留脚本面那份。\nexport * from './api'\nexport { createApiNamespace } from './api/api-namespace'\n"]}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* determinism-scanner — .fai.js determinism gate (B-tier, conservative taint)
|
|
3
|
+
*
|
|
4
|
+
* Decides statically whether any non-deterministic value (`Math.random`,
|
|
5
|
+
* `Date.now` / `new Date`, `crypto.*`, `performance.now`) flows into geometry
|
|
6
|
+
* generation. Conservative policy: anything the analysis cannot prove safe is a
|
|
7
|
+
* violation — "when in doubt, reject".
|
|
8
|
+
*
|
|
9
|
+
* Model:
|
|
10
|
+
* - **sources** produce tainted values.
|
|
11
|
+
* - **propagation** moves taint through arithmetic, member access, assignment,
|
|
12
|
+
* arrays/objects, calls, and implicit control flow.
|
|
13
|
+
* - **sinks** are geometry-generating call sites: members of the `cad`
|
|
14
|
+
* namespace (and any library namespace), named library callees, and unknown
|
|
15
|
+
* function calls (conservative). `console.*` and the pure built-ins are safe
|
|
16
|
+
* containers — taint may pass through them but does not, by itself, violate.
|
|
17
|
+
*
|
|
18
|
+
* This gate is entry prevention; exit equivalence is checked separately by
|
|
19
|
+
* cross-kernel parity tests (docs/reproducibility-contract.md §5).
|
|
20
|
+
*/
|
|
21
|
+
/** Determinism gate policy for execution-time scanning. */
|
|
22
|
+
export type DeterminismPolicy = 'off' | 'warn' | 'error';
|
|
23
|
+
/** Why a value is non-deterministic (a source). */
|
|
24
|
+
export type DeterminismSource = 'Math.random' | 'Date' | 'crypto' | 'performance.now' | 'getRandomValues';
|
|
25
|
+
/** A single conservatively-flagged violation. */
|
|
26
|
+
export interface DeterminismViolation {
|
|
27
|
+
/** 1-based line of the offending sink / flow. */
|
|
28
|
+
lineNo: number;
|
|
29
|
+
/** The non-deterministic source kind that reached geometry. */
|
|
30
|
+
source: DeterminismSource;
|
|
31
|
+
/** Human-readable message (for tooling / self-correction). */
|
|
32
|
+
message: string;
|
|
33
|
+
}
|
|
34
|
+
/** Scan options. */
|
|
35
|
+
export interface DeterminismScanOptions {
|
|
36
|
+
/** Default geometry namespace name (default `'cad'`). */
|
|
37
|
+
defaultNs?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Extra geometry namespace binding names (`import * as sheet from ...` →
|
|
40
|
+
* `'sheet'`). Member calls on these are geometry sinks.
|
|
41
|
+
*/
|
|
42
|
+
extraNamespaces?: string[];
|
|
43
|
+
/**
|
|
44
|
+
* Extra named callees treated as geometry functions (`import { gear } from
|
|
45
|
+
* ...` → `'gear'`). Direct calls to these are geometry sinks.
|
|
46
|
+
*/
|
|
47
|
+
extraCallees?: string[];
|
|
48
|
+
}
|
|
49
|
+
/** Scan result. */
|
|
50
|
+
export interface DeterminismScanResult {
|
|
51
|
+
/** True iff `violations` is empty. */
|
|
52
|
+
ok: boolean;
|
|
53
|
+
violations: DeterminismViolation[];
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Static non-determinism scanner (B-tier, conservative).
|
|
57
|
+
* @param code - the `.fai.js` / library source text.
|
|
58
|
+
* @param opts - scan options (geometry namespace/callee hints).
|
|
59
|
+
* @returns scan result with all violations.
|
|
60
|
+
*/
|
|
61
|
+
export declare function scanDeterminism(code: string, opts?: DeterminismScanOptions): DeterminismScanResult;
|
|
62
|
+
//# sourceMappingURL=determinism-scanner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"determinism-scanner.d.ts","sourceRoot":"","sources":["../../src/lang/determinism-scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,2DAA2D;AAC3D,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAA;AAExD,mDAAmD;AACnD,MAAM,MAAM,iBAAiB,GACzB,aAAa,GACb,MAAM,GACN,QAAQ,GACR,iBAAiB,GACjB,iBAAiB,CAAA;AAErB,iDAAiD;AACjD,MAAM,WAAW,oBAAoB;IACnC,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAA;IACd,+DAA+D;IAC/D,MAAM,EAAE,iBAAiB,CAAA;IACzB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,oBAAoB;AACpB,MAAM,WAAW,sBAAsB;IACrC,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;CACxB;AAED,mBAAmB;AACnB,MAAM,WAAW,qBAAqB;IACpC,sCAAsC;IACtC,EAAE,EAAE,OAAO,CAAA;IACX,UAAU,EAAE,oBAAoB,EAAE,CAAA;CACnC;AAwED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,sBAA2B,GAAG,qBAAqB,CA0iBtG"}
|