@faicad/faijs 0.13.2 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/api-namespace.d.ts +7 -0
- package/dist/api/api-namespace.d.ts.map +1 -1
- package/dist/api/api-namespace.js +44 -17
- 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 +71 -12
- package/dist/api/boolean.js.map +1 -1
- package/dist/api/chamfer.d.ts.map +1 -1
- package/dist/api/chamfer.js +12 -8
- 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/edge-ref.d.ts.map +1 -1
- package/dist/api/edge-ref.js +7 -4
- 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/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/cad/script-face.d.ts +1 -1
- package/dist/api/generated/cad/script-face.d.ts.map +1 -1
- package/dist/api/generated/cad/script-face.js +1 -2
- package/dist/api/generated/cad/script-face.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 -2
- package/dist/api/generated/script-face-manifest.js.map +1 -1
- package/dist/api/generated/script-face.d.ts +1 -7
- package/dist/api/generated/script-face.d.ts.map +1 -1
- package/dist/api/generated/script-face.js +2 -4
- 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 -56
- package/dist/api/generated/topology.d.ts.map +1 -1
- package/dist/api/generated/topology.js +19 -68
- 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 +8 -12
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +22 -16
- package/dist/api/index.js.map +1 -1
- package/dist/api/internal/compat-op.d.ts.map +1 -1
- package/dist/api/internal/compat-op.js +2 -1
- package/dist/api/internal/compat-op.js.map +1 -1
- package/dist/api/internal/compat-projection.d.ts +3 -1
- package/dist/api/internal/compat-projection.d.ts.map +1 -1
- package/dist/api/internal/compat-projection.js +8 -5
- package/dist/api/internal/compat-projection.js.map +1 -1
- package/dist/api/internal/replica-role-table.d.ts +36 -0
- package/dist/api/internal/replica-role-table.d.ts.map +1 -0
- package/dist/api/internal/replica-role-table.js +73 -0
- package/dist/api/internal/replica-role-table.js.map +1 -0
- package/dist/api/internal/result-unwrap.d.ts +3 -1
- package/dist/api/internal/result-unwrap.d.ts.map +1 -1
- package/dist/api/internal/result-unwrap.js +2 -2
- package/dist/api/internal/result-unwrap.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/occt-kernel-bridge.d.ts +105 -27
- package/dist/api/occt-kernel-bridge.d.ts.map +1 -1
- package/dist/api/occt-kernel-bridge.js +255 -41
- package/dist/api/occt-kernel-bridge.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 +85 -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/replicate.d.ts +145 -0
- package/dist/api/replicate.d.ts.map +1 -0
- package/dist/api/replicate.js +351 -0
- package/dist/api/replicate.js.map +1 -0
- package/dist/api/revolve.d.ts +36 -0
- package/dist/api/revolve.d.ts.map +1 -0
- package/dist/api/revolve.js +165 -0
- package/dist/api/revolve.js.map +1 -0
- 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 +17 -0
- package/dist/api/surface/arg-spec.d.ts.map +1 -1
- package/dist/api/surface/arg-spec.js +86 -66
- package/dist/api/surface/arg-spec.js.map +1 -1
- package/dist/api/surface/projection-overrides.d.ts.map +1 -1
- package/dist/api/surface/projection-overrides.js +6 -0
- package/dist/api/surface/projection-overrides.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/boolean/deriveNormals.d.ts +5 -4
- package/dist/boolean/deriveNormals.d.ts.map +1 -1
- package/dist/boolean/deriveNormals.js +24 -7
- package/dist/boolean/deriveNormals.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 +66 -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 +44 -1
- package/dist/brep/engine/adapters/brepkit.js.map +1 -1
- package/dist/brep/engine/adapters/occt.d.ts +1 -5
- package/dist/brep/engine/adapters/occt.d.ts.map +1 -1
- package/dist/brep/engine/adapters/occt.js +246 -9
- package/dist/brep/engine/adapters/occt.js.map +1 -1
- package/dist/brep/engine/primitives.d.ts +96 -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 +66 -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 +108 -12
- package/dist/brepkit-kernel/brepkitKernel.js.map +1 -1
- package/dist/browser.d.ts +6 -28
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +6 -17
- package/dist/browser.js.map +1 -1
- package/dist/cad-runtime/admit-compat-lib.d.ts +13 -0
- package/dist/cad-runtime/admit-compat-lib.d.ts.map +1 -1
- package/dist/cad-runtime/admit-compat-lib.js +27 -0
- package/dist/cad-runtime/admit-compat-lib.js.map +1 -1
- package/dist/cad-runtime/backend-dispatch.d.ts +46 -3
- package/dist/cad-runtime/backend-dispatch.d.ts.map +1 -1
- package/dist/cad-runtime/backend-dispatch.js +48 -3
- package/dist/cad-runtime/backend-dispatch.js.map +1 -1
- package/dist/cad-runtime/browser-lib-loader.d.ts +4 -4
- package/dist/cad-runtime/browser-lib-loader.d.ts.map +1 -1
- package/dist/cad-runtime/browser-lib-loader.js +7 -4
- 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/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 +52 -2
- package/dist/cad-runtime/runtime.d.ts.map +1 -1
- package/dist/cad-runtime/runtime.js +180 -9
- 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/env-agnostic.d.ts +38 -0
- package/dist/env-agnostic.d.ts.map +1 -0
- package/dist/env-agnostic.js +29 -0
- package/dist/env-agnostic.js.map +1 -0
- package/dist/fcstd/attachment.d.ts +8 -1
- package/dist/fcstd/attachment.d.ts.map +1 -1
- package/dist/fcstd/attachment.js +7 -1
- package/dist/fcstd/attachment.js.map +1 -1
- package/dist/fcstd/build-fai-zip.d.ts.map +1 -1
- package/dist/fcstd/build-fai-zip.js +12 -7
- package/dist/fcstd/build-fai-zip.js.map +1 -1
- package/dist/fcstd/codegen.d.ts +10 -1
- package/dist/fcstd/codegen.d.ts.map +1 -1
- package/dist/fcstd/codegen.js +158 -49
- package/dist/fcstd/codegen.js.map +1 -1
- package/dist/fcstd/contour.d.ts.map +1 -1
- package/dist/fcstd/contour.js +23 -24
- package/dist/fcstd/contour.js.map +1 -1
- package/dist/fcstd/convert.d.ts +2 -18
- package/dist/fcstd/convert.d.ts.map +1 -1
- package/dist/fcstd/convert.js +35 -53
- package/dist/fcstd/convert.js.map +1 -1
- package/dist/fcstd/expressions.d.ts +24 -0
- package/dist/fcstd/expressions.d.ts.map +1 -1
- package/dist/fcstd/expressions.js +91 -0
- package/dist/fcstd/expressions.js.map +1 -1
- package/dist/fcstd/external-geo.d.ts +12 -1
- package/dist/fcstd/external-geo.d.ts.map +1 -1
- package/dist/fcstd/external-geo.js +15 -1
- package/dist/fcstd/external-geo.js.map +1 -1
- package/dist/fcstd/feature-translate.d.ts +21 -1
- package/dist/fcstd/feature-translate.d.ts.map +1 -1
- package/dist/fcstd/feature-translate.js +124 -8
- package/dist/fcstd/feature-translate.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 +121 -0
- package/dist/fcstd/structural-types.js.map +1 -0
- package/dist/index.d.ts +7 -23
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -16
- package/dist/index.js.map +1 -1
- package/dist/lang/determinism-scanner.d.ts +71 -0
- package/dist/lang/determinism-scanner.d.ts.map +1 -0
- package/dist/lang/determinism-scanner.js +625 -0
- package/dist/lang/determinism-scanner.js.map +1 -0
- package/dist/lang/symbol-table.d.ts +31 -0
- package/dist/lang/symbol-table.d.ts.map +1 -1
- package/dist/lang/symbol-table.generated.d.ts +13 -19
- package/dist/lang/symbol-table.generated.d.ts.map +1 -1
- package/dist/lang/symbol-table.generated.js +13 -19
- package/dist/lang/symbol-table.generated.js.map +1 -1
- package/dist/lang/symbol-table.js +50 -1
- package/dist/lang/symbol-table.js.map +1 -1
- package/dist/mesh/creased-normals.d.ts +50 -0
- package/dist/mesh/creased-normals.d.ts.map +1 -0
- package/dist/mesh/creased-normals.js +114 -0
- package/dist/mesh/creased-normals.js.map +1 -0
- package/dist/mesh/decoration-provider.d.ts +53 -0
- package/dist/mesh/decoration-provider.d.ts.map +1 -0
- package/dist/mesh/decoration-provider.js +21 -0
- package/dist/mesh/decoration-provider.js.map +1 -0
- package/dist/mesh/engrave.d.ts +4 -0
- package/dist/mesh/engrave.d.ts.map +1 -1
- package/dist/mesh/engrave.js +22 -31
- package/dist/mesh/engrave.js.map +1 -1
- package/dist/mesh/index.d.ts +5 -14
- package/dist/mesh/index.d.ts.map +1 -1
- package/dist/mesh/index.js +7 -18
- package/dist/mesh/index.js.map +1 -1
- package/dist/mesh/io.d.ts +2 -1
- package/dist/mesh/io.d.ts.map +1 -1
- package/dist/mesh/io.js +5 -7
- package/dist/mesh/io.js.map +1 -1
- package/dist/mesh/primitives.d.ts +5 -18
- package/dist/mesh/primitives.d.ts.map +1 -1
- package/dist/mesh/primitives.js +4 -48
- package/dist/mesh/primitives.js.map +1 -1
- package/dist/mesh/stl-loader.d.ts +23 -0
- package/dist/mesh/stl-loader.d.ts.map +1 -0
- package/dist/mesh/stl-loader.js +139 -0
- package/dist/mesh/stl-loader.js.map +1 -0
- package/dist/module-resolver/parse-imports.d.ts +37 -0
- package/dist/module-resolver/parse-imports.d.ts.map +1 -0
- package/dist/module-resolver/parse-imports.js +39 -0
- package/dist/module-resolver/parse-imports.js.map +1 -0
- package/dist/module-resolver/resolver.d.ts +1 -1
- package/dist/module-resolver/resolver.js +2 -2
- package/dist/module-resolver/resolver.js.map +1 -1
- package/dist/node-host/cli.d.ts.map +1 -1
- package/dist/node-host/cli.js +37 -4
- package/dist/node-host/cli.js.map +1 -1
- package/dist/primitives/text/cjk-font.d.ts +42 -0
- package/dist/primitives/text/cjk-font.d.ts.map +1 -0
- package/dist/primitives/text/cjk-font.js +86 -0
- package/dist/primitives/text/cjk-font.js.map +1 -0
- 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/sdk.d.ts +2 -2
- package/dist/sdk.js +2 -2
- package/dist/sdk.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/symbol-table.d.ts +15 -0
- package/dist/symbol-table.d.ts.map +1 -0
- package/dist/symbol-table.js +14 -0
- package/dist/symbol-table.js.map +1 -0
- 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/vendored/brepjs/kernel/index.d.ts +5 -0
- package/dist/vendored/brepjs/kernel/index.d.ts.map +1 -1
- package/dist/vendored/brepjs/kernel/index.js +11 -0
- package/dist/vendored/brepjs/kernel/index.js.map +1 -1
- package/dist/weapp.d.ts +4 -4
- package/dist/weapp.d.ts.map +1 -1
- package/dist/weapp.js +7 -4
- package/dist/weapp.js.map +1 -1
- package/package.json +16 -14
- package/dist/api/compat/index.d.ts +0 -173
- package/dist/api/compat/index.d.ts.map +0 -1
- package/dist/api/compat/index.js +0 -222
- package/dist/api/compat/index.js.map +0 -1
- package/dist/api/compound.d.ts +0 -108
- package/dist/api/compound.d.ts.map +0 -1
- package/dist/api/compound.js +0 -162
- package/dist/api/compound.js.map +0 -1
- package/dist/api/copy.d.ts +0 -39
- package/dist/api/copy.d.ts.map +0 -1
- package/dist/api/copy.js +0 -81
- package/dist/api/copy.js.map +0 -1
- package/dist/api/fai_drill.d.ts +0 -46
- package/dist/api/fai_drill.d.ts.map +0 -1
- package/dist/api/fai_drill.js +0 -230
- package/dist/api/fai_drill.js.map +0 -1
- package/dist/api/fai_extrude.d.ts +0 -36
- package/dist/api/fai_extrude.d.ts.map +0 -1
- package/dist/api/fai_extrude.js +0 -78
- package/dist/api/fai_extrude.js.map +0 -1
- package/dist/api/fai_split.d.ts +0 -46
- package/dist/api/fai_split.d.ts.map +0 -1
- package/dist/api/fai_split.js +0 -253
- package/dist/api/fai_split.js.map +0 -1
- package/dist/api/load.d.ts +0 -39
- package/dist/api/load.d.ts.map +0 -1
- package/dist/api/load.js +0 -82
- package/dist/api/load.js.map +0 -1
- package/dist/api/svgExtrude.d.ts +0 -32
- package/dist/api/svgExtrude.d.ts.map +0 -1
- package/dist/api/svgExtrude.js +0 -73
- package/dist/api/svgExtrude.js.map +0 -1
- package/dist/api/text.d.ts +0 -34
- package/dist/api/text.d.ts.map +0 -1
- package/dist/api/text.js +0 -100
- package/dist/api/text.js.map +0 -1
- package/dist/brep/text/fontTestHelper.d.ts +0 -30
- package/dist/brep/text/fontTestHelper.d.ts.map +0 -1
- package/dist/brep/text/fontTestHelper.js +0 -57
- package/dist/brep/text/fontTestHelper.js.map +0 -1
- package/dist/cad-runtime/module-executor.d.ts +0 -271
- package/dist/cad-runtime/module-executor.d.ts.map +0 -1
- package/dist/cad-runtime/module-executor.js +0 -630
- package/dist/cad-runtime/module-executor.js.map +0 -1
- package/dist/cad-runtime/terminal-dag.d.ts +0 -65
- package/dist/cad-runtime/terminal-dag.d.ts.map +0 -1
- package/dist/cad-runtime/terminal-dag.js +0 -167
- package/dist/cad-runtime/terminal-dag.js.map +0 -1
- package/dist/faqts/browser.d.ts +0 -16
- package/dist/faqts/browser.d.ts.map +0 -1
- package/dist/faqts/browser.js +0 -13
- package/dist/faqts/browser.js.map +0 -1
- package/dist/faqts/exec-blob.d.ts +0 -14
- package/dist/faqts/exec-blob.d.ts.map +0 -1
- package/dist/faqts/exec-blob.js +0 -22
- package/dist/faqts/exec-blob.js.map +0 -1
- package/dist/faqts/exec-node.d.ts +0 -15
- package/dist/faqts/exec-node.d.ts.map +0 -1
- package/dist/faqts/exec-node.js +0 -29
- package/dist/faqts/exec-node.js.map +0 -1
- package/dist/faqts/imports.d.ts +0 -74
- package/dist/faqts/imports.d.ts.map +0 -1
- package/dist/faqts/imports.js +0 -95
- package/dist/faqts/imports.js.map +0 -1
- package/dist/faqts/index.d.ts +0 -22
- package/dist/faqts/index.d.ts.map +0 -1
- package/dist/faqts/index.js +0 -21
- package/dist/faqts/index.js.map +0 -1
- package/dist/faqts/node.d.ts +0 -23
- package/dist/faqts/node.d.ts.map +0 -1
- package/dist/faqts/node.js +0 -23
- package/dist/faqts/node.js.map +0 -1
- package/dist/faqts/run.d.ts +0 -62
- package/dist/faqts/run.d.ts.map +0 -1
- package/dist/faqts/run.js +0 -62
- package/dist/faqts/run.js.map +0 -1
- package/dist/faqts/transform.d.ts +0 -43
- package/dist/faqts/transform.d.ts.map +0 -1
- package/dist/faqts/transform.js +0 -35
- package/dist/faqts/transform.js.map +0 -1
- package/dist/lang/compile.d.ts +0 -50
- package/dist/lang/compile.d.ts.map +0 -1
- package/dist/lang/compile.js +0 -368
- package/dist/lang/compile.js.map +0 -1
- package/dist/lang/keep.d.ts +0 -109
- package/dist/lang/keep.d.ts.map +0 -1
- package/dist/lang/keep.js +0 -226
- package/dist/lang/keep.js.map +0 -1
- package/dist/lang/parser.d.ts +0 -91
- package/dist/lang/parser.d.ts.map +0 -1
- package/dist/lang/parser.js +0 -1594
- package/dist/lang/parser.js.map +0 -1
- package/dist/mesh/drill-hole/DrillHoleCore.d.ts +0 -90
- package/dist/mesh/drill-hole/DrillHoleCore.d.ts.map +0 -1
- package/dist/mesh/drill-hole/DrillHoleCore.js +0 -287
- package/dist/mesh/drill-hole/DrillHoleCore.js.map +0 -1
- package/dist/mesh/drill-hole/drill-types.d.ts +0 -34
- package/dist/mesh/drill-hole/drill-types.d.ts.map +0 -1
- package/dist/mesh/drill-hole/drill-types.js +0 -7
- package/dist/mesh/drill-hole/drill-types.js.map +0 -1
- package/dist/mesh/fai_drill.d.ts +0 -21
- package/dist/mesh/fai_drill.d.ts.map +0 -1
- package/dist/mesh/fai_drill.js +0 -92
- package/dist/mesh/fai_drill.js.map +0 -1
- package/dist/mesh/fai_extrude.d.ts +0 -24
- package/dist/mesh/fai_extrude.d.ts.map +0 -1
- package/dist/mesh/fai_extrude.js +0 -42
- package/dist/mesh/fai_extrude.js.map +0 -1
- package/dist/mesh/fai_split.d.ts +0 -164
- package/dist/mesh/fai_split.d.ts.map +0 -1
- package/dist/mesh/fai_split.js +0 -269
- package/dist/mesh/fai_split.js.map +0 -1
- package/dist/primitives/svg-extrude.d.ts +0 -43
- package/dist/primitives/svg-extrude.d.ts.map +0 -1
- package/dist/primitives/svg-extrude.js +0 -78
- package/dist/primitives/svg-extrude.js.map +0 -1
- package/dist/primitives/text/cjk.d.ts +0 -61
- package/dist/primitives/text/cjk.d.ts.map +0 -1
- package/dist/primitives/text/cjk.js +0 -215
- package/dist/primitives/text/cjk.js.map +0 -1
- package/dist/primitives/text-geometry.d.ts +0 -47
- package/dist/primitives/text-geometry.d.ts.map +0 -1
- package/dist/primitives/text-geometry.js +0 -127
- package/dist/primitives/text-geometry.js.map +0 -1
- package/dist/test-helpers.d.ts +0 -31
- package/dist/test-helpers.d.ts.map +0 -1
- package/dist/test-helpers.js +0 -55
- package/dist/test-helpers.js.map +0 -1
- package/dist/vendored/brepjs/core/kernelReentrancy.d.ts +0 -41
- package/dist/vendored/brepjs/core/kernelReentrancy.d.ts.map +0 -1
- package/dist/vendored/brepjs/core/kernelReentrancy.js +0 -68
- package/dist/vendored/brepjs/core/kernelReentrancy.js.map +0 -1
package/dist/faqts/imports.js
DELETED
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* faits — import 声明解析与说明符重写(Phase D, pipeline 第 2–3 步)
|
|
3
|
-
*
|
|
4
|
-
* 说明:faits 复用 Phase B 的导入通道 ①② —— 即"只负责把它所依赖的
|
|
5
|
-
* 裸说明符改写到宿主能解析的绝对 URL(file:/blob:/http(s):),其余
|
|
6
|
-
* 保持原样"。与 faijs 的 ModuleResolver(Phase E V5.2, plan §4.1)不
|
|
7
|
-
* 同,此处 **不实现** 模块仓库解析,只做确定性的语法级重写:
|
|
8
|
-
*
|
|
9
|
-
* - 相对说明符(`./x`、`../x`)→ 可选按 base URL 绝对化,否则保留
|
|
10
|
-
* - `@faicad/faijs` 及其子路径(含 `/sdk`)→ **零替换**,由宿主 importmap 解析
|
|
11
|
-
* - 其它裸说明符 → 走宿主提供的 rewrite 表(复用 B 通道 ①② 的产物)
|
|
12
|
-
*
|
|
13
|
-
* acorn 仅用于定位每个 import 声明在源码中的精确 span;替换用字符串
|
|
14
|
-
* 手术完成,不重建整份 AST,避免丢注释/格式(保持行号定位)。
|
|
15
|
-
*/
|
|
16
|
-
import { parse } from 'acorn';
|
|
17
|
-
/** 宿主 importmap 应已覆盖的说明符前缀,重写时默认跳过。 */
|
|
18
|
-
const RESERVED_BARE_PREFIXES = ['@faicad/faijs', '@faicad/faq', '@faicad/faq/sdk', '@fc/fq/'];
|
|
19
|
-
/**
|
|
20
|
-
* 解析模块源码(必须是已去类型的 JS),返回全部静态 import 的说明符/位置。
|
|
21
|
-
*
|
|
22
|
-
* 只处理顶层 import 声明(ESM 静态导入);动态 import() 属于运行时行为,
|
|
23
|
-
* 不在重写范围内——若 faits 需要动态导入,宿主 importmap 自行兜底。
|
|
24
|
-
*/
|
|
25
|
-
/**
|
|
26
|
-
* Parse module source (de-typed JS) and return the specifier and location of
|
|
27
|
-
* every static top-level import declaration. Dynamic import() is runtime
|
|
28
|
-
* behavior and is not part of the rewrite scope.
|
|
29
|
-
* @param code - the module JavaScript source text.
|
|
30
|
-
* @returns an array of import spans covering each static import declaration.
|
|
31
|
-
*/
|
|
32
|
-
export function findImports(code) {
|
|
33
|
-
const ast = parse(code, { ecmaVersion: 'latest', sourceType: 'module' });
|
|
34
|
-
const spans = [];
|
|
35
|
-
for (const node of ast.body) {
|
|
36
|
-
if (node.type !== 'ImportDeclaration')
|
|
37
|
-
continue;
|
|
38
|
-
const src = node.source;
|
|
39
|
-
if (!src || src.start === undefined || src.end === undefined)
|
|
40
|
-
continue;
|
|
41
|
-
const spec = src.value;
|
|
42
|
-
const bare = !spec.startsWith('.') && !/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(spec);
|
|
43
|
-
// acorn 的 source.start/end 覆盖含引号的字符串字面量 → 收缩到不含引号的内容
|
|
44
|
-
spans.push({ specifier: spec, start: src.start + 1, end: src.end - 1, bare });
|
|
45
|
-
}
|
|
46
|
-
return spans;
|
|
47
|
-
}
|
|
48
|
-
function isReserved(specifier) {
|
|
49
|
-
return RESERVED_BARE_PREFIXES.some((p) => specifier === p || specifier.startsWith(p + '/'));
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* 重写模块代码中的 import 说明符:按 span(start/end)对源码做替换。
|
|
53
|
-
*
|
|
54
|
-
* 规则(按优先级):
|
|
55
|
-
* 1. 保留前缀(`@faicad/faij` 家族)→ 不改(宿主 importmap 解析)
|
|
56
|
-
* 2. rewrite 钩子返回非 `undefined` → 用之
|
|
57
|
-
* 3. 相对说明符且给了 baseURL → 绝对化
|
|
58
|
-
* 4. 其余 → 原样保留
|
|
59
|
-
*
|
|
60
|
-
* 用一次 `code` 全串替换(从后往前保证 span 位置不漂移)。
|
|
61
|
-
*/
|
|
62
|
-
/**
|
|
63
|
-
* Rewrite import specifiers in module code by splicing the source at each
|
|
64
|
-
* span's start/end offsets. Priority: reserved prefixes stay unchanged, then
|
|
65
|
-
* the rewrite hook's result, then relative absolute-ization, else preserved.
|
|
66
|
-
* @param code - the module JavaScript source text to rewrite.
|
|
67
|
-
* @param options - rewrite hook and optional base URL for relative specifiers.
|
|
68
|
-
* @returns the rewritten module source text.
|
|
69
|
-
*/
|
|
70
|
-
export function rewriteImports(code, options = {}) {
|
|
71
|
-
const spans = findImports(code);
|
|
72
|
-
let out = code;
|
|
73
|
-
for (let i = spans.length - 1; i >= 0; i--) {
|
|
74
|
-
const span = spans[i];
|
|
75
|
-
let repl;
|
|
76
|
-
if (options.rewrite) {
|
|
77
|
-
// 宿主重写钩子优先(可覆盖保留前缀,用于测试/自定义宿主将
|
|
78
|
-
// `@faicad/faq` 指向同一个模块实例,保证 Shape 身份一致)
|
|
79
|
-
repl = options.rewrite(span.specifier, { bare: span.bare });
|
|
80
|
-
}
|
|
81
|
-
if (repl === undefined && isReserved(span.specifier)) {
|
|
82
|
-
// 保留前缀:零替换,交给宿主 importmap(B 通道 ① 语义)
|
|
83
|
-
repl = undefined;
|
|
84
|
-
}
|
|
85
|
-
if (repl === undefined && span.bare === false && options.baseURL) {
|
|
86
|
-
repl = new URL(span.specifier, options.baseURL).href;
|
|
87
|
-
}
|
|
88
|
-
if (repl === undefined || repl === span.specifier)
|
|
89
|
-
continue;
|
|
90
|
-
// 替换除引号外的字符串内容
|
|
91
|
-
out = out.slice(0, span.start) + repl + out.slice(span.end);
|
|
92
|
-
}
|
|
93
|
-
return out;
|
|
94
|
-
}
|
|
95
|
-
//# sourceMappingURL=imports.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"imports.js","sourceRoot":"","sources":["../../src/faqts/imports.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAuB7B,uCAAuC;AACvC,MAAM,sBAAsB,GAAG,CAAC,eAAe,EAAE,aAAa,EAAE,iBAAiB,EAAE,SAAS,CAAE,CAAA;AAE9F;;;;;GAKG;AACH;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAA;IACxE,MAAM,KAAK,GAAsB,EAAE,CAAA;IACnC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB;YAAE,SAAQ;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,MAAyD,CAAA;QAC1E,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,GAAG,KAAK,SAAS;YAAE,SAAQ;QACtE,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAA;QACtB,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC7E,qDAAqD;QACrD,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/E,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,UAAU,CAAC,SAAiB;IACnC,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,KAAK,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;AAC7F,CAAC;AAED;;;;;;;;;;GAUG;AACH;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,IAAY,EACZ,UAGI,EAAE;IAEN,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;IAC/B,IAAI,GAAG,GAAG,IAAI,CAAA;IACd,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACrB,IAAI,IAAwB,CAAA;QAC5B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,+BAA+B;YAC/B,yCAAyC;YACzC,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAC7D,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACrD,qCAAqC;YACrC,IAAI,GAAG,SAAS,CAAA;QAClB,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACjE,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAA;QACtD,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,CAAC,SAAS;YAAE,SAAQ;QAC3D,eAAe;QACf,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC7D,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC","sourcesContent":["/**\n * faits — import 声明解析与说明符重写(Phase D, pipeline 第 2–3 步)\n *\n * 说明:faits 复用 Phase B 的导入通道 ①② —— 即\"只负责把它所依赖的\n * 裸说明符改写到宿主能解析的绝对 URL(file:/blob:/http(s):),其余\n * 保持原样\"。与 faijs 的 ModuleResolver(Phase E V5.2, plan §4.1)不\n * 同,此处 **不实现** 模块仓库解析,只做确定性的语法级重写:\n *\n * - 相对说明符(`./x`、`../x`)→ 可选按 base URL 绝对化,否则保留\n * - `@faicad/faijs` 及其子路径(含 `/sdk`)→ **零替换**,由宿主 importmap 解析\n * - 其它裸说明符 → 走宿主提供的 rewrite 表(复用 B 通道 ①② 的产物)\n *\n * acorn 仅用于定位每个 import 声明在源码中的精确 span;替换用字符串\n * 手术完成,不重建整份 AST,避免丢注释/格式(保持行号定位)。\n */\n\nimport { parse } from 'acorn'\n\n/**\n * The exact location of one static import declaration within module source,\n * used to rewrite its specifier without rebuilding the AST.\n */\nexport interface FaqtsImportSpan {\n /** import 声明的原始说明符,如 `./partner`、`@faqad/faqjs/sdk` */\n specifier: string\n /** 说明符字符串在源码中的起始偏移(不含引号) */\n start: number\n /** 说明符字符串在源码中的结束偏移(不含引号) */\n end: number\n /** 是否裸说明符(既非相对路径也非绝对 URL) */\n bare: boolean\n}\n\n/**\n * A host-provided rewrite hook that maps an import specifier to the URL the\n * host can resolve. Returning `undefined` leaves the specifier unchanged.\n */\nexport type FaqtsRewriteFn = (specifier: string, ctx: { bare: boolean }) => string | undefined\n\n/** 宿主 importmap 应已覆盖的说明符前缀,重写时默认跳过。 */\nconst RESERVED_BARE_PREFIXES = ['@faicad/faijs', '@faicad/faq', '@faicad/faq/sdk', '@fc/fq/' ]\n\n/**\n * 解析模块源码(必须是已去类型的 JS),返回全部静态 import 的说明符/位置。\n *\n * 只处理顶层 import 声明(ESM 静态导入);动态 import() 属于运行时行为,\n * 不在重写范围内——若 faits 需要动态导入,宿主 importmap 自行兜底。\n */\n/**\n * Parse module source (de-typed JS) and return the specifier and location of\n * every static top-level import declaration. Dynamic import() is runtime\n * behavior and is not part of the rewrite scope.\n * @param code - the module JavaScript source text.\n * @returns an array of import spans covering each static import declaration.\n */\nexport function findImports(code: string): FaqtsImportSpan[] {\n const ast = parse(code, { ecmaVersion: 'latest', sourceType: 'module' })\n const spans: FaqtsImportSpan[] = []\n for (const node of ast.body) {\n if (node.type !== 'ImportDeclaration') continue\n const src = node.source as { value: string; start?: number; end?: number }\n if (!src || src.start === undefined || src.end === undefined) continue\n const spec = src.value\n const bare = !spec.startsWith('.') && !/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(spec)\n // acorn 的 source.start/end 覆盖含引号的字符串字面量 → 收缩到不含引号的内容\n spans.push({ specifier: spec, start: src.start + 1, end: src.end - 1, bare })\n }\n return spans\n}\n\nfunction isReserved(specifier: string): boolean {\n return RESERVED_BARE_PREFIXES.some((p) => specifier === p || specifier.startsWith(p + '/'))\n}\n\n/**\n * 重写模块代码中的 import 说明符:按 span(start/end)对源码做替换。\n *\n * 规则(按优先级):\n * 1. 保留前缀(`@faicad/faij` 家族)→ 不改(宿主 importmap 解析)\n * 2. rewrite 钩子返回非 `undefined` → 用之\n * 3. 相对说明符且给了 baseURL → 绝对化\n * 4. 其余 → 原样保留\n *\n * 用一次 `code` 全串替换(从后往前保证 span 位置不漂移)。\n */\n/**\n * Rewrite import specifiers in module code by splicing the source at each\n * span's start/end offsets. Priority: reserved prefixes stay unchanged, then\n * the rewrite hook's result, then relative absolute-ization, else preserved.\n * @param code - the module JavaScript source text to rewrite.\n * @param options - rewrite hook and optional base URL for relative specifiers.\n * @returns the rewritten module source text.\n */\nexport function rewriteImports(\n code: string,\n options: {\n rewrite?: FaqtsRewriteFn\n baseURL?: string | URL\n } = {},\n): string {\n const spans = findImports(code)\n let out = code\n for (let i = spans.length - 1; i >= 0; i--) {\n const span = spans[i]\n let repl: string | undefined\n if (options.rewrite) {\n // 宿主重写钩子优先(可覆盖保留前缀,用于测试/自定义宿主将\n // `@faicad/faq` 指向同一个模块实例,保证 Shape 身份一致)\n repl = options.rewrite(span.specifier, { bare: span.bare })\n }\n if (repl === undefined && isReserved(span.specifier)) {\n // 保留前缀:零替换,交给宿主 importmap(B 通道 ① 语义)\n repl = undefined\n }\n if (repl === undefined && span.bare === false && options.baseURL) {\n repl = new URL(span.specifier, options.baseURL).href\n }\n if (repl === undefined || repl === span.specifier) continue\n // 替换除引号外的字符串内容\n out = out.slice(0, span.start) + repl + out.slice(span.end)\n }\n return out\n}"]}
|
package/dist/faqts/index.d.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* faits(faqts)— `.ts` 源码整段执行(Phase D)
|
|
3
|
-
*
|
|
4
|
-
* 入口:@faicad/faijs/faqts
|
|
5
|
-
* Node 用:@faicad/faijs/faqts/node
|
|
6
|
-
* 浏览器用:@faicad/faijs/faqts/browser
|
|
7
|
-
*
|
|
8
|
-
* 与 faijs 执行管道(extractMetadata → DirectExecutor → 逐语句执行)平行的第二条执行路径:
|
|
9
|
-
* - `.ts` 整段一次执行(不建 IR、不逐语句、不接入 timeline)
|
|
10
|
-
* - 输出由作者显式 export 声明(无 DAG 自动推导)
|
|
11
|
-
* - 共享同一套 `cad` API 与 Shape 契约(与 faq 侧互通)
|
|
12
|
-
*
|
|
13
|
-
* 本入口导出纯逻辑:transform / imports / run(run 需要注入 execute 执行器)。
|
|
14
|
-
* 环境特定执行器见 exec-node.ts(Node 临时 .mjs)与 exec-blob.ts(Blob URL)。
|
|
15
|
-
*/
|
|
16
|
-
export { transformFaqts } from './transform.js';
|
|
17
|
-
export type { FaqtsTransformOptions, FaqtsTransformResult } from './transform.js';
|
|
18
|
-
export { findImports, rewriteImports } from './imports.js';
|
|
19
|
-
export type { FaqtsImportSpan, FaqtsRewriteFn } from './imports.js';
|
|
20
|
-
export { runFaqts } from './run.js';
|
|
21
|
-
export type { FaqtsRunOptions, FaqtsRunResult, FaqtsModuleExecutor } from './run.js';
|
|
22
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/faqts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAC9E,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AACvD,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAA"}
|
package/dist/faqts/index.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* faits(faqts)— `.ts` 源码整段执行(Phase D)
|
|
3
|
-
*
|
|
4
|
-
* 入口:@faicad/faijs/faqts
|
|
5
|
-
* Node 用:@faicad/faijs/faqts/node
|
|
6
|
-
* 浏览器用:@faicad/faijs/faqts/browser
|
|
7
|
-
*
|
|
8
|
-
* 与 faijs 执行管道(extractMetadata → DirectExecutor → 逐语句执行)平行的第二条执行路径:
|
|
9
|
-
* - `.ts` 整段一次执行(不建 IR、不逐语句、不接入 timeline)
|
|
10
|
-
* - 输出由作者显式 export 声明(无 DAG 自动推导)
|
|
11
|
-
* - 共享同一套 `cad` API 与 Shape 契约(与 faq 侧互通)
|
|
12
|
-
*
|
|
13
|
-
* 本入口导出纯逻辑:transform / imports / run(run 需要注入 execute 执行器)。
|
|
14
|
-
* 环境特定执行器见 exec-node.ts(Node 临时 .mjs)与 exec-blob.ts(Blob URL)。
|
|
15
|
-
*/
|
|
16
|
-
export { transformFaqts } from './transform.js';
|
|
17
|
-
export { findImports, rewriteImports } from './imports.js';
|
|
18
|
-
export { runFaqts } from './run.js';
|
|
19
|
-
// 纯逻辑入口不挂执行器:Node/Browser 执行器见 ./node 与 ./browser 子路径,
|
|
20
|
-
// 避免浏览器侧静态引入 node:fs / node:os。
|
|
21
|
-
//# sourceMappingURL=index.js.map
|
package/dist/faqts/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/faqts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,uDAAuD;AACvD,gCAAgC","sourcesContent":["/**\n * faits(faqts)— `.ts` 源码整段执行(Phase D)\n *\n * 入口:@faicad/faijs/faqts\n * Node 用:@faicad/faijs/faqts/node\n * 浏览器用:@faicad/faijs/faqts/browser\n *\n * 与 faijs 执行管道(extractMetadata → DirectExecutor → 逐语句执行)平行的第二条执行路径:\n * - `.ts` 整段一次执行(不建 IR、不逐语句、不接入 timeline)\n * - 输出由作者显式 export 声明(无 DAG 自动推导)\n * - 共享同一套 `cad` API 与 Shape 契约(与 faq 侧互通)\n *\n * 本入口导出纯逻辑:transform / imports / run(run 需要注入 execute 执行器)。\n * 环境特定执行器见 exec-node.ts(Node 临时 .mjs)与 exec-blob.ts(Blob URL)。\n */\n\nexport { transformFaqts } from './transform'\nexport type { FaqtsTransformOptions, FaqtsTransformResult } from './transform'\nexport { findImports, rewriteImports } from './imports'\nexport type { FaqtsImportSpan, FaqtsRewriteFn } from './imports'\nexport { runFaqts } from './run'\nexport type { FaqtsRunOptions, FaqtsRunResult, FaqtsModuleExecutor } from './run'\n// 纯逻辑入口不挂执行器:Node/Browser 执行器见 ./node 与 ./browser 子路径,\n// 避免浏览器侧静态引入 node:fs / node:os。"]}
|
package/dist/faqts/node.d.ts
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* faqts — Node 入口:@faicad/faijs/faqts/node
|
|
3
|
-
*
|
|
4
|
-
* 绑定 Node 执行器(临时 .mjs)。浏览器消费方务必从 .../faqts/browser 导入,
|
|
5
|
-
* 避免静态引入 node:fs。
|
|
6
|
-
*/
|
|
7
|
-
import type { FaqtsRunOptions, FaqtsRunResult } from './run.js';
|
|
8
|
-
export { transformFaqts } from './transform.js';
|
|
9
|
-
export type { FaqtsTransformOptions, FaqtsTransformResult } from './transform.js';
|
|
10
|
-
export { findImports, rewriteImports } from './imports.js';
|
|
11
|
-
export type { FaqtsImportSpan, FaqtsRewriteFn } from './imports.js';
|
|
12
|
-
export { runFaqts } from './run.js';
|
|
13
|
-
export type { FaqtsRunOptions, FaqtsRunResult } from './run.js';
|
|
14
|
-
export { executeFaqtsModuleInNode } from './exec-node.js';
|
|
15
|
-
/**
|
|
16
|
-
* Convenience entry point that runs `.ts` source end-to-end in a Node
|
|
17
|
-
* environment, binding the Node module executor (temporary .mjs file).
|
|
18
|
-
* @param source - the complete TypeScript source to execute as a module.
|
|
19
|
-
* @param options - run options; the `execute` executor is supplied automatically.
|
|
20
|
-
* @returns the run result containing the module namespace and explicit outputs.
|
|
21
|
-
*/
|
|
22
|
-
export declare function runFaqtsInNode(source: string, options?: Omit<FaqtsRunOptions, 'execute'>): Promise<FaqtsRunResult>;
|
|
23
|
-
//# sourceMappingURL=node.d.ts.map
|
package/dist/faqts/node.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/faqts/node.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAC9E,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AACvD,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAEtD;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAM,GAC7C,OAAO,CAAC,cAAc,CAAC,CAEzB"}
|
package/dist/faqts/node.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* faqts — Node 入口:@faicad/faijs/faqts/node
|
|
3
|
-
*
|
|
4
|
-
* 绑定 Node 执行器(临时 .mjs)。浏览器消费方务必从 .../faqts/browser 导入,
|
|
5
|
-
* 避免静态引入 node:fs。
|
|
6
|
-
*/
|
|
7
|
-
import { runFaqts } from './run.js';
|
|
8
|
-
import { executeFaqtsModuleInNode } from './exec-node.js';
|
|
9
|
-
export { transformFaqts } from './transform.js';
|
|
10
|
-
export { findImports, rewriteImports } from './imports.js';
|
|
11
|
-
export { runFaqts } from './run.js';
|
|
12
|
-
export { executeFaqtsModuleInNode } from './exec-node.js';
|
|
13
|
-
/**
|
|
14
|
-
* Convenience entry point that runs `.ts` source end-to-end in a Node
|
|
15
|
-
* environment, binding the Node module executor (temporary .mjs file).
|
|
16
|
-
* @param source - the complete TypeScript source to execute as a module.
|
|
17
|
-
* @param options - run options; the `execute` executor is supplied automatically.
|
|
18
|
-
* @returns the run result containing the module namespace and explicit outputs.
|
|
19
|
-
*/
|
|
20
|
-
export async function runFaqtsInNode(source, options = {}) {
|
|
21
|
-
return runFaqts(source, { ...options, execute: executeFaqtsModuleInNode });
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=node.js.map
|
package/dist/faqts/node.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/faqts/node.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAGtD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAEtD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAc,EACd,UAA4C,EAAE;IAE9C,OAAO,QAAQ,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAA;AAC5E,CAAC","sourcesContent":["/**\n * faqts — Node 入口:@faicad/faijs/faqts/node\n *\n * 绑定 Node 执行器(临时 .mjs)。浏览器消费方务必从 .../faqts/browser 导入,\n * 避免静态引入 node:fs。\n */\n\nimport { runFaqts } from './run'\nimport { executeFaqtsModuleInNode } from './exec-node'\nimport type { FaqtsRunOptions, FaqtsRunResult } from './run'\n\nexport { transformFaqts } from './transform'\nexport type { FaqtsTransformOptions, FaqtsTransformResult } from './transform'\nexport { findImports, rewriteImports } from './imports'\nexport type { FaqtsImportSpan, FaqtsRewriteFn } from './imports'\nexport { runFaqts } from './run'\nexport type { FaqtsRunOptions, FaqtsRunResult } from './run'\nexport { executeFaqtsModuleInNode } from './exec-node'\n\n/**\n * Convenience entry point that runs `.ts` source end-to-end in a Node\n * environment, binding the Node module executor (temporary .mjs file).\n * @param source - the complete TypeScript source to execute as a module.\n * @param options - run options; the `execute` executor is supplied automatically.\n * @returns the run result containing the module namespace and explicit outputs.\n */\nexport async function runFaqtsInNode(\n source: string,\n options: Omit<FaqtsRunOptions, 'execute'> = {},\n): Promise<FaqtsRunResult> {\n return runFaqts(source, { ...options, execute: executeFaqtsModuleInNode })\n}"]}
|
package/dist/faqts/run.d.ts
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* faits — 整段执行 Runner(Phase D, pipeline 第 4–5 步)
|
|
3
|
-
*
|
|
4
|
-
* 已去类型 + 说明符重写的模块代码
|
|
5
|
-
* → 执行器(浏览器 Blob URL / Node 临时 .mjs)import()
|
|
6
|
-
* → 收集显式声明的输出(export default / 具名 export)
|
|
7
|
-
*
|
|
8
|
-
* faq 与 faits 差异(plan §7.5 行 720–725):
|
|
9
|
-
* faq → 逐语句 append/update/plan、DAG 自动推导、一行一 timeline
|
|
10
|
-
* faits → 整段一次执行、**显式声明输出**(无 DAG 自动推导)、不参与 timeline
|
|
11
|
-
*
|
|
12
|
-
* 输出约定:作者通过 `export default {part0: …, part1: …}` 或具名 export
|
|
13
|
-
* 显式声明哪些产物是输出(由于无 IR,引擎不会猜测终端集)。本 runner 返回
|
|
14
|
-
* 模块命名空间,并把 export default(若为对象)平铺为命名输出。
|
|
15
|
-
*
|
|
16
|
-
* 本文件无任何 Node 专属依赖:执行器(execute)由浏览器 Blob / Node 临时
|
|
17
|
-
* 文件实现注入,见 exec-blob.ts / exec-node.ts。
|
|
18
|
-
*/
|
|
19
|
-
import type { FaqtsRewriteFn } from './imports.js';
|
|
20
|
-
/** 将"已转译 + 已重写"的模块代码执行一次,返回 ES 模块命名空间快照。 */
|
|
21
|
-
export type FaqtsModuleExecutor = (jsCode: string) => Promise<Record<string, unknown>>;
|
|
22
|
-
/**
|
|
23
|
-
* Options controlling one full-module run through `runFaqts`.
|
|
24
|
-
*/
|
|
25
|
-
export interface FaqtsRunOptions {
|
|
26
|
-
/** 导入重写钩子(裸说明符 → 宿主可解析的 URL);默认保留。 */
|
|
27
|
-
rewrite?: FaqtsRewriteFn;
|
|
28
|
-
/** 相对说明符绝对化的基准 URL(默认取 process.cwd() + '/') */
|
|
29
|
-
baseURL?: string | URL;
|
|
30
|
-
/** 转译选项透传(jsx 等) */
|
|
31
|
-
transform?: {
|
|
32
|
-
jsx?: boolean;
|
|
33
|
-
};
|
|
34
|
-
/** 模块执行器;默认未注入,由入口(browser/node)提供 */
|
|
35
|
-
execute?: FaqtsModuleExecutor;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* The outcome of executing one module: the full namespace plus the outputs the
|
|
39
|
-
* author explicitly declared via `export default { ... }` and named exports.
|
|
40
|
-
*/
|
|
41
|
-
export interface FaqtsRunResult {
|
|
42
|
-
/** 已执行的 ES 模块命名空间 */
|
|
43
|
-
namespace: Record<string, unknown>;
|
|
44
|
-
/** 显式输出:export default 为对象 → 展开;否则作为 default;具名 export 并入 */
|
|
45
|
-
outputs: Record<string, unknown>;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* 将完整的 `.ts` 源码作为单个 ES 模块执行一次。
|
|
49
|
-
*
|
|
50
|
-
* - 不建 IR、不逐语句执行、不接入 timeline
|
|
51
|
-
* - 每次调用执行一份全新模块实例(执行器唯一 blob/temp 路径)
|
|
52
|
-
*/
|
|
53
|
-
/**
|
|
54
|
-
* Execute the complete `.ts` source as a single ES module once. No IR is
|
|
55
|
-
* built, statements are not executed one by one, and no timeline is involved;
|
|
56
|
-
* each call runs a fresh module instance.
|
|
57
|
-
* @param source - the complete TypeScript source to execute.
|
|
58
|
-
* @param options - run options including the mandatory `execute` executor.
|
|
59
|
-
* @returns the run result with the module namespace and explicit outputs.
|
|
60
|
-
*/
|
|
61
|
-
export declare function runFaqts(source: string, options?: FaqtsRunOptions): Promise<FaqtsRunResult>;
|
|
62
|
-
//# sourceMappingURL=run.d.ts.map
|
package/dist/faqts/run.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/faqts/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAE/C,4CAA4C;AAC5C,MAAM,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAEtF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;IACtB,oBAAoB;IACpB,SAAS,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;IAC7B,sCAAsC;IACtC,OAAO,CAAC,EAAE,mBAAmB,CAAA;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,qBAAqB;IACrB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACjC;AAED;;;;;GAKG;AACH;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CASrG"}
|
package/dist/faqts/run.js
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* faits — 整段执行 Runner(Phase D, pipeline 第 4–5 步)
|
|
3
|
-
*
|
|
4
|
-
* 已去类型 + 说明符重写的模块代码
|
|
5
|
-
* → 执行器(浏览器 Blob URL / Node 临时 .mjs)import()
|
|
6
|
-
* → 收集显式声明的输出(export default / 具名 export)
|
|
7
|
-
*
|
|
8
|
-
* faq 与 faits 差异(plan §7.5 行 720–725):
|
|
9
|
-
* faq → 逐语句 append/update/plan、DAG 自动推导、一行一 timeline
|
|
10
|
-
* faits → 整段一次执行、**显式声明输出**(无 DAG 自动推导)、不参与 timeline
|
|
11
|
-
*
|
|
12
|
-
* 输出约定:作者通过 `export default {part0: …, part1: …}` 或具名 export
|
|
13
|
-
* 显式声明哪些产物是输出(由于无 IR,引擎不会猜测终端集)。本 runner 返回
|
|
14
|
-
* 模块命名空间,并把 export default(若为对象)平铺为命名输出。
|
|
15
|
-
*
|
|
16
|
-
* 本文件无任何 Node 专属依赖:执行器(execute)由浏览器 Blob / Node 临时
|
|
17
|
-
* 文件实现注入,见 exec-blob.ts / exec-node.ts。
|
|
18
|
-
*/
|
|
19
|
-
import { transformFaqts } from './transform.js';
|
|
20
|
-
import { rewriteImports } from './imports.js';
|
|
21
|
-
/**
|
|
22
|
-
* 将完整的 `.ts` 源码作为单个 ES 模块执行一次。
|
|
23
|
-
*
|
|
24
|
-
* - 不建 IR、不逐语句执行、不接入 timeline
|
|
25
|
-
* - 每次调用执行一份全新模块实例(执行器唯一 blob/temp 路径)
|
|
26
|
-
*/
|
|
27
|
-
/**
|
|
28
|
-
* Execute the complete `.ts` source as a single ES module once. No IR is
|
|
29
|
-
* built, statements are not executed one by one, and no timeline is involved;
|
|
30
|
-
* each call runs a fresh module instance.
|
|
31
|
-
* @param source - the complete TypeScript source to execute.
|
|
32
|
-
* @param options - run options including the mandatory `execute` executor.
|
|
33
|
-
* @returns the run result with the module namespace and explicit outputs.
|
|
34
|
-
*/
|
|
35
|
-
export async function runFaqts(source, options = {}) {
|
|
36
|
-
if (typeof options.execute !== 'function') {
|
|
37
|
-
throw new Error('runFaqts: 缺少 execute 执行器(浏览器用 exec-blob,Node 用 exec-node)');
|
|
38
|
-
}
|
|
39
|
-
const js = transformFaqts(source, options.transform).code;
|
|
40
|
-
const base = options.baseURL ?? (typeof process !== 'undefined' ? process.cwd() + '/' : undefined);
|
|
41
|
-
const code = rewriteImports(js, { rewrite: options.rewrite, baseURL: base });
|
|
42
|
-
const namespace = await options.execute(code);
|
|
43
|
-
return { namespace, outputs: collectOutputs(namespace) };
|
|
44
|
-
}
|
|
45
|
-
/** 显式输出收集:export default 是对象 → 展开为具名输出;否则作为 default。 */
|
|
46
|
-
function collectOutputs(ns) {
|
|
47
|
-
const outputs = {};
|
|
48
|
-
const def = ns['default'];
|
|
49
|
-
if (def !== undefined && def !== null && typeof def === 'object' && !Array.isArray(def)) {
|
|
50
|
-
Object.assign(outputs, def);
|
|
51
|
-
}
|
|
52
|
-
else if (def !== undefined) {
|
|
53
|
-
outputs.default = def;
|
|
54
|
-
}
|
|
55
|
-
for (const key of Object.keys(ns)) {
|
|
56
|
-
if (key === 'default')
|
|
57
|
-
continue;
|
|
58
|
-
outputs[key] = ns[key];
|
|
59
|
-
}
|
|
60
|
-
return outputs;
|
|
61
|
-
}
|
|
62
|
-
//# sourceMappingURL=run.js.map
|
package/dist/faqts/run.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/faqts/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AA+B1C;;;;;GAKG;AACH;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,MAAc,EAAE,UAA2B,EAAE;IAC1E,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;IAC9E,CAAC;IACD,MAAM,EAAE,GAAG,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAA;IACzD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAClG,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5E,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7C,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,EAAE,CAAA;AAC1D,CAAC;AAED,wDAAwD;AACxD,SAAS,cAAc,CAAC,EAA2B;IACjD,MAAM,OAAO,GAA4B,EAAE,CAAA;IAC3C,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;IACzB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACxF,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC7B,CAAC;SAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,CAAC,OAAO,GAAG,GAAG,CAAA;IACvB,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAClC,IAAI,GAAG,KAAK,SAAS;YAAE,SAAQ;QAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC","sourcesContent":["/**\n * faits — 整段执行 Runner(Phase D, pipeline 第 4–5 步)\n *\n * 已去类型 + 说明符重写的模块代码\n * → 执行器(浏览器 Blob URL / Node 临时 .mjs)import()\n * → 收集显式声明的输出(export default / 具名 export)\n *\n * faq 与 faits 差异(plan §7.5 行 720–725):\n * faq → 逐语句 append/update/plan、DAG 自动推导、一行一 timeline\n * faits → 整段一次执行、**显式声明输出**(无 DAG 自动推导)、不参与 timeline\n *\n * 输出约定:作者通过 `export default {part0: …, part1: …}` 或具名 export\n * 显式声明哪些产物是输出(由于无 IR,引擎不会猜测终端集)。本 runner 返回\n * 模块命名空间,并把 export default(若为对象)平铺为命名输出。\n *\n * 本文件无任何 Node 专属依赖:执行器(execute)由浏览器 Blob / Node 临时\n * 文件实现注入,见 exec-blob.ts / exec-node.ts。\n */\n\nimport { transformFaqts } from './transform'\nimport { rewriteImports } from './imports'\nimport type { FaqtsRewriteFn } from './imports'\n\n/** 将\"已转译 + 已重写\"的模块代码执行一次,返回 ES 模块命名空间快照。 */\nexport type FaqtsModuleExecutor = (jsCode: string) => Promise<Record<string, unknown>>\n\n/**\n * Options controlling one full-module run through `runFaqts`.\n */\nexport interface FaqtsRunOptions {\n /** 导入重写钩子(裸说明符 → 宿主可解析的 URL);默认保留。 */\n rewrite?: FaqtsRewriteFn\n /** 相对说明符绝对化的基准 URL(默认取 process.cwd() + '/') */\n baseURL?: string | URL\n /** 转译选项透传(jsx 等) */\n transform?: { jsx?: boolean }\n /** 模块执行器;默认未注入,由入口(browser/node)提供 */\n execute?: FaqtsModuleExecutor\n}\n\n/**\n * The outcome of executing one module: the full namespace plus the outputs the\n * author explicitly declared via `export default { ... }` and named exports.\n */\nexport interface FaqtsRunResult {\n /** 已执行的 ES 模块命名空间 */\n namespace: Record<string, unknown>\n /** 显式输出:export default 为对象 → 展开;否则作为 default;具名 export 并入 */\n outputs: Record<string, unknown>\n}\n\n/**\n * 将完整的 `.ts` 源码作为单个 ES 模块执行一次。\n *\n * - 不建 IR、不逐语句执行、不接入 timeline\n * - 每次调用执行一份全新模块实例(执行器唯一 blob/temp 路径)\n */\n/**\n * Execute the complete `.ts` source as a single ES module once. No IR is\n * built, statements are not executed one by one, and no timeline is involved;\n * each call runs a fresh module instance.\n * @param source - the complete TypeScript source to execute.\n * @param options - run options including the mandatory `execute` executor.\n * @returns the run result with the module namespace and explicit outputs.\n */\nexport async function runFaqts(source: string, options: FaqtsRunOptions = {}): Promise<FaqtsRunResult> {\n if (typeof options.execute !== 'function') {\n throw new Error('runFaqts: 缺少 execute 执行器(浏览器用 exec-blob,Node 用 exec-node)')\n }\n const js = transformFaqts(source, options.transform).code\n const base = options.baseURL ?? (typeof process !== 'undefined' ? process.cwd() + '/' : undefined)\n const code = rewriteImports(js, { rewrite: options.rewrite, baseURL: base })\n const namespace = await options.execute(code)\n return { namespace, outputs: collectOutputs(namespace) }\n}\n\n/** 显式输出收集:export default 是对象 → 展开为具名输出;否则作为 default。 */\nfunction collectOutputs(ns: Record<string, unknown>): Record<string, unknown> {\n const outputs: Record<string, unknown> = {}\n const def = ns['default']\n if (def !== undefined && def !== null && typeof def === 'object' && !Array.isArray(def)) {\n Object.assign(outputs, def)\n } else if (def !== undefined) {\n outputs.default = def\n }\n for (const key of Object.keys(ns)) {\n if (key === 'default') continue\n outputs[key] = ns[key]\n }\n return outputs\n}"]}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* faits — TypeScript 源码转译(Phase D, pipeline 第 1 步)
|
|
3
|
-
*
|
|
4
|
-
* 管线(plans/2026-08-29-faijs-module-runtime-plan.md §7.5):
|
|
5
|
-
* .ts(faits 脚本) → 本模块:sucrase 去类型(保留行号)
|
|
6
|
-
* → acorn 解析 import → 说明符重写 → Blob → import() 整段执行
|
|
7
|
-
*
|
|
8
|
-
* 与 faijs 录制的 `.fai.js` 不同,faits 不建 IR、逐语句执行,而是
|
|
9
|
-
* 整段一次性 import() 执行;DAG 活跃性不自动推导,输出由作者显式
|
|
10
|
-
* export 声明(§7.5 行 723–724)。
|
|
11
|
-
*
|
|
12
|
-
* 此处只做"转译",不含任何执行/几何依赖,Node 与浏览器通用。
|
|
13
|
-
*/
|
|
14
|
-
/**
|
|
15
|
-
* Options controlling the TypeScript-to-JavaScript transform.
|
|
16
|
-
*/
|
|
17
|
-
export interface FaqtsTransformOptions {
|
|
18
|
-
/** 是否启用 JSX 转译(默认 false:纯 TS) */
|
|
19
|
-
jsx?: boolean;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* The result of transforming TypeScript source to plain JavaScript module code.
|
|
23
|
-
*/
|
|
24
|
-
export interface FaqtsTransformResult {
|
|
25
|
-
/** 去类型后的纯 JS 模块代码(行号与源文件保持一致) */
|
|
26
|
-
code: string;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* 去除 TypeScript 类型(保留行号),返回可在浏览器/Node 运行的模块代码。
|
|
30
|
-
*
|
|
31
|
-
* - 不生成 source map(行号保留,错误定位足够)
|
|
32
|
-
* - 仅 `transforms: ['typescript']`;若脚本含 JSX 需显式开启 `jsx`
|
|
33
|
-
*/
|
|
34
|
-
/**
|
|
35
|
-
* Strip TypeScript types (preserving line numbers) and return module code that
|
|
36
|
-
* can run in the browser or Node. No source map is generated; only the
|
|
37
|
-
* `typescript` transform runs unless `jsx` is explicitly enabled.
|
|
38
|
-
* @param source - the TypeScript source text to transform.
|
|
39
|
-
* @param options - transform options such as JSX enablement.
|
|
40
|
-
* @returns the de-typed JavaScript module code.
|
|
41
|
-
*/
|
|
42
|
-
export declare function transformFaqts(source: string, options?: FaqtsTransformOptions): FaqtsTransformResult;
|
|
43
|
-
//# sourceMappingURL=transform.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/faqts/transform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,iCAAiC;IACjC,GAAG,CAAC,EAAE,OAAO,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;;;;GAKG;AACH;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,GAAG,oBAAoB,CAKxG"}
|
package/dist/faqts/transform.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* faits — TypeScript 源码转译(Phase D, pipeline 第 1 步)
|
|
3
|
-
*
|
|
4
|
-
* 管线(plans/2026-08-29-faijs-module-runtime-plan.md §7.5):
|
|
5
|
-
* .ts(faits 脚本) → 本模块:sucrase 去类型(保留行号)
|
|
6
|
-
* → acorn 解析 import → 说明符重写 → Blob → import() 整段执行
|
|
7
|
-
*
|
|
8
|
-
* 与 faijs 录制的 `.fai.js` 不同,faits 不建 IR、逐语句执行,而是
|
|
9
|
-
* 整段一次性 import() 执行;DAG 活跃性不自动推导,输出由作者显式
|
|
10
|
-
* export 声明(§7.5 行 723–724)。
|
|
11
|
-
*
|
|
12
|
-
* 此处只做"转译",不含任何执行/几何依赖,Node 与浏览器通用。
|
|
13
|
-
*/
|
|
14
|
-
import { transform } from 'sucrase';
|
|
15
|
-
/**
|
|
16
|
-
* 去除 TypeScript 类型(保留行号),返回可在浏览器/Node 运行的模块代码。
|
|
17
|
-
*
|
|
18
|
-
* - 不生成 source map(行号保留,错误定位足够)
|
|
19
|
-
* - 仅 `transforms: ['typescript']`;若脚本含 JSX 需显式开启 `jsx`
|
|
20
|
-
*/
|
|
21
|
-
/**
|
|
22
|
-
* Strip TypeScript types (preserving line numbers) and return module code that
|
|
23
|
-
* can run in the browser or Node. No source map is generated; only the
|
|
24
|
-
* `typescript` transform runs unless `jsx` is explicitly enabled.
|
|
25
|
-
* @param source - the TypeScript source text to transform.
|
|
26
|
-
* @param options - transform options such as JSX enablement.
|
|
27
|
-
* @returns the de-typed JavaScript module code.
|
|
28
|
-
*/
|
|
29
|
-
export function transformFaqts(source, options = {}) {
|
|
30
|
-
const js = transform(source, {
|
|
31
|
-
transforms: options.jsx ? ['typescript', 'jsx'] : ['typescript'],
|
|
32
|
-
}).code;
|
|
33
|
-
return { code: js };
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=transform.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/faqts/transform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAkBnC;;;;;GAKG;AACH;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,UAAiC,EAAE;IAChF,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE;QAC3B,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;KACjE,CAAC,CAAC,IAAI,CAAA;IACP,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;AACrB,CAAC","sourcesContent":["/**\n * faits — TypeScript 源码转译(Phase D, pipeline 第 1 步)\n *\n * 管线(plans/2026-08-29-faijs-module-runtime-plan.md §7.5):\n * .ts(faits 脚本) → 本模块:sucrase 去类型(保留行号)\n * → acorn 解析 import → 说明符重写 → Blob → import() 整段执行\n *\n * 与 faijs 录制的 `.fai.js` 不同,faits 不建 IR、逐语句执行,而是\n * 整段一次性 import() 执行;DAG 活跃性不自动推导,输出由作者显式\n * export 声明(§7.5 行 723–724)。\n *\n * 此处只做\"转译\",不含任何执行/几何依赖,Node 与浏览器通用。\n */\n\nimport { transform } from 'sucrase'\n\n/**\n * Options controlling the TypeScript-to-JavaScript transform.\n */\nexport interface FaqtsTransformOptions {\n /** 是否启用 JSX 转译(默认 false:纯 TS) */\n jsx?: boolean\n}\n\n/**\n * The result of transforming TypeScript source to plain JavaScript module code.\n */\nexport interface FaqtsTransformResult {\n /** 去类型后的纯 JS 模块代码(行号与源文件保持一致) */\n code: string\n}\n\n/**\n * 去除 TypeScript 类型(保留行号),返回可在浏览器/Node 运行的模块代码。\n *\n * - 不生成 source map(行号保留,错误定位足够)\n * - 仅 `transforms: ['typescript']`;若脚本含 JSX 需显式开启 `jsx`\n */\n/**\n * Strip TypeScript types (preserving line numbers) and return module code that\n * can run in the browser or Node. No source map is generated; only the\n * `typescript` transform runs unless `jsx` is explicitly enabled.\n * @param source - the TypeScript source text to transform.\n * @param options - transform options such as JSX enablement.\n * @returns the de-typed JavaScript module code.\n */\nexport function transformFaqts(source: string, options: FaqtsTransformOptions = {}): FaqtsTransformResult {\n const js = transform(source, {\n transforms: options.jsx ? ['typescript', 'jsx'] : ['typescript'],\n }).code\n return { code: js }\n}"]}
|
package/dist/lang/compile.d.ts
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* compile — ScriptIR → 零 import ESM 模块(VM 执行方案 Phase 1)
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* `compileToModule(script)` 把校验过的 ScriptIR IR 编译为**不含任何 import 语句**的
|
|
6
|
-
* ESM 文本(`export const statements = [...]`)。产物零 import 是关键决策——Node 的
|
|
7
|
-
* `data:` URL 与浏览器的 Blob URL 动态 import 都无法解析裸说明符,零 import 使模块在
|
|
8
|
-
* 两个平台都能直接 `import()`,无需 import map / 打包器 / 文件系统。
|
|
9
|
-
*
|
|
10
|
-
* 编译规则:
|
|
11
|
-
* - 每条语句一个 `{ id, deps, fn }`:`id` 是独立 StmtId(参数语句占 s1..sK,语句 s(K+1)..s(K+N));
|
|
12
|
-
* `deps` 由 parser 收集的 `stmt.refs`(inputs + $param + $geom.of + members)翻译为定义语句的 id;
|
|
13
|
-
* `fn` 是 `async (ctx, ns) => {...}`(ns = 命名空间集合,无隐式参数)。
|
|
14
|
-
* - 参数即变量:`const r = 20` 编译为普通语句 `ctx.r = 20`。
|
|
15
|
-
* - 变量引用编译为 `ctx.x`(持久变量容器,跨增量执行存活)。
|
|
16
|
-
* - $param → `ctx.<name>`;$geom → `ns.cad.<feature>(ctx.<of>, ...)`;$asset → `await ns.cad.asset(key)`。
|
|
17
|
-
* - 编译输入只有 IR,用户原文不进 VM(先解析后执行红线)。
|
|
18
|
-
*/
|
|
19
|
-
import type { ScriptIR } from './types.js';
|
|
20
|
-
import { type StmtId } from '../identity.js';
|
|
21
|
-
/** 编译后单条语句的元数据(与模块文本中的 `{ id, deps, fn }` 并行)。 */
|
|
22
|
-
export interface CompiledStatementMeta {
|
|
23
|
-
/** 独立 StmtId(模块语句 id) */
|
|
24
|
-
id: StmtId;
|
|
25
|
-
/** 依赖语句 id(定义被引用变量的语句) */
|
|
26
|
-
deps: StmtId[];
|
|
27
|
-
/** 本语句写入 ctx 的键(变量名):普通语句 [id]、split 双输出、参数 [paramName]、add_constraint/do_assemble 空 */
|
|
28
|
-
writes: string[];
|
|
29
|
-
/** 在 script.statements 中的下标(参数语句为 undefined) */
|
|
30
|
-
sourceIndex?: number;
|
|
31
|
-
}
|
|
32
|
-
/** compileToModule 的返回:模块文本 + 并行元数据(供 ModuleExecutor 建 sourceById / reconcileCtx)。 */
|
|
33
|
-
export interface CompiledModule {
|
|
34
|
-
code: string;
|
|
35
|
-
statements: CompiledStatementMeta[];
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* 把 ScriptIR 编译为零 import ESM 模块文本 + 语句元数据。
|
|
39
|
-
*
|
|
40
|
-
* 同一份 ScriptIR 编译结果确定(StmtId 按语句顺序稳定分配)。
|
|
41
|
-
*/
|
|
42
|
-
/**
|
|
43
|
-
* Compile a validated ScriptIR into a zero-import ESM module text plus parallel
|
|
44
|
-
* statement metadata. The output of compiling the same ScriptIR is
|
|
45
|
-
* deterministic (StmtIds are assigned stably in statement order).
|
|
46
|
-
* @param script - the validated ScriptIR to compile.
|
|
47
|
-
* @returns the compiled module code and its statement metadata.
|
|
48
|
-
*/
|
|
49
|
-
export declare function compileToModule(script: ScriptIR): CompiledModule;
|
|
50
|
-
//# sourceMappingURL=compile.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/lang/compile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAKV,QAAQ,EAIT,MAAM,SAAS,CAAA;AAIhB,OAAO,EAAY,KAAK,MAAM,EAAE,MAAM,aAAa,CAAA;AAInD,kDAAkD;AAClD,MAAM,WAAW,qBAAqB;IACpC,yBAAyB;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,0BAA0B;IAC1B,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,wFAAwF;IACxF,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,sFAAsF;AACtF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,qBAAqB,EAAE,CAAA;CACpC;AAiQD;;;;GAIG;AACH;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,QAAQ,GAAG,cAAc,CAiFhE"}
|