@scriptc/compiler 0.2.4 → 0.2.6
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/ambient/scriptc-node-fallback.d.ts +972 -245
- package/ambient/scriptc-overrides.d.ts +5 -1
- package/ambient/scriptc.d.ts +22 -2
- package/dist/backend/build-cache.d.ts +4 -0
- package/dist/backend/build-cache.js +16 -2
- package/dist/backend/build-cache.js.map +1 -1
- package/dist/backend/cycle-analysis.js +17 -5
- package/dist/backend/cycle-analysis.js.map +1 -1
- package/dist/backend/cycle-analysis.test.js +50 -11
- package/dist/backend/cycle-analysis.test.js.map +1 -1
- package/dist/backend/debug-symbols.js.map +1 -1
- package/dist/backend/executable-features.js +3 -1
- package/dist/backend/executable-features.js.map +1 -1
- package/dist/backend/external-c.d.ts +13 -6
- package/dist/backend/external-c.js +15 -3
- package/dist/backend/external-c.js.map +1 -1
- package/dist/backend/ffi-callbacks.js +6 -9
- package/dist/backend/ffi-callbacks.js.map +1 -1
- package/dist/backend/library-identity-markers.js.map +1 -1
- package/dist/backend/library-pack.d.ts +1 -1
- package/dist/backend/library-pack.js +81 -24
- package/dist/backend/library-pack.js.map +1 -1
- package/dist/backend/link-plan-core.d.ts +2 -0
- package/dist/backend/link-plan-core.js +10 -2
- package/dist/backend/link-plan-core.js.map +1 -1
- package/dist/backend/link-plan.d.ts +2 -1
- package/dist/backend/link-plan.js +7 -5
- package/dist/backend/link-plan.js.map +1 -1
- package/dist/backend/linker.d.ts +1 -1
- package/dist/backend/linker.js +42 -23
- package/dist/backend/linker.js.map +1 -1
- package/dist/backend/literals.js +5 -4
- package/dist/backend/literals.js.map +1 -1
- package/dist/backend/literals.test.js +30 -5
- package/dist/backend/literals.test.js.map +1 -1
- package/dist/backend/llvm/blocks.test.js +5 -2
- package/dist/backend/llvm/blocks.test.js.map +1 -1
- package/dist/backend/llvm/borrowed-inputs.js.map +1 -1
- package/dist/backend/llvm/borrowed-receivers.js +43 -19
- package/dist/backend/llvm/borrowed-receivers.js.map +1 -1
- package/dist/backend/llvm/byte-numbers.js +38 -5
- package/dist/backend/llvm/byte-numbers.js.map +1 -1
- package/dist/backend/llvm/byte-windows.d.ts +31 -0
- package/dist/backend/llvm/byte-windows.js +334 -0
- package/dist/backend/llvm/byte-windows.js.map +1 -0
- package/dist/backend/llvm/byte-windows.test.d.ts +1 -0
- package/dist/backend/llvm/byte-windows.test.js +244 -0
- package/dist/backend/llvm/byte-windows.test.js.map +1 -0
- package/dist/backend/llvm/bytes-bounds.js +73 -22
- package/dist/backend/llvm/bytes-bounds.js.map +1 -1
- package/dist/backend/llvm/call-lifetimes.d.ts +5 -2
- package/dist/backend/llvm/call-lifetimes.js +72 -19
- package/dist/backend/llvm/call-lifetimes.js.map +1 -1
- package/dist/backend/llvm/call-lifetimes.test.js +159 -28
- package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/checked-value-lifetimes.d.ts +4 -0
- package/dist/backend/llvm/checked-value-lifetimes.js +14 -4
- package/dist/backend/llvm/checked-value-lifetimes.js.map +1 -1
- package/dist/backend/llvm/classes.d.ts +14 -1
- package/dist/backend/llvm/classes.js +94 -19
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/classes.test.d.ts +1 -0
- package/dist/backend/llvm/classes.test.js +99 -0
- package/dist/backend/llvm/classes.test.js.map +1 -0
- package/dist/backend/llvm/common.js +4 -1
- package/dist/backend/llvm/common.js.map +1 -1
- package/dist/backend/llvm/constant-callbacks.d.ts +11 -0
- package/dist/backend/llvm/constant-callbacks.js +213 -0
- package/dist/backend/llvm/constant-callbacks.js.map +1 -0
- package/dist/backend/llvm/constant-callbacks.test.d.ts +1 -0
- package/dist/backend/llvm/constant-callbacks.test.js +124 -0
- package/dist/backend/llvm/constant-callbacks.test.js.map +1 -0
- package/dist/backend/llvm/counted-loops.js +10 -3
- package/dist/backend/llvm/counted-loops.js.map +1 -1
- package/dist/backend/llvm/debug-info.js +33 -13
- package/dist/backend/llvm/debug-info.js.map +1 -1
- package/dist/backend/llvm/debug-info.test.js +28 -6
- package/dist/backend/llvm/debug-info.test.js.map +1 -1
- package/dist/backend/llvm/dyn.d.ts +1 -1
- package/dist/backend/llvm/dyn.js +75 -56
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +28 -3
- package/dist/backend/llvm/emitter.js +506 -145
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.test.js +247 -50
- package/dist/backend/llvm/emitter.test.js.map +1 -1
- package/dist/backend/llvm/expr-async.js +25 -6
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-bytes.js +24 -4
- package/dist/backend/llvm/expr-bytes.js.map +1 -1
- package/dist/backend/llvm/expr-callbacks.js +10 -4
- package/dist/backend/llvm/expr-callbacks.js.map +1 -1
- package/dist/backend/llvm/expr-calls.js +110 -31
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-containers.d.ts +2 -0
- package/dist/backend/llvm/expr-containers.js +112 -41
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-control.js +1 -3
- package/dist/backend/llvm/expr-control.js.map +1 -1
- package/dist/backend/llvm/expr-dispatch.js +3 -1
- package/dist/backend/llvm/expr-dispatch.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.js +55 -7
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-island.js +26 -6
- package/dist/backend/llvm/expr-island.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.js +95 -19
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.test.js +44 -2
- package/dist/backend/llvm/expr-primitives.test.js.map +1 -1
- package/dist/backend/llvm/expr-records.js +10 -9
- package/dist/backend/llvm/expr-records.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.js +44 -26
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.test.js +51 -14
- package/dist/backend/llvm/expr-stream-bridges.test.js.map +1 -1
- package/dist/backend/llvm/expr-stream-callbacks.js +34 -14
- package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
- package/dist/backend/llvm/integer-remainder.d.ts +7 -0
- package/dist/backend/llvm/integer-remainder.js +26 -0
- package/dist/backend/llvm/integer-remainder.js.map +1 -0
- package/dist/backend/llvm/integer-values.js +15 -4
- package/dist/backend/llvm/integer-values.js.map +1 -1
- package/dist/backend/llvm/integer-views.js +23 -7
- package/dist/backend/llvm/integer-views.js.map +1 -1
- package/dist/backend/llvm/integer-views.test.js +42 -7
- package/dist/backend/llvm/integer-views.test.js.map +1 -1
- package/dist/backend/llvm/layouts.js +1 -1
- package/dist/backend/llvm/layouts.js.map +1 -1
- package/dist/backend/llvm/lib-abi.js +20 -4
- package/dist/backend/llvm/lib-abi.js.map +1 -1
- package/dist/backend/llvm/lib-connect.js +7 -1
- package/dist/backend/llvm/lib-connect.js.map +1 -1
- package/dist/backend/llvm/lib-datagram.js +35 -10
- package/dist/backend/llvm/lib-datagram.js.map +1 -1
- package/dist/backend/llvm/lib-dispatch.js +42 -38
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +33 -18
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-http2.js +60 -15
- package/dist/backend/llvm/lib-http2.js.map +1 -1
- package/dist/backend/llvm/lib-lookup.js +12 -5
- package/dist/backend/llvm/lib-lookup.js.map +1 -1
- package/dist/backend/llvm/lib-network.js +97 -31
- package/dist/backend/llvm/lib-network.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +57 -14
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +122 -31
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/lib-stream.js +33 -14
- package/dist/backend/llvm/lib-stream.js.map +1 -1
- package/dist/backend/llvm/lib-test.js +21 -7
- package/dist/backend/llvm/lib-test.js.map +1 -1
- package/dist/backend/llvm/lib-tls.js +69 -20
- package/dist/backend/llvm/lib-tls.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.d.ts +9 -2
- package/dist/backend/llvm/local-array-reads.js +176 -89
- package/dist/backend/llvm/local-array-reads.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.test.js +394 -62
- package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
- package/dist/backend/llvm/local-union-storage.d.ts +25 -0
- package/dist/backend/llvm/local-union-storage.js +109 -0
- package/dist/backend/llvm/local-union-storage.js.map +1 -0
- package/dist/backend/llvm/local-union-storage.test.d.ts +1 -0
- package/dist/backend/llvm/local-union-storage.test.js +210 -0
- package/dist/backend/llvm/local-union-storage.test.js.map +1 -0
- package/dist/backend/llvm/loop-array-borrows.d.ts +11 -0
- package/dist/backend/llvm/loop-array-borrows.js +70 -0
- package/dist/backend/llvm/loop-array-borrows.js.map +1 -0
- package/dist/backend/llvm/loop-array-borrows.test.d.ts +1 -0
- package/dist/backend/llvm/loop-array-borrows.test.js +145 -0
- package/dist/backend/llvm/loop-array-borrows.test.js.map +1 -0
- package/dist/backend/llvm/map-read-lifetimes.d.ts +11 -2
- package/dist/backend/llvm/map-read-lifetimes.js +64 -19
- package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
- package/dist/backend/llvm/map-read-lifetimes.test.js +89 -17
- package/dist/backend/llvm/map-read-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/reference-effects.d.ts +5 -3
- package/dist/backend/llvm/reference-effects.js +74 -36
- package/dist/backend/llvm/reference-effects.js.map +1 -1
- package/dist/backend/llvm/reference-effects.test.js +92 -9
- package/dist/backend/llvm/reference-effects.test.js.map +1 -1
- package/dist/backend/llvm/shapes.d.ts +4 -1
- package/dist/backend/llvm/shapes.js +82 -24
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/shapes.test.js +3 -1
- package/dist/backend/llvm/shapes.test.js.map +1 -1
- package/dist/backend/llvm/split-loops.d.ts +48 -0
- package/dist/backend/llvm/split-loops.js +183 -0
- package/dist/backend/llvm/split-loops.js.map +1 -0
- package/dist/backend/llvm/split.js +4 -11
- package/dist/backend/llvm/split.js.map +1 -1
- package/dist/backend/llvm/split.test.js +80 -8
- package/dist/backend/llvm/split.test.js.map +1 -1
- package/dist/backend/llvm/stack-callbacks.d.ts +14 -0
- package/dist/backend/llvm/stack-callbacks.js +73 -0
- package/dist/backend/llvm/stack-callbacks.js.map +1 -0
- package/dist/backend/llvm/stack-captures.d.ts +25 -0
- package/dist/backend/llvm/stack-captures.js +150 -0
- package/dist/backend/llvm/stack-captures.js.map +1 -0
- package/dist/backend/llvm/stack-unions.js +14 -5
- package/dist/backend/llvm/stack-unions.js.map +1 -1
- package/dist/backend/llvm/stack-unions.test.js +151 -32
- package/dist/backend/llvm/stack-unions.test.js.map +1 -1
- package/dist/backend/llvm/string-construction.js.map +1 -1
- package/dist/backend/llvm/string-construction.test.js +32 -7
- package/dist/backend/llvm/string-construction.test.js.map +1 -1
- package/dist/backend/llvm/string-lifetimes.js +14 -8
- package/dist/backend/llvm/string-lifetimes.js.map +1 -1
- package/dist/backend/llvm/string-lifetimes.test.js +119 -29
- package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/string-slices.d.ts +20 -0
- package/dist/backend/llvm/string-slices.js +87 -0
- package/dist/backend/llvm/string-slices.js.map +1 -0
- package/dist/backend/llvm/string-slices.test.d.ts +1 -0
- package/dist/backend/llvm/string-slices.test.js +98 -0
- package/dist/backend/llvm/string-slices.test.js.map +1 -0
- package/dist/backend/llvm/switch-dispatch.d.ts +9 -0
- package/dist/backend/llvm/switch-dispatch.js +114 -0
- package/dist/backend/llvm/switch-dispatch.js.map +1 -0
- package/dist/backend/llvm/switch-dispatch.test.d.ts +1 -0
- package/dist/backend/llvm/switch-dispatch.test.js +83 -0
- package/dist/backend/llvm/switch-dispatch.test.js.map +1 -0
- package/dist/backend/llvm/unsupported.js.map +1 -1
- package/dist/backend/llvm/walkers.d.ts +4 -14
- package/dist/backend/llvm/walkers.js +58 -313
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/mangle.js +9 -3
- package/dist/backend/mangle.js.map +1 -1
- package/dist/backend/may-throw.js +18 -8
- package/dist/backend/may-throw.js.map +1 -1
- package/dist/backend/may-throw.test.js +119 -23
- package/dist/backend/may-throw.test.js.map +1 -1
- package/dist/backend/native/artifact-stamps.d.ts +39 -0
- package/dist/backend/native/artifact-stamps.js +371 -0
- package/dist/backend/native/artifact-stamps.js.map +1 -0
- package/dist/backend/native/cache-warm.d.ts +24 -0
- package/dist/backend/native/cache-warm.js +80 -0
- package/dist/backend/native/cache-warm.js.map +1 -0
- package/dist/backend/native/compiler-fingerprint.d.ts +19 -0
- package/dist/backend/native/compiler-fingerprint.js +357 -0
- package/dist/backend/native/compiler-fingerprint.js.map +1 -0
- package/dist/backend/native/contracts.d.ts +316 -0
- package/dist/backend/native/contracts.js +2 -0
- package/dist/backend/native/contracts.js.map +1 -0
- package/dist/backend/native/dependency-files.d.ts +5 -0
- package/dist/backend/native/dependency-files.js +83 -0
- package/dist/backend/native/dependency-files.js.map +1 -0
- package/dist/backend/native/driver.d.ts +50 -0
- package/dist/backend/native/driver.js +294 -0
- package/dist/backend/native/driver.js.map +1 -0
- package/dist/backend/native/executable.d.ts +18 -0
- package/dist/backend/native/executable.js +1275 -0
- package/dist/backend/native/executable.js.map +1 -0
- package/dist/backend/native/library.d.ts +2 -0
- package/dist/backend/native/library.js +614 -0
- package/dist/backend/native/library.js.map +1 -0
- package/dist/backend/native/linker-fingerprint.d.ts +8 -0
- package/dist/backend/native/linker-fingerprint.js +174 -0
- package/dist/backend/native/linker-fingerprint.js.map +1 -0
- package/dist/backend/native/object-merge.d.ts +2 -0
- package/dist/backend/native/object-merge.js +154 -0
- package/dist/backend/native/object-merge.js.map +1 -0
- package/dist/backend/native/process.d.ts +17 -0
- package/dist/backend/native/process.js +42 -0
- package/dist/backend/native/process.js.map +1 -0
- package/dist/backend/native/program-shards.d.ts +21 -0
- package/dist/backend/native/program-shards.js +99 -0
- package/dist/backend/native/program-shards.js.map +1 -0
- package/dist/backend/native/runtime-inputs.d.ts +12 -0
- package/dist/backend/native/runtime-inputs.js +165 -0
- package/dist/backend/native/runtime-inputs.js.map +1 -0
- package/dist/backend/native/runtime-inputs.test.d.ts +1 -0
- package/dist/backend/native/runtime-inputs.test.js +64 -0
- package/dist/backend/native/runtime-inputs.test.js.map +1 -0
- package/dist/backend/native/runtime-objects.d.ts +16 -0
- package/dist/backend/native/runtime-objects.js +122 -0
- package/dist/backend/native/runtime-objects.js.map +1 -0
- package/dist/backend/native/session.d.ts +12 -0
- package/dist/backend/native/session.js +31 -0
- package/dist/backend/native/session.js.map +1 -0
- package/dist/backend/native/tool-identity.d.ts +37 -0
- package/dist/backend/native/tool-identity.js +310 -0
- package/dist/backend/native/tool-identity.js.map +1 -0
- package/dist/backend/native/trace-paths.d.ts +12 -0
- package/dist/backend/native/trace-paths.js +73 -0
- package/dist/backend/native/trace-paths.js.map +1 -0
- package/dist/backend/native/vendor.d.ts +1 -0
- package/dist/backend/native/vendor.js +12 -0
- package/dist/backend/native/vendor.js.map +1 -0
- package/dist/backend/native-codegen-core.d.ts +6 -0
- package/dist/backend/native-codegen-core.js +23 -1
- package/dist/backend/native-codegen-core.js.map +1 -1
- package/dist/backend/native-codegen.d.ts +5 -1
- package/dist/backend/native-codegen.js +52 -25
- package/dist/backend/native-codegen.js.map +1 -1
- package/dist/backend/native-codegen.test.js +59 -11
- package/dist/backend/native-codegen.test.js.map +1 -1
- package/dist/backend/native-link-info-core.d.ts +1 -0
- package/dist/backend/native-link-info-core.js +9 -5
- package/dist/backend/native-link-info-core.js.map +1 -1
- package/dist/backend/native-link-info.js +14 -5
- package/dist/backend/native-link-info.js.map +1 -1
- package/dist/backend/native-link-info.test.js +58 -13
- package/dist/backend/native-link-info.test.js.map +1 -1
- package/dist/backend/native-toolchain.d.ts +17 -450
- package/dist/backend/native-toolchain.js +17 -3971
- package/dist/backend/native-toolchain.js.map +1 -1
- package/dist/backend/native-toolchain.test.js +103 -72
- package/dist/backend/native-toolchain.test.js.map +1 -1
- package/dist/backend/native-tools.d.ts +3 -1
- package/dist/backend/native-tools.js +30 -9
- package/dist/backend/native-tools.js.map +1 -1
- package/dist/backend/object-localize.js +17 -14
- package/dist/backend/object-localize.js.map +1 -1
- package/dist/backend/object-localize.test.js +59 -12
- package/dist/backend/object-localize.test.js.map +1 -1
- package/dist/backend/runtime-abi.d.ts +2 -2
- package/dist/backend/runtime-abi.js +2 -2
- package/dist/backend/runtime-pack-core.d.ts +1 -0
- package/dist/backend/runtime-pack-core.js +104 -50
- package/dist/backend/runtime-pack-core.js.map +1 -1
- package/dist/backend/runtime-pack-native.js +5 -3
- package/dist/backend/runtime-pack-native.js.map +1 -1
- package/dist/backend/runtime-pack-targets.test.js +126 -17
- package/dist/backend/runtime-pack-targets.test.js.map +1 -1
- package/dist/backend/runtime-pack.d.ts +1 -1
- package/dist/backend/runtime-pack.js +11 -12
- package/dist/backend/runtime-pack.js.map +1 -1
- package/dist/backend/runtime-pack.test.js +51 -25
- package/dist/backend/runtime-pack.test.js.map +1 -1
- package/dist/backend/source-locations.js.map +1 -1
- package/dist/backend/source-locations.test.js +7 -2
- package/dist/backend/source-locations.test.js.map +1 -1
- package/dist/backend/target-diagnostics.js +44 -14
- package/dist/backend/target-diagnostics.js.map +1 -1
- package/dist/backend/target-diagnostics.test.js +93 -20
- package/dist/backend/target-diagnostics.test.js.map +1 -1
- package/dist/backend/targets.js +230 -86
- package/dist/backend/targets.js.map +1 -1
- package/dist/backend/targets.test.js +32 -18
- package/dist/backend/targets.test.js.map +1 -1
- package/dist/backend/toolchain-environment.js +5 -1
- package/dist/backend/toolchain-environment.js.map +1 -1
- package/dist/backend/vendor-archives.d.ts +2 -2
- package/dist/backend/vendor-archives.js +84 -35
- package/dist/backend/vendor-archives.js.map +1 -1
- package/dist/backend/vendor-inputs.js +13 -1
- package/dist/backend/vendor-inputs.js.map +1 -1
- package/dist/backend/warm-cache.d.ts +1 -1
- package/dist/backend/warm-cache.js +33 -9
- package/dist/backend/warm-cache.js.map +1 -1
- package/dist/cli/command.js +39 -9
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/output-options.js +14 -4
- package/dist/cli/output-options.js.map +1 -1
- package/dist/cli/paths.js.map +1 -1
- package/dist/cli/wasi-runner.js.map +1 -1
- package/dist/compat/fetch-profile.js +36 -35
- package/dist/compat/fetch-profile.js.map +1 -1
- package/dist/coverage/report.js +16 -17
- package/dist/coverage/report.js.map +1 -1
- package/dist/coverage/surface-manifest.js +112 -26
- package/dist/coverage/surface-manifest.js.map +1 -1
- package/dist/diagnostics/diagnostic.js +55 -16
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/executable/executable-cache.d.ts +2 -1
- package/dist/executable/executable-cache.js +79 -48
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +90 -26
- package/dist/executable/executable-cache.test.js.map +1 -1
- package/dist/executable/prepare.js +2 -2
- package/dist/executable/prepare.js.map +1 -1
- package/dist/ffi/ffi-manifest.js +78 -20
- package/dist/ffi/ffi-manifest.js.map +1 -1
- package/dist/ffi/ffi-manifest.test.js +96 -16
- package/dist/ffi/ffi-manifest.test.js.map +1 -1
- package/dist/format-integer.js.map +1 -1
- package/dist/frontend/analysis.js +12 -2
- package/dist/frontend/analysis.js.map +1 -1
- package/dist/frontend/arguments-usage.js.map +1 -1
- package/dist/frontend/binding-source.js +9 -3
- package/dist/frontend/binding-source.js.map +1 -1
- package/dist/frontend/builtin-modules.js +46 -2
- package/dist/frontend/builtin-modules.js.map +1 -1
- package/dist/frontend/cjs-resolve.js +40 -17
- package/dist/frontend/cjs-resolve.js.map +1 -1
- package/dist/frontend/cjs-syntax.js +31 -10
- package/dist/frontend/cjs-syntax.js.map +1 -1
- package/dist/frontend/comptime-node.test.js +10 -11
- package/dist/frontend/comptime-node.test.js.map +1 -1
- package/dist/frontend/dts-paths.js +7 -3
- package/dist/frontend/dts-paths.js.map +1 -1
- package/dist/frontend/fork-target.d.ts +5 -0
- package/dist/frontend/fork-target.js +55 -18
- package/dist/frontend/fork-target.js.map +1 -1
- package/dist/frontend/fork-target.test.d.ts +1 -0
- package/dist/frontend/fork-target.test.js +59 -0
- package/dist/frontend/fork-target.test.js.map +1 -0
- package/dist/frontend/function-completion.js +11 -6
- package/dist/frontend/function-completion.js.map +1 -1
- package/dist/frontend/helper-tokens.js +53 -6
- package/dist/frontend/helper-tokens.js.map +1 -1
- package/dist/frontend/helper-tokens.test.js +18 -2
- package/dist/frontend/helper-tokens.test.js.map +1 -1
- package/dist/frontend/inferred-js-diagnostics.js +32 -12
- package/dist/frontend/inferred-js-diagnostics.js.map +1 -1
- package/dist/frontend/inferred-js-diagnostics.test.js +11 -15
- package/dist/frontend/inferred-js-diagnostics.test.js.map +1 -1
- package/dist/frontend/input-tracker.js +11 -11
- package/dist/frontend/input-tracker.js.map +1 -1
- package/dist/frontend/input-tracker.test.js +4 -1
- package/dist/frontend/input-tracker.test.js.map +1 -1
- package/dist/frontend/lib-contract.js +38 -9
- package/dist/frontend/lib-contract.js.map +1 -1
- package/dist/frontend/literal-values.js.map +1 -1
- package/dist/frontend/literal-values.test.js +28 -8
- package/dist/frontend/literal-values.test.js.map +1 -1
- package/dist/frontend/lowering/abstract-equality.js +53 -10
- package/dist/frontend/lowering/abstract-equality.js.map +1 -1
- package/dist/frontend/lowering/array-indexed-mutation.d.ts +1 -1
- package/dist/frontend/lowering/array-indexed-mutation.js +108 -106
- package/dist/frontend/lowering/array-indexed-mutation.js.map +1 -1
- package/dist/frontend/lowering/array-values.js +37 -14
- package/dist/frontend/lowering/array-values.js.map +1 -1
- package/dist/frontend/lowering/binding-analysis.d.ts +50 -0
- package/dist/frontend/lowering/binding-analysis.js +376 -0
- package/dist/frontend/lowering/binding-analysis.js.map +1 -0
- package/dist/frontend/lowering/builtin-calls.d.ts +9 -0
- package/dist/frontend/lowering/builtin-calls.js +60 -0
- package/dist/frontend/lowering/builtin-calls.js.map +1 -0
- package/dist/frontend/lowering/builtins/arguments.d.ts +43 -0
- package/dist/frontend/lowering/builtins/arguments.js +247 -0
- package/dist/frontend/lowering/builtins/arguments.js.map +1 -0
- package/dist/frontend/lowering/builtins/async-context.d.ts +52 -0
- package/dist/frontend/lowering/builtins/async-context.js +436 -0
- package/dist/frontend/lowering/builtins/async-context.js.map +1 -0
- package/dist/frontend/lowering/builtins/atomics.d.ts +6 -0
- package/dist/frontend/lowering/builtins/atomics.js +82 -0
- package/dist/frontend/lowering/builtins/atomics.js.map +1 -0
- package/dist/frontend/lowering/builtins/callable-aliases.d.ts +13 -0
- package/dist/frontend/lowering/builtins/callable-aliases.js +87 -0
- package/dist/frontend/lowering/builtins/callable-aliases.js.map +1 -0
- package/dist/frontend/lowering/builtins/child-process-async.d.ts +18 -0
- package/dist/frontend/lowering/builtins/child-process-async.js +245 -0
- package/dist/frontend/lowering/builtins/child-process-async.js.map +1 -0
- package/dist/frontend/lowering/builtins/child-process-methods.d.ts +21 -0
- package/dist/frontend/lowering/builtins/child-process-methods.js +362 -0
- package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -0
- package/dist/frontend/lowering/builtins/child-process-sync.d.ts +4 -0
- package/dist/frontend/lowering/builtins/child-process-sync.js +639 -0
- package/dist/frontend/lowering/builtins/child-process-sync.js.map +1 -0
- package/dist/frontend/lowering/builtins/child-process.d.ts +55 -0
- package/dist/frontend/lowering/builtins/child-process.js +669 -0
- package/dist/frontend/lowering/builtins/child-process.js.map +1 -0
- package/dist/frontend/lowering/builtins/compression.d.ts +7 -0
- package/dist/frontend/lowering/builtins/compression.js +115 -0
- package/dist/frontend/lowering/builtins/compression.js.map +1 -0
- package/dist/frontend/lowering/builtins/console.d.ts +10 -0
- package/dist/frontend/lowering/builtins/console.js +38 -0
- package/dist/frontend/lowering/builtins/console.js.map +1 -0
- package/dist/frontend/lowering/builtins/constants.d.ts +24 -0
- package/dist/frontend/lowering/builtins/constants.js +141 -0
- package/dist/frontend/lowering/builtins/constants.js.map +1 -0
- package/dist/frontend/lowering/builtins/crypto.d.ts +22 -0
- package/dist/frontend/lowering/builtins/crypto.js +517 -0
- package/dist/frontend/lowering/builtins/crypto.js.map +1 -0
- package/dist/frontend/lowering/builtins/dates.d.ts +7 -0
- package/dist/frontend/lowering/builtins/dates.js +101 -0
- package/dist/frontend/lowering/builtins/dates.js.map +1 -0
- package/dist/frontend/lowering/builtins/environment.d.ts +34 -0
- package/dist/frontend/lowering/builtins/environment.js +95 -0
- package/dist/frontend/lowering/builtins/environment.js.map +1 -0
- package/dist/frontend/lowering/builtins/errors.d.ts +14 -0
- package/dist/frontend/lowering/builtins/errors.js +83 -0
- package/dist/frontend/lowering/builtins/errors.js.map +1 -0
- package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +35 -0
- package/dist/frontend/lowering/builtins/filesystem-calls.js +725 -0
- package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -0
- package/dist/frontend/lowering/builtins/filesystem.d.ts +108 -0
- package/dist/frontend/lowering/builtins/filesystem.js +1061 -0
- package/dist/frontend/lowering/builtins/filesystem.js.map +1 -0
- package/dist/frontend/lowering/builtins/ipc.d.ts +8 -0
- package/dist/frontend/lowering/builtins/ipc.js +76 -0
- package/dist/frontend/lowering/builtins/ipc.js.map +1 -0
- package/dist/frontend/lowering/builtins/json.d.ts +12 -0
- package/dist/frontend/lowering/builtins/json.js +387 -0
- package/dist/frontend/lowering/builtins/json.js.map +1 -0
- package/dist/frontend/lowering/builtins/module-bindings.d.ts +85 -0
- package/dist/frontend/lowering/builtins/module-bindings.js +346 -0
- package/dist/frontend/lowering/builtins/module-bindings.js.map +1 -0
- package/dist/frontend/lowering/builtins/module-calls.d.ts +8 -0
- package/dist/frontend/lowering/builtins/module-calls.js +308 -0
- package/dist/frontend/lowering/builtins/module-calls.js.map +1 -0
- package/dist/frontend/lowering/builtins/module-resolution.d.ts +38 -0
- package/dist/frontend/lowering/builtins/module-resolution.js +344 -0
- package/dist/frontend/lowering/builtins/module-resolution.js.map +1 -0
- package/dist/frontend/lowering/builtins/numbers.d.ts +15 -0
- package/dist/frontend/lowering/builtins/numbers.js +124 -0
- package/dist/frontend/lowering/builtins/numbers.js.map +1 -0
- package/dist/frontend/lowering/builtins/operating-system.d.ts +13 -0
- package/dist/frontend/lowering/builtins/operating-system.js +148 -0
- package/dist/frontend/lowering/builtins/operating-system.js.map +1 -0
- package/dist/frontend/lowering/builtins/performance.d.ts +13 -0
- package/dist/frontend/lowering/builtins/performance.js +100 -0
- package/dist/frontend/lowering/builtins/performance.js.map +1 -0
- package/dist/frontend/lowering/builtins/process.d.ts +50 -0
- package/dist/frontend/lowering/builtins/process.js +1138 -0
- package/dist/frontend/lowering/builtins/process.js.map +1 -0
- package/dist/frontend/lowering/builtins/promises.d.ts +14 -0
- package/dist/frontend/lowering/builtins/promises.js +356 -0
- package/dist/frontend/lowering/builtins/promises.js.map +1 -0
- package/dist/frontend/lowering/builtins/properties.d.ts +11 -0
- package/dist/frontend/lowering/builtins/properties.js +186 -0
- package/dist/frontend/lowering/builtins/properties.js.map +1 -0
- package/dist/frontend/lowering/builtins/querystring.d.ts +19 -0
- package/dist/frontend/lowering/builtins/querystring.js +150 -0
- package/dist/frontend/lowering/builtins/querystring.js.map +1 -0
- package/dist/frontend/lowering/builtins/readline.d.ts +13 -0
- package/dist/frontend/lowering/builtins/readline.js +138 -0
- package/dist/frontend/lowering/builtins/readline.js.map +1 -0
- package/dist/frontend/lowering/builtins/receiver-types.d.ts +5 -0
- package/dist/frontend/lowering/builtins/receiver-types.js +15 -0
- package/dist/frontend/lowering/builtins/receiver-types.js.map +1 -0
- package/dist/frontend/lowering/builtins/reflection.d.ts +13 -0
- package/dist/frontend/lowering/builtins/reflection.js +95 -0
- package/dist/frontend/lowering/builtins/reflection.js.map +1 -0
- package/dist/frontend/lowering/builtins/strings.d.ts +14 -0
- package/dist/frontend/lowering/builtins/strings.js +121 -0
- package/dist/frontend/lowering/builtins/strings.js.map +1 -0
- package/dist/frontend/lowering/builtins/text-codecs.d.ts +29 -0
- package/dist/frontend/lowering/builtins/text-codecs.js +590 -0
- package/dist/frontend/lowering/builtins/text-codecs.js.map +1 -0
- package/dist/frontend/lowering/builtins/timers.d.ts +22 -0
- package/dist/frontend/lowering/builtins/timers.js +180 -0
- package/dist/frontend/lowering/builtins/timers.js.map +1 -0
- package/dist/frontend/lowering/builtins/url.d.ts +37 -0
- package/dist/frontend/lowering/builtins/url.js +596 -0
- package/dist/frontend/lowering/builtins/url.js.map +1 -0
- package/dist/frontend/lowering/builtins/util-types.d.ts +7 -0
- package/dist/frontend/lowering/builtins/util-types.js +31 -0
- package/dist/frontend/lowering/builtins/util-types.js.map +1 -0
- package/dist/frontend/lowering/builtins/workers.d.ts +5 -0
- package/dist/frontend/lowering/builtins/workers.js +65 -0
- package/dist/frontend/lowering/builtins/workers.js.map +1 -0
- package/dist/frontend/lowering/call-arguments.d.ts +72 -0
- package/dist/frontend/lowering/call-arguments.js +618 -0
- package/dist/frontend/lowering/call-arguments.js.map +1 -0
- package/dist/frontend/lowering/call-signatures.d.ts +115 -0
- package/dist/frontend/lowering/call-signatures.js +719 -0
- package/dist/frontend/lowering/call-signatures.js.map +1 -0
- package/dist/frontend/lowering/callback-arg.js.map +1 -1
- package/dist/frontend/lowering/checked-iterable-spread.js +53 -10
- package/dist/frontend/lowering/checked-iterable-spread.js.map +1 -1
- package/dist/frontend/lowering/checked-promise-all.js +41 -9
- package/dist/frontend/lowering/checked-promise-all.js.map +1 -1
- package/dist/frontend/lowering/class-assertions.d.ts +7 -0
- package/dist/frontend/lowering/class-assertions.js +96 -0
- package/dist/frontend/lowering/class-assertions.js.map +1 -0
- package/dist/frontend/lowering/class-callbacks.d.ts +1 -1
- package/dist/frontend/lowering/class-callbacks.js +130 -27
- package/dist/frontend/lowering/class-callbacks.js.map +1 -1
- package/dist/frontend/lowering/class-construction.d.ts +1 -1
- package/dist/frontend/lowering/class-construction.js +247 -50
- package/dist/frontend/lowering/class-construction.js.map +1 -1
- package/dist/frontend/lowering/class-descriptors.js +109 -29
- package/dist/frontend/lowering/class-descriptors.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +6 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.js +2471 -465
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js +284 -44
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
- package/dist/frontend/lowering/class-instance-constructor.js +17 -5
- package/dist/frontend/lowering/class-instance-constructor.js.map +1 -1
- package/dist/frontend/lowering/class-method-values.js +199 -51
- package/dist/frontend/lowering/class-method-values.js.map +1 -1
- package/dist/frontend/lowering/class-protocols.d.ts +17 -0
- package/dist/frontend/lowering/class-protocols.js +126 -0
- package/dist/frontend/lowering/class-protocols.js.map +1 -0
- package/dist/frontend/lowering/class-prototypes.js +345 -86
- package/dist/frontend/lowering/class-prototypes.js.map +1 -1
- package/dist/frontend/lowering/class-runtime-statics.d.ts +1 -1
- package/dist/frontend/lowering/class-runtime-statics.js +80 -17
- package/dist/frontend/lowering/class-runtime-statics.js.map +1 -1
- package/dist/frontend/lowering/class-static-data.js +76 -16
- package/dist/frontend/lowering/class-static-data.js.map +1 -1
- package/dist/frontend/lowering/coercions/builders.d.ts +13 -0
- package/dist/frontend/lowering/coercions/builders.js +77 -0
- package/dist/frontend/lowering/coercions/builders.js.map +1 -0
- package/dist/frontend/lowering/coercions/function-adapters.d.ts +58 -0
- package/dist/frontend/lowering/coercions/function-adapters.js +430 -0
- package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -0
- package/dist/frontend/lowering/coercions/island.d.ts +37 -0
- package/dist/frontend/lowering/coercions/island.js +350 -0
- package/dist/frontend/lowering/coercions/island.js.map +1 -0
- package/dist/frontend/lowering/coercions/state.d.ts +14 -0
- package/dist/frontend/lowering/coercions/state.js +16 -0
- package/dist/frontend/lowering/coercions/state.js.map +1 -0
- package/dist/frontend/lowering/coercions/structural-plans.d.ts +40 -0
- package/dist/frontend/lowering/coercions/structural-plans.js +447 -0
- package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -0
- package/dist/frontend/lowering/coercions/structural.d.ts +63 -0
- package/dist/frontend/lowering/coercions/structural.js +616 -0
- package/dist/frontend/lowering/coercions/structural.js.map +1 -0
- package/dist/frontend/lowering/coercions/unions.d.ts +65 -0
- package/dist/frontend/lowering/coercions/unions.js +318 -0
- package/dist/frontend/lowering/coercions/unions.js.map +1 -0
- package/dist/frontend/lowering/collection-ingestion.js +355 -72
- package/dist/frontend/lowering/collection-ingestion.js.map +1 -1
- package/dist/frontend/lowering/containers/array-callbacks.d.ts +88 -0
- package/dist/frontend/lowering/containers/array-callbacks.js +1611 -0
- package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -0
- package/dist/frontend/lowering/containers/array-construction.d.ts +42 -0
- package/dist/frontend/lowering/containers/array-construction.js +1044 -0
- package/dist/frontend/lowering/containers/array-construction.js.map +1 -0
- package/dist/frontend/lowering/containers/array-iteration.d.ts +16 -0
- package/dist/frontend/lowering/containers/array-iteration.js +95 -0
- package/dist/frontend/lowering/containers/array-iteration.js.map +1 -0
- package/dist/frontend/lowering/containers/array-methods.d.ts +27 -0
- package/dist/frontend/lowering/containers/array-methods.js +1854 -0
- package/dist/frontend/lowering/containers/array-methods.js.map +1 -0
- package/dist/frontend/lowering/containers/bytes.d.ts +17 -17
- package/dist/frontend/lowering/containers/bytes.js +430 -138
- package/dist/frontend/lowering/containers/bytes.js.map +1 -1
- package/dist/frontend/lowering/containers/callback-arguments.d.ts +26 -0
- package/dist/frontend/lowering/containers/callback-arguments.js +179 -0
- package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -0
- package/dist/frontend/lowering/containers/collection-grouping.d.ts +19 -0
- package/dist/frontend/lowering/containers/collection-grouping.js +297 -0
- package/dist/frontend/lowering/containers/collection-grouping.js.map +1 -0
- package/dist/frontend/lowering/containers/collection-methods.d.ts +57 -0
- package/dist/frontend/lowering/containers/collection-methods.js +1314 -0
- package/dist/frontend/lowering/containers/collection-methods.js.map +1 -0
- package/dist/frontend/lowering/containers/dynamic-receivers.d.ts +18 -0
- package/dist/frontend/lowering/containers/dynamic-receivers.js +114 -0
- package/dist/frontend/lowering/containers/dynamic-receivers.js.map +1 -0
- package/dist/frontend/lowering/containers/for-of.d.ts +60 -0
- package/dist/frontend/lowering/containers/for-of.js +643 -0
- package/dist/frontend/lowering/containers/for-of.js.map +1 -0
- package/dist/frontend/lowering/containers/indexed-objects.d.ts +132 -0
- package/dist/frontend/lowering/containers/indexed-objects.js +1743 -0
- package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -0
- package/dist/frontend/lowering/containers/iterator-helpers.d.ts +20 -0
- package/dist/frontend/lowering/containers/iterator-helpers.js +809 -0
- package/dist/frontend/lowering/containers/iterator-helpers.js.map +1 -0
- package/dist/frontend/lowering/containers/string-and-regexp.js +601 -160
- package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
- package/dist/frontend/lowering/containers/string-replacement.js +213 -63
- package/dist/frontend/lowering/containers/string-replacement.js.map +1 -1
- package/dist/frontend/lowering/crypto-tables.js +263 -64
- package/dist/frontend/lowering/crypto-tables.js.map +1 -1
- package/dist/frontend/lowering/deferred-module-initializers.js +172 -68
- package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -1
- package/dist/frontend/lowering/deferred-module-initializers.test.js +41 -8
- package/dist/frontend/lowering/deferred-module-initializers.test.js.map +1 -1
- package/dist/frontend/lowering/error-methods.js +339 -65
- package/dist/frontend/lowering/error-methods.js.map +1 -1
- package/dist/frontend/lowering/expressions/evaluation-safety.js +3 -2
- package/dist/frontend/lowering/expressions/evaluation-safety.js.map +1 -1
- package/dist/frontend/lowering/expressions/global-symbols.js +2 -1
- package/dist/frontend/lowering/expressions/global-symbols.js.map +1 -1
- package/dist/frontend/lowering/expressions/native-proxy.js +11 -5
- package/dist/frontend/lowering/expressions/native-proxy.js.map +1 -1
- package/dist/frontend/lowering/expressions/nullish-assignment.js +67 -13
- package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
- package/dist/frontend/lowering/expressions/object-literals.js +588 -165
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/optional-chains.d.ts +1 -1
- package/dist/frontend/lowering/expressions/optional-chains.js +68 -17
- package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
- package/dist/frontend/lowering/expressions/union-field-write.js +45 -18
- package/dist/frontend/lowering/expressions/union-field-write.js.map +1 -1
- package/dist/frontend/lowering/function-context.js +5 -1
- package/dist/frontend/lowering/function-context.js.map +1 -1
- package/dist/frontend/lowering/function-returns.d.ts +67 -0
- package/dist/frontend/lowering/function-returns.js +392 -0
- package/dist/frontend/lowering/function-returns.js.map +1 -0
- package/dist/frontend/lowering/generator-delegation.d.ts +1 -1
- package/dist/frontend/lowering/generator-delegation.js +171 -39
- package/dist/frontend/lowering/generator-delegation.js.map +1 -1
- package/dist/frontend/lowering/generator-dynamic-dispatch.d.ts +1 -1
- package/dist/frontend/lowering/generator-dynamic-dispatch.js +176 -36
- package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/generic-functions.d.ts +271 -0
- package/dist/frontend/lowering/generic-functions.js +1730 -0
- package/dist/frontend/lowering/generic-functions.js.map +1 -0
- package/dist/frontend/lowering/import-meta.d.ts +1 -1
- package/dist/frontend/lowering/import-meta.js +37 -14
- package/dist/frontend/lowering/import-meta.js.map +1 -1
- package/dist/frontend/lowering/indexed-comparison.js +6 -2
- package/dist/frontend/lowering/indexed-comparison.js.map +1 -1
- package/dist/frontend/lowering/instantiation-path.d.ts +8 -0
- package/dist/frontend/lowering/instantiation-path.js +10 -0
- package/dist/frontend/lowering/instantiation-path.js.map +1 -0
- package/dist/frontend/lowering/instantiation-path.test.d.ts +1 -0
- package/dist/frontend/lowering/instantiation-path.test.js +23 -0
- package/dist/frontend/lowering/instantiation-path.test.js.map +1 -0
- package/dist/frontend/lowering/iterator-consumption.d.ts +9 -0
- package/dist/frontend/lowering/iterator-consumption.js +91 -0
- package/dist/frontend/lowering/iterator-consumption.js.map +1 -0
- package/dist/frontend/lowering/lib-boundary.js +40 -17
- package/dist/frontend/lowering/lib-boundary.js.map +1 -1
- package/dist/frontend/lowering/lib-boundary.test.js +49 -11
- package/dist/frontend/lowering/lib-boundary.test.js.map +1 -1
- package/dist/frontend/lowering/lower-array-sort.d.ts +0 -19
- package/dist/frontend/lowering/lower-array-sort.js +331 -566
- package/dist/frontend/lowering/lower-array-sort.js.map +1 -1
- package/dist/frontend/lowering/lower-assert.js +248 -43
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-async-iteration.js +71 -16
- package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
- package/dist/frontend/lowering/lower-builtin-values.js +430 -77
- package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.d.ts +39 -558
- package/dist/frontend/lowering/lower-calls.js +2628 -5669
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +248 -242
- package/dist/frontend/lowering/lower-classes.js +1820 -775
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-comptime.d.ts +35 -35
- package/dist/frontend/lowering/lower-comptime.js +39 -37
- package/dist/frontend/lowering/lower-comptime.js.map +1 -1
- package/dist/frontend/lowering/lower-dgram.js +59 -31
- package/dist/frontend/lowering/lower-dgram.js.map +1 -1
- package/dist/frontend/lowering/lower-enums.js +5 -2
- package/dist/frontend/lowering/lower-enums.js.map +1 -1
- package/dist/frontend/lowering/lower-event-emitter.js +323 -86
- package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
- package/dist/frontend/lowering/lower-expando.js +19 -7
- package/dist/frontend/lowering/lower-expando.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +194 -194
- package/dist/frontend/lowering/lower-exprs.js +3473 -1160
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-functions.d.ts +23 -0
- package/dist/frontend/lowering/lower-functions.js +449 -0
- package/dist/frontend/lowering/lower-functions.js.map +1 -0
- package/dist/frontend/lowering/lower-generators.js +121 -32
- package/dist/frontend/lowering/lower-generators.js.map +1 -1
- package/dist/frontend/lowering/lower-global-value.js +15 -4
- package/dist/frontend/lowering/lower-global-value.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.js +479 -89
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-island.d.ts +79 -79
- package/dist/frontend/lowering/lower-island.js +366 -274
- package/dist/frontend/lowering/lower-island.js.map +1 -1
- package/dist/frontend/lowering/lower-island.test.js +7 -2
- package/dist/frontend/lowering/lower-island.test.js.map +1 -1
- package/dist/frontend/lowering/lower-mixins.js +17 -8
- package/dist/frontend/lowering/lower-mixins.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.d.ts +95 -94
- package/dist/frontend/lowering/lower-modules.js +655 -329
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.test.js +91 -20
- package/dist/frontend/lowering/lower-modules.test.js.map +1 -1
- package/dist/frontend/lowering/lower-namespaces.js +25 -8
- package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
- package/dist/frontend/lowering/lower-node-module.js +115 -34
- package/dist/frontend/lowering/lower-node-module.js.map +1 -1
- package/dist/frontend/lowering/lower-server.js +1210 -290
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.d.ts +148 -148
- package/dist/frontend/lowering/lower-stmts.js +2324 -994
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.test.js +13 -5
- package/dist/frontend/lowering/lower-stmts.test.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.js +363 -91
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lower-system-errors.js +30 -8
- package/dist/frontend/lowering/lower-system-errors.js.map +1 -1
- package/dist/frontend/lowering/lower-test.js +40 -13
- package/dist/frontend/lowering/lower-test.js.map +1 -1
- package/dist/frontend/lowering/lower-timers.d.ts +31 -0
- package/dist/frontend/lowering/lower-timers.js +336 -0
- package/dist/frontend/lowering/lower-timers.js.map +1 -0
- package/dist/frontend/lowering/lower-url.d.ts +1 -1
- package/dist/frontend/lowering/lower-url.js +46 -13
- package/dist/frontend/lowering/lower-url.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +34 -352
- package/dist/frontend/lowering/lowerer.js +1074 -2712
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/lowerer.test.js +85 -17
- package/dist/frontend/lowering/lowerer.test.js.map +1 -1
- package/dist/frontend/lowering/module-namespace-elements.js +43 -8
- package/dist/frontend/lowering/module-namespace-elements.js.map +1 -1
- package/dist/frontend/lowering/native-ffi.d.ts +21 -1
- package/dist/frontend/lowering/native-ffi.js +487 -18
- package/dist/frontend/lowering/native-ffi.js.map +1 -1
- package/dist/frontend/lowering/object-enumeration-receiver.js +55 -10
- package/dist/frontend/lowering/object-enumeration-receiver.js.map +1 -1
- package/dist/frontend/lowering/object-factory-new.d.ts +1 -1
- package/dist/frontend/lowering/object-factory-new.js +36 -11
- package/dist/frontend/lowering/object-factory-new.js.map +1 -1
- package/dist/frontend/lowering/optional-arguments.js +49 -20
- package/dist/frontend/lowering/optional-arguments.js.map +1 -1
- package/dist/frontend/lowering/pairs-snapshot.js +66 -14
- package/dist/frontend/lowering/pairs-snapshot.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-locals.js +3 -1
- package/dist/frontend/lowering/runtime-optional-locals.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-locals.test.js.map +1 -1
- package/dist/frontend/lowering/sanitize-class-types.js +4 -1
- package/dist/frontend/lowering/sanitize-class-types.js.map +1 -1
- package/dist/frontend/lowering/sanitize-class-types.test.js +86 -18
- package/dist/frontend/lowering/sanitize-class-types.test.js.map +1 -1
- package/dist/frontend/lowering/split-consumers.d.ts +7 -0
- package/dist/frontend/lowering/split-consumers.js +64 -0
- package/dist/frontend/lowering/split-consumers.js.map +1 -0
- package/dist/frontend/lowering/static-this.js +13 -6
- package/dist/frontend/lowering/static-this.js.map +1 -1
- package/dist/frontend/lowering/string-index.js +32 -10
- package/dist/frontend/lowering/string-index.js.map +1 -1
- package/dist/frontend/lowering/surfaces.d.ts +45 -46
- package/dist/frontend/lowering/surfaces.js +1129 -256
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/lowering/symbol-fields.js +40 -15
- package/dist/frontend/lowering/symbol-fields.js.map +1 -1
- package/dist/frontend/lowering/symbol-methods.js.map +1 -1
- package/dist/frontend/lowering/text-decoder-encoding.js +236 -24
- package/dist/frontend/lowering/text-decoder-encoding.js.map +1 -1
- package/dist/frontend/lowering/text-decoder-encoding.test.js +84 -12
- package/dist/frontend/lowering/text-decoder-encoding.test.js.map +1 -1
- package/dist/frontend/lowering/union-narrow.js +59 -16
- package/dist/frontend/lowering/union-narrow.js.map +1 -1
- package/dist/frontend/lowering/union-narrow.test.js +24 -7
- package/dist/frontend/lowering/union-narrow.test.js.map +1 -1
- package/dist/frontend/lowering/union-retag.js +155 -40
- package/dist/frontend/lowering/union-retag.js.map +1 -1
- package/dist/frontend/lowering/union-retag.test.js +131 -33
- package/dist/frontend/lowering/union-retag.test.js.map +1 -1
- package/dist/frontend/lowering/unregistered-class-types.js.map +1 -1
- package/dist/frontend/lowering/unregistered-class-types.test.js +34 -8
- package/dist/frontend/lowering/unregistered-class-types.test.js.map +1 -1
- package/dist/frontend/module-source-candidates.d.ts +10 -0
- package/dist/frontend/module-source-candidates.js +40 -0
- package/dist/frontend/module-source-candidates.js.map +1 -0
- package/dist/frontend/module-source-candidates.test.d.ts +1 -0
- package/dist/frontend/module-source-candidates.test.js +53 -0
- package/dist/frontend/module-source-candidates.test.js.map +1 -0
- package/dist/frontend/module-syntax.js +21 -8
- package/dist/frontend/module-syntax.js.map +1 -1
- package/dist/frontend/module-syntax.test.js +37 -13
- package/dist/frontend/module-syntax.test.js.map +1 -1
- package/dist/frontend/npm-fetch-analysis.js +13 -4
- package/dist/frontend/npm-fetch-analysis.js.map +1 -1
- package/dist/frontend/npm-fetch-analysis.test.js +33 -10
- package/dist/frontend/npm-fetch-analysis.test.js.map +1 -1
- package/dist/frontend/npm-fetch-node.js.map +1 -1
- package/dist/frontend/npm-fetch-syntax.js +4 -9
- package/dist/frontend/npm-fetch-syntax.js.map +1 -1
- package/dist/frontend/npm-node.js +3 -1
- package/dist/frontend/npm-node.js.map +1 -1
- package/dist/frontend/npm-static-bundled-cjs.js +88 -29
- package/dist/frontend/npm-static-bundled-cjs.js.map +1 -1
- package/dist/frontend/npm-static-bundled-cjs.test.js +29 -10
- package/dist/frontend/npm-static-bundled-cjs.test.js.map +1 -1
- package/dist/frontend/npm-static-declaration-syntax.js +148 -56
- package/dist/frontend/npm-static-declaration-syntax.js.map +1 -1
- package/dist/frontend/npm-static-declarations.d.ts +1 -1
- package/dist/frontend/npm-static-declarations.js.map +1 -1
- package/dist/frontend/npm-static-declarations.test.js +33 -7
- package/dist/frontend/npm-static-declarations.test.js.map +1 -1
- package/dist/frontend/npm-static-prune.js +26 -12
- package/dist/frontend/npm-static-prune.js.map +1 -1
- package/dist/frontend/npm-static-prune.test.js +17 -3
- package/dist/frontend/npm-static-prune.test.js.map +1 -1
- package/dist/frontend/npm-static-rewrite-host.js +2 -3
- package/dist/frontend/npm-static-rewrite-host.js.map +1 -1
- package/dist/frontend/npm-static-rewrite-syntax.js +64 -21
- package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -1
- package/dist/frontend/npm-static-rewrite.js.map +1 -1
- package/dist/frontend/npm-static-subtyping.js +9 -4
- package/dist/frontend/npm-static-subtyping.js.map +1 -1
- package/dist/frontend/npm-static-subtyping.test.js +30 -6
- package/dist/frontend/npm-static-subtyping.test.js.map +1 -1
- package/dist/frontend/npm-static.js +15 -4
- package/dist/frontend/npm-static.js.map +1 -1
- package/dist/frontend/npm.js +122 -36
- package/dist/frontend/npm.js.map +1 -1
- package/dist/frontend/npm.test.js +30 -10
- package/dist/frontend/npm.test.js.map +1 -1
- package/dist/frontend/pipeline-native.js.map +1 -1
- package/dist/frontend/pipeline.js +25 -8
- package/dist/frontend/pipeline.js.map +1 -1
- package/dist/frontend/pipeline.test.js +21 -7
- package/dist/frontend/pipeline.test.js.map +1 -1
- package/dist/frontend/program-analysis.d.ts +2 -0
- package/dist/frontend/program-analysis.js +2 -0
- package/dist/frontend/program-analysis.js.map +1 -1
- package/dist/frontend/program-node.js +5 -3
- package/dist/frontend/program-node.js.map +1 -1
- package/dist/frontend/program.d.ts +2 -2
- package/dist/frontend/program.js +248 -127
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/program.test.js +27 -27
- package/dist/frontend/program.test.js.map +1 -1
- package/dist/frontend/provenance-core.js +8 -4
- package/dist/frontend/provenance-core.js.map +1 -1
- package/dist/frontend/provenance-registry.js +1 -4
- package/dist/frontend/provenance-registry.js.map +1 -1
- package/dist/frontend/resolve.js +32 -20
- package/dist/frontend/resolve.js.map +1 -1
- package/dist/frontend/resolve.test.js +1 -1
- package/dist/frontend/resolve.test.js.map +1 -1
- package/dist/frontend/runtime-resolve.js +13 -4
- package/dist/frontend/runtime-resolve.js.map +1 -1
- package/dist/frontend/runtime-resolve.test.js +25 -9
- package/dist/frontend/runtime-resolve.test.js.map +1 -1
- package/dist/frontend/services-node.js +6 -2
- package/dist/frontend/services-node.js.map +1 -1
- package/dist/frontend/services-node.test.js +18 -6
- package/dist/frontend/services-node.test.js.map +1 -1
- package/dist/frontend/services.js +8 -4
- package/dist/frontend/services.js.map +1 -1
- package/dist/frontend/services.test.js +6 -2
- package/dist/frontend/services.test.js.map +1 -1
- package/dist/frontend/ts7/api.js +12 -4
- package/dist/frontend/ts7/api.js.map +1 -1
- package/dist/frontend/ts7/ast-bytes.js +10 -3
- package/dist/frontend/ts7/ast-bytes.js.map +1 -1
- package/dist/frontend/ts7/ast-bytes.test.js +23 -4
- package/dist/frontend/ts7/ast-bytes.test.js.map +1 -1
- package/dist/frontend/ts7/ast-guards.test.js +14 -5
- package/dist/frontend/ts7/ast-guards.test.js.map +1 -1
- package/dist/frontend/ts7/ast-node.d.ts +6 -1
- package/dist/frontend/ts7/ast-node.js +490 -172
- package/dist/frontend/ts7/ast-node.js.map +1 -1
- package/dist/frontend/ts7/ast-node.test.js +150 -36
- package/dist/frontend/ts7/ast-node.test.js.map +1 -1
- package/dist/frontend/ts7/ast-text.js +13 -3
- package/dist/frontend/ts7/ast-text.js.map +1 -1
- package/dist/frontend/ts7/ast-text.test.js.map +1 -1
- package/dist/frontend/ts7/ast-types.js.map +1 -1
- package/dist/frontend/ts7/ast-wire.d.ts +5 -1
- package/dist/frontend/ts7/ast-wire.js +83 -20
- package/dist/frontend/ts7/ast-wire.js.map +1 -1
- package/dist/frontend/ts7/ast-wire.test.js +53 -8
- package/dist/frontend/ts7/ast-wire.test.js.map +1 -1
- package/dist/frontend/ts7/ast.d.ts +2 -1
- package/dist/frontend/ts7/ast.js +53 -30
- package/dist/frontend/ts7/ast.js.map +1 -1
- package/dist/frontend/ts7/census-check.js +1 -1
- package/dist/frontend/ts7/census-check.js.map +1 -1
- package/dist/frontend/ts7/checker-cache.js.map +1 -1
- package/dist/frontend/ts7/checker.d.ts +8 -2
- package/dist/frontend/ts7/checker.js +46 -8
- package/dist/frontend/ts7/checker.js.map +1 -1
- package/dist/frontend/ts7/checker.test.js +96 -17
- package/dist/frontend/ts7/checker.test.js.map +1 -1
- package/dist/frontend/ts7/enums.test.js +9 -4
- package/dist/frontend/ts7/enums.test.js.map +1 -1
- package/dist/frontend/ts7/native-api.js.map +1 -1
- package/dist/frontend/ts7/native-host.js.map +1 -1
- package/dist/frontend/ts7/native-process.js +9 -3
- package/dist/frontend/ts7/native-process.js.map +1 -1
- package/dist/frontend/ts7/program-adapter.js +1 -1
- package/dist/frontend/ts7/program-adapter.js.map +1 -1
- package/dist/frontend/ts7/program-host.d.ts +7 -0
- package/dist/frontend/ts7/program-host.js +33 -6
- package/dist/frontend/ts7/program-host.js.map +1 -1
- package/dist/frontend/ts7/program-host.test.js +72 -11
- package/dist/frontend/ts7/program-host.test.js.map +1 -1
- package/dist/frontend/ts7/rpc-api.js +3 -1
- package/dist/frontend/ts7/rpc-api.js.map +1 -1
- package/dist/frontend/ts7/rpc-client.js +15 -5
- package/dist/frontend/ts7/rpc-client.js.map +1 -1
- package/dist/frontend/ts7/rpc-client.test.js +26 -8
- package/dist/frontend/ts7/rpc-client.test.js.map +1 -1
- package/dist/frontend/ts7/rpc-filesystem.js.map +1 -1
- package/dist/frontend/ts7/rpc-filesystem.test.js +43 -10
- package/dist/frontend/ts7/rpc-filesystem.test.js.map +1 -1
- package/dist/frontend/ts7/rpc-process.js +16 -6
- package/dist/frontend/ts7/rpc-process.js.map +1 -1
- package/dist/frontend/ts7/rpc-process.test.js.map +1 -1
- package/dist/frontend/ts7/rpc-wire.d.ts +1 -0
- package/dist/frontend/ts7/rpc-wire.js +41 -14
- package/dist/frontend/ts7/rpc-wire.js.map +1 -1
- package/dist/frontend/ts7/rpc-wire.test.js +36 -6
- package/dist/frontend/ts7/rpc-wire.test.js.map +1 -1
- package/dist/frontend/ts7/semantic-checker.js +209 -68
- package/dist/frontend/ts7/semantic-checker.js.map +1 -1
- package/dist/frontend/ts7/semantic-checker.test.js +29 -14
- package/dist/frontend/ts7/semantic-checker.test.js.map +1 -1
- package/dist/frontend/ts7/semantic-json.js +7 -1
- package/dist/frontend/ts7/semantic-json.js.map +1 -1
- package/dist/frontend/ts7/semantic-json.test.js +17 -3
- package/dist/frontend/ts7/semantic-json.test.js.map +1 -1
- package/dist/frontend/ts7/semantic-model.js +147 -51
- package/dist/frontend/ts7/semantic-model.js.map +1 -1
- package/dist/frontend/ts7/semantic-model.test.js +72 -19
- package/dist/frontend/ts7/semantic-model.test.js.map +1 -1
- package/dist/frontend/ts7/semantic-types.d.ts +2 -2
- package/dist/frontend/ts7/session-cache.js +10 -3
- package/dist/frontend/ts7/session-cache.js.map +1 -1
- package/dist/frontend/ts7/session-cache.test.js +13 -4
- package/dist/frontend/ts7/session-cache.test.js.map +1 -1
- package/dist/frontend/ts7/session-path.js +25 -10
- package/dist/frontend/ts7/session-path.js.map +1 -1
- package/dist/frontend/ts7/session-path.test.js +47 -4
- package/dist/frontend/ts7/session-path.test.js.map +1 -1
- package/dist/frontend/ts7/session-timing.js +22 -3
- package/dist/frontend/ts7/session-timing.js.map +1 -1
- package/dist/frontend/ts7/session-timing.test.js +12 -3
- package/dist/frontend/ts7/session-timing.test.js.map +1 -1
- package/dist/frontend/ts7/session.d.ts +1 -0
- package/dist/frontend/ts7/session.js +109 -35
- package/dist/frontend/ts7/session.js.map +1 -1
- package/dist/frontend/ts7/session.test.js +69 -15
- package/dist/frontend/ts7/session.test.js.map +1 -1
- package/dist/frontend/ts7/source-parser.js +17 -6
- package/dist/frontend/ts7/source-parser.js.map +1 -1
- package/dist/frontend/ts7/source-parser.test.js +32 -9
- package/dist/frontend/ts7/source-parser.test.js.map +1 -1
- package/dist/frontend/tsc-codes.js +56 -11
- package/dist/frontend/tsc-codes.js.map +1 -1
- package/dist/frontend/tsc-codes.test.d.ts +1 -0
- package/dist/frontend/tsc-codes.test.js +16 -0
- package/dist/frontend/tsc-codes.test.js.map +1 -0
- package/dist/frontend/type-mapper.d.ts +3 -0
- package/dist/frontend/type-mapper.js +589 -206
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/frontend/type-mapper.test.js +108 -33
- package/dist/frontend/type-mapper.test.js.map +1 -1
- package/dist/frontend/union-discriminants.js +8 -2
- package/dist/frontend/union-discriminants.js.map +1 -1
- package/dist/frontend/union-discriminants.test.js +77 -20
- package/dist/frontend/union-discriminants.test.js.map +1 -1
- package/dist/frontend/worker-target.d.ts +6 -0
- package/dist/frontend/worker-target.js +108 -0
- package/dist/frontend/worker-target.js.map +1 -0
- package/dist/frontend/worker-target.test.d.ts +1 -0
- package/dist/frontend/worker-target.test.js +71 -0
- package/dist/frontend/worker-target.test.js.map +1 -0
- package/dist/index.d.ts +9 -8
- package/dist/index.js +174 -88
- package/dist/index.js.map +1 -1
- package/dist/ir/analysis.js +95 -38
- package/dist/ir/analysis.js.map +1 -1
- package/dist/ir/analysis.test.js +91 -15
- package/dist/ir/analysis.test.js.map +1 -1
- package/dist/ir/api.d.ts +4 -0
- package/dist/ir/api.js +6 -0
- package/dist/ir/api.js.map +1 -0
- package/dist/ir/build.d.ts +7 -0
- package/dist/ir/build.js +27 -1
- package/dist/ir/build.js.map +1 -1
- package/dist/ir/builtin-effects.d.ts +9 -0
- package/dist/ir/builtin-effects.js +643 -0
- package/dist/ir/builtin-effects.js.map +1 -0
- package/dist/ir/builtin-signatures.d.ts +15 -0
- package/dist/ir/builtin-signatures.js +3397 -0
- package/dist/ir/builtin-signatures.js.map +1 -0
- package/dist/ir/byte-numbers.js +67 -16
- package/dist/ir/byte-numbers.js.map +1 -1
- package/dist/ir/byte-numbers.test.js +17 -4
- package/dist/ir/byte-numbers.test.js.map +1 -1
- package/dist/ir/constant-tables.js +13 -5
- package/dist/ir/constant-tables.js.map +1 -1
- package/dist/ir/constant-tables.test.js +47 -7
- package/dist/ir/constant-tables.test.js.map +1 -1
- package/dist/ir/control-flow.js +2 -1
- package/dist/ir/control-flow.js.map +1 -1
- package/dist/ir/control-flow.test.js +35 -11
- package/dist/ir/control-flow.test.js.map +1 -1
- package/dist/ir/initializer-bindings.d.ts +9 -0
- package/dist/ir/initializer-bindings.js +115 -0
- package/dist/ir/initializer-bindings.js.map +1 -0
- package/dist/ir/initializer-bindings.test.d.ts +1 -0
- package/dist/ir/initializer-bindings.test.js +118 -0
- package/dist/ir/initializer-bindings.test.js.map +1 -0
- package/dist/ir/integer-loop-facts.d.ts +12 -0
- package/dist/ir/integer-loop-facts.js +137 -0
- package/dist/ir/integer-loop-facts.js.map +1 -0
- package/dist/ir/integer-loops.js +85 -30
- package/dist/ir/integer-loops.js.map +1 -1
- package/dist/ir/integer-loops.test.js +76 -13
- package/dist/ir/integer-loops.test.js.map +1 -1
- package/dist/ir/integer-ranges.js +93 -21
- package/dist/ir/integer-ranges.js.map +1 -1
- package/dist/ir/integer-ranges.test.js +199 -21
- package/dist/ir/integer-ranges.test.js.map +1 -1
- package/dist/ir/intrinsic-signatures.d.ts +20 -0
- package/dist/ir/intrinsic-signatures.js +57 -0
- package/dist/ir/intrinsic-signatures.js.map +1 -0
- package/dist/ir/ir.d.ts +15 -2160
- package/dist/ir/ir.js +160 -1396
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/ir.test.js +98 -77
- package/dist/ir/ir.test.js.map +1 -1
- package/dist/ir/numeric-call-specialization.d.ts +8 -0
- package/dist/ir/numeric-call-specialization.js +198 -0
- package/dist/ir/numeric-call-specialization.js.map +1 -0
- package/dist/ir/runtime-features.d.ts +221 -0
- package/dist/ir/runtime-features.js +552 -0
- package/dist/ir/runtime-features.js.map +1 -0
- package/dist/ir/runtime-features.test.d.ts +1 -0
- package/dist/ir/runtime-features.test.js +98 -0
- package/dist/ir/runtime-features.test.js.map +1 -0
- package/dist/ir/scalar-records.js +130 -40
- package/dist/ir/scalar-records.js.map +1 -1
- package/dist/ir/scalar-records.test.js +146 -27
- package/dist/ir/scalar-records.test.js.map +1 -1
- package/dist/ir/serialize.d.ts +1 -1
- package/dist/ir/serialize.js +7 -5
- package/dist/ir/serialize.js.map +1 -1
- package/dist/ir/serialize.test.js +44 -9
- package/dist/ir/serialize.test.js.map +1 -1
- package/dist/ir/traverse.js +156 -43
- package/dist/ir/traverse.js.map +1 -1
- package/dist/ir/traverse.test.js +99 -24
- package/dist/ir/traverse.test.js.map +1 -1
- package/dist/ir/validate.d.ts +1 -31
- package/dist/ir/validate.js +869 -1910
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +697 -114
- package/dist/ir/validate.test.js.map +1 -1
- package/dist/library/cache-primitives.js +9 -10
- package/dist/library/cache-primitives.js.map +1 -1
- package/dist/library/cache-reset.test.js +2 -1
- package/dist/library/cache-reset.test.js.map +1 -1
- package/dist/library/compiler-self-identity.js +11 -5
- package/dist/library/compiler-self-identity.js.map +1 -1
- package/dist/library/compiler-self-identity.test.js +10 -3
- package/dist/library/compiler-self-identity.test.js.map +1 -1
- package/dist/library/fence-eval.js +24 -7
- package/dist/library/fence-eval.js.map +1 -1
- package/dist/library/fence-eval.test.js +31 -7
- package/dist/library/fence-eval.test.js.map +1 -1
- package/dist/library/int-infer.js +199 -59
- package/dist/library/int-infer.js.map +1 -1
- package/dist/library/int-infer.test.js +137 -61
- package/dist/library/int-infer.test.js.map +1 -1
- package/dist/library/ir-policy.d.ts +27 -0
- package/dist/library/ir-policy.js +234 -0
- package/dist/library/ir-policy.js.map +1 -0
- package/dist/library/library-cache.js +40 -17
- package/dist/library/library-cache.js.map +1 -1
- package/dist/library/library-cache.test.js +29 -18
- package/dist/library/library-cache.test.js.map +1 -1
- package/dist/library/library-profile.js +68 -13
- package/dist/library/library-profile.js.map +1 -1
- package/dist/library/prepare.js +48 -20
- package/dist/library/prepare.js.map +1 -1
- package/dist/library/semantic-source.js +16 -14
- package/dist/library/semantic-source.js.map +1 -1
- package/dist/library/semantic-source.test.js +9 -14
- package/dist/library/semantic-source.test.js.map +1 -1
- package/dist/library/sidecar-validate.js +53 -12
- package/dist/library/sidecar-validate.js.map +1 -1
- package/dist/library/sidecar.js +85 -24
- package/dist/library/sidecar.js.map +1 -1
- package/dist/library/trap-teaching.js +11 -2
- package/dist/library/trap-teaching.js.map +1 -1
- package/dist/native/cache.js +10 -4
- package/dist/native/cache.js.map +1 -1
- package/dist/native/cli.js +34 -9
- package/dist/native/cli.js.map +1 -1
- package/dist/native/compiler.js +191 -54
- package/dist/native/compiler.js.map +1 -1
- package/dist/native/compiler.test.js +134 -33
- package/dist/native/compiler.test.js.map +1 -1
- package/dist/native/comptime.js +23 -7
- package/dist/native/comptime.js.map +1 -1
- package/dist/native/comptime.test.js +26 -6
- package/dist/native/comptime.test.js.map +1 -1
- package/dist/native/executable-cache.js +77 -27
- package/dist/native/executable-cache.js.map +1 -1
- package/dist/native/executable-cache.test.js +41 -6
- package/dist/native/executable-cache.test.js.map +1 -1
- package/dist/native/file-identity.js +9 -2
- package/dist/native/file-identity.js.map +1 -1
- package/dist/native/file-identity.test.js.map +1 -1
- package/dist/native/library.js +50 -12
- package/dist/native/library.js.map +1 -1
- package/dist/native/prepare.js +121 -34
- package/dist/native/prepare.js.map +1 -1
- package/dist/native/prepare.test.js +22 -6
- package/dist/native/prepare.test.js.map +1 -1
- package/dist/native/runtime-typescript.js +24 -11
- package/dist/native/runtime-typescript.js.map +1 -1
- package/dist/native/runtime-typescript.test.js.map +1 -1
- package/dist/native/sanitizer.js +71 -18
- package/dist/native/sanitizer.js.map +1 -1
- package/dist/native/sanitizer.test.js +78 -20
- package/dist/native/sanitizer.test.js.map +1 -1
- package/dist/native/task.js.map +1 -1
- package/dist/native/task.test.js +7 -2
- package/dist/native/task.test.js.map +1 -1
- package/dist/native/toolchain.js +68 -26
- package/dist/native/toolchain.js.map +1 -1
- package/dist/native/toolchain.test.js +59 -20
- package/dist/native/toolchain.test.js.map +1 -1
- package/dist/startup-cache.d.ts +1 -1
- package/dist/startup-cache.js +1 -1
- package/dist/startup-cache.js.map +1 -1
- package/dist/timing.js.map +1 -1
- package/package.json +20 -20
- package/surface-manifest.json +30 -2
- package/dist/frontend/lowering/lower-builtins.d.ts +0 -601
- package/dist/frontend/lowering/lower-builtins.js +0 -8986
- package/dist/frontend/lowering/lower-builtins.js.map +0 -1
- package/dist/frontend/lowering/lower-containers.d.ts +0 -382
- package/dist/frontend/lowering/lower-containers.js +0 -7344
- package/dist/frontend/lowering/lower-containers.js.map +0 -1
package/dist/frontend/program.js
CHANGED
|
@@ -42,12 +42,12 @@ import { builtinModules } from "node:module";
|
|
|
42
42
|
import { dirname, isAbsolute, resolve } from "node:path";
|
|
43
43
|
import * as ts from "./ts7/adapter.js";
|
|
44
44
|
import { commonJsModuleSyntaxDiag, invalidPackageConfigDiag, strictNullChecksFloorDiag, tscPassthroughDiag, unsupportedDiag, } from "../diagnostics/diagnostic.js";
|
|
45
|
-
import { isNodeModulesPath, nearestInvalidPackageJsonPath, nearestPackageType, nearestPkgJsonPath, projectDtsRuntimeSibling, resolveBareModule, resolveProjectModule, resolveTypeDirective, setProjectPathMappings, setProjectRealm } from "./resolve.js";
|
|
45
|
+
import { isNodeModulesPath, nearestInvalidPackageJsonPath, nearestPackageType, nearestPkgJsonPath, projectDtsRuntimeSibling, resolveBareModule, resolveProjectModule, resolveTypeDirective, setProjectPathMappings, setProjectRealm, } from "./resolve.js";
|
|
46
46
|
import { probeNodeImportRefusal, probeNodeRequireRefusal } from "./npm.js";
|
|
47
|
-
import { isNpmStaticPackage, npmStaticActive, npmStaticFsShadow, npmStaticPackageOfPath, reportNpmStaticOffender, setNpmStaticDeclarationOverloads, setNpmStaticPackages } from "./npm-static.js";
|
|
47
|
+
import { isNpmStaticPackage, npmStaticActive, npmStaticFsShadow, npmStaticPackageOfPath, reportNpmStaticOffender, setNpmStaticDeclarationOverloads, setNpmStaticPackages, } from "./npm-static.js";
|
|
48
48
|
import { isPrunedNpmReexport, planNpmStaticReexports } from "./npm-static-prune.js";
|
|
49
49
|
import { isNpmStaticSubclassArgument } from "./npm-static-subtyping.js";
|
|
50
|
-
import { npmStaticDeclarationReexports, npmStaticRuntimeClassTargets, parseNpmStaticDeclarationOverloads, parseNpmStaticDeclarationProperties } from "./npm-static-declaration-syntax.js";
|
|
50
|
+
import { npmStaticDeclarationReexports, npmStaticRuntimeClassTargets, parseNpmStaticDeclarationOverloads, parseNpmStaticDeclarationProperties, } from "./npm-static-declaration-syntax.js";
|
|
51
51
|
import { provenanceEntryFor, provenancePaths } from "./provenance-registry.js";
|
|
52
52
|
import { cjsLexedExportsOfFile, cjsVisibleNames } from "./cjs-syntax.js";
|
|
53
53
|
import { ambientDtsPath, fallbackDtsPath, isNodeTypesPath, overridesDtsPath, tsgoPath, } from "./dts-paths.js";
|
|
@@ -56,6 +56,8 @@ import { clearWorkspacePackages, isRelativeSpecifier, isWorkspacePackageName, np
|
|
|
56
56
|
import { ADOPTED_OPTIONS, isJsSourceFileName, JS_ANY_OPERATOR_CODES, JS_RELAXED_TSC_CODES, } from "./tsc-codes.js";
|
|
57
57
|
import { trackedFileExists, trackedReadFile, trackedRealpath } from "./input-tracker.js";
|
|
58
58
|
import { forkTargetPaths } from "./fork-target.js";
|
|
59
|
+
import { workerTargetPaths } from "./worker-target.js";
|
|
60
|
+
import { moduleSourceCandidates } from "./module-source-candidates.js";
|
|
59
61
|
import { inferredJsDiagnosticSuppressed } from "./inferred-js-diagnostics.js";
|
|
60
62
|
const BASE_OPTIONS = {
|
|
61
63
|
strict: true,
|
|
@@ -146,7 +148,9 @@ function projectAllowsSyntheticDefaultImports(options) {
|
|
|
146
148
|
moduleKind === ts.ModuleKind.Node20 ||
|
|
147
149
|
moduleKind === ts.ModuleKind.NodeNext ||
|
|
148
150
|
moduleKind === ts.ModuleKind.Preserve;
|
|
149
|
-
return esModuleInterop ||
|
|
151
|
+
return (esModuleInterop ||
|
|
152
|
+
moduleKind === ts.ModuleKind.System ||
|
|
153
|
+
options["moduleResolution"] === ts.ModuleResolutionKind.Bundler);
|
|
150
154
|
}
|
|
151
155
|
/** The project's tsconfig adoption in the 7 world: tsgo's own config parser
|
|
152
156
|
* (extends chains resolved server-side), the ADOPTED_OPTIONS subset taken,
|
|
@@ -182,7 +186,9 @@ function adoptProjectConfig7(host, entryPath) {
|
|
|
182
186
|
const configDir = dirname(configFile);
|
|
183
187
|
const rawBaseUrl = parsed.options["baseUrl"];
|
|
184
188
|
const base = typeof rawBaseUrl === "string"
|
|
185
|
-
?
|
|
189
|
+
? isAbsolute(rawBaseUrl)
|
|
190
|
+
? rawBaseUrl
|
|
191
|
+
: resolve(configDir, rawBaseUrl)
|
|
186
192
|
: configDir;
|
|
187
193
|
const paths = {};
|
|
188
194
|
for (const [key, targets] of Object.entries(rawPaths)) {
|
|
@@ -190,7 +196,7 @@ function adoptProjectConfig7(host, entryPath) {
|
|
|
190
196
|
continue;
|
|
191
197
|
paths[key] = targets
|
|
192
198
|
.filter((target) => typeof target === "string")
|
|
193
|
-
.map((target) => isAbsolute(target) ? target : resolve(base, target));
|
|
199
|
+
.map((target) => (isAbsolute(target) ? target : resolve(base, target)));
|
|
194
200
|
}
|
|
195
201
|
adopted["paths"] = paths;
|
|
196
202
|
}
|
|
@@ -247,7 +253,9 @@ function runtimeReexportTarget(fromFile, specifier) {
|
|
|
247
253
|
function visitNpmStaticDeclarationClosure(services, entryPath, onSource) {
|
|
248
254
|
const seen = new Set();
|
|
249
255
|
const packageJson = nearestPkgJsonPath(entryPath);
|
|
250
|
-
const packageRoot = (packageJson === null ? dirname(entryPath) : dirname(packageJson))
|
|
256
|
+
const packageRoot = (packageJson === null ? dirname(entryPath) : dirname(packageJson))
|
|
257
|
+
.split("\\")
|
|
258
|
+
.join("/");
|
|
251
259
|
const visit = (path) => {
|
|
252
260
|
path = resolve(path);
|
|
253
261
|
const normalized = path.split("\\").join("/");
|
|
@@ -377,20 +385,21 @@ function externalTypeFileClosure7(program, externalTypes) {
|
|
|
377
385
|
* an explicit root, to a fixpoint, so the same TS 7 AST/checker world owns
|
|
378
386
|
* their exports and transitive graph. */
|
|
379
387
|
function createRequireProgramRoots7(program) {
|
|
380
|
-
const known = new Set(program.
|
|
388
|
+
const known = new Set(program.getSourceFileNames().map((name) => tsgoPath(resolve(name))));
|
|
381
389
|
const roots = new Set();
|
|
382
|
-
for (const sf of program.
|
|
390
|
+
for (const sf of program.getImplementationSourceFiles()) {
|
|
383
391
|
if (sf.isDeclarationFile || sf.fileName.endsWith(".json"))
|
|
384
392
|
continue;
|
|
385
393
|
const calls = [];
|
|
386
|
-
|
|
387
|
-
if (
|
|
388
|
-
node.arguments.length !== 1 ||
|
|
394
|
+
for (const node of moduleSourceCandidates(program, sf).calls) {
|
|
395
|
+
if (node.questionDotToken !== undefined ||
|
|
396
|
+
node.arguments.length !== 1 ||
|
|
397
|
+
!ts.isStringLiteralLike(node.arguments[0]) ||
|
|
389
398
|
!ts.isIdentifier(node.expression)) {
|
|
390
|
-
|
|
399
|
+
continue;
|
|
391
400
|
}
|
|
392
401
|
calls.push({ callee: node.expression, spec: node.arguments[0].text });
|
|
393
|
-
}
|
|
402
|
+
}
|
|
394
403
|
// Root discovery only needs the callee's binding. A first-miss lookup
|
|
395
404
|
// otherwise fetches symbols and types for every identifier in the file,
|
|
396
405
|
// including all unreachable bodies in large published packages.
|
|
@@ -403,7 +412,9 @@ function createRequireProgramRoots7(program) {
|
|
|
403
412
|
let target = resolveProjectModule(sf.fileName, spec);
|
|
404
413
|
if (target === null && !spec.startsWith("#")) {
|
|
405
414
|
const npm = resolveNpmImport7(sf.fileName, spec, "require");
|
|
406
|
-
if (npm !== null &&
|
|
415
|
+
if (npm !== null &&
|
|
416
|
+
isNpmStaticPackage(npm.packageName) &&
|
|
417
|
+
isJsSourceFileName(npm.typesFile)) {
|
|
407
418
|
target = npm.typesFile;
|
|
408
419
|
}
|
|
409
420
|
}
|
|
@@ -428,8 +439,10 @@ export function entryPackageFilePredicate(entryPath) {
|
|
|
428
439
|
: entryFile.slice(0, installedAt) + "/node_modules/" + npmPackageNameOf(entryFile) + "/";
|
|
429
440
|
return (file) => {
|
|
430
441
|
const normalized = tsgoPath(file);
|
|
431
|
-
return normalized === entryFile ||
|
|
432
|
-
|
|
442
|
+
return (normalized === entryFile ||
|
|
443
|
+
(prefix !== null &&
|
|
444
|
+
normalized.startsWith(prefix) &&
|
|
445
|
+
!normalized.slice(prefix.length).split("/").includes("node_modules")));
|
|
433
446
|
};
|
|
434
447
|
}
|
|
435
448
|
/** maxNodeModuleJsDepth can omit relative imports within an admitted
|
|
@@ -438,14 +451,17 @@ export function entryPackageFilePredicate(entryPath) {
|
|
|
438
451
|
function entryPackageProgramRoots7(program, entryPath) {
|
|
439
452
|
const belongsToEntry = entryPackageFilePredicate(entryPath);
|
|
440
453
|
const roots = new Set();
|
|
441
|
-
for (const sf of program.
|
|
442
|
-
if (sf.isDeclarationFile ||
|
|
454
|
+
for (const sf of program.getImplementationSourceFiles()) {
|
|
455
|
+
if (sf.isDeclarationFile ||
|
|
456
|
+
(!belongsToEntry(sf.fileName) && npmStaticPackageOfPath(sf.fileName) === null))
|
|
443
457
|
continue;
|
|
444
458
|
for (const specifier of sf.imports) {
|
|
445
459
|
if (!ts.isStringLiteralLike(specifier))
|
|
446
460
|
continue;
|
|
447
461
|
const target = resolveProjectModule(sf.fileName, specifier.text);
|
|
448
|
-
if (target !== null &&
|
|
462
|
+
if (target !== null &&
|
|
463
|
+
(belongsToEntry(target) || npmStaticPackageOfPath(target) !== null) &&
|
|
464
|
+
isJsSourceFileName(target) &&
|
|
449
465
|
program.getSourceFile(target) === undefined)
|
|
450
466
|
roots.add(target);
|
|
451
467
|
}
|
|
@@ -464,7 +480,9 @@ function loadProgram7(host, entryPath, externalTypes = new Map()) {
|
|
|
464
480
|
// not scriptc's fence and drowns real diagnostics in hundreds of
|
|
465
481
|
// .d.ts-internal errors. Fence discipline never depended on it: the
|
|
466
482
|
// lowerer checks provenance and forms at every use site.
|
|
467
|
-
let options = nodeTypes
|
|
483
|
+
let options = nodeTypes
|
|
484
|
+
? { ...config.options, skipLibCheck: true }
|
|
485
|
+
: { ...config.options };
|
|
468
486
|
// --npm-static: opted-in packages' shipped JS must be TYPE-INCLUDED (not
|
|
469
487
|
// just resolved) — without maxNodeModuleJsDepth, node_modules JS types as
|
|
470
488
|
// an implicit-any module (TS7016) and nothing infers. Only flagged
|
|
@@ -481,6 +499,8 @@ function loadProgram7(host, entryPath, externalTypes = new Map()) {
|
|
|
481
499
|
if (provenance !== null || externalTypes.size > 0) {
|
|
482
500
|
const paths = {
|
|
483
501
|
...configuredPaths,
|
|
502
|
+
// Keep an index-signature source for native lowering when provenance is absent.
|
|
503
|
+
// oxlint-disable-next-line unicorn/no-useless-fallback-in-spread
|
|
484
504
|
...(provenance ?? {}),
|
|
485
505
|
};
|
|
486
506
|
for (const [specifier, declarationPath] of externalTypes) {
|
|
@@ -496,7 +516,8 @@ function loadProgram7(host, entryPath, externalTypes = new Map()) {
|
|
|
496
516
|
const candidates = [
|
|
497
517
|
...entryPackageProgramRoots7(program, entryPath),
|
|
498
518
|
...createRequireProgramRoots7(program),
|
|
499
|
-
...forkTargetPaths(program, program.
|
|
519
|
+
...forkTargetPaths(program, program.getImplementationSourceFiles()),
|
|
520
|
+
...workerTargetPaths(program, program.getImplementationSourceFiles()),
|
|
500
521
|
];
|
|
501
522
|
const extraRoots = candidates.filter((root, index) => !programRoots.includes(root) && candidates.indexOf(root) === index);
|
|
502
523
|
if (extraRoots.length === 0)
|
|
@@ -584,7 +605,9 @@ export function loadProgram(entryPath, services, opts) {
|
|
|
584
605
|
const fields = properties.get(className);
|
|
585
606
|
if (methods === undefined && fields === undefined)
|
|
586
607
|
continue;
|
|
587
|
-
const target = specifier === null
|
|
608
|
+
const target = specifier === null
|
|
609
|
+
? runtime.typesFile
|
|
610
|
+
: runtimeReexportTarget(runtime.typesFile, specifier);
|
|
588
611
|
if (target === null)
|
|
589
612
|
continue;
|
|
590
613
|
const targetPackage = npmPackageNameOf(target);
|
|
@@ -610,17 +633,23 @@ export function loadProgram(entryPath, services, opts) {
|
|
|
610
633
|
projectionOwners.set(projectionKey, className);
|
|
611
634
|
// The safe declaration grammar can name only its own class. Bind
|
|
612
635
|
// that type to the actual runtime class after a named ESM alias.
|
|
613
|
-
const renameSelf = (type) => type
|
|
636
|
+
const renameSelf = (type) => type
|
|
637
|
+
.split(/([\s[\]<>()|,]+)/)
|
|
638
|
+
.map((name) => (name === className ? localName : name))
|
|
639
|
+
.join("");
|
|
614
640
|
if (methods !== undefined) {
|
|
615
641
|
const byClass = new Map(declarationOverloads.get(targetNorm) ?? []);
|
|
616
|
-
byClass.set(localName, new Map([...methods].map(([name, signatures]) => [
|
|
642
|
+
byClass.set(localName, new Map([...methods].map(([name, signatures]) => [
|
|
643
|
+
name,
|
|
644
|
+
signatures.map((signature) => ({
|
|
617
645
|
parameters: signature.parameters.map((parameter) => ({
|
|
618
646
|
name: parameter.name,
|
|
619
647
|
type: renameSelf(parameter.type),
|
|
620
648
|
optional: parameter.optional,
|
|
621
649
|
})),
|
|
622
650
|
returnType: renameSelf(signature.returnType),
|
|
623
|
-
}))
|
|
651
|
+
})),
|
|
652
|
+
])));
|
|
624
653
|
declarationOverloads.set(targetNorm, byClass);
|
|
625
654
|
}
|
|
626
655
|
if (fields !== undefined) {
|
|
@@ -668,16 +697,18 @@ export function loadProgram(entryPath, services, opts) {
|
|
|
668
697
|
return {
|
|
669
698
|
...load,
|
|
670
699
|
services,
|
|
671
|
-
projectWorld: npmStaticPackages.length === 0
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
700
|
+
projectWorld: npmStaticPackages.length === 0
|
|
701
|
+
? load.projectWorld
|
|
702
|
+
: () => {
|
|
703
|
+
// Check authored code against the package's published declarations.
|
|
704
|
+
// Runtime bodies still lower from JavaScript in the original world;
|
|
705
|
+
// inference there must not manufacture errors in valid user code.
|
|
706
|
+
if (!authoredLoad) {
|
|
707
|
+
authoredHost = services.createProgramHost({ cwd: dirname(entryPath) });
|
|
708
|
+
authoredLoad = loadProgram7(authoredHost, entryPath, externalTypes);
|
|
709
|
+
}
|
|
710
|
+
return authoredLoad.projectWorld();
|
|
711
|
+
},
|
|
681
712
|
dispose: () => {
|
|
682
713
|
try {
|
|
683
714
|
authoredLoad?.disposeAll();
|
|
@@ -750,8 +781,10 @@ function suppressedJsStrictness7(d) {
|
|
|
750
781
|
* extra arguments) is not a module edge and fences at its use site. */
|
|
751
782
|
function requireSpecOf7(node) {
|
|
752
783
|
let value = node;
|
|
753
|
-
while (ts.isParenthesizedExpression(value) ||
|
|
754
|
-
ts.
|
|
784
|
+
while (ts.isParenthesizedExpression(value) ||
|
|
785
|
+
ts.isAsExpression(value) ||
|
|
786
|
+
ts.isTypeAssertion(value) ||
|
|
787
|
+
ts.isNonNullExpression(value)) {
|
|
755
788
|
value = value.expression;
|
|
756
789
|
}
|
|
757
790
|
if (!ts.isCallExpression(value))
|
|
@@ -774,7 +807,8 @@ function isRequireStatement7(stmt) {
|
|
|
774
807
|
if (!ts.isVariableStatement(stmt))
|
|
775
808
|
return false;
|
|
776
809
|
const decls = stmt.declarationList.declarations;
|
|
777
|
-
return decls.length > 0 &&
|
|
810
|
+
return (decls.length > 0 &&
|
|
811
|
+
decls.every((d) => d.initializer !== undefined && requireSpecOf7(d.initializer) !== null));
|
|
778
812
|
}
|
|
779
813
|
/** The require() occurrences of one top-level statement: the declaration
|
|
780
814
|
* forms and the bare side-effect call. Empty for everything else. */
|
|
@@ -850,7 +884,7 @@ function pureCjsExport7(program, stmt) {
|
|
|
850
884
|
receiver = receiver.expression;
|
|
851
885
|
return ts.isIdentifier(receiver) && !sourceBinding7(program, receiver);
|
|
852
886
|
}
|
|
853
|
-
return ts.isIdentifier(receiver) && receiver.text === "exports" && !sourceBinding7(program, receiver);
|
|
887
|
+
return (ts.isIdentifier(receiver) && receiver.text === "exports" && !sourceBinding7(program, receiver));
|
|
854
888
|
};
|
|
855
889
|
if (cjs.kind === "member") {
|
|
856
890
|
if (!plainMember(cjs.expr.left))
|
|
@@ -870,8 +904,10 @@ function pureCjsExport7(program, stmt) {
|
|
|
870
904
|
}
|
|
871
905
|
if (ts.isVoidExpression(value) && ts.isNumericLiteral(value.expression))
|
|
872
906
|
return true;
|
|
873
|
-
if (ts.isStringLiteralLike(value) ||
|
|
874
|
-
|
|
907
|
+
if (ts.isStringLiteralLike(value) ||
|
|
908
|
+
ts.isNumericLiteral(value) ||
|
|
909
|
+
value.kind === ts.SyntaxKind.TrueKeyword ||
|
|
910
|
+
value.kind === ts.SyntaxKind.FalseKeyword ||
|
|
875
911
|
value.kind === ts.SyntaxKind.NullKeyword)
|
|
876
912
|
return true;
|
|
877
913
|
if (!ts.isIdentifier(value))
|
|
@@ -880,19 +916,28 @@ function pureCjsExport7(program, stmt) {
|
|
|
880
916
|
return true;
|
|
881
917
|
const checker = program.getTypeChecker();
|
|
882
918
|
const symbol = checker.getSymbolAtLocation(value);
|
|
883
|
-
return symbol !== undefined &&
|
|
919
|
+
return (symbol !== undefined &&
|
|
920
|
+
checker
|
|
921
|
+
.declarationsOf(symbol)
|
|
922
|
+
.some((decl) => ts.isFunctionDeclaration(decl) && decl.parent === stmt.parent));
|
|
884
923
|
}
|
|
885
924
|
function sourceBinding7(program, ident) {
|
|
886
925
|
const checker = program.getTypeChecker();
|
|
887
926
|
const symbol = checker.getSymbolAtLocation(ident);
|
|
888
|
-
return symbol !== undefined &&
|
|
927
|
+
return (symbol !== undefined &&
|
|
928
|
+
checker
|
|
929
|
+
.declarationsOf(symbol)
|
|
930
|
+
.some((decl) => !decl.getSourceFile().isDeclarationFile && !ts.isSourceFile(decl)));
|
|
889
931
|
}
|
|
890
932
|
function purePrefixDecl7(decl) {
|
|
891
933
|
const init = decl.initializer;
|
|
892
|
-
return init === undefined ||
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
init
|
|
934
|
+
return (init === undefined ||
|
|
935
|
+
requireSpecOf7(init) !== null ||
|
|
936
|
+
ts.isStringLiteralLike(init) ||
|
|
937
|
+
ts.isNumericLiteral(init) ||
|
|
938
|
+
init.kind === ts.SyntaxKind.TrueKeyword ||
|
|
939
|
+
init.kind === ts.SyntaxKind.FalseKeyword ||
|
|
940
|
+
init.kind === ts.SyntaxKind.NullKeyword);
|
|
896
941
|
}
|
|
897
942
|
/** True for top-level statements that cannot run user code: directives,
|
|
898
943
|
* empty statements, hoisted declarations, require statements themselves,
|
|
@@ -913,7 +958,9 @@ function purePrefixStmt7(program, s) {
|
|
|
913
958
|
let receiver = call.arguments[0];
|
|
914
959
|
if (ts.isPropertyAccessExpression(receiver))
|
|
915
960
|
receiver = receiver.expression;
|
|
916
|
-
if (!sourceBinding7(program, object) &&
|
|
961
|
+
if (!sourceBinding7(program, object) &&
|
|
962
|
+
ts.isIdentifier(receiver) &&
|
|
963
|
+
!sourceBinding7(program, receiver))
|
|
917
964
|
return true;
|
|
918
965
|
}
|
|
919
966
|
if (pureCjsExport7(program, s))
|
|
@@ -1065,7 +1112,7 @@ function isCreateRequireImport7(program, ident) {
|
|
|
1065
1112
|
if (targetDecl !== undefined && targetDecl.getSourceFile().isDeclarationFile) {
|
|
1066
1113
|
for (let p = targetDecl.parent; p !== undefined && !ts.isSourceFile(p); p = p.parent) {
|
|
1067
1114
|
if (ts.isModuleDeclaration(p) && ts.isStringLiteral(p.name)) {
|
|
1068
|
-
return canonicalBuiltinModule(p.name.text) === "module" && target.name === "createRequire";
|
|
1115
|
+
return (canonicalBuiltinModule(p.name.text) === "module" && target.name === "createRequire");
|
|
1069
1116
|
}
|
|
1070
1117
|
}
|
|
1071
1118
|
}
|
|
@@ -1079,15 +1126,18 @@ export function isCreateRequireBinding7(program, callee) {
|
|
|
1079
1126
|
const checker = program.getTypeChecker();
|
|
1080
1127
|
const symbol = checker.getSymbolAtLocation(callee);
|
|
1081
1128
|
const decl = symbol
|
|
1082
|
-
? checker
|
|
1129
|
+
? checker
|
|
1130
|
+
.declarationsOf(symbol)
|
|
1131
|
+
.find((d) => ts.isVariableDeclaration(d))
|
|
1083
1132
|
: undefined;
|
|
1084
1133
|
if (decl === undefined ||
|
|
1085
1134
|
decl.initializer === undefined ||
|
|
1086
1135
|
!ts.isVariableDeclarationList(decl.parent)) {
|
|
1087
1136
|
return false;
|
|
1088
1137
|
}
|
|
1089
|
-
return isCreateRequireBaseCall7(program, decl.initializer) &&
|
|
1090
|
-
|
|
1138
|
+
return (isCreateRequireBaseCall7(program, decl.initializer) &&
|
|
1139
|
+
((decl.parent.flags & ts.NodeFlags.Const) !== 0 ||
|
|
1140
|
+
stableCreateRequireBindingReason7(program, decl) === null));
|
|
1091
1141
|
}
|
|
1092
1142
|
/** Only literal calls and literal resolution queries can erase the loader
|
|
1093
1143
|
* value. In particular, assignments, exported aliases, shorthand properties,
|
|
@@ -1096,14 +1146,23 @@ function staticCreateRequireUse7(expr) {
|
|
|
1096
1146
|
let use = expr;
|
|
1097
1147
|
while (ts.isParenthesizedExpression(use.parent))
|
|
1098
1148
|
use = use.parent;
|
|
1099
|
-
if (ts.isPropertyAccessExpression(use.parent) &&
|
|
1149
|
+
if (ts.isPropertyAccessExpression(use.parent) &&
|
|
1150
|
+
use.parent.expression === use &&
|
|
1151
|
+
use.parent.name.text === "resolve" &&
|
|
1152
|
+
!use.parent.questionDotToken) {
|
|
1100
1153
|
use = use.parent;
|
|
1101
|
-
if (ts.isPropertyAccessExpression(use.parent) &&
|
|
1154
|
+
if (ts.isPropertyAccessExpression(use.parent) &&
|
|
1155
|
+
use.parent.expression === use &&
|
|
1156
|
+
use.parent.name.text === "paths" &&
|
|
1157
|
+
!use.parent.questionDotToken)
|
|
1102
1158
|
use = use.parent;
|
|
1103
1159
|
}
|
|
1104
1160
|
const call = use.parent;
|
|
1105
|
-
return ts.isCallExpression(call) &&
|
|
1106
|
-
call.
|
|
1161
|
+
return (ts.isCallExpression(call) &&
|
|
1162
|
+
call.expression === use &&
|
|
1163
|
+
!call.questionDotToken &&
|
|
1164
|
+
call.arguments.length === 1 &&
|
|
1165
|
+
ts.isStringLiteralLike(call.arguments[0]));
|
|
1107
1166
|
}
|
|
1108
1167
|
function stableCreateRequireBindingReason7(program, decl) {
|
|
1109
1168
|
const cache = program.analysis.createRequireReasons;
|
|
@@ -1111,7 +1170,9 @@ function stableCreateRequireBindingReason7(program, decl) {
|
|
|
1111
1170
|
return cache.get(decl);
|
|
1112
1171
|
const check = () => {
|
|
1113
1172
|
const stmt = decl.parent?.parent;
|
|
1114
|
-
if (!ts.isIdentifier(decl.name) ||
|
|
1173
|
+
if (!ts.isIdentifier(decl.name) ||
|
|
1174
|
+
!ts.isVariableStatement(stmt) ||
|
|
1175
|
+
!ts.isSourceFile(stmt.parent)) {
|
|
1115
1176
|
return "its mutable createRequire binding is outside the module's top level";
|
|
1116
1177
|
}
|
|
1117
1178
|
const checker = program.getTypeChecker();
|
|
@@ -1189,19 +1250,29 @@ function npmStaticModuleImportReason7(program, stmt) {
|
|
|
1189
1250
|
let reason = null;
|
|
1190
1251
|
const checkUse = (expr) => {
|
|
1191
1252
|
if (!staticCreateRequireUse7(expr)) {
|
|
1192
|
-
reason =
|
|
1253
|
+
reason =
|
|
1254
|
+
"its createRequire result escapes or is used with a computed specifier (static requires need literal specifiers)";
|
|
1193
1255
|
}
|
|
1194
1256
|
};
|
|
1195
1257
|
ts.walkPreorder(sf, (node) => {
|
|
1196
|
-
if (reason ||
|
|
1258
|
+
if (reason ||
|
|
1259
|
+
!ts.isIdentifier(node) ||
|
|
1260
|
+
node.text !== specifier.name.text ||
|
|
1261
|
+
node === specifier.name ||
|
|
1262
|
+
checker.getSymbolAtLocation(node) !== imported)
|
|
1197
1263
|
return;
|
|
1198
1264
|
const call = node.parent;
|
|
1199
|
-
if (!ts.isCallExpression(call) ||
|
|
1200
|
-
|
|
1265
|
+
if (!ts.isCallExpression(call) ||
|
|
1266
|
+
call.expression !== node ||
|
|
1267
|
+
!isCreateRequireBaseCall7(program, call)) {
|
|
1268
|
+
reason =
|
|
1269
|
+
"its createRequire import is used outside a supported call based on the current file";
|
|
1201
1270
|
return;
|
|
1202
1271
|
}
|
|
1203
1272
|
const decl = call.parent;
|
|
1204
|
-
if (ts.isVariableDeclaration(decl) &&
|
|
1273
|
+
if (ts.isVariableDeclaration(decl) &&
|
|
1274
|
+
decl.initializer === call &&
|
|
1275
|
+
ts.isIdentifier(decl.name)) {
|
|
1205
1276
|
if ((ts.getCombinedModifierFlags(decl) & ts.ModifierFlags.Export) !== 0) {
|
|
1206
1277
|
reason = "its createRequire result escapes through an exported binding";
|
|
1207
1278
|
return;
|
|
@@ -1214,7 +1285,10 @@ function npmStaticModuleImportReason7(program, stmt) {
|
|
|
1214
1285
|
const name = decl.name.text;
|
|
1215
1286
|
checker.prefetchSymbolNodesExact(identifierOccurrences7(sf, name));
|
|
1216
1287
|
ts.walkPreorder(sf, (ref) => {
|
|
1217
|
-
if (ts.isIdentifier(ref) &&
|
|
1288
|
+
if (ts.isIdentifier(ref) &&
|
|
1289
|
+
ref.text === name &&
|
|
1290
|
+
ref !== decl.name &&
|
|
1291
|
+
checker.getSymbolAtLocation(ref) === sym)
|
|
1218
1292
|
checkUse(ref);
|
|
1219
1293
|
});
|
|
1220
1294
|
}
|
|
@@ -1242,7 +1316,7 @@ function requireCallBindingKind7(program, node) {
|
|
|
1242
1316
|
if (symbol === undefined)
|
|
1243
1317
|
return "ambient";
|
|
1244
1318
|
const decls = checker.declarationsOf(symbol);
|
|
1245
|
-
if (decls.
|
|
1319
|
+
if (decls.every((d) => d.getSourceFile().isDeclarationFile))
|
|
1246
1320
|
return "ambient";
|
|
1247
1321
|
return isCreateRequireBinding7(program, call.expression) ? "createRequire" : "source";
|
|
1248
1322
|
}
|
|
@@ -1281,9 +1355,7 @@ function nodeEsmSyntaxMarker7(sf) {
|
|
|
1281
1355
|
for (const stmt of sf.statements) {
|
|
1282
1356
|
if (ts.isImportDeclaration(stmt) && !erasedTypeOnlyImport(stmt))
|
|
1283
1357
|
return stmt;
|
|
1284
|
-
if (ts.isExportDeclaration(stmt) &&
|
|
1285
|
-
!stmt.isTypeOnly &&
|
|
1286
|
-
!erasedTypeOnlyReexport(stmt)) {
|
|
1358
|
+
if (ts.isExportDeclaration(stmt) && !stmt.isTypeOnly && !erasedTypeOnlyReexport(stmt)) {
|
|
1287
1359
|
return stmt;
|
|
1288
1360
|
}
|
|
1289
1361
|
if (ts.isExportAssignment(stmt))
|
|
@@ -1300,14 +1372,15 @@ function nodeEsmSyntaxMarker7(sf) {
|
|
|
1300
1372
|
return hit;
|
|
1301
1373
|
}
|
|
1302
1374
|
}
|
|
1303
|
-
if (ts.isClassDeclaration(stmt) &&
|
|
1375
|
+
if (ts.isClassDeclaration(stmt) &&
|
|
1376
|
+
stmt.name !== undefined &&
|
|
1377
|
+
CJS_WRAPPER_NAMES.has(stmt.name.text)) {
|
|
1304
1378
|
return stmt.name;
|
|
1305
1379
|
}
|
|
1306
1380
|
}
|
|
1307
1381
|
let found = null;
|
|
1308
1382
|
ts.walkPreorder(sf, (node) => {
|
|
1309
|
-
if (ts.isMetaProperty(node) &&
|
|
1310
|
-
node.keywordToken === ts.SyntaxKind.ImportKeyword) {
|
|
1383
|
+
if (ts.isMetaProperty(node) && node.keywordToken === ts.SyntaxKind.ImportKeyword) {
|
|
1311
1384
|
found = node;
|
|
1312
1385
|
return "stop";
|
|
1313
1386
|
}
|
|
@@ -1341,11 +1414,12 @@ function isNodeEsmFile7(sf, program) {
|
|
|
1341
1414
|
}
|
|
1342
1415
|
else {
|
|
1343
1416
|
const packageType = nearestPackageType(sf.fileName);
|
|
1344
|
-
result =
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1417
|
+
result =
|
|
1418
|
+
packageType === "module"
|
|
1419
|
+
? true
|
|
1420
|
+
: packageType === "commonjs"
|
|
1421
|
+
? false
|
|
1422
|
+
: nodeEsmSyntaxMarker7(sf) !== null;
|
|
1349
1423
|
}
|
|
1350
1424
|
program?.analysis.nodeEsmFiles.set(sf, result);
|
|
1351
1425
|
return result;
|
|
@@ -1468,7 +1542,9 @@ function nsBindingUsesAreBareStatements7(program, sf, nsName) {
|
|
|
1468
1542
|
node !== nsName &&
|
|
1469
1543
|
node.text === nsName.text &&
|
|
1470
1544
|
checker.getSymbolAtLocation(node) === bindingSym) {
|
|
1471
|
-
if (!(node.parent !== undefined &&
|
|
1545
|
+
if (!(node.parent !== undefined &&
|
|
1546
|
+
ts.isExpressionStatement(node.parent) &&
|
|
1547
|
+
node.parent.expression === node)) {
|
|
1472
1548
|
bareOnly = false;
|
|
1473
1549
|
return;
|
|
1474
1550
|
}
|
|
@@ -1641,7 +1717,10 @@ function nonInertTopLevel7(program, sf) {
|
|
|
1641
1717
|
}
|
|
1642
1718
|
if (ts.isClassExpression(e))
|
|
1643
1719
|
return inertClass(e) === null;
|
|
1644
|
-
if (ts.isParenthesizedExpression(e) ||
|
|
1720
|
+
if (ts.isParenthesizedExpression(e) ||
|
|
1721
|
+
ts.isAsExpression(e) ||
|
|
1722
|
+
ts.isSatisfiesExpression(e) ||
|
|
1723
|
+
ts.isNonNullExpression(e)) {
|
|
1645
1724
|
return inert(e.expression);
|
|
1646
1725
|
}
|
|
1647
1726
|
if (ts.isPropertyAccessExpression(e))
|
|
@@ -1708,7 +1787,9 @@ function nonInertTopLevel7(program, sf) {
|
|
|
1708
1787
|
ts.isInterfaceDeclaration(stmt) ||
|
|
1709
1788
|
ts.isTypeAliasDeclaration(stmt) ||
|
|
1710
1789
|
ts.isEmptyStatement(stmt) ||
|
|
1711
|
-
(ts.getCombinedModifierFlags(stmt) &
|
|
1790
|
+
(ts.getCombinedModifierFlags(stmt) &
|
|
1791
|
+
ts.ModifierFlags.Ambient) !==
|
|
1792
|
+
0) {
|
|
1712
1793
|
continue;
|
|
1713
1794
|
}
|
|
1714
1795
|
if (ts.isEnumDeclaration(stmt)) {
|
|
@@ -1952,7 +2033,8 @@ function resolveImport7(program, from, specifier, resolutionKind = "import") {
|
|
|
1952
2033
|
return program.getSourceFile(resolved) ?? null;
|
|
1953
2034
|
const npm = resolveNpmImport7(from.fileName, specifier, resolutionKind);
|
|
1954
2035
|
return npm && isNpmStaticPackage(npm.packageName)
|
|
1955
|
-
? npmStaticProgramDep(program, npm.packageName, npm.typesFile)
|
|
2036
|
+
? npmStaticProgramDep(program, npm.packageName, npm.typesFile)
|
|
2037
|
+
: null;
|
|
1956
2038
|
}
|
|
1957
2039
|
/** An import that resolves into node_modules: the package's shipped .d.ts
|
|
1958
2040
|
* is the type surface, and the package's shipped JS runs in the dynamic
|
|
@@ -2095,26 +2177,11 @@ function preflight7(load) {
|
|
|
2095
2177
|
if (r !== null && r.workspaceDir !== undefined)
|
|
2096
2178
|
registerWorkspacePackage(r.packageName, r.workspaceDir);
|
|
2097
2179
|
};
|
|
2098
|
-
for (const sf of program.
|
|
2180
|
+
for (const sf of program.getImplementationSourceFiles()) {
|
|
2099
2181
|
if (sf.isDeclarationFile || sf.fileName.endsWith(".json"))
|
|
2100
2182
|
continue;
|
|
2101
|
-
|
|
2102
|
-
|
|
2103
|
-
n.moduleSpecifier !== undefined &&
|
|
2104
|
-
ts.isStringLiteral(n.moduleSpecifier)) {
|
|
2105
|
-
probe(sf.fileName, n.moduleSpecifier.text);
|
|
2106
|
-
return "skip";
|
|
2107
|
-
}
|
|
2108
|
-
if (ts.isCallExpression(n)) {
|
|
2109
|
-
const arg = n.arguments[0];
|
|
2110
|
-
const isImportCall = n.expression.kind === ts.SyntaxKind.ImportKeyword;
|
|
2111
|
-
const isRequireCall = ts.isIdentifier(n.expression) && n.expression.text === "require";
|
|
2112
|
-
if ((isImportCall || isRequireCall) && arg !== undefined && ts.isStringLiteralLike(arg)) {
|
|
2113
|
-
probe(sf.fileName, arg.text);
|
|
2114
|
-
}
|
|
2115
|
-
}
|
|
2116
|
-
return undefined;
|
|
2117
|
-
});
|
|
2183
|
+
for (const specifier of moduleSourceCandidates(program, sf).specifiers)
|
|
2184
|
+
probe(sf.fileName, specifier);
|
|
2118
2185
|
}
|
|
2119
2186
|
}
|
|
2120
2187
|
const toPassthrough = (d) => {
|
|
@@ -2244,7 +2311,9 @@ function preflight7(load) {
|
|
|
2244
2311
|
if (!sf)
|
|
2245
2312
|
return false;
|
|
2246
2313
|
const spec = sf.text.slice(d.pos, d.end).replace(/^['"]|['"]$/g, "");
|
|
2247
|
-
const prefix = spec.startsWith("@")
|
|
2314
|
+
const prefix = spec.startsWith("@")
|
|
2315
|
+
? spec.split("/").slice(0, 2).join("/")
|
|
2316
|
+
: spec.split("/")[0];
|
|
2248
2317
|
return isWorkspacePackageName(prefix);
|
|
2249
2318
|
};
|
|
2250
2319
|
const errorsOf = (p) => {
|
|
@@ -2296,14 +2365,21 @@ function preflight7(load) {
|
|
|
2296
2365
|
// reachable bodies are added by lowering's worklists.
|
|
2297
2366
|
const ambient = ambientDtsPath();
|
|
2298
2367
|
const programFiles = program
|
|
2299
|
-
.
|
|
2368
|
+
.getImplementationSourceFiles()
|
|
2300
2369
|
.filter((sf) => sf.fileName !== ambient &&
|
|
2301
2370
|
!sf.isDeclarationFile &&
|
|
2302
2371
|
!sf.fileName.endsWith(".json") &&
|
|
2303
|
-
(!isNodeModulesPath(sf.fileName) ||
|
|
2372
|
+
(!isNodeModulesPath(sf.fileName) ||
|
|
2373
|
+
entryPackageFile(sf.fileName) ||
|
|
2374
|
+
npmStaticPackageOfPath(sf.fileName) !== null) &&
|
|
2304
2375
|
!islandJsFile(sf.fileName));
|
|
2305
2376
|
const userFiles = npmStaticActive()
|
|
2306
|
-
? planNpmStaticReexports(program, entry, programFiles, [
|
|
2377
|
+
? planNpmStaticReexports(program, entry, programFiles, [
|
|
2378
|
+
...createRequireProgramRoots7(program),
|
|
2379
|
+
...forkTargetPaths(program, program.getImplementationSourceFiles()),
|
|
2380
|
+
...workerTargetPaths(program, program.getImplementationSourceFiles()),
|
|
2381
|
+
], (sf, spec, resolutionKind) => resolveImport7(program, sf, spec, resolutionKind) ??
|
|
2382
|
+
npmStaticDepSf7(program, sf, spec, resolutionKind))
|
|
2307
2383
|
: programFiles;
|
|
2308
2384
|
program.getTypeChecker().prefetchSourceFileStructures(userFiles);
|
|
2309
2385
|
// node_modules JS that no --npm-static opt-in claims is NOT program
|
|
@@ -2398,7 +2474,9 @@ function preflight7(load) {
|
|
|
2398
2474
|
// lowers to nothing.
|
|
2399
2475
|
if (ts.isExternalModuleReference(stmt.moduleReference) && !stmt.isTypeOnly) {
|
|
2400
2476
|
const spec = stmt.moduleReference.expression;
|
|
2401
|
-
if (spec !== undefined &&
|
|
2477
|
+
if (spec !== undefined &&
|
|
2478
|
+
ts.isStringLiteralLike(spec) &&
|
|
2479
|
+
load.externalTypes.has(spec.text)) {
|
|
2402
2480
|
diags.push(externalHostModuleDiag7(spec.text, stmt));
|
|
2403
2481
|
}
|
|
2404
2482
|
else {
|
|
@@ -2634,10 +2712,13 @@ function preflight7(load) {
|
|
|
2634
2712
|
// SC1012 fence. The callable module objects (assert, events, test)
|
|
2635
2713
|
// stay allowed everywhere. The process default is the global process
|
|
2636
2714
|
// alias, including when combined with named builtin imports.
|
|
2637
|
-
const syntheticDefaultsOn = program.getCompilerOptions()
|
|
2638
|
-
|
|
2715
|
+
const syntheticDefaultsOn = program.getCompilerOptions()
|
|
2716
|
+
.allowSyntheticDefaultImports === true;
|
|
2717
|
+
const defaultOk = spec === "process" ||
|
|
2718
|
+
spec === "node:process" ||
|
|
2639
2719
|
builtinDefaultImportModule(spec) !== null ||
|
|
2640
|
-
((isJsSourceFileName(sf.fileName) || syntheticDefaultsOn) &&
|
|
2720
|
+
((isJsSourceFileName(sf.fileName) || syntheticDefaultsOn) &&
|
|
2721
|
+
canonicalBuiltinModule(spec) !== null);
|
|
2641
2722
|
if (clause.name && !isJson && dep === null && !defaultOk) {
|
|
2642
2723
|
diags.push(unsupportedDiag("SC1012", locOf7(clause.name)));
|
|
2643
2724
|
}
|
|
@@ -2714,7 +2795,10 @@ function preflight7(load) {
|
|
|
2714
2795
|
continue;
|
|
2715
2796
|
}
|
|
2716
2797
|
if (req.decl && ts.isObjectBindingPattern(req.decl.name)) {
|
|
2717
|
-
const bad = req.decl.name.elements.find((e) => e.name === undefined ||
|
|
2798
|
+
const bad = req.decl.name.elements.find((e) => e.name === undefined ||
|
|
2799
|
+
!ts.isIdentifier(e.name) ||
|
|
2800
|
+
e.initializer !== undefined ||
|
|
2801
|
+
e.dotDotDotToken !== undefined);
|
|
2718
2802
|
if (bad) {
|
|
2719
2803
|
diags.push(unsupportedDiag("SC1012", loc, "require() destructuring with defaults, rest, or nested patterns"));
|
|
2720
2804
|
continue;
|
|
@@ -2728,7 +2812,9 @@ function preflight7(load) {
|
|
|
2728
2812
|
// form above (bundle dists require their workspace siblings —
|
|
2729
2813
|
// the same resolution, the same offender discipline on a
|
|
2730
2814
|
// miss).
|
|
2731
|
-
const npmReq = !req.spec.startsWith("#")
|
|
2815
|
+
const npmReq = !req.spec.startsWith("#")
|
|
2816
|
+
? resolveNpmImport7(sf.fileName, req.spec, "require")
|
|
2817
|
+
: null;
|
|
2732
2818
|
if (npmReq !== null && isNpmStaticPackage(npmReq.packageName)) {
|
|
2733
2819
|
dep = npmStaticProgramDep(program, npmReq.packageName, npmReq.typesFile);
|
|
2734
2820
|
if (dep === null)
|
|
@@ -2783,7 +2869,9 @@ function preflight7(load) {
|
|
|
2783
2869
|
}
|
|
2784
2870
|
}
|
|
2785
2871
|
const nestedBareRequires = nestedBareRequiresOf7(sf);
|
|
2786
|
-
program
|
|
2872
|
+
program
|
|
2873
|
+
.getTypeChecker()
|
|
2874
|
+
.prefetchSymbolNodesExact(nestedBareRequires.flatMap((call) => ts.isIdentifier(call.expression) ? [call.expression] : []));
|
|
2787
2875
|
for (const call of nestedBareRequires) {
|
|
2788
2876
|
const spec = requireSpecOf7(call);
|
|
2789
2877
|
const loc = { file: sf.fileName, start: call.getStart(sf), end: call.getEnd() };
|
|
@@ -2813,7 +2901,9 @@ function preflight7(load) {
|
|
|
2813
2901
|
if (!isRelativeSpecifier(spec)) {
|
|
2814
2902
|
// --npm-static: opted-in packages ride the program-module edge
|
|
2815
2903
|
// (the statement-level require branch above).
|
|
2816
|
-
const npmReq = !spec.startsWith("#")
|
|
2904
|
+
const npmReq = !spec.startsWith("#")
|
|
2905
|
+
? resolveNpmImport7(sf.fileName, spec, "require")
|
|
2906
|
+
: null;
|
|
2817
2907
|
if (npmReq !== null && isNpmStaticPackage(npmReq.packageName)) {
|
|
2818
2908
|
const nDep = npmStaticProgramDep(program, npmReq.packageName, npmReq.typesFile);
|
|
2819
2909
|
if (nDep !== null)
|
|
@@ -2962,14 +3052,16 @@ function cjsNamedImportLinkCheck(program, entry, moduleOrder, diags) {
|
|
|
2962
3052
|
// Reexport targets union in only when they resolve to CommonJS program
|
|
2963
3053
|
// files (Node's cjsPreparseModuleExports rule).
|
|
2964
3054
|
const resolveCjsDep = (from, spec) => {
|
|
2965
|
-
const dep = resolveImport7(program, from, spec, "require") ??
|
|
3055
|
+
const dep = resolveImport7(program, from, spec, "require") ??
|
|
3056
|
+
npmStaticDepSf7(program, from, spec, "require");
|
|
2966
3057
|
return dep !== null && isCjsJsFile7(dep, program) ? dep : null;
|
|
2967
3058
|
};
|
|
2968
3059
|
const visible = (dep, name) =>
|
|
2969
3060
|
// `default` is the module.exports binding itself — always provided.
|
|
2970
3061
|
// The program already owns native source ASTs; reuse them without
|
|
2971
3062
|
// starting another syntax session or reparsing their source text.
|
|
2972
|
-
name === "default" ||
|
|
3063
|
+
name === "default" ||
|
|
3064
|
+
cjsVisibleNames(dep, cjsLexedExportsOfFile, resolveCjsDep, lexMemo).has(name);
|
|
2973
3065
|
/** The statement's resolved LOCAL CommonJS dependency, when it is an
|
|
2974
3066
|
* import/re-export from one. */
|
|
2975
3067
|
const cjsDepOf = (sf, spec) => {
|
|
@@ -2982,7 +3074,9 @@ function cjsNamedImportLinkCheck(program, entry, moduleOrder, diags) {
|
|
|
2982
3074
|
const firstInvisibleOf = (sf) => {
|
|
2983
3075
|
const entries = [];
|
|
2984
3076
|
for (const stmt of sf.statements) {
|
|
2985
|
-
if (!ts.isImportDeclaration(stmt) ||
|
|
3077
|
+
if (!ts.isImportDeclaration(stmt) ||
|
|
3078
|
+
stmt.moduleSpecifier === undefined ||
|
|
3079
|
+
!ts.isStringLiteral(stmt.moduleSpecifier))
|
|
2986
3080
|
continue;
|
|
2987
3081
|
const clause = stmt.importClause;
|
|
2988
3082
|
if (!clause || clause.phaseModifier === ts.SyntaxKind.TypeKeyword)
|
|
@@ -3040,7 +3134,8 @@ function cjsNamedImportLinkCheck(program, entry, moduleOrder, diags) {
|
|
|
3040
3134
|
continue;
|
|
3041
3135
|
if (ts.isExportDeclaration(stmt) && isPrunedNpmReexport(program, stmt))
|
|
3042
3136
|
continue;
|
|
3043
|
-
if (ts.isImportDeclaration(stmt) &&
|
|
3137
|
+
if (ts.isImportDeclaration(stmt) &&
|
|
3138
|
+
stmt.importClause?.phaseModifier === ts.SyntaxKind.TypeKeyword)
|
|
3044
3139
|
continue;
|
|
3045
3140
|
const specNode = stmt.moduleSpecifier;
|
|
3046
3141
|
if (specNode === undefined || !ts.isStringLiteral(specNode))
|
|
@@ -3078,7 +3173,8 @@ function cjsNamedImportLinkCheck(program, entry, moduleOrder, diags) {
|
|
|
3078
3173
|
for (const stmt of entry.statements) {
|
|
3079
3174
|
if (!ts.isImportDeclaration(stmt) && !(ts.isExportDeclaration(stmt) && !stmt.isTypeOnly))
|
|
3080
3175
|
continue;
|
|
3081
|
-
if (ts.isImportDeclaration(stmt) &&
|
|
3176
|
+
if (ts.isImportDeclaration(stmt) &&
|
|
3177
|
+
stmt.importClause?.phaseModifier === ts.SyntaxKind.TypeKeyword)
|
|
3082
3178
|
continue;
|
|
3083
3179
|
const specNode = stmt.moduleSpecifier;
|
|
3084
3180
|
if (specNode === undefined || !ts.isStringLiteral(specNode) || specNode.text !== bad.spec)
|
|
@@ -3090,7 +3186,11 @@ function cjsNamedImportLinkCheck(program, entry, moduleOrder, diags) {
|
|
|
3090
3186
|
}
|
|
3091
3187
|
const loc = locOf7(bad.nameNode);
|
|
3092
3188
|
if (!flavored) {
|
|
3093
|
-
return {
|
|
3189
|
+
return {
|
|
3190
|
+
message: `The requested module '${bad.spec}' does not provide an export named '${bad.exportName}'`,
|
|
3191
|
+
className: "%SyntaxError",
|
|
3192
|
+
loc,
|
|
3193
|
+
};
|
|
3094
3194
|
}
|
|
3095
3195
|
// The destructuring hint: Node regexes the failing name's SOURCE LINE
|
|
3096
3196
|
// for its brace group (greedy, first `{` to last `}` on the line) and
|
|
@@ -3155,9 +3255,15 @@ function analyzeEsmNamedImportLinks(program, entry) {
|
|
|
3155
3255
|
// type-only, but the native ESM linker sees the runtime placeholder.
|
|
3156
3256
|
if (name === "default" &&
|
|
3157
3257
|
hasNodeTsDefaultInterfacePlaceholder7(dep) &&
|
|
3158
|
-
checker
|
|
3159
|
-
|
|
3160
|
-
|
|
3258
|
+
checker
|
|
3259
|
+
.declarationsOf(resolved)
|
|
3260
|
+
.some((declaration) => ts.isInterfaceDeclaration(declaration) &&
|
|
3261
|
+
ts
|
|
3262
|
+
.getModifiers(declaration)
|
|
3263
|
+
?.some((modifier) => modifier.kind === ts.SyntaxKind.DefaultKeyword) === true &&
|
|
3264
|
+
ts
|
|
3265
|
+
.getModifiers(declaration)
|
|
3266
|
+
?.some((modifier) => modifier.kind === ts.SyntaxKind.ExportKeyword) === true)) {
|
|
3161
3267
|
return resolved;
|
|
3162
3268
|
}
|
|
3163
3269
|
return undefined;
|
|
@@ -3200,7 +3306,13 @@ function analyzeEsmNamedImportLinks(program, entry) {
|
|
|
3200
3306
|
if (dep === null || dep.fileName.endsWith(".json") || !isNodeEsmFile7(dep, program))
|
|
3201
3307
|
continue;
|
|
3202
3308
|
if (clause.name !== undefined) {
|
|
3203
|
-
imports.push({
|
|
3309
|
+
imports.push({
|
|
3310
|
+
local: clause.name.text,
|
|
3311
|
+
exportName: "default",
|
|
3312
|
+
spec,
|
|
3313
|
+
nameNode: clause.name,
|
|
3314
|
+
dep,
|
|
3315
|
+
});
|
|
3204
3316
|
}
|
|
3205
3317
|
if (clause.namedBindings === undefined || !ts.isNamedImports(clause.namedBindings))
|
|
3206
3318
|
continue;
|
|
@@ -3268,7 +3380,8 @@ function analyzeEsmNamedImportLinks(program, entry) {
|
|
|
3268
3380
|
continue;
|
|
3269
3381
|
if (ts.isExportDeclaration(stmt) && isPrunedNpmReexport(program, stmt))
|
|
3270
3382
|
continue;
|
|
3271
|
-
if (ts.isImportDeclaration(stmt) &&
|
|
3383
|
+
if (ts.isImportDeclaration(stmt) &&
|
|
3384
|
+
stmt.importClause?.phaseModifier === ts.SyntaxKind.TypeKeyword)
|
|
3272
3385
|
continue;
|
|
3273
3386
|
const moduleSpecifier = stmt.moduleSpecifier;
|
|
3274
3387
|
if (moduleSpecifier === undefined || !ts.isStringLiteral(moduleSpecifier))
|
|
@@ -3369,10 +3482,14 @@ function earlierLinkCrash(moduleOrder, first, second) {
|
|
|
3369
3482
|
let reexport = 0;
|
|
3370
3483
|
for (const stmt of sf.statements) {
|
|
3371
3484
|
const exportClause = ts.isExportDeclaration(stmt) ? stmt.exportClause : undefined;
|
|
3372
|
-
if (!ts.isExportDeclaration(stmt) ||
|
|
3485
|
+
if (!ts.isExportDeclaration(stmt) ||
|
|
3486
|
+
stmt.isTypeOnly ||
|
|
3487
|
+
exportClause === undefined ||
|
|
3488
|
+
!ts.isNamedExports(exportClause))
|
|
3373
3489
|
continue;
|
|
3374
3490
|
for (const element of exportClause.elements) {
|
|
3375
|
-
if (!element.isTypeOnly &&
|
|
3491
|
+
if (!element.isTypeOnly &&
|
|
3492
|
+
(element.propertyName ?? element.name).getStart(sf) === crash.loc.start) {
|
|
3376
3493
|
return [1, reexport];
|
|
3377
3494
|
}
|
|
3378
3495
|
if (!element.isTypeOnly)
|
|
@@ -3399,9 +3516,9 @@ const nodeBuiltinNames = new Set(builtinModules);
|
|
|
3399
3516
|
* resolution, locations), exported under the names the 5.9.3 program.ts
|
|
3400
3517
|
* established (the phase-2 port kept every spelling); the world-neutral
|
|
3401
3518
|
* helpers re-export from their focused modules. */
|
|
3402
|
-
export { ambientDtsPath, fallbackDtsPath, isNodeTypesPath, overridesDtsPath
|
|
3519
|
+
export { ambientDtsPath, fallbackDtsPath, isNodeTypesPath, overridesDtsPath } from "./dts-paths.js";
|
|
3403
3520
|
export { builtinDefaultImportModule, canonicalBuiltinModule, SUPPORTED_BUILTIN_MODULES, } from "./builtin-modules.js";
|
|
3404
|
-
export { npmPackageNameOf, workspacePackageOfPath
|
|
3521
|
+
export { npmPackageNameOf, workspacePackageOfPath } from "./workspace-registry.js";
|
|
3405
3522
|
export { requireSpecOf7 as requireSpecOf, isRequireStatement7 as isRequireStatement, requiresOf7 as requiresOf, isNodeEsmFile7 as isNodeEsmFile, resolveImport7 as resolveImport, resolveNpmImport7 as resolveNpmImport, locOf7 as locOf, };
|
|
3406
3523
|
/** True for JavaScript source files (.js/.mjs/.cjs) — the files whose
|
|
3407
3524
|
* types come entirely from inference (checkJs + JSDoc) and whose classes
|
|
@@ -3456,7 +3573,8 @@ export function orderedImportsOf(program, sf) {
|
|
|
3456
3573
|
for (const stmt of sf.statements) {
|
|
3457
3574
|
if (ts.isExportDeclaration(stmt) && isPrunedNpmReexport(program, stmt))
|
|
3458
3575
|
continue;
|
|
3459
|
-
if (ts.isExportDeclaration(stmt) &&
|
|
3576
|
+
if (ts.isExportDeclaration(stmt) &&
|
|
3577
|
+
(stmt.isTypeOnly || erasedTypeOnlyReexport(stmt) || !stmt.moduleSpecifier))
|
|
3460
3578
|
continue;
|
|
3461
3579
|
if (!ts.isImportDeclaration(stmt) && !ts.isExportDeclaration(stmt))
|
|
3462
3580
|
continue;
|
|
@@ -3587,7 +3705,10 @@ export function cjsExportTargetLiteral(e, sf) {
|
|
|
3587
3705
|
if ((stmt.declarationList.flags & ts.NodeFlags.Const) === 0)
|
|
3588
3706
|
continue;
|
|
3589
3707
|
for (const d of stmt.declarationList.declarations) {
|
|
3590
|
-
if (d.name !== undefined &&
|
|
3708
|
+
if (d.name !== undefined &&
|
|
3709
|
+
ts.isIdentifier(d.name) &&
|
|
3710
|
+
d.name.text === e.text &&
|
|
3711
|
+
d.initializer) {
|
|
3591
3712
|
let init = d.initializer;
|
|
3592
3713
|
while (ts.isParenthesizedExpression(init))
|
|
3593
3714
|
init = init.expression;
|