@scriptc/compiler 0.2.3 → 0.2.5
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 +915 -215
- 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 +2 -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.js +9 -2
- package/dist/backend/link-plan-core.js.map +1 -1
- package/dist/backend/link-plan.d.ts +1 -1
- package/dist/backend/link-plan.js +4 -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.d.ts +15 -0
- package/dist/backend/llvm/borrowed-inputs.js +28 -0
- package/dist/backend/llvm/borrowed-inputs.js.map +1 -0
- 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.d.ts +10 -0
- package/dist/backend/llvm/byte-numbers.js +240 -0
- package/dist/backend/llvm/byte-numbers.js.map +1 -0
- package/dist/backend/llvm/bytes-bounds.d.ts +9 -0
- package/dist/backend/llvm/bytes-bounds.js +240 -0
- package/dist/backend/llvm/bytes-bounds.js.map +1 -0
- package/dist/backend/llvm/call-lifetimes.d.ts +10 -0
- package/dist/backend/llvm/call-lifetimes.js +83 -20
- package/dist/backend/llvm/call-lifetimes.js.map +1 -1
- package/dist/backend/llvm/call-lifetimes.test.js +203 -18
- package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/checked-value-lifetimes.d.ts +13 -0
- package/dist/backend/llvm/checked-value-lifetimes.js +45 -0
- package/dist/backend/llvm/checked-value-lifetimes.js.map +1 -0
- package/dist/backend/llvm/classes.js +16 -12
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/common.js +4 -1
- package/dist/backend/llvm/common.js.map +1 -1
- package/dist/backend/llvm/counted-loops.d.ts +6 -0
- package/dist/backend/llvm/counted-loops.js +35 -0
- package/dist/backend/llvm/counted-loops.js.map +1 -0
- 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.js +68 -22
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +34 -12
- package/dist/backend/llvm/emitter.js +357 -124
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.test.js +237 -46
- package/dist/backend/llvm/emitter.test.js.map +1 -1
- package/dist/backend/llvm/expr-async.js +28 -8
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-bytes.d.ts +4 -4
- package/dist/backend/llvm/expr-bytes.js +78 -36
- 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 +40 -21
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-containers.d.ts +4 -1
- package/dist/backend/llvm/expr-containers.js +157 -76
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-context.d.ts +11 -0
- package/dist/backend/llvm/expr-control.js +27 -8
- 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 +50 -33
- 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 +139 -37
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.test.js +43 -1
- package/dist/backend/llvm/expr-primitives.test.js.map +1 -1
- package/dist/backend/llvm/expr-records.js +16 -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-values.d.ts +10 -0
- package/dist/backend/llvm/integer-values.js +52 -0
- package/dist/backend/llvm/integer-values.js.map +1 -0
- package/dist/backend/llvm/integer-views.d.ts +7 -0
- package/dist/backend/llvm/integer-views.js +83 -0
- package/dist/backend/llvm/integer-views.js.map +1 -0
- package/dist/backend/llvm/integer-views.test.d.ts +1 -0
- package/dist/backend/llvm/integer-views.test.js +69 -0
- package/dist/backend/llvm/integer-views.test.js.map +1 -0
- package/dist/backend/llvm/lib-abi.js +13 -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 +36 -15
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +38 -23
- 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 +107 -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 +3 -4
- package/dist/backend/llvm/local-array-reads.js +100 -121
- package/dist/backend/llvm/local-array-reads.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.test.js +379 -71
- 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/map-read-lifetimes.d.ts +6 -2
- package/dist/backend/llvm/map-read-lifetimes.js +46 -16
- package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
- package/dist/backend/llvm/map-read-lifetimes.test.js +93 -17
- package/dist/backend/llvm/map-read-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/reference-effects.d.ts +23 -0
- package/dist/backend/llvm/reference-effects.js +179 -0
- package/dist/backend/llvm/reference-effects.js.map +1 -0
- package/dist/backend/llvm/reference-effects.test.d.ts +1 -0
- package/dist/backend/llvm/reference-effects.test.js +157 -0
- package/dist/backend/llvm/reference-effects.test.js.map +1 -0
- package/dist/backend/llvm/shapes.d.ts +7 -4
- package/dist/backend/llvm/shapes.js +82 -22
- 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.js +4 -4
- package/dist/backend/llvm/split.js.map +1 -1
- package/dist/backend/llvm/split.test.js +14 -6
- package/dist/backend/llvm/split.test.js.map +1 -1
- 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 +172 -32
- package/dist/backend/llvm/stack-unions.test.js.map +1 -1
- package/dist/backend/llvm/string-construction.d.ts +10 -0
- package/dist/backend/llvm/string-construction.js +38 -0
- package/dist/backend/llvm/string-construction.js.map +1 -0
- package/dist/backend/llvm/string-construction.test.d.ts +1 -0
- package/dist/backend/llvm/string-construction.test.js +90 -0
- package/dist/backend/llvm/string-construction.test.js.map +1 -0
- package/dist/backend/llvm/string-lifetimes.d.ts +2 -2
- package/dist/backend/llvm/string-lifetimes.js +19 -11
- package/dist/backend/llvm/string-lifetimes.js.map +1 -1
- package/dist/backend/llvm/string-lifetimes.test.js +127 -32
- package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
- 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.js +6 -3
- 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 +118 -22
- 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 +314 -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 +1267 -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 +163 -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.js +2 -1
- package/dist/backend/native-codegen-core.js.map +1 -1
- package/dist/backend/native-codegen.d.ts +1 -1
- package/dist/backend/native-codegen.js +24 -13
- package/dist/backend/native-codegen.js.map +1 -1
- package/dist/backend/native-codegen.test.js +12 -9
- package/dist/backend/native-codegen.test.js.map +1 -1
- 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.js +27 -8
- 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-pack-core.js +96 -49
- 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 +87 -15
- 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 +40 -24
- 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 +1 -1
- package/dist/executable/executable-cache.js +78 -48
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +75 -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.js +17 -12
- package/dist/frontend/fork-target.js.map +1 -1
- 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 +15 -0
- package/dist/frontend/lowering/builtins/atomics.js +46 -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 +32 -0
- package/dist/frontend/lowering/builtins/filesystem-calls.js +678 -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 +303 -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/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-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-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 +359 -67
- package/dist/frontend/lowering/collection-ingestion.js.map +1 -1
- package/dist/frontend/lowering/containers/array-callbacks.d.ts +92 -0
- package/dist/frontend/lowering/containers/array-callbacks.js +1646 -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 +419 -105
- 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 +585 -157
- 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 +589 -162
- 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 +274 -0
- package/dist/frontend/lowering/generic-functions.js +1727 -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/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 +420 -71
- 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 +2593 -5667
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +243 -242
- package/dist/frontend/lowering/lower-classes.js +1704 -727
- 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 +322 -85
- 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 +3455 -1153
- 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 +365 -273
- 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 +94 -94
- package/dist/frontend/lowering/lower-modules.js +612 -321
- 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 +2312 -984
- 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 +362 -90
- 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 +21 -351
- package/dist/frontend/lowering/lowerer.js +1031 -2704
- 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/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 +42 -42
- package/dist/frontend/lowering/surfaces.js +1094 -249
- 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-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-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 +234 -101
- 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 +484 -164
- package/dist/frontend/ts7/ast-node.js.map +1 -1
- package/dist/frontend/ts7/ast-node.test.js +109 -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 +1 -1
- package/dist/frontend/ts7/ast-wire.js +55 -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.js +47 -28
- 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.js +5 -3
- package/dist/frontend/ts7/checker.js.map +1 -1
- package/dist/frontend/ts7/checker.test.js +54 -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.js +7 -4
- package/dist/frontend/ts7/program-host.js.map +1 -1
- package/dist/frontend/ts7/program-host.test.js +43 -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.js +547 -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/index.d.ts +9 -8
- package/dist/index.js +150 -81
- package/dist/index.js.map +1 -1
- package/dist/ir/analysis.js +97 -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 +631 -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 +3396 -0
- package/dist/ir/builtin-signatures.js.map +1 -0
- package/dist/ir/byte-numbers.d.ts +20 -0
- package/dist/ir/byte-numbers.js +116 -0
- package/dist/ir/byte-numbers.js.map +1 -0
- package/dist/ir/byte-numbers.test.d.ts +1 -0
- package/dist/ir/byte-numbers.test.js +55 -0
- package/dist/ir/byte-numbers.test.js.map +1 -0
- 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.d.ts +19 -0
- package/dist/ir/integer-loops.js +172 -11
- package/dist/ir/integer-loops.js.map +1 -1
- package/dist/ir/integer-loops.test.js +122 -9
- package/dist/ir/integer-loops.test.js.map +1 -1
- package/dist/ir/integer-ranges.d.ts +8 -6
- package/dist/ir/integer-ranges.js +416 -90
- package/dist/ir/integer-ranges.js.map +1 -1
- package/dist/ir/integer-ranges.test.js +239 -10
- 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 +14 -2155
- package/dist/ir/ir.js +169 -1394
- 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/runtime-features.d.ts +221 -0
- package/dist/ir/runtime-features.js +551 -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.js +4 -2
- 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 +826 -1915
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +627 -111
- 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 +133 -57
- 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 +232 -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 +24 -13
- 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 +167 -43
- package/dist/native/compiler.js.map +1 -1
- package/dist/native/compiler.test.js +129 -32
- 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 +119 -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 +77 -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 +74 -29
- package/dist/native/toolchain.js.map +1 -1
- package/dist/native/toolchain.test.js +95 -18
- 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 +1 -1
- package/dist/frontend/lowering/lower-builtins.d.ts +0 -601
- package/dist/frontend/lowering/lower-builtins.js +0 -8984
- 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 -7366
- 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";
|
|
@@ -146,7 +146,9 @@ function projectAllowsSyntheticDefaultImports(options) {
|
|
|
146
146
|
moduleKind === ts.ModuleKind.Node20 ||
|
|
147
147
|
moduleKind === ts.ModuleKind.NodeNext ||
|
|
148
148
|
moduleKind === ts.ModuleKind.Preserve;
|
|
149
|
-
return esModuleInterop ||
|
|
149
|
+
return (esModuleInterop ||
|
|
150
|
+
moduleKind === ts.ModuleKind.System ||
|
|
151
|
+
options["moduleResolution"] === ts.ModuleResolutionKind.Bundler);
|
|
150
152
|
}
|
|
151
153
|
/** The project's tsconfig adoption in the 7 world: tsgo's own config parser
|
|
152
154
|
* (extends chains resolved server-side), the ADOPTED_OPTIONS subset taken,
|
|
@@ -182,7 +184,9 @@ function adoptProjectConfig7(host, entryPath) {
|
|
|
182
184
|
const configDir = dirname(configFile);
|
|
183
185
|
const rawBaseUrl = parsed.options["baseUrl"];
|
|
184
186
|
const base = typeof rawBaseUrl === "string"
|
|
185
|
-
?
|
|
187
|
+
? isAbsolute(rawBaseUrl)
|
|
188
|
+
? rawBaseUrl
|
|
189
|
+
: resolve(configDir, rawBaseUrl)
|
|
186
190
|
: configDir;
|
|
187
191
|
const paths = {};
|
|
188
192
|
for (const [key, targets] of Object.entries(rawPaths)) {
|
|
@@ -190,7 +194,7 @@ function adoptProjectConfig7(host, entryPath) {
|
|
|
190
194
|
continue;
|
|
191
195
|
paths[key] = targets
|
|
192
196
|
.filter((target) => typeof target === "string")
|
|
193
|
-
.map((target) => isAbsolute(target) ? target : resolve(base, target));
|
|
197
|
+
.map((target) => (isAbsolute(target) ? target : resolve(base, target)));
|
|
194
198
|
}
|
|
195
199
|
adopted["paths"] = paths;
|
|
196
200
|
}
|
|
@@ -247,7 +251,9 @@ function runtimeReexportTarget(fromFile, specifier) {
|
|
|
247
251
|
function visitNpmStaticDeclarationClosure(services, entryPath, onSource) {
|
|
248
252
|
const seen = new Set();
|
|
249
253
|
const packageJson = nearestPkgJsonPath(entryPath);
|
|
250
|
-
const packageRoot = (packageJson === null ? dirname(entryPath) : dirname(packageJson))
|
|
254
|
+
const packageRoot = (packageJson === null ? dirname(entryPath) : dirname(packageJson))
|
|
255
|
+
.split("\\")
|
|
256
|
+
.join("/");
|
|
251
257
|
const visit = (path) => {
|
|
252
258
|
path = resolve(path);
|
|
253
259
|
const normalized = path.split("\\").join("/");
|
|
@@ -384,8 +390,10 @@ function createRequireProgramRoots7(program) {
|
|
|
384
390
|
continue;
|
|
385
391
|
const calls = [];
|
|
386
392
|
ts.walkPreorder(sf, (node) => {
|
|
387
|
-
if (!ts.isCallExpression(node) ||
|
|
388
|
-
node.
|
|
393
|
+
if (!ts.isCallExpression(node) ||
|
|
394
|
+
node.questionDotToken !== undefined ||
|
|
395
|
+
node.arguments.length !== 1 ||
|
|
396
|
+
!ts.isStringLiteralLike(node.arguments[0]) ||
|
|
389
397
|
!ts.isIdentifier(node.expression)) {
|
|
390
398
|
return undefined;
|
|
391
399
|
}
|
|
@@ -403,7 +411,9 @@ function createRequireProgramRoots7(program) {
|
|
|
403
411
|
let target = resolveProjectModule(sf.fileName, spec);
|
|
404
412
|
if (target === null && !spec.startsWith("#")) {
|
|
405
413
|
const npm = resolveNpmImport7(sf.fileName, spec, "require");
|
|
406
|
-
if (npm !== null &&
|
|
414
|
+
if (npm !== null &&
|
|
415
|
+
isNpmStaticPackage(npm.packageName) &&
|
|
416
|
+
isJsSourceFileName(npm.typesFile)) {
|
|
407
417
|
target = npm.typesFile;
|
|
408
418
|
}
|
|
409
419
|
}
|
|
@@ -428,8 +438,10 @@ export function entryPackageFilePredicate(entryPath) {
|
|
|
428
438
|
: entryFile.slice(0, installedAt) + "/node_modules/" + npmPackageNameOf(entryFile) + "/";
|
|
429
439
|
return (file) => {
|
|
430
440
|
const normalized = tsgoPath(file);
|
|
431
|
-
return normalized === entryFile ||
|
|
432
|
-
|
|
441
|
+
return (normalized === entryFile ||
|
|
442
|
+
(prefix !== null &&
|
|
443
|
+
normalized.startsWith(prefix) &&
|
|
444
|
+
!normalized.slice(prefix.length).split("/").includes("node_modules")));
|
|
433
445
|
};
|
|
434
446
|
}
|
|
435
447
|
/** maxNodeModuleJsDepth can omit relative imports within an admitted
|
|
@@ -439,13 +451,16 @@ function entryPackageProgramRoots7(program, entryPath) {
|
|
|
439
451
|
const belongsToEntry = entryPackageFilePredicate(entryPath);
|
|
440
452
|
const roots = new Set();
|
|
441
453
|
for (const sf of program.getSourceFiles()) {
|
|
442
|
-
if (sf.isDeclarationFile ||
|
|
454
|
+
if (sf.isDeclarationFile ||
|
|
455
|
+
(!belongsToEntry(sf.fileName) && npmStaticPackageOfPath(sf.fileName) === null))
|
|
443
456
|
continue;
|
|
444
457
|
for (const specifier of sf.imports) {
|
|
445
458
|
if (!ts.isStringLiteralLike(specifier))
|
|
446
459
|
continue;
|
|
447
460
|
const target = resolveProjectModule(sf.fileName, specifier.text);
|
|
448
|
-
if (target !== null &&
|
|
461
|
+
if (target !== null &&
|
|
462
|
+
(belongsToEntry(target) || npmStaticPackageOfPath(target) !== null) &&
|
|
463
|
+
isJsSourceFileName(target) &&
|
|
449
464
|
program.getSourceFile(target) === undefined)
|
|
450
465
|
roots.add(target);
|
|
451
466
|
}
|
|
@@ -464,7 +479,9 @@ function loadProgram7(host, entryPath, externalTypes = new Map()) {
|
|
|
464
479
|
// not scriptc's fence and drowns real diagnostics in hundreds of
|
|
465
480
|
// .d.ts-internal errors. Fence discipline never depended on it: the
|
|
466
481
|
// lowerer checks provenance and forms at every use site.
|
|
467
|
-
let options = nodeTypes
|
|
482
|
+
let options = nodeTypes
|
|
483
|
+
? { ...config.options, skipLibCheck: true }
|
|
484
|
+
: { ...config.options };
|
|
468
485
|
// --npm-static: opted-in packages' shipped JS must be TYPE-INCLUDED (not
|
|
469
486
|
// just resolved) — without maxNodeModuleJsDepth, node_modules JS types as
|
|
470
487
|
// an implicit-any module (TS7016) and nothing infers. Only flagged
|
|
@@ -481,6 +498,8 @@ function loadProgram7(host, entryPath, externalTypes = new Map()) {
|
|
|
481
498
|
if (provenance !== null || externalTypes.size > 0) {
|
|
482
499
|
const paths = {
|
|
483
500
|
...configuredPaths,
|
|
501
|
+
// Keep an index-signature source for native lowering when provenance is absent.
|
|
502
|
+
// oxlint-disable-next-line unicorn/no-useless-fallback-in-spread
|
|
484
503
|
...(provenance ?? {}),
|
|
485
504
|
};
|
|
486
505
|
for (const [specifier, declarationPath] of externalTypes) {
|
|
@@ -584,7 +603,9 @@ export function loadProgram(entryPath, services, opts) {
|
|
|
584
603
|
const fields = properties.get(className);
|
|
585
604
|
if (methods === undefined && fields === undefined)
|
|
586
605
|
continue;
|
|
587
|
-
const target = specifier === null
|
|
606
|
+
const target = specifier === null
|
|
607
|
+
? runtime.typesFile
|
|
608
|
+
: runtimeReexportTarget(runtime.typesFile, specifier);
|
|
588
609
|
if (target === null)
|
|
589
610
|
continue;
|
|
590
611
|
const targetPackage = npmPackageNameOf(target);
|
|
@@ -610,17 +631,23 @@ export function loadProgram(entryPath, services, opts) {
|
|
|
610
631
|
projectionOwners.set(projectionKey, className);
|
|
611
632
|
// The safe declaration grammar can name only its own class. Bind
|
|
612
633
|
// that type to the actual runtime class after a named ESM alias.
|
|
613
|
-
const renameSelf = (type) => type
|
|
634
|
+
const renameSelf = (type) => type
|
|
635
|
+
.split(/([\s[\]<>()|,]+)/)
|
|
636
|
+
.map((name) => (name === className ? localName : name))
|
|
637
|
+
.join("");
|
|
614
638
|
if (methods !== undefined) {
|
|
615
639
|
const byClass = new Map(declarationOverloads.get(targetNorm) ?? []);
|
|
616
|
-
byClass.set(localName, new Map([...methods].map(([name, signatures]) => [
|
|
640
|
+
byClass.set(localName, new Map([...methods].map(([name, signatures]) => [
|
|
641
|
+
name,
|
|
642
|
+
signatures.map((signature) => ({
|
|
617
643
|
parameters: signature.parameters.map((parameter) => ({
|
|
618
644
|
name: parameter.name,
|
|
619
645
|
type: renameSelf(parameter.type),
|
|
620
646
|
optional: parameter.optional,
|
|
621
647
|
})),
|
|
622
648
|
returnType: renameSelf(signature.returnType),
|
|
623
|
-
}))
|
|
649
|
+
})),
|
|
650
|
+
])));
|
|
624
651
|
declarationOverloads.set(targetNorm, byClass);
|
|
625
652
|
}
|
|
626
653
|
if (fields !== undefined) {
|
|
@@ -668,16 +695,18 @@ export function loadProgram(entryPath, services, opts) {
|
|
|
668
695
|
return {
|
|
669
696
|
...load,
|
|
670
697
|
services,
|
|
671
|
-
projectWorld: npmStaticPackages.length === 0
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
698
|
+
projectWorld: npmStaticPackages.length === 0
|
|
699
|
+
? load.projectWorld
|
|
700
|
+
: () => {
|
|
701
|
+
// Check authored code against the package's published declarations.
|
|
702
|
+
// Runtime bodies still lower from JavaScript in the original world;
|
|
703
|
+
// inference there must not manufacture errors in valid user code.
|
|
704
|
+
if (!authoredLoad) {
|
|
705
|
+
authoredHost = services.createProgramHost({ cwd: dirname(entryPath) });
|
|
706
|
+
authoredLoad = loadProgram7(authoredHost, entryPath, externalTypes);
|
|
707
|
+
}
|
|
708
|
+
return authoredLoad.projectWorld();
|
|
709
|
+
},
|
|
681
710
|
dispose: () => {
|
|
682
711
|
try {
|
|
683
712
|
authoredLoad?.disposeAll();
|
|
@@ -750,8 +779,10 @@ function suppressedJsStrictness7(d) {
|
|
|
750
779
|
* extra arguments) is not a module edge and fences at its use site. */
|
|
751
780
|
function requireSpecOf7(node) {
|
|
752
781
|
let value = node;
|
|
753
|
-
while (ts.isParenthesizedExpression(value) ||
|
|
754
|
-
ts.
|
|
782
|
+
while (ts.isParenthesizedExpression(value) ||
|
|
783
|
+
ts.isAsExpression(value) ||
|
|
784
|
+
ts.isTypeAssertion(value) ||
|
|
785
|
+
ts.isNonNullExpression(value)) {
|
|
755
786
|
value = value.expression;
|
|
756
787
|
}
|
|
757
788
|
if (!ts.isCallExpression(value))
|
|
@@ -774,7 +805,8 @@ function isRequireStatement7(stmt) {
|
|
|
774
805
|
if (!ts.isVariableStatement(stmt))
|
|
775
806
|
return false;
|
|
776
807
|
const decls = stmt.declarationList.declarations;
|
|
777
|
-
return decls.length > 0 &&
|
|
808
|
+
return (decls.length > 0 &&
|
|
809
|
+
decls.every((d) => d.initializer !== undefined && requireSpecOf7(d.initializer) !== null));
|
|
778
810
|
}
|
|
779
811
|
/** The require() occurrences of one top-level statement: the declaration
|
|
780
812
|
* forms and the bare side-effect call. Empty for everything else. */
|
|
@@ -850,7 +882,7 @@ function pureCjsExport7(program, stmt) {
|
|
|
850
882
|
receiver = receiver.expression;
|
|
851
883
|
return ts.isIdentifier(receiver) && !sourceBinding7(program, receiver);
|
|
852
884
|
}
|
|
853
|
-
return ts.isIdentifier(receiver) && receiver.text === "exports" && !sourceBinding7(program, receiver);
|
|
885
|
+
return (ts.isIdentifier(receiver) && receiver.text === "exports" && !sourceBinding7(program, receiver));
|
|
854
886
|
};
|
|
855
887
|
if (cjs.kind === "member") {
|
|
856
888
|
if (!plainMember(cjs.expr.left))
|
|
@@ -870,8 +902,10 @@ function pureCjsExport7(program, stmt) {
|
|
|
870
902
|
}
|
|
871
903
|
if (ts.isVoidExpression(value) && ts.isNumericLiteral(value.expression))
|
|
872
904
|
return true;
|
|
873
|
-
if (ts.isStringLiteralLike(value) ||
|
|
874
|
-
|
|
905
|
+
if (ts.isStringLiteralLike(value) ||
|
|
906
|
+
ts.isNumericLiteral(value) ||
|
|
907
|
+
value.kind === ts.SyntaxKind.TrueKeyword ||
|
|
908
|
+
value.kind === ts.SyntaxKind.FalseKeyword ||
|
|
875
909
|
value.kind === ts.SyntaxKind.NullKeyword)
|
|
876
910
|
return true;
|
|
877
911
|
if (!ts.isIdentifier(value))
|
|
@@ -880,19 +914,28 @@ function pureCjsExport7(program, stmt) {
|
|
|
880
914
|
return true;
|
|
881
915
|
const checker = program.getTypeChecker();
|
|
882
916
|
const symbol = checker.getSymbolAtLocation(value);
|
|
883
|
-
return symbol !== undefined &&
|
|
917
|
+
return (symbol !== undefined &&
|
|
918
|
+
checker
|
|
919
|
+
.declarationsOf(symbol)
|
|
920
|
+
.some((decl) => ts.isFunctionDeclaration(decl) && decl.parent === stmt.parent));
|
|
884
921
|
}
|
|
885
922
|
function sourceBinding7(program, ident) {
|
|
886
923
|
const checker = program.getTypeChecker();
|
|
887
924
|
const symbol = checker.getSymbolAtLocation(ident);
|
|
888
|
-
return symbol !== undefined &&
|
|
925
|
+
return (symbol !== undefined &&
|
|
926
|
+
checker
|
|
927
|
+
.declarationsOf(symbol)
|
|
928
|
+
.some((decl) => !decl.getSourceFile().isDeclarationFile && !ts.isSourceFile(decl)));
|
|
889
929
|
}
|
|
890
930
|
function purePrefixDecl7(decl) {
|
|
891
931
|
const init = decl.initializer;
|
|
892
|
-
return init === undefined ||
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
init
|
|
932
|
+
return (init === undefined ||
|
|
933
|
+
requireSpecOf7(init) !== null ||
|
|
934
|
+
ts.isStringLiteralLike(init) ||
|
|
935
|
+
ts.isNumericLiteral(init) ||
|
|
936
|
+
init.kind === ts.SyntaxKind.TrueKeyword ||
|
|
937
|
+
init.kind === ts.SyntaxKind.FalseKeyword ||
|
|
938
|
+
init.kind === ts.SyntaxKind.NullKeyword);
|
|
896
939
|
}
|
|
897
940
|
/** True for top-level statements that cannot run user code: directives,
|
|
898
941
|
* empty statements, hoisted declarations, require statements themselves,
|
|
@@ -913,7 +956,9 @@ function purePrefixStmt7(program, s) {
|
|
|
913
956
|
let receiver = call.arguments[0];
|
|
914
957
|
if (ts.isPropertyAccessExpression(receiver))
|
|
915
958
|
receiver = receiver.expression;
|
|
916
|
-
if (!sourceBinding7(program, object) &&
|
|
959
|
+
if (!sourceBinding7(program, object) &&
|
|
960
|
+
ts.isIdentifier(receiver) &&
|
|
961
|
+
!sourceBinding7(program, receiver))
|
|
917
962
|
return true;
|
|
918
963
|
}
|
|
919
964
|
if (pureCjsExport7(program, s))
|
|
@@ -1065,7 +1110,7 @@ function isCreateRequireImport7(program, ident) {
|
|
|
1065
1110
|
if (targetDecl !== undefined && targetDecl.getSourceFile().isDeclarationFile) {
|
|
1066
1111
|
for (let p = targetDecl.parent; p !== undefined && !ts.isSourceFile(p); p = p.parent) {
|
|
1067
1112
|
if (ts.isModuleDeclaration(p) && ts.isStringLiteral(p.name)) {
|
|
1068
|
-
return canonicalBuiltinModule(p.name.text) === "module" && target.name === "createRequire";
|
|
1113
|
+
return (canonicalBuiltinModule(p.name.text) === "module" && target.name === "createRequire");
|
|
1069
1114
|
}
|
|
1070
1115
|
}
|
|
1071
1116
|
}
|
|
@@ -1079,15 +1124,18 @@ export function isCreateRequireBinding7(program, callee) {
|
|
|
1079
1124
|
const checker = program.getTypeChecker();
|
|
1080
1125
|
const symbol = checker.getSymbolAtLocation(callee);
|
|
1081
1126
|
const decl = symbol
|
|
1082
|
-
? checker
|
|
1127
|
+
? checker
|
|
1128
|
+
.declarationsOf(symbol)
|
|
1129
|
+
.find((d) => ts.isVariableDeclaration(d))
|
|
1083
1130
|
: undefined;
|
|
1084
1131
|
if (decl === undefined ||
|
|
1085
1132
|
decl.initializer === undefined ||
|
|
1086
1133
|
!ts.isVariableDeclarationList(decl.parent)) {
|
|
1087
1134
|
return false;
|
|
1088
1135
|
}
|
|
1089
|
-
return isCreateRequireBaseCall7(program, decl.initializer) &&
|
|
1090
|
-
|
|
1136
|
+
return (isCreateRequireBaseCall7(program, decl.initializer) &&
|
|
1137
|
+
((decl.parent.flags & ts.NodeFlags.Const) !== 0 ||
|
|
1138
|
+
stableCreateRequireBindingReason7(program, decl) === null));
|
|
1091
1139
|
}
|
|
1092
1140
|
/** Only literal calls and literal resolution queries can erase the loader
|
|
1093
1141
|
* value. In particular, assignments, exported aliases, shorthand properties,
|
|
@@ -1096,14 +1144,23 @@ function staticCreateRequireUse7(expr) {
|
|
|
1096
1144
|
let use = expr;
|
|
1097
1145
|
while (ts.isParenthesizedExpression(use.parent))
|
|
1098
1146
|
use = use.parent;
|
|
1099
|
-
if (ts.isPropertyAccessExpression(use.parent) &&
|
|
1147
|
+
if (ts.isPropertyAccessExpression(use.parent) &&
|
|
1148
|
+
use.parent.expression === use &&
|
|
1149
|
+
use.parent.name.text === "resolve" &&
|
|
1150
|
+
!use.parent.questionDotToken) {
|
|
1100
1151
|
use = use.parent;
|
|
1101
|
-
if (ts.isPropertyAccessExpression(use.parent) &&
|
|
1152
|
+
if (ts.isPropertyAccessExpression(use.parent) &&
|
|
1153
|
+
use.parent.expression === use &&
|
|
1154
|
+
use.parent.name.text === "paths" &&
|
|
1155
|
+
!use.parent.questionDotToken)
|
|
1102
1156
|
use = use.parent;
|
|
1103
1157
|
}
|
|
1104
1158
|
const call = use.parent;
|
|
1105
|
-
return ts.isCallExpression(call) &&
|
|
1106
|
-
call.
|
|
1159
|
+
return (ts.isCallExpression(call) &&
|
|
1160
|
+
call.expression === use &&
|
|
1161
|
+
!call.questionDotToken &&
|
|
1162
|
+
call.arguments.length === 1 &&
|
|
1163
|
+
ts.isStringLiteralLike(call.arguments[0]));
|
|
1107
1164
|
}
|
|
1108
1165
|
function stableCreateRequireBindingReason7(program, decl) {
|
|
1109
1166
|
const cache = program.analysis.createRequireReasons;
|
|
@@ -1111,7 +1168,9 @@ function stableCreateRequireBindingReason7(program, decl) {
|
|
|
1111
1168
|
return cache.get(decl);
|
|
1112
1169
|
const check = () => {
|
|
1113
1170
|
const stmt = decl.parent?.parent;
|
|
1114
|
-
if (!ts.isIdentifier(decl.name) ||
|
|
1171
|
+
if (!ts.isIdentifier(decl.name) ||
|
|
1172
|
+
!ts.isVariableStatement(stmt) ||
|
|
1173
|
+
!ts.isSourceFile(stmt.parent)) {
|
|
1115
1174
|
return "its mutable createRequire binding is outside the module's top level";
|
|
1116
1175
|
}
|
|
1117
1176
|
const checker = program.getTypeChecker();
|
|
@@ -1189,19 +1248,29 @@ function npmStaticModuleImportReason7(program, stmt) {
|
|
|
1189
1248
|
let reason = null;
|
|
1190
1249
|
const checkUse = (expr) => {
|
|
1191
1250
|
if (!staticCreateRequireUse7(expr)) {
|
|
1192
|
-
reason =
|
|
1251
|
+
reason =
|
|
1252
|
+
"its createRequire result escapes or is used with a computed specifier (static requires need literal specifiers)";
|
|
1193
1253
|
}
|
|
1194
1254
|
};
|
|
1195
1255
|
ts.walkPreorder(sf, (node) => {
|
|
1196
|
-
if (reason ||
|
|
1256
|
+
if (reason ||
|
|
1257
|
+
!ts.isIdentifier(node) ||
|
|
1258
|
+
node.text !== specifier.name.text ||
|
|
1259
|
+
node === specifier.name ||
|
|
1260
|
+
checker.getSymbolAtLocation(node) !== imported)
|
|
1197
1261
|
return;
|
|
1198
1262
|
const call = node.parent;
|
|
1199
|
-
if (!ts.isCallExpression(call) ||
|
|
1200
|
-
|
|
1263
|
+
if (!ts.isCallExpression(call) ||
|
|
1264
|
+
call.expression !== node ||
|
|
1265
|
+
!isCreateRequireBaseCall7(program, call)) {
|
|
1266
|
+
reason =
|
|
1267
|
+
"its createRequire import is used outside a supported call based on the current file";
|
|
1201
1268
|
return;
|
|
1202
1269
|
}
|
|
1203
1270
|
const decl = call.parent;
|
|
1204
|
-
if (ts.isVariableDeclaration(decl) &&
|
|
1271
|
+
if (ts.isVariableDeclaration(decl) &&
|
|
1272
|
+
decl.initializer === call &&
|
|
1273
|
+
ts.isIdentifier(decl.name)) {
|
|
1205
1274
|
if ((ts.getCombinedModifierFlags(decl) & ts.ModifierFlags.Export) !== 0) {
|
|
1206
1275
|
reason = "its createRequire result escapes through an exported binding";
|
|
1207
1276
|
return;
|
|
@@ -1214,7 +1283,10 @@ function npmStaticModuleImportReason7(program, stmt) {
|
|
|
1214
1283
|
const name = decl.name.text;
|
|
1215
1284
|
checker.prefetchSymbolNodesExact(identifierOccurrences7(sf, name));
|
|
1216
1285
|
ts.walkPreorder(sf, (ref) => {
|
|
1217
|
-
if (ts.isIdentifier(ref) &&
|
|
1286
|
+
if (ts.isIdentifier(ref) &&
|
|
1287
|
+
ref.text === name &&
|
|
1288
|
+
ref !== decl.name &&
|
|
1289
|
+
checker.getSymbolAtLocation(ref) === sym)
|
|
1218
1290
|
checkUse(ref);
|
|
1219
1291
|
});
|
|
1220
1292
|
}
|
|
@@ -1242,7 +1314,7 @@ function requireCallBindingKind7(program, node) {
|
|
|
1242
1314
|
if (symbol === undefined)
|
|
1243
1315
|
return "ambient";
|
|
1244
1316
|
const decls = checker.declarationsOf(symbol);
|
|
1245
|
-
if (decls.
|
|
1317
|
+
if (decls.every((d) => d.getSourceFile().isDeclarationFile))
|
|
1246
1318
|
return "ambient";
|
|
1247
1319
|
return isCreateRequireBinding7(program, call.expression) ? "createRequire" : "source";
|
|
1248
1320
|
}
|
|
@@ -1281,9 +1353,7 @@ function nodeEsmSyntaxMarker7(sf) {
|
|
|
1281
1353
|
for (const stmt of sf.statements) {
|
|
1282
1354
|
if (ts.isImportDeclaration(stmt) && !erasedTypeOnlyImport(stmt))
|
|
1283
1355
|
return stmt;
|
|
1284
|
-
if (ts.isExportDeclaration(stmt) &&
|
|
1285
|
-
!stmt.isTypeOnly &&
|
|
1286
|
-
!erasedTypeOnlyReexport(stmt)) {
|
|
1356
|
+
if (ts.isExportDeclaration(stmt) && !stmt.isTypeOnly && !erasedTypeOnlyReexport(stmt)) {
|
|
1287
1357
|
return stmt;
|
|
1288
1358
|
}
|
|
1289
1359
|
if (ts.isExportAssignment(stmt))
|
|
@@ -1300,14 +1370,15 @@ function nodeEsmSyntaxMarker7(sf) {
|
|
|
1300
1370
|
return hit;
|
|
1301
1371
|
}
|
|
1302
1372
|
}
|
|
1303
|
-
if (ts.isClassDeclaration(stmt) &&
|
|
1373
|
+
if (ts.isClassDeclaration(stmt) &&
|
|
1374
|
+
stmt.name !== undefined &&
|
|
1375
|
+
CJS_WRAPPER_NAMES.has(stmt.name.text)) {
|
|
1304
1376
|
return stmt.name;
|
|
1305
1377
|
}
|
|
1306
1378
|
}
|
|
1307
1379
|
let found = null;
|
|
1308
1380
|
ts.walkPreorder(sf, (node) => {
|
|
1309
|
-
if (ts.isMetaProperty(node) &&
|
|
1310
|
-
node.keywordToken === ts.SyntaxKind.ImportKeyword) {
|
|
1381
|
+
if (ts.isMetaProperty(node) && node.keywordToken === ts.SyntaxKind.ImportKeyword) {
|
|
1311
1382
|
found = node;
|
|
1312
1383
|
return "stop";
|
|
1313
1384
|
}
|
|
@@ -1341,11 +1412,12 @@ function isNodeEsmFile7(sf, program) {
|
|
|
1341
1412
|
}
|
|
1342
1413
|
else {
|
|
1343
1414
|
const packageType = nearestPackageType(sf.fileName);
|
|
1344
|
-
result =
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1415
|
+
result =
|
|
1416
|
+
packageType === "module"
|
|
1417
|
+
? true
|
|
1418
|
+
: packageType === "commonjs"
|
|
1419
|
+
? false
|
|
1420
|
+
: nodeEsmSyntaxMarker7(sf) !== null;
|
|
1349
1421
|
}
|
|
1350
1422
|
program?.analysis.nodeEsmFiles.set(sf, result);
|
|
1351
1423
|
return result;
|
|
@@ -1468,7 +1540,9 @@ function nsBindingUsesAreBareStatements7(program, sf, nsName) {
|
|
|
1468
1540
|
node !== nsName &&
|
|
1469
1541
|
node.text === nsName.text &&
|
|
1470
1542
|
checker.getSymbolAtLocation(node) === bindingSym) {
|
|
1471
|
-
if (!(node.parent !== undefined &&
|
|
1543
|
+
if (!(node.parent !== undefined &&
|
|
1544
|
+
ts.isExpressionStatement(node.parent) &&
|
|
1545
|
+
node.parent.expression === node)) {
|
|
1472
1546
|
bareOnly = false;
|
|
1473
1547
|
return;
|
|
1474
1548
|
}
|
|
@@ -1641,7 +1715,10 @@ function nonInertTopLevel7(program, sf) {
|
|
|
1641
1715
|
}
|
|
1642
1716
|
if (ts.isClassExpression(e))
|
|
1643
1717
|
return inertClass(e) === null;
|
|
1644
|
-
if (ts.isParenthesizedExpression(e) ||
|
|
1718
|
+
if (ts.isParenthesizedExpression(e) ||
|
|
1719
|
+
ts.isAsExpression(e) ||
|
|
1720
|
+
ts.isSatisfiesExpression(e) ||
|
|
1721
|
+
ts.isNonNullExpression(e)) {
|
|
1645
1722
|
return inert(e.expression);
|
|
1646
1723
|
}
|
|
1647
1724
|
if (ts.isPropertyAccessExpression(e))
|
|
@@ -1708,7 +1785,9 @@ function nonInertTopLevel7(program, sf) {
|
|
|
1708
1785
|
ts.isInterfaceDeclaration(stmt) ||
|
|
1709
1786
|
ts.isTypeAliasDeclaration(stmt) ||
|
|
1710
1787
|
ts.isEmptyStatement(stmt) ||
|
|
1711
|
-
(ts.getCombinedModifierFlags(stmt) &
|
|
1788
|
+
(ts.getCombinedModifierFlags(stmt) &
|
|
1789
|
+
ts.ModifierFlags.Ambient) !==
|
|
1790
|
+
0) {
|
|
1712
1791
|
continue;
|
|
1713
1792
|
}
|
|
1714
1793
|
if (ts.isEnumDeclaration(stmt)) {
|
|
@@ -1952,7 +2031,8 @@ function resolveImport7(program, from, specifier, resolutionKind = "import") {
|
|
|
1952
2031
|
return program.getSourceFile(resolved) ?? null;
|
|
1953
2032
|
const npm = resolveNpmImport7(from.fileName, specifier, resolutionKind);
|
|
1954
2033
|
return npm && isNpmStaticPackage(npm.packageName)
|
|
1955
|
-
? npmStaticProgramDep(program, npm.packageName, npm.typesFile)
|
|
2034
|
+
? npmStaticProgramDep(program, npm.packageName, npm.typesFile)
|
|
2035
|
+
: null;
|
|
1956
2036
|
}
|
|
1957
2037
|
/** An import that resolves into node_modules: the package's shipped .d.ts
|
|
1958
2038
|
* is the type surface, and the package's shipped JS runs in the dynamic
|
|
@@ -2244,7 +2324,9 @@ function preflight7(load) {
|
|
|
2244
2324
|
if (!sf)
|
|
2245
2325
|
return false;
|
|
2246
2326
|
const spec = sf.text.slice(d.pos, d.end).replace(/^['"]|['"]$/g, "");
|
|
2247
|
-
const prefix = spec.startsWith("@")
|
|
2327
|
+
const prefix = spec.startsWith("@")
|
|
2328
|
+
? spec.split("/").slice(0, 2).join("/")
|
|
2329
|
+
: spec.split("/")[0];
|
|
2248
2330
|
return isWorkspacePackageName(prefix);
|
|
2249
2331
|
};
|
|
2250
2332
|
const errorsOf = (p) => {
|
|
@@ -2300,10 +2382,16 @@ function preflight7(load) {
|
|
|
2300
2382
|
.filter((sf) => sf.fileName !== ambient &&
|
|
2301
2383
|
!sf.isDeclarationFile &&
|
|
2302
2384
|
!sf.fileName.endsWith(".json") &&
|
|
2303
|
-
(!isNodeModulesPath(sf.fileName) ||
|
|
2385
|
+
(!isNodeModulesPath(sf.fileName) ||
|
|
2386
|
+
entryPackageFile(sf.fileName) ||
|
|
2387
|
+
npmStaticPackageOfPath(sf.fileName) !== null) &&
|
|
2304
2388
|
!islandJsFile(sf.fileName));
|
|
2305
2389
|
const userFiles = npmStaticActive()
|
|
2306
|
-
? planNpmStaticReexports(program, entry, programFiles, [
|
|
2390
|
+
? planNpmStaticReexports(program, entry, programFiles, [
|
|
2391
|
+
...createRequireProgramRoots7(program),
|
|
2392
|
+
...forkTargetPaths(program, program.getSourceFiles()),
|
|
2393
|
+
], (sf, spec, resolutionKind) => resolveImport7(program, sf, spec, resolutionKind) ??
|
|
2394
|
+
npmStaticDepSf7(program, sf, spec, resolutionKind))
|
|
2307
2395
|
: programFiles;
|
|
2308
2396
|
program.getTypeChecker().prefetchSourceFileStructures(userFiles);
|
|
2309
2397
|
// node_modules JS that no --npm-static opt-in claims is NOT program
|
|
@@ -2398,7 +2486,9 @@ function preflight7(load) {
|
|
|
2398
2486
|
// lowers to nothing.
|
|
2399
2487
|
if (ts.isExternalModuleReference(stmt.moduleReference) && !stmt.isTypeOnly) {
|
|
2400
2488
|
const spec = stmt.moduleReference.expression;
|
|
2401
|
-
if (spec !== undefined &&
|
|
2489
|
+
if (spec !== undefined &&
|
|
2490
|
+
ts.isStringLiteralLike(spec) &&
|
|
2491
|
+
load.externalTypes.has(spec.text)) {
|
|
2402
2492
|
diags.push(externalHostModuleDiag7(spec.text, stmt));
|
|
2403
2493
|
}
|
|
2404
2494
|
else {
|
|
@@ -2634,10 +2724,13 @@ function preflight7(load) {
|
|
|
2634
2724
|
// SC1012 fence. The callable module objects (assert, events, test)
|
|
2635
2725
|
// stay allowed everywhere. The process default is the global process
|
|
2636
2726
|
// alias, including when combined with named builtin imports.
|
|
2637
|
-
const syntheticDefaultsOn = program.getCompilerOptions()
|
|
2638
|
-
|
|
2727
|
+
const syntheticDefaultsOn = program.getCompilerOptions()
|
|
2728
|
+
.allowSyntheticDefaultImports === true;
|
|
2729
|
+
const defaultOk = spec === "process" ||
|
|
2730
|
+
spec === "node:process" ||
|
|
2639
2731
|
builtinDefaultImportModule(spec) !== null ||
|
|
2640
|
-
((isJsSourceFileName(sf.fileName) || syntheticDefaultsOn) &&
|
|
2732
|
+
((isJsSourceFileName(sf.fileName) || syntheticDefaultsOn) &&
|
|
2733
|
+
canonicalBuiltinModule(spec) !== null);
|
|
2641
2734
|
if (clause.name && !isJson && dep === null && !defaultOk) {
|
|
2642
2735
|
diags.push(unsupportedDiag("SC1012", locOf7(clause.name)));
|
|
2643
2736
|
}
|
|
@@ -2714,7 +2807,10 @@ function preflight7(load) {
|
|
|
2714
2807
|
continue;
|
|
2715
2808
|
}
|
|
2716
2809
|
if (req.decl && ts.isObjectBindingPattern(req.decl.name)) {
|
|
2717
|
-
const bad = req.decl.name.elements.find((e) => e.name === undefined ||
|
|
2810
|
+
const bad = req.decl.name.elements.find((e) => e.name === undefined ||
|
|
2811
|
+
!ts.isIdentifier(e.name) ||
|
|
2812
|
+
e.initializer !== undefined ||
|
|
2813
|
+
e.dotDotDotToken !== undefined);
|
|
2718
2814
|
if (bad) {
|
|
2719
2815
|
diags.push(unsupportedDiag("SC1012", loc, "require() destructuring with defaults, rest, or nested patterns"));
|
|
2720
2816
|
continue;
|
|
@@ -2728,7 +2824,9 @@ function preflight7(load) {
|
|
|
2728
2824
|
// form above (bundle dists require their workspace siblings —
|
|
2729
2825
|
// the same resolution, the same offender discipline on a
|
|
2730
2826
|
// miss).
|
|
2731
|
-
const npmReq = !req.spec.startsWith("#")
|
|
2827
|
+
const npmReq = !req.spec.startsWith("#")
|
|
2828
|
+
? resolveNpmImport7(sf.fileName, req.spec, "require")
|
|
2829
|
+
: null;
|
|
2732
2830
|
if (npmReq !== null && isNpmStaticPackage(npmReq.packageName)) {
|
|
2733
2831
|
dep = npmStaticProgramDep(program, npmReq.packageName, npmReq.typesFile);
|
|
2734
2832
|
if (dep === null)
|
|
@@ -2783,7 +2881,9 @@ function preflight7(load) {
|
|
|
2783
2881
|
}
|
|
2784
2882
|
}
|
|
2785
2883
|
const nestedBareRequires = nestedBareRequiresOf7(sf);
|
|
2786
|
-
program
|
|
2884
|
+
program
|
|
2885
|
+
.getTypeChecker()
|
|
2886
|
+
.prefetchSymbolNodesExact(nestedBareRequires.flatMap((call) => ts.isIdentifier(call.expression) ? [call.expression] : []));
|
|
2787
2887
|
for (const call of nestedBareRequires) {
|
|
2788
2888
|
const spec = requireSpecOf7(call);
|
|
2789
2889
|
const loc = { file: sf.fileName, start: call.getStart(sf), end: call.getEnd() };
|
|
@@ -2813,7 +2913,9 @@ function preflight7(load) {
|
|
|
2813
2913
|
if (!isRelativeSpecifier(spec)) {
|
|
2814
2914
|
// --npm-static: opted-in packages ride the program-module edge
|
|
2815
2915
|
// (the statement-level require branch above).
|
|
2816
|
-
const npmReq = !spec.startsWith("#")
|
|
2916
|
+
const npmReq = !spec.startsWith("#")
|
|
2917
|
+
? resolveNpmImport7(sf.fileName, spec, "require")
|
|
2918
|
+
: null;
|
|
2817
2919
|
if (npmReq !== null && isNpmStaticPackage(npmReq.packageName)) {
|
|
2818
2920
|
const nDep = npmStaticProgramDep(program, npmReq.packageName, npmReq.typesFile);
|
|
2819
2921
|
if (nDep !== null)
|
|
@@ -2962,14 +3064,16 @@ function cjsNamedImportLinkCheck(program, entry, moduleOrder, diags) {
|
|
|
2962
3064
|
// Reexport targets union in only when they resolve to CommonJS program
|
|
2963
3065
|
// files (Node's cjsPreparseModuleExports rule).
|
|
2964
3066
|
const resolveCjsDep = (from, spec) => {
|
|
2965
|
-
const dep = resolveImport7(program, from, spec, "require") ??
|
|
3067
|
+
const dep = resolveImport7(program, from, spec, "require") ??
|
|
3068
|
+
npmStaticDepSf7(program, from, spec, "require");
|
|
2966
3069
|
return dep !== null && isCjsJsFile7(dep, program) ? dep : null;
|
|
2967
3070
|
};
|
|
2968
3071
|
const visible = (dep, name) =>
|
|
2969
3072
|
// `default` is the module.exports binding itself — always provided.
|
|
2970
3073
|
// The program already owns native source ASTs; reuse them without
|
|
2971
3074
|
// starting another syntax session or reparsing their source text.
|
|
2972
|
-
name === "default" ||
|
|
3075
|
+
name === "default" ||
|
|
3076
|
+
cjsVisibleNames(dep, cjsLexedExportsOfFile, resolveCjsDep, lexMemo).has(name);
|
|
2973
3077
|
/** The statement's resolved LOCAL CommonJS dependency, when it is an
|
|
2974
3078
|
* import/re-export from one. */
|
|
2975
3079
|
const cjsDepOf = (sf, spec) => {
|
|
@@ -2982,7 +3086,9 @@ function cjsNamedImportLinkCheck(program, entry, moduleOrder, diags) {
|
|
|
2982
3086
|
const firstInvisibleOf = (sf) => {
|
|
2983
3087
|
const entries = [];
|
|
2984
3088
|
for (const stmt of sf.statements) {
|
|
2985
|
-
if (!ts.isImportDeclaration(stmt) ||
|
|
3089
|
+
if (!ts.isImportDeclaration(stmt) ||
|
|
3090
|
+
stmt.moduleSpecifier === undefined ||
|
|
3091
|
+
!ts.isStringLiteral(stmt.moduleSpecifier))
|
|
2986
3092
|
continue;
|
|
2987
3093
|
const clause = stmt.importClause;
|
|
2988
3094
|
if (!clause || clause.phaseModifier === ts.SyntaxKind.TypeKeyword)
|
|
@@ -3040,7 +3146,8 @@ function cjsNamedImportLinkCheck(program, entry, moduleOrder, diags) {
|
|
|
3040
3146
|
continue;
|
|
3041
3147
|
if (ts.isExportDeclaration(stmt) && isPrunedNpmReexport(program, stmt))
|
|
3042
3148
|
continue;
|
|
3043
|
-
if (ts.isImportDeclaration(stmt) &&
|
|
3149
|
+
if (ts.isImportDeclaration(stmt) &&
|
|
3150
|
+
stmt.importClause?.phaseModifier === ts.SyntaxKind.TypeKeyword)
|
|
3044
3151
|
continue;
|
|
3045
3152
|
const specNode = stmt.moduleSpecifier;
|
|
3046
3153
|
if (specNode === undefined || !ts.isStringLiteral(specNode))
|
|
@@ -3078,7 +3185,8 @@ function cjsNamedImportLinkCheck(program, entry, moduleOrder, diags) {
|
|
|
3078
3185
|
for (const stmt of entry.statements) {
|
|
3079
3186
|
if (!ts.isImportDeclaration(stmt) && !(ts.isExportDeclaration(stmt) && !stmt.isTypeOnly))
|
|
3080
3187
|
continue;
|
|
3081
|
-
if (ts.isImportDeclaration(stmt) &&
|
|
3188
|
+
if (ts.isImportDeclaration(stmt) &&
|
|
3189
|
+
stmt.importClause?.phaseModifier === ts.SyntaxKind.TypeKeyword)
|
|
3082
3190
|
continue;
|
|
3083
3191
|
const specNode = stmt.moduleSpecifier;
|
|
3084
3192
|
if (specNode === undefined || !ts.isStringLiteral(specNode) || specNode.text !== bad.spec)
|
|
@@ -3090,7 +3198,11 @@ function cjsNamedImportLinkCheck(program, entry, moduleOrder, diags) {
|
|
|
3090
3198
|
}
|
|
3091
3199
|
const loc = locOf7(bad.nameNode);
|
|
3092
3200
|
if (!flavored) {
|
|
3093
|
-
return {
|
|
3201
|
+
return {
|
|
3202
|
+
message: `The requested module '${bad.spec}' does not provide an export named '${bad.exportName}'`,
|
|
3203
|
+
className: "%SyntaxError",
|
|
3204
|
+
loc,
|
|
3205
|
+
};
|
|
3094
3206
|
}
|
|
3095
3207
|
// The destructuring hint: Node regexes the failing name's SOURCE LINE
|
|
3096
3208
|
// for its brace group (greedy, first `{` to last `}` on the line) and
|
|
@@ -3155,9 +3267,15 @@ function analyzeEsmNamedImportLinks(program, entry) {
|
|
|
3155
3267
|
// type-only, but the native ESM linker sees the runtime placeholder.
|
|
3156
3268
|
if (name === "default" &&
|
|
3157
3269
|
hasNodeTsDefaultInterfacePlaceholder7(dep) &&
|
|
3158
|
-
checker
|
|
3159
|
-
|
|
3160
|
-
|
|
3270
|
+
checker
|
|
3271
|
+
.declarationsOf(resolved)
|
|
3272
|
+
.some((declaration) => ts.isInterfaceDeclaration(declaration) &&
|
|
3273
|
+
ts
|
|
3274
|
+
.getModifiers(declaration)
|
|
3275
|
+
?.some((modifier) => modifier.kind === ts.SyntaxKind.DefaultKeyword) === true &&
|
|
3276
|
+
ts
|
|
3277
|
+
.getModifiers(declaration)
|
|
3278
|
+
?.some((modifier) => modifier.kind === ts.SyntaxKind.ExportKeyword) === true)) {
|
|
3161
3279
|
return resolved;
|
|
3162
3280
|
}
|
|
3163
3281
|
return undefined;
|
|
@@ -3200,7 +3318,13 @@ function analyzeEsmNamedImportLinks(program, entry) {
|
|
|
3200
3318
|
if (dep === null || dep.fileName.endsWith(".json") || !isNodeEsmFile7(dep, program))
|
|
3201
3319
|
continue;
|
|
3202
3320
|
if (clause.name !== undefined) {
|
|
3203
|
-
imports.push({
|
|
3321
|
+
imports.push({
|
|
3322
|
+
local: clause.name.text,
|
|
3323
|
+
exportName: "default",
|
|
3324
|
+
spec,
|
|
3325
|
+
nameNode: clause.name,
|
|
3326
|
+
dep,
|
|
3327
|
+
});
|
|
3204
3328
|
}
|
|
3205
3329
|
if (clause.namedBindings === undefined || !ts.isNamedImports(clause.namedBindings))
|
|
3206
3330
|
continue;
|
|
@@ -3268,7 +3392,8 @@ function analyzeEsmNamedImportLinks(program, entry) {
|
|
|
3268
3392
|
continue;
|
|
3269
3393
|
if (ts.isExportDeclaration(stmt) && isPrunedNpmReexport(program, stmt))
|
|
3270
3394
|
continue;
|
|
3271
|
-
if (ts.isImportDeclaration(stmt) &&
|
|
3395
|
+
if (ts.isImportDeclaration(stmt) &&
|
|
3396
|
+
stmt.importClause?.phaseModifier === ts.SyntaxKind.TypeKeyword)
|
|
3272
3397
|
continue;
|
|
3273
3398
|
const moduleSpecifier = stmt.moduleSpecifier;
|
|
3274
3399
|
if (moduleSpecifier === undefined || !ts.isStringLiteral(moduleSpecifier))
|
|
@@ -3369,10 +3494,14 @@ function earlierLinkCrash(moduleOrder, first, second) {
|
|
|
3369
3494
|
let reexport = 0;
|
|
3370
3495
|
for (const stmt of sf.statements) {
|
|
3371
3496
|
const exportClause = ts.isExportDeclaration(stmt) ? stmt.exportClause : undefined;
|
|
3372
|
-
if (!ts.isExportDeclaration(stmt) ||
|
|
3497
|
+
if (!ts.isExportDeclaration(stmt) ||
|
|
3498
|
+
stmt.isTypeOnly ||
|
|
3499
|
+
exportClause === undefined ||
|
|
3500
|
+
!ts.isNamedExports(exportClause))
|
|
3373
3501
|
continue;
|
|
3374
3502
|
for (const element of exportClause.elements) {
|
|
3375
|
-
if (!element.isTypeOnly &&
|
|
3503
|
+
if (!element.isTypeOnly &&
|
|
3504
|
+
(element.propertyName ?? element.name).getStart(sf) === crash.loc.start) {
|
|
3376
3505
|
return [1, reexport];
|
|
3377
3506
|
}
|
|
3378
3507
|
if (!element.isTypeOnly)
|
|
@@ -3399,9 +3528,9 @@ const nodeBuiltinNames = new Set(builtinModules);
|
|
|
3399
3528
|
* resolution, locations), exported under the names the 5.9.3 program.ts
|
|
3400
3529
|
* established (the phase-2 port kept every spelling); the world-neutral
|
|
3401
3530
|
* helpers re-export from their focused modules. */
|
|
3402
|
-
export { ambientDtsPath, fallbackDtsPath, isNodeTypesPath, overridesDtsPath
|
|
3531
|
+
export { ambientDtsPath, fallbackDtsPath, isNodeTypesPath, overridesDtsPath } from "./dts-paths.js";
|
|
3403
3532
|
export { builtinDefaultImportModule, canonicalBuiltinModule, SUPPORTED_BUILTIN_MODULES, } from "./builtin-modules.js";
|
|
3404
|
-
export { npmPackageNameOf, workspacePackageOfPath
|
|
3533
|
+
export { npmPackageNameOf, workspacePackageOfPath } from "./workspace-registry.js";
|
|
3405
3534
|
export { requireSpecOf7 as requireSpecOf, isRequireStatement7 as isRequireStatement, requiresOf7 as requiresOf, isNodeEsmFile7 as isNodeEsmFile, resolveImport7 as resolveImport, resolveNpmImport7 as resolveNpmImport, locOf7 as locOf, };
|
|
3406
3535
|
/** True for JavaScript source files (.js/.mjs/.cjs) — the files whose
|
|
3407
3536
|
* types come entirely from inference (checkJs + JSDoc) and whose classes
|
|
@@ -3456,7 +3585,8 @@ export function orderedImportsOf(program, sf) {
|
|
|
3456
3585
|
for (const stmt of sf.statements) {
|
|
3457
3586
|
if (ts.isExportDeclaration(stmt) && isPrunedNpmReexport(program, stmt))
|
|
3458
3587
|
continue;
|
|
3459
|
-
if (ts.isExportDeclaration(stmt) &&
|
|
3588
|
+
if (ts.isExportDeclaration(stmt) &&
|
|
3589
|
+
(stmt.isTypeOnly || erasedTypeOnlyReexport(stmt) || !stmt.moduleSpecifier))
|
|
3460
3590
|
continue;
|
|
3461
3591
|
if (!ts.isImportDeclaration(stmt) && !ts.isExportDeclaration(stmt))
|
|
3462
3592
|
continue;
|
|
@@ -3587,7 +3717,10 @@ export function cjsExportTargetLiteral(e, sf) {
|
|
|
3587
3717
|
if ((stmt.declarationList.flags & ts.NodeFlags.Const) === 0)
|
|
3588
3718
|
continue;
|
|
3589
3719
|
for (const d of stmt.declarationList.declarations) {
|
|
3590
|
-
if (d.name !== undefined &&
|
|
3720
|
+
if (d.name !== undefined &&
|
|
3721
|
+
ts.isIdentifier(d.name) &&
|
|
3722
|
+
d.name.text === e.text &&
|
|
3723
|
+
d.initializer) {
|
|
3591
3724
|
let init = d.initializer;
|
|
3592
3725
|
while (ts.isParenthesizedExpression(init))
|
|
3593
3726
|
init = init.expression;
|