@scriptc/compiler 0.3.2 → 0.3.3
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 +490 -39
- package/dist/backend/cycle-analysis.js +6 -1
- package/dist/backend/cycle-analysis.js.map +1 -1
- package/dist/backend/llvm/alloc.js +24 -10
- package/dist/backend/llvm/alloc.js.map +1 -1
- package/dist/backend/llvm/alloc.test.js +47 -1
- package/dist/backend/llvm/alloc.test.js.map +1 -1
- package/dist/backend/llvm/array-search.d.ts +8 -0
- package/dist/backend/llvm/array-search.js +52 -0
- package/dist/backend/llvm/array-search.js.map +1 -0
- package/dist/backend/llvm/array-search.test.d.ts +1 -0
- package/dist/backend/llvm/array-search.test.js +72 -0
- package/dist/backend/llvm/array-search.test.js.map +1 -0
- package/dist/backend/llvm/call-lifetimes.d.ts +8 -1
- package/dist/backend/llvm/call-lifetimes.js +33 -11
- package/dist/backend/llvm/call-lifetimes.js.map +1 -1
- package/dist/backend/llvm/call-lifetimes.test.js +54 -0
- package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/classes.js +87 -36
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/common.d.ts +1 -1
- package/dist/backend/llvm/common.js +1 -1
- package/dist/backend/llvm/dense-array-access.d.ts +5 -0
- package/dist/backend/llvm/dense-array-access.js +1 -1
- package/dist/backend/llvm/dense-array-access.js.map +1 -1
- package/dist/backend/llvm/dyn.d.ts +4 -0
- package/dist/backend/llvm/dyn.js +73 -9
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +65 -14
- package/dist/backend/llvm/emitter.js +297 -81
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.test.js +26 -3
- package/dist/backend/llvm/emitter.test.js.map +1 -1
- package/dist/backend/llvm/expr-async.js +52 -1
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-bytes.js +11 -0
- package/dist/backend/llvm/expr-bytes.js.map +1 -1
- package/dist/backend/llvm/expr-callbacks.js +16 -2
- package/dist/backend/llvm/expr-callbacks.js.map +1 -1
- package/dist/backend/llvm/expr-calls.js +8 -1
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-containers.js +42 -15
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.js +19 -8
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.js +28 -30
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-records.js +8 -4
- package/dist/backend/llvm/expr-records.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.js +35 -32
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/expr-stream-callbacks.d.ts +13 -2
- package/dist/backend/llvm/expr-stream-callbacks.js +80 -5
- package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
- package/dist/backend/llvm/inline-unions.d.ts +48 -0
- package/dist/backend/llvm/inline-unions.js +134 -0
- package/dist/backend/llvm/inline-unions.js.map +1 -0
- package/dist/backend/llvm/inline-unions.test.d.ts +1 -0
- package/dist/backend/llvm/inline-unions.test.js +124 -0
- package/dist/backend/llvm/inline-unions.test.js.map +1 -0
- package/dist/backend/llvm/integer-remainder.d.ts +28 -5
- package/dist/backend/llvm/integer-remainder.js +80 -9
- package/dist/backend/llvm/integer-remainder.js.map +1 -1
- package/dist/backend/llvm/lib-dispatch.js +163 -28
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +125 -7
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-network.js +9 -6
- package/dist/backend/llvm/lib-network.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +2 -2
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +132 -0
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/lib-stream.js +97 -0
- package/dist/backend/llvm/lib-stream.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.js +7 -3
- package/dist/backend/llvm/local-array-reads.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.test.js +6 -3
- package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
- package/dist/backend/llvm/local-union-storage.d.ts +2 -0
- package/dist/backend/llvm/local-union-storage.js +5 -0
- package/dist/backend/llvm/local-union-storage.js.map +1 -1
- package/dist/backend/llvm/local-union-storage.test.js +1 -0
- package/dist/backend/llvm/local-union-storage.test.js.map +1 -1
- package/dist/backend/llvm/loop-array-borrows.d.ts +8 -2
- package/dist/backend/llvm/loop-array-borrows.js +93 -13
- package/dist/backend/llvm/loop-array-borrows.js.map +1 -1
- package/dist/backend/llvm/map-number-lookup.d.ts +20 -0
- package/dist/backend/llvm/map-number-lookup.js +66 -0
- package/dist/backend/llvm/map-number-lookup.js.map +1 -1
- package/dist/backend/llvm/map-number-lookup.test.d.ts +1 -0
- package/dist/backend/llvm/map-number-lookup.test.js +102 -0
- package/dist/backend/llvm/map-number-lookup.test.js.map +1 -0
- package/dist/backend/llvm/map-read-lifetimes.js +1 -0
- package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
- package/dist/backend/llvm/publish.d.ts +4 -0
- package/dist/backend/llvm/publish.js +3 -1
- package/dist/backend/llvm/publish.js.map +1 -1
- package/dist/backend/llvm/record-results.d.ts +8 -5
- package/dist/backend/llvm/record-results.js +20 -12
- package/dist/backend/llvm/record-results.js.map +1 -1
- package/dist/backend/llvm/reference-effects.js +13 -0
- package/dist/backend/llvm/reference-effects.js.map +1 -1
- package/dist/backend/llvm/reference-writes.js +14 -0
- package/dist/backend/llvm/reference-writes.js.map +1 -1
- package/dist/backend/llvm/regions.d.ts +1 -0
- package/dist/backend/llvm/regions.js +12 -7
- package/dist/backend/llvm/regions.js.map +1 -1
- package/dist/backend/llvm/serialized-ir-emission.test.js +2 -0
- package/dist/backend/llvm/serialized-ir-emission.test.js.map +1 -1
- package/dist/backend/llvm/shapes.d.ts +56 -10
- package/dist/backend/llvm/shapes.js +178 -39
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/shapes.test.js +61 -3
- package/dist/backend/llvm/shapes.test.js.map +1 -1
- package/dist/backend/llvm/stack-objects.js +16 -4
- package/dist/backend/llvm/stack-objects.js.map +1 -1
- package/dist/backend/llvm/stack-objects.test.js +3 -0
- package/dist/backend/llvm/stack-objects.test.js.map +1 -1
- package/dist/backend/llvm/walkers.d.ts +11 -0
- package/dist/backend/llvm/walkers.js +106 -10
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/may-throw.js +9 -4
- package/dist/backend/may-throw.js.map +1 -1
- package/dist/backend/native/contracts.d.ts +2 -2
- package/dist/backend/native/executable.js +14 -3
- package/dist/backend/native/executable.js.map +1 -1
- package/dist/backend/native/runtime-inputs.d.ts +1 -1
- package/dist/backend/native/runtime-inputs.js +1 -0
- package/dist/backend/native/runtime-inputs.js.map +1 -1
- package/dist/backend/native-toolchain.test.js +1 -1
- package/dist/backend/native-toolchain.test.js.map +1 -1
- package/dist/backend/runtime-abi.d.ts +2 -2
- package/dist/backend/runtime-abi.js +2 -2
- package/dist/backend/runtime-pack-targets.test.js +1 -1
- package/dist/backend/runtime-pack.test.js +1 -1
- package/dist/backend/target-diagnostics.js +4 -1
- package/dist/backend/target-diagnostics.js.map +1 -1
- package/dist/backend/target-diagnostics.test.js +4 -1
- package/dist/backend/target-diagnostics.test.js.map +1 -1
- package/dist/compat/fetch-profile.js +4 -4
- package/dist/compat/fetch-profile.js.map +1 -1
- package/dist/contracts/check.js +2 -0
- package/dist/contracts/check.js.map +1 -1
- package/dist/coverage/report.js +1 -1
- package/dist/coverage/report.js.map +1 -1
- package/dist/diagnostics/diagnostic.d.ts +6 -5
- package/dist/diagnostics/diagnostic.js +7 -6
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/frontend/builtin-modules.d.ts +1 -1
- package/dist/frontend/builtin-modules.js +1 -0
- package/dist/frontend/builtin-modules.js.map +1 -1
- package/dist/frontend/comptime-node.js +2 -2
- package/dist/frontend/comptime-node.js.map +1 -1
- package/dist/frontend/lowering/binding-analysis.d.ts +1 -1
- package/dist/frontend/lowering/binding-analysis.js +1 -1
- package/dist/frontend/lowering/builtins/arguments.d.ts +4 -0
- package/dist/frontend/lowering/builtins/arguments.js +8 -4
- package/dist/frontend/lowering/builtins/arguments.js.map +1 -1
- package/dist/frontend/lowering/builtins/blob.d.ts +20 -0
- package/dist/frontend/lowering/builtins/blob.js +167 -0
- package/dist/frontend/lowering/builtins/blob.js.map +1 -0
- package/dist/frontend/lowering/builtins/child-process-async.d.ts +2 -2
- package/dist/frontend/lowering/builtins/child-process-async.js +2 -2
- package/dist/frontend/lowering/builtins/child-process-methods.js +1 -1
- package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process-sync.js +1 -1
- package/dist/frontend/lowering/builtins/child-process-sync.js.map +1 -1
- package/dist/frontend/lowering/builtins/compression.js +3 -2
- package/dist/frontend/lowering/builtins/compression.js.map +1 -1
- package/dist/frontend/lowering/builtins/crypto.js +415 -120
- package/dist/frontend/lowering/builtins/crypto.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +10 -0
- package/dist/frontend/lowering/builtins/filesystem-calls.js +89 -1
- package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem.d.ts +16 -7
- package/dist/frontend/lowering/builtins/filesystem.js +97 -15
- package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
- package/dist/frontend/lowering/builtins/fs-glob.d.ts +23 -0
- package/dist/frontend/lowering/builtins/fs-glob.js +224 -0
- package/dist/frontend/lowering/builtins/fs-glob.js.map +1 -0
- package/dist/frontend/lowering/builtins/key-object.d.ts +13 -0
- package/dist/frontend/lowering/builtins/key-object.js +56 -0
- package/dist/frontend/lowering/builtins/key-object.js.map +1 -0
- package/dist/frontend/lowering/builtins/module-calls.js +44 -11
- package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/performance.d.ts +25 -3
- package/dist/frontend/lowering/builtins/performance.js +340 -5
- package/dist/frontend/lowering/builtins/performance.js.map +1 -1
- package/dist/frontend/lowering/builtins/process.d.ts +2 -2
- package/dist/frontend/lowering/builtins/process.js +107 -14
- package/dist/frontend/lowering/builtins/process.js.map +1 -1
- package/dist/frontend/lowering/builtins/properties.d.ts +0 -7
- package/dist/frontend/lowering/builtins/properties.js +39 -11
- package/dist/frontend/lowering/builtins/properties.js.map +1 -1
- package/dist/frontend/lowering/builtins/readline.d.ts +23 -8
- package/dist/frontend/lowering/builtins/readline.js +266 -90
- package/dist/frontend/lowering/builtins/readline.js.map +1 -1
- package/dist/frontend/lowering/builtins/url.d.ts +8 -0
- package/dist/frontend/lowering/builtins/url.js +36 -0
- package/dist/frontend/lowering/builtins/url.js.map +1 -1
- package/dist/frontend/lowering/call-arguments.js +1 -1
- package/dist/frontend/lowering/call-arguments.js.map +1 -1
- package/dist/frontend/lowering/call-signatures.js +20 -2
- package/dist/frontend/lowering/call-signatures.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +2 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.js +105 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js +1 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
- package/dist/frontend/lowering/class-protocol-dispatch.d.ts +45 -0
- package/dist/frontend/lowering/class-protocol-dispatch.js +516 -0
- package/dist/frontend/lowering/class-protocol-dispatch.js.map +1 -0
- package/dist/frontend/lowering/coercions/structural-plans.js +2 -1
- package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
- package/dist/frontend/lowering/coercions/structural.js +3 -3
- package/dist/frontend/lowering/coercions/structural.js.map +1 -1
- package/dist/frontend/lowering/collation-repertoire.js +6 -5
- package/dist/frontend/lowering/collation-repertoire.js.map +1 -1
- package/dist/frontend/lowering/containers/array-callbacks.js +4 -7
- package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
- package/dist/frontend/lowering/containers/array-methods.d.ts +0 -7
- package/dist/frontend/lowering/containers/array-methods.js +43 -2
- package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/bytes.js +38 -26
- package/dist/frontend/lowering/containers/bytes.js.map +1 -1
- package/dist/frontend/lowering/containers/for-of.d.ts +1 -1
- package/dist/frontend/lowering/containers/for-of.js +5 -1
- package/dist/frontend/lowering/containers/for-of.js.map +1 -1
- package/dist/frontend/lowering/containers/indexed-objects.js +1 -1
- package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
- package/dist/frontend/lowering/crypto-tables.d.ts +3 -3
- package/dist/frontend/lowering/crypto-tables.js +77 -12
- package/dist/frontend/lowering/crypto-tables.js.map +1 -1
- package/dist/frontend/lowering/expressions/nullish-assignment.js +10 -0
- package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
- package/dist/frontend/lowering/expressions/object-literals.js +16 -12
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/generic-functions.d.ts +2 -2
- package/dist/frontend/lowering/generic-functions.js +2 -2
- package/dist/frontend/lowering/generic-functions.js.map +1 -1
- package/dist/frontend/lowering/http2-constants.js +1 -1
- package/dist/frontend/lowering/lower-array-sort.d.ts +12 -1
- package/dist/frontend/lowering/lower-array-sort.js +561 -191
- package/dist/frontend/lowering/lower-array-sort.js.map +1 -1
- package/dist/frontend/lowering/lower-array-sort.test.js +4 -2
- package/dist/frontend/lowering/lower-array-sort.test.js.map +1 -1
- package/dist/frontend/lowering/lower-assert.js +2 -2
- package/dist/frontend/lowering/lower-async-iteration.d.ts +6 -3
- package/dist/frontend/lowering/lower-async-iteration.js +248 -2
- package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.js +101 -9
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +8 -2
- package/dist/frontend/lowering/lower-classes.js +40 -9
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-comptime.d.ts +1 -1
- package/dist/frontend/lowering/lower-comptime.js +4 -4
- package/dist/frontend/lowering/lower-comptime.js.map +1 -1
- package/dist/frontend/lowering/lower-event-target.d.ts +63 -0
- package/dist/frontend/lowering/lower-event-target.js +362 -0
- package/dist/frontend/lowering/lower-event-target.js.map +1 -0
- package/dist/frontend/lowering/lower-expando.js +2 -2
- package/dist/frontend/lowering/lower-exprs.js +112 -22
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.js +129 -11
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-mixins.js +1 -1
- package/dist/frontend/lowering/lower-modules.d.ts +1 -1
- package/dist/frontend/lowering/lower-modules.js +7 -3
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-namespaces.d.ts +2 -2
- package/dist/frontend/lowering/lower-namespaces.js +2 -2
- package/dist/frontend/lowering/lower-server.js +39 -14
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stdlib.d.ts +7 -1
- package/dist/frontend/lowering/lower-stdlib.js +10 -3
- package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.d.ts +2 -2
- package/dist/frontend/lowering/lower-stmts.js +46 -12
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.js +234 -22
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lower-timers.js +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +23 -5
- package/dist/frontend/lowering/lowerer.js +245 -41
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/native-ffi.js +2 -2
- package/dist/frontend/lowering/native-ffi.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-records.d.ts +115 -0
- package/dist/frontend/lowering/runtime-optional-records.js +715 -0
- package/dist/frontend/lowering/runtime-optional-records.js.map +1 -0
- package/dist/frontend/lowering/runtime-optional-records.test.d.ts +1 -0
- package/dist/frontend/lowering/runtime-optional-records.test.js +175 -0
- package/dist/frontend/lowering/runtime-optional-records.test.js.map +1 -0
- package/dist/frontend/lowering/surfaces.d.ts +7 -3
- package/dist/frontend/lowering/surfaces.js +273 -22
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/module-syntax.d.ts +1 -1
- package/dist/frontend/module-syntax.js +1 -1
- package/dist/frontend/npm-static-prune.js +1 -1
- package/dist/frontend/npm-static-prune.js.map +1 -1
- package/dist/frontend/npm-static-rewrite-syntax.js +4 -3
- package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -1
- package/dist/frontend/pipeline.js +1 -1
- package/dist/frontend/pipeline.js.map +1 -1
- package/dist/frontend/program.d.ts +3 -3
- package/dist/frontend/program.js +19 -17
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/resolve.js +1 -1
- package/dist/frontend/ts7/adapter.js +1 -1
- package/dist/frontend/ts7/ast-bytes.d.ts +1 -1
- package/dist/frontend/ts7/ast-bytes.js +1 -1
- package/dist/frontend/ts7/semantic-json.d.ts +1 -1
- package/dist/frontend/ts7/semantic-json.js +1 -1
- package/dist/frontend/ts7/semantic-json.js.map +1 -1
- package/dist/frontend/ts7/world-check.js +1 -1
- package/dist/frontend/tsc-codes.js +2 -2
- package/dist/frontend/tsc-codes.js.map +1 -1
- package/dist/frontend/type-mapper.d.ts +16 -1
- package/dist/frontend/type-mapper.js +143 -18
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/ir/analysis.d.ts +12 -6
- package/dist/ir/analysis.js +26 -10
- package/dist/ir/analysis.js.map +1 -1
- package/dist/ir/analysis.test.js +15 -3
- package/dist/ir/analysis.test.js.map +1 -1
- package/dist/ir/builtin-effects.js +79 -0
- package/dist/ir/builtin-effects.js.map +1 -1
- package/dist/ir/builtin-signatures.d.ts +1 -1
- package/dist/ir/builtin-signatures.js +291 -38
- package/dist/ir/builtin-signatures.js.map +1 -1
- package/dist/ir/int32-slots.js +1 -0
- package/dist/ir/int32-slots.js.map +1 -1
- package/dist/ir/ir.d.ts +64 -16
- package/dist/ir/ir.js +37 -1
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/runtime-features.js +83 -6
- package/dist/ir/runtime-features.js.map +1 -1
- package/dist/ir/serialize.js +1 -1
- package/dist/ir/serialize.js.map +1 -1
- package/dist/ir/traverse.js +1 -0
- package/dist/ir/traverse.js.map +1 -1
- package/dist/ir/validate.js +100 -9
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +60 -0
- package/dist/ir/validate.test.js.map +1 -1
- package/dist/library/fence-eval.d.ts +1 -1
- package/dist/library/fence-eval.js +5 -4
- package/dist/library/fence-eval.js.map +1 -1
- package/dist/library/ir-policy.js +10 -4
- package/dist/library/ir-policy.js.map +1 -1
- package/dist/library/library-profile.js +13 -13
- package/dist/library/library-profile.js.map +1 -1
- package/dist/library/prepare.js +1 -1
- package/dist/library/prepare.js.map +1 -1
- package/dist/library/sidecar.js +3 -3
- package/dist/library/sidecar.js.map +1 -1
- package/dist/native/prepare.js +3 -2
- package/dist/native/prepare.js.map +1 -1
- package/package.json +20 -20
- package/surface-manifest.json +379 -142
package/dist/frontend/resolve.js
CHANGED
|
@@ -475,7 +475,7 @@ function nearestPkgDir(dir) {
|
|
|
475
475
|
}
|
|
476
476
|
/** The nearest package.json FILE, whether or not its JSON parses. Runtime
|
|
477
477
|
* module-format lookup must stop at a malformed nearest scope: Node reports
|
|
478
|
-
* ERR_INVALID_PACKAGE_CONFIG there rather than
|
|
478
|
+
* ERR_INVALID_PACKAGE_CONFIG there rather than inheriting a parent
|
|
479
479
|
* package's `type`. The resolver's historical nearestPkgDir stays parseable-
|
|
480
480
|
* package-only because its callers need a package OBJECT to inspect. */
|
|
481
481
|
function nearestPackageConfigDir(dir) {
|
|
@@ -31,6 +31,6 @@ export * from "./program-host.js";
|
|
|
31
31
|
export * from "./semantic-types.js";
|
|
32
32
|
/* No default export, deliberately: ESM cannot hang the TYPE side of the
|
|
33
33
|
* census (ts.Expression, ts.Node, ...) off a default binding, so a default
|
|
34
|
-
* would invite the one import form that
|
|
34
|
+
* would invite the one import form that loses the types without an error. The port
|
|
35
35
|
* swap is the namespace import above — same one-line change per file. */
|
|
36
36
|
//# sourceMappingURL=adapter.js.map
|
|
@@ -11,7 +11,7 @@ export declare function astI32(bytes: Uint8Array, offset: number): number;
|
|
|
11
11
|
* UTF-8 decoding deliberately replaces those sequences, so decode them
|
|
12
12
|
* explicitly. Preserve U+FEFF anywhere, including just after a surrogate.
|
|
13
13
|
* Valid UTF-8 segments use the runtime's optimized decoder. A runtime that
|
|
14
|
-
* cannot represent lone surrogates must refuse them here;
|
|
14
|
+
* cannot represent lone surrogates must refuse them here; replacing
|
|
15
15
|
* a code unit would change checker names and compiler input. */
|
|
16
16
|
export declare function decodeAstString(bytes: Uint8Array, offset: number, length: number): string;
|
|
17
17
|
/** The structured-data section uses only arrays, uints, strings and bools.
|
|
@@ -32,7 +32,7 @@ export function astI32(bytes, offset) {
|
|
|
32
32
|
* UTF-8 decoding deliberately replaces those sequences, so decode them
|
|
33
33
|
* explicitly. Preserve U+FEFF anywhere, including just after a surrogate.
|
|
34
34
|
* Valid UTF-8 segments use the runtime's optimized decoder. A runtime that
|
|
35
|
-
* cannot represent lone surrogates must refuse them here;
|
|
35
|
+
* cannot represent lone surrogates must refuse them here; replacing
|
|
36
36
|
* a code unit would change checker names and compiler input. */
|
|
37
37
|
export function decodeAstString(bytes, offset, length) {
|
|
38
38
|
astBounds(bytes, offset, length);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Check the only JSON string form the native runtime cannot yet retain.
|
|
2
2
|
* JSON.parse itself validates grammar. A valid surrogate pair is preserved;
|
|
3
|
-
* a lone escape must not
|
|
3
|
+
* a lone escape must not change a type literal or symbol name. */
|
|
4
4
|
export declare function checkSemanticJsonStrings(json: string, preservesSurrogates: boolean): void;
|
|
5
5
|
export declare function parseSemanticJson<T>(json: string): T;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** Check the only JSON string form the native runtime cannot yet retain.
|
|
2
2
|
* JSON.parse itself validates grammar. A valid surrogate pair is preserved;
|
|
3
|
-
* a lone escape must not
|
|
3
|
+
* a lone escape must not change a type literal or symbol name. */
|
|
4
4
|
export function checkSemanticJsonStrings(json, preservesSurrogates) {
|
|
5
5
|
// Most checker responses contain no Unicode escapes. Inspect only escape
|
|
6
6
|
// sequences instead of mapping every native string index to UTF-16. Valid
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semantic-json.js","sourceRoot":"","sources":["../../../src/frontend/ts7/semantic-json.ts"],"names":[],"mappings":"AAAA;;
|
|
1
|
+
{"version":3,"file":"semantic-json.js","sourceRoot":"","sources":["../../../src/frontend/ts7/semantic-json.ts"],"names":[],"mappings":"AAAA;;kEAEkE;AAClE,MAAM,UAAU,wBAAwB,CAAC,IAAY,EAAE,mBAA4B;IACjF,yEAAyE;IACzE,0EAA0E;IAC1E,0EAA0E;IAC1E,IAAI,mBAAmB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO;IACzD,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;QACvF,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG;YAAE,SAAS;QAC/C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC1C,KAAK,IAAI,CAAC,CAAC;QACX,IAAI,IAAI,GAAG,MAAM,IAAI,IAAI,GAAG,MAAM;YAAE,SAAS;QAC7C,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC9F,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC1C,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;gBACrC,KAAK,IAAI,CAAC,CAAC;gBACX,SAAS;YACX,CAAC;QACH,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;IAClG,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,IAAY,EAAE,MAAc;IAC/C,IAAI,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,CAAC,CAAC;IACxC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,KAAK,GAAG,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,KAAK,GACT,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE;YACtB,CAAC,CAAC,IAAI,GAAG,EAAE;YACX,CAAC,CAAC,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE;gBACxB,CAAC,CAAC,IAAI,GAAG,EAAE;gBACX,CAAC,CAAC,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,GAAG;oBACzB,CAAC,CAAC,IAAI,GAAG,EAAE;oBACX,CAAC,CAAC,CAAC,CAAC,CAAC;QACb,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC;QACzB,KAAK,GAAG,KAAK,GAAG,EAAE,GAAG,KAAK,CAAC;IAC7B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,wEAAwE;AACxE,4EAA4E;AAC5E,MAAM,uBAAuB,GAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAY,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;AAE7F,MAAM,UAAU,iBAAiB,CAAI,IAAY;IAC/C,wBAAwB,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;IACxD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;AAC/B,CAAC"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* 7.0.2 world (this adapter, over the real "typescript" dependency) must
|
|
4
4
|
* never exchange AST or checker objects: the enums
|
|
5
5
|
* renumbered between worlds, so a node that crosses carries kinds and flags
|
|
6
|
-
* that MEAN something else on the other side,
|
|
6
|
+
* that MEAN something else on the other side, without any error.
|
|
7
7
|
*
|
|
8
8
|
* The fence is nominal enum typing: every node interface carries a
|
|
9
9
|
* `kind`/`flags` member typed by its own package's enum declaration, and
|
|
@@ -120,7 +120,7 @@ export const JS_RELAXED_TSC_CODES = new Set([
|
|
|
120
120
|
// Class lowering checks native storage and override ABIs at each use.
|
|
121
121
|
2415,
|
|
122
122
|
// unresolvable modules: Node throws WHEN the require executes — the
|
|
123
|
-
// binding types as any and reached uses fence
|
|
123
|
+
// binding types as any and reached uses fence instead of passing unchecked
|
|
124
124
|
2307,
|
|
125
125
|
2792,
|
|
126
126
|
// useUnknownInCatchVariables' annotation demand ("'e' is of type
|
|
@@ -128,7 +128,7 @@ export const JS_RELAXED_TSC_CODES = new Set([
|
|
|
128
128
|
// annotate its variable, so the demand is unsatisfiable in source —
|
|
129
129
|
// exactly the implicit-any story above. The values stay 'unknown' and
|
|
130
130
|
// every use meets the lowerer's per-site unknown fences (member reads
|
|
131
|
-
// ride the checked-dynamic tree; unsupported operations
|
|
131
|
+
// ride the checked-dynamic tree; unsupported operations report a compile-time diagnostic).
|
|
132
132
|
18046,
|
|
133
133
|
2571,
|
|
134
134
|
]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tsc-codes.js","sourceRoot":"","sources":["../../src/frontend/tsc-codes.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,QAAQ;IACR,eAAe;IACf,kBAAkB;IAClB,qBAAqB;IACrB,qBAAqB;IACrB,8BAA8B;IAC9B,6BAA6B;IAC7B,gBAAgB;IAChB,cAAc;IACd,4BAA4B;IAC5B,0BAA0B;IAC1B,4BAA4B;IAC5B,oBAAoB;IACpB,oCAAoC;IACpC,mBAAmB;IACnB,4BAA4B;IAC5B,gBAAgB;IAChB,oBAAoB;IACpB,mBAAmB;IACnB,sBAAsB;IACtB,cAAc;IACd,iEAAiE;IACjE,qEAAqE;IACrE,kEAAkE;IAClE,kEAAkE;IAClE,iBAAiB;IACjB,8BAA8B;CACtB,CAAC;AAEX,MAAM,CAAC,MAAM,oBAAoB,GAAwB,IAAI,GAAG,CAAC;IAC/D,kEAAkE;IAClE,8DAA8D;IAC9D,iCAAiC;IACjC,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,oEAAoE;IACpE,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,oEAAoE;IACpE,uEAAuE;IACvE,qEAAqE;IACrE,qEAAqE;IACrE,mCAAmC;IACnC,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI,EAAE,4DAA4D;IAClE,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,uEAAuE;IACvE,wEAAwE;IACxE,4EAA4E;IAC5E,oEAAoE;IACpE,kBAAkB;IAClB,IAAI;IACJ,IAAI;IACJ,qEAAqE;IACrE,uEAAuE;IACvE,mEAAmE;IACnE,sEAAsE;IACtE,kEAAkE;IAClE,sEAAsE;IACtE,wDAAwD;IACxD,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,uEAAuE;IACvE,4DAA4D;IAC5D,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,uEAAuE;IACvE,wEAAwE;IACxE,qEAAqE;IACrE,yCAAyC;IACzC,IAAI;IACJ,wEAAwE;IACxE,qEAAqE;IACrE,wDAAwD;IACxD,IAAI;IACJ,wEAAwE;IACxE,sEAAsE;IACtE,6DAA6D;IAC7D,IAAI;IACJ,IAAI;IACJ,iEAAiE;IACjE,IAAI;IACJ,mEAAmE;IACnE,sEAAsE;IACtE,IAAI;IACJ,oEAAoE;IACpE,
|
|
1
|
+
{"version":3,"file":"tsc-codes.js","sourceRoot":"","sources":["../../src/frontend/tsc-codes.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,QAAQ;IACR,eAAe;IACf,kBAAkB;IAClB,qBAAqB;IACrB,qBAAqB;IACrB,8BAA8B;IAC9B,6BAA6B;IAC7B,gBAAgB;IAChB,cAAc;IACd,4BAA4B;IAC5B,0BAA0B;IAC1B,4BAA4B;IAC5B,oBAAoB;IACpB,oCAAoC;IACpC,mBAAmB;IACnB,4BAA4B;IAC5B,gBAAgB;IAChB,oBAAoB;IACpB,mBAAmB;IACnB,sBAAsB;IACtB,cAAc;IACd,iEAAiE;IACjE,qEAAqE;IACrE,kEAAkE;IAClE,kEAAkE;IAClE,iBAAiB;IACjB,8BAA8B;CACtB,CAAC;AAEX,MAAM,CAAC,MAAM,oBAAoB,GAAwB,IAAI,GAAG,CAAC;IAC/D,kEAAkE;IAClE,8DAA8D;IAC9D,iCAAiC;IACjC,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,oEAAoE;IACpE,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,oEAAoE;IACpE,uEAAuE;IACvE,qEAAqE;IACrE,qEAAqE;IACrE,mCAAmC;IACnC,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI,EAAE,4DAA4D;IAClE,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,uEAAuE;IACvE,wEAAwE;IACxE,4EAA4E;IAC5E,oEAAoE;IACpE,kBAAkB;IAClB,IAAI;IACJ,IAAI;IACJ,qEAAqE;IACrE,uEAAuE;IACvE,mEAAmE;IACnE,sEAAsE;IACtE,kEAAkE;IAClE,sEAAsE;IACtE,wDAAwD;IACxD,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,uEAAuE;IACvE,4DAA4D;IAC5D,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,uEAAuE;IACvE,wEAAwE;IACxE,qEAAqE;IACrE,yCAAyC;IACzC,IAAI;IACJ,wEAAwE;IACxE,qEAAqE;IACrE,wDAAwD;IACxD,IAAI;IACJ,wEAAwE;IACxE,sEAAsE;IACtE,6DAA6D;IAC7D,IAAI;IACJ,IAAI;IACJ,iEAAiE;IACjE,IAAI;IACJ,mEAAmE;IACnE,sEAAsE;IACtE,IAAI;IACJ,oEAAoE;IACpE,2EAA2E;IAC3E,IAAI;IACJ,IAAI;IACJ,iEAAiE;IACjE,uEAAuE;IACvE,oEAAoE;IACpE,sEAAsE;IACtE,sEAAsE;IACtE,2FAA2F;IAC3F,KAAK;IACL,IAAI;CACL,CAAC,CAAC;AAEH;2EAC2E;AAC3E,MAAM,CAAC,MAAM,qBAAqB,GAAwB,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAEtF;;gCAEgC;AAChC,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,uEAAuE;IACvE,+CAA+C;IAC/C,OAAO,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC"}
|
|
@@ -5,7 +5,7 @@ export { typeKey };
|
|
|
5
5
|
/** Empty JS object inference describes no fixed layout. Keep these values
|
|
6
6
|
* in checked storage across fields, parameters and function signatures. */
|
|
7
7
|
export declare function jsOpenObjectType(decl: ts.Node | undefined, type: IrType, shapes: ShapeRegistry, unions: UnionRegistry): IrType;
|
|
8
|
-
export declare const FETCH_AMBIENT_TYPES: readonly ["Response", "Request", "ResponseInit", "RequestInit", "Event", "CustomEvent", "EventTarget", "AddEventListenerOptions", "EventListenerOptions", "EventInit", "CustomEventInit", "AbortController", "AbortSignal", "Headers", "ReadableStream", "ReadableStreamDefaultReader", "ReadableStreamDefaultController", "ReadableStreamReadResult", "ReadableStreamReadValueResult", "ReadableStreamReadDoneResult"];
|
|
8
|
+
export declare const FETCH_AMBIENT_TYPES: readonly ["Response", "Request", "ResponseInit", "RequestInit", "Event", "CustomEvent", "EventTarget", "AddEventListenerOptions", "EventListenerOptions", "EventInit", "CustomEventInit", "AbortController", "AbortSignal", "Headers", "ReadableStream", "ReadableStreamDefaultReader", "ReadableStreamDefaultController", "ReadableStreamReadResult", "ReadableStreamReadValueResult", "ReadableStreamReadDoneResult", "Blob", "File", "BlobPropertyBag", "FilePropertyBag", "BlobOptions", "FileOptions"];
|
|
9
9
|
/** True for the parseArgs type family that deliberately rides dyn. Exported
|
|
10
10
|
* for the property-read bridge after TypeScript narrows a token union arm. */
|
|
11
11
|
export declare function isParseArgsDynTypeName(name: string): boolean;
|
|
@@ -163,6 +163,17 @@ export declare class UnionRegistry {
|
|
|
163
163
|
* The same budget covers every sibling, and deep wrapper chains truncate
|
|
164
164
|
* before exhausting the JS stack. Small types retain their full spelling. */
|
|
165
165
|
export declare function formatIrType(t: IrType, shapes: ShapeRegistry, unions: UnionRegistry, seen?: Set<string>): string;
|
|
166
|
+
/** The hidden field that marks the perf_hooks entry record shape. */
|
|
167
|
+
export declare const PERF_ENTRY_MARKER = "%perfEntry";
|
|
168
|
+
/** PerformanceEntry's toJSON fields, in toJSON's order. */
|
|
169
|
+
export declare const PERF_ENTRY_FIELDS: string[];
|
|
170
|
+
/** The record shape behind PerformanceEntry, PerformanceMark and
|
|
171
|
+
* PerformanceMeasure values (see mapType). The marker is an always-absent
|
|
172
|
+
* optional, so dyn conversions and key walks never see it. */
|
|
173
|
+
export declare function perfEntryShape(shapes: ShapeRegistry, unions: UnionRegistry): string;
|
|
174
|
+
/** toJSON()'s plain object over an entry: the same fields without the
|
|
175
|
+
* marker. */
|
|
176
|
+
export declare function perfEntryJsonShape(shapes: ShapeRegistry): string;
|
|
166
177
|
/** True when a type contains a record anywhere (the trigger for the
|
|
167
178
|
* shape-mismatch diagnostic SC2002 — non-record mismatches are tsc's or
|
|
168
179
|
* the validator's business). */
|
|
@@ -275,6 +286,10 @@ export interface TypeMapperCtx {
|
|
|
275
286
|
* is that package's class declaration (lowering/lifetime-regions.ts). */
|
|
276
287
|
lifetimeRegionClass?: (decl: ts.ClassDeclaration) => IrType | null;
|
|
277
288
|
}
|
|
289
|
+
export declare function isLegacyUrlType(type: ts.Type, ctx: Pick<TypeMapperCtx, "checker" | "isStdlibFile">): boolean;
|
|
290
|
+
/** A symbol declared as one of node:url's legacy record interfaces, or as
|
|
291
|
+
* a member of one. */
|
|
292
|
+
export declare function isLegacyUrlSymbol(symbol: ts.Symbol | null | undefined, ctx: Pick<TypeMapperCtx, "checker" | "isStdlibFile">): boolean;
|
|
278
293
|
/** os.constants and its groups — @types/node's `namespace constants`
|
|
279
294
|
* (errno, dlopen, priority) and SignalConstants, and the fallback's twins:
|
|
280
295
|
* the runtime's checked-dynamic constants object, whose members vary by
|
|
@@ -87,6 +87,12 @@ export const FETCH_AMBIENT_TYPES = [
|
|
|
87
87
|
"ReadableStreamReadResult",
|
|
88
88
|
"ReadableStreamReadValueResult",
|
|
89
89
|
"ReadableStreamReadDoneResult",
|
|
90
|
+
"Blob",
|
|
91
|
+
"File",
|
|
92
|
+
"BlobPropertyBag",
|
|
93
|
+
"FilePropertyBag",
|
|
94
|
+
"BlobOptions",
|
|
95
|
+
"FileOptions",
|
|
90
96
|
];
|
|
91
97
|
/** node:util.parseArgs's public and @types/node helper type names, plus
|
|
92
98
|
* util.debuglog's DebugLogger (a native function value with an `enabled`
|
|
@@ -646,6 +652,8 @@ export function formatIrType(t, shapes, unions, seen = new Set()) {
|
|
|
646
652
|
return append("Stats");
|
|
647
653
|
case "fileHandle":
|
|
648
654
|
return append("FileHandle");
|
|
655
|
+
case "dir":
|
|
656
|
+
return append("Dir");
|
|
649
657
|
case "spawnRes":
|
|
650
658
|
return append("SpawnSyncReturns");
|
|
651
659
|
case "child":
|
|
@@ -721,6 +729,34 @@ function esOwnKeyOrder(names) {
|
|
|
721
729
|
const indices = names.filter(isArrayIndex).sort((a, b) => Number(a) - Number(b));
|
|
722
730
|
return indices.length === 0 ? names : [...indices, ...names.filter((n) => !isArrayIndex(n))];
|
|
723
731
|
}
|
|
732
|
+
/** The hidden field that marks the perf_hooks entry record shape. */
|
|
733
|
+
export const PERF_ENTRY_MARKER = "%perfEntry";
|
|
734
|
+
/** PerformanceEntry's toJSON fields, in toJSON's order. */
|
|
735
|
+
export const PERF_ENTRY_FIELDS = ["name", "entryType", "startTime", "duration", "detail"];
|
|
736
|
+
/** The record shape behind PerformanceEntry, PerformanceMark and
|
|
737
|
+
* PerformanceMeasure values (see mapType). The marker is an always-absent
|
|
738
|
+
* optional, so dyn conversions and key walks never see it. */
|
|
739
|
+
export function perfEntryShape(shapes, unions) {
|
|
740
|
+
return shapes.intern([
|
|
741
|
+
{ name: PERF_ENTRY_MARKER, type: withUndefinedArm(F64, unions) },
|
|
742
|
+
{ name: "detail", type: DYN },
|
|
743
|
+
{ name: "duration", type: F64 },
|
|
744
|
+
{ name: "entryType", type: STRING },
|
|
745
|
+
{ name: "name", type: STRING },
|
|
746
|
+
{ name: "startTime", type: F64 },
|
|
747
|
+
], false, undefined, PERF_ENTRY_FIELDS);
|
|
748
|
+
}
|
|
749
|
+
/** toJSON()'s plain object over an entry: the same fields without the
|
|
750
|
+
* marker. */
|
|
751
|
+
export function perfEntryJsonShape(shapes) {
|
|
752
|
+
return shapes.intern([
|
|
753
|
+
{ name: "detail", type: DYN },
|
|
754
|
+
{ name: "duration", type: F64 },
|
|
755
|
+
{ name: "entryType", type: STRING },
|
|
756
|
+
{ name: "name", type: STRING },
|
|
757
|
+
{ name: "startTime", type: F64 },
|
|
758
|
+
], false, undefined, PERF_ENTRY_FIELDS);
|
|
759
|
+
}
|
|
724
760
|
function isDeclaredInAmbientModule(d, name) {
|
|
725
761
|
let node = d.parent;
|
|
726
762
|
while (node) {
|
|
@@ -849,6 +885,43 @@ let mapTypeDepth = 0;
|
|
|
849
885
|
* a bump between entry and exit stays fenced (recursive generic-open types
|
|
850
886
|
* stay fenced instead of interning a per-context-wrong shape). */
|
|
851
887
|
let contextResolutions = 0;
|
|
888
|
+
/** node:url's legacy record interfaces: url.parse()'s Url instance (and
|
|
889
|
+
* its two query-typed refinements), url.format()'s UrlObject input, and the
|
|
890
|
+
* URL form's URLFormatOptions. The values are checked-dynamic objects —
|
|
891
|
+
* Node's Url instance carries its class name and null fields, and format()
|
|
892
|
+
* reads any object's fields with JS truthiness. */
|
|
893
|
+
const LEGACY_URL_TYPES = new Set([
|
|
894
|
+
"Url",
|
|
895
|
+
"UrlObject",
|
|
896
|
+
"UrlWithParsedQuery",
|
|
897
|
+
"UrlWithStringQuery",
|
|
898
|
+
"URLFormatOptions",
|
|
899
|
+
]);
|
|
900
|
+
export function isLegacyUrlType(type, ctx) {
|
|
901
|
+
const symbol = type.getAliasSymbol() ?? type.getSymbol();
|
|
902
|
+
return isLegacyUrlSymbol(symbol, ctx);
|
|
903
|
+
}
|
|
904
|
+
/** A symbol declared as one of node:url's legacy record interfaces, or as
|
|
905
|
+
* a member of one. */
|
|
906
|
+
export function isLegacyUrlSymbol(symbol, ctx) {
|
|
907
|
+
if (!symbol)
|
|
908
|
+
return false;
|
|
909
|
+
for (const d of ctx.checker.declarationsOf(symbol)) {
|
|
910
|
+
if (!ctx.isStdlibFile(d.getSourceFile()))
|
|
911
|
+
continue;
|
|
912
|
+
let family = false;
|
|
913
|
+
for (let n = d; n; n = n.parent) {
|
|
914
|
+
if (ts.isInterfaceDeclaration(n) && LEGACY_URL_TYPES.has(n.name.text))
|
|
915
|
+
family = true;
|
|
916
|
+
if (ts.isModuleDeclaration(n) && ts.isStringLiteral(n.name)) {
|
|
917
|
+
if (family && (n.name.text === "url" || n.name.text === "node:url"))
|
|
918
|
+
return true;
|
|
919
|
+
break;
|
|
920
|
+
}
|
|
921
|
+
}
|
|
922
|
+
}
|
|
923
|
+
return false;
|
|
924
|
+
}
|
|
852
925
|
/** os.constants and its groups — @types/node's `namespace constants`
|
|
853
926
|
* (errno, dlopen, priority) and SignalConstants, and the fallback's twins:
|
|
854
927
|
* the runtime's checked-dynamic constants object, whose members vary by
|
|
@@ -984,7 +1057,7 @@ function mapTypeInner(type, ctx) {
|
|
|
984
1057
|
checker.declarationsOf(directAlias).some((decl) => ctx.isStdlibFile(decl.getSourceFile()))) {
|
|
985
1058
|
return { kind: "object", className: "%Error" };
|
|
986
1059
|
}
|
|
987
|
-
if (isOsConstantsType(type, ctx))
|
|
1060
|
+
if (isOsConstantsType(type, ctx) || isLegacyUrlType(type, ctx))
|
|
988
1061
|
return DYN;
|
|
989
1062
|
// Immutable<T> (@scriptc/types) is a deep-readonly view: the value is
|
|
990
1063
|
// still the T it maps.
|
|
@@ -1287,8 +1360,12 @@ function mapTypeInner(type, ctx) {
|
|
|
1287
1360
|
// changing this public representation. This is dynFallbackType's JS stance promoted into
|
|
1288
1361
|
// the mapping itself; construction sites build dynArrLit (the checked-dynamic tree
|
|
1289
1362
|
// array literal) and typed sources convert per element at the slot.
|
|
1363
|
+
// Arrays of class-backed protocol values are the exception: each
|
|
1364
|
+
// element is one checked-dynamic value (a class capsule or an object),
|
|
1365
|
+
// so a native array of them keeps every element's identity and passes
|
|
1366
|
+
// method calls a receiver they can dispatch.
|
|
1290
1367
|
if (elem.kind === "dyn")
|
|
1291
|
-
return DYN;
|
|
1368
|
+
return ctx.classImplementedProtocol?.(elemTs) ? arrayOf(DYN) : DYN;
|
|
1292
1369
|
// The shared predicate is the runtime/backend storage contract. In
|
|
1293
1370
|
// particular, valid standalone values such as Date and opaque
|
|
1294
1371
|
// handles do not automatically have an array element representation.
|
|
@@ -1567,7 +1644,7 @@ function mapTypeInner(type, ctx) {
|
|
|
1567
1644
|
// it lowers like `unknown` (the dyn) — the same rule as `object` and
|
|
1568
1645
|
// the empty object type, provenance-checked so a user's own `interface
|
|
1569
1646
|
// Object` still maps as a record. Its Object.prototype member surface
|
|
1570
|
-
// (`x.toString()`) fences at each use site
|
|
1647
|
+
// (`x.toString()`) fences at each use site with an explicit error.
|
|
1571
1648
|
if (isStdlibInterface("Object"))
|
|
1572
1649
|
return DYN;
|
|
1573
1650
|
// NodeJS.Module / the shipped fallback's ScriptcModule: a process-lifetime
|
|
@@ -1601,17 +1678,17 @@ function mapTypeInner(type, ctx) {
|
|
|
1601
1678
|
(isDeclaredInAmbientModule(d, "events") || isDeclaredInAmbientNamespace(d, "NodeJS")))) {
|
|
1602
1679
|
return { kind: "object", className: RUNTIME_EMITTER_CLASS };
|
|
1603
1680
|
}
|
|
1604
|
-
// readline.Interface: the interface
|
|
1605
|
-
// runtime's registry (the Timeout-id
|
|
1606
|
-
// so the provenance check adds the
|
|
1607
|
-
//
|
|
1608
|
-
// readline/promises — that one stays unmapped and fences).
|
|
1681
|
+
// readline.Interface and readline/promises.Interface: the interface
|
|
1682
|
+
// value is an f64 handle into the runtime's registry (the Timeout-id
|
|
1683
|
+
// precedent). The NAME is generic, so the provenance check adds the
|
|
1684
|
+
// enclosing ambient module, like net.Server.
|
|
1609
1685
|
if (psym?.name === "Interface" &&
|
|
1610
1686
|
checker
|
|
1611
1687
|
.declarationsOf(psym)
|
|
1612
1688
|
.some((d) => (ts.isInterfaceDeclaration(d) || ts.isClassDeclaration(d)) &&
|
|
1613
1689
|
ctx.isStdlibFile(d.getSourceFile()) &&
|
|
1614
|
-
isDeclaredInAmbientModule(d, "readline")
|
|
1690
|
+
(isDeclaredInAmbientModule(d, "readline") ||
|
|
1691
|
+
isDeclaredInAmbientModule(d, "readline/promises")))) {
|
|
1615
1692
|
return F64;
|
|
1616
1693
|
}
|
|
1617
1694
|
// diagnostics_channel.Channel: the channel value is an f64 handle into
|
|
@@ -1804,6 +1881,16 @@ function mapTypeInner(type, ctx) {
|
|
|
1804
1881
|
return null;
|
|
1805
1882
|
return genResultRecord(elem, VOID, ctx.shapes, ctx.unions);
|
|
1806
1883
|
}
|
|
1884
|
+
// node:crypto's KeyObject: secret keys are native handles (scr_lib.c)
|
|
1885
|
+
// whose getters and methods dispatch through the handle. The JsonWebKey
|
|
1886
|
+
// that export() returns is a plain checked-dynamic object.
|
|
1887
|
+
if ((psym?.name === "KeyObject" || psym?.name === "JsonWebKey") &&
|
|
1888
|
+
checker
|
|
1889
|
+
.declarationsOf(psym)
|
|
1890
|
+
.some((d) => (ts.isClassDeclaration(d) || ts.isInterfaceDeclaration(d)) &&
|
|
1891
|
+
ctx.isStdlibFile(d.getSourceFile()))) {
|
|
1892
|
+
return DYN;
|
|
1893
|
+
}
|
|
1807
1894
|
if (psym &&
|
|
1808
1895
|
FETCH_AMBIENT_TYPES.includes(psym.name) &&
|
|
1809
1896
|
!(psym.name === "ReadableStream" &&
|
|
@@ -1922,7 +2009,8 @@ function mapTypeInner(type, ctx) {
|
|
|
1922
2009
|
if (isStdlibInterface("ArrayBuffer") ||
|
|
1923
2010
|
isStdlibInterface("SharedArrayBuffer") ||
|
|
1924
2011
|
isStdlibInterface("PropertyDescriptor") ||
|
|
1925
|
-
isStdlibInterface("ProcessVersions")
|
|
2012
|
+
isStdlibInterface("ProcessVersions") ||
|
|
2013
|
+
isStdlibInterface("ProcessRelease"))
|
|
1926
2014
|
return DYN;
|
|
1927
2015
|
if (Object.values(BYTES_ELEMENT_NAME).some((name) => isStdlibInterface(`${name}Constructor`)))
|
|
1928
2016
|
return DYN;
|
|
@@ -2020,6 +2108,16 @@ function mapTypeInner(type, ctx) {
|
|
|
2020
2108
|
isDeclaredInAmbientModule(d, "fs/promises"))) {
|
|
2021
2109
|
return { kind: "fileHandle" };
|
|
2022
2110
|
}
|
|
2111
|
+
// fs.Dir: an open directory stream, declared in "fs" by both the
|
|
2112
|
+
// fallback and @types/node.
|
|
2113
|
+
if (psym?.name === "Dir" &&
|
|
2114
|
+
checker
|
|
2115
|
+
.declarationsOf(psym)
|
|
2116
|
+
.some((d) => (ts.isInterfaceDeclaration(d) || ts.isClassDeclaration(d)) &&
|
|
2117
|
+
ctx.isStdlibFile(d.getSourceFile()) &&
|
|
2118
|
+
isDeclaredInAmbientModule(d, "fs"))) {
|
|
2119
|
+
return { kind: "dir" };
|
|
2120
|
+
}
|
|
2023
2121
|
// child_process.SpawnSyncReturns: @types/node's generic interface (the
|
|
2024
2122
|
// Buffer/string split is re-checked at the stdout/stderr READ — status
|
|
2025
2123
|
// reads work either way) or the fallback declarations' plain interface.
|
|
@@ -2446,7 +2544,8 @@ function mapTypeInner(type, ctx) {
|
|
|
2446
2544
|
// is string[]; unsupported runtime modes throw at the call), and the
|
|
2447
2545
|
// accepted-but-inert maxBuffer/windowsHide. Members outside this set
|
|
2448
2546
|
// (env, killSignal, shell, uid, ...) keep the shape unmatched — their
|
|
2449
|
-
// literals fence at the shape check instead of
|
|
2547
|
+
// literals fence at the shape check instead of being dropped without a
|
|
2548
|
+
// diagnostic.
|
|
2450
2549
|
if (isStdlibInterface("ExecFileSyncOptionsWithStringEncoding")) {
|
|
2451
2550
|
const optStr = withUndefinedArm(STRING, ctx.unions);
|
|
2452
2551
|
const optNum = withUndefinedArm(F64, ctx.unions);
|
|
@@ -2556,10 +2655,11 @@ function mapTypeInner(type, ctx) {
|
|
|
2556
2655
|
// hidden %dtype field carries the entry kind (libuv's UV_DIRENT
|
|
2557
2656
|
// encoding) that the isFile/isDirectory/isSymbolicLink call lowerings
|
|
2558
2657
|
// read (lowerDirentMethodCall — the StringDecoder pattern, so the
|
|
2559
|
-
// %-field never surfaces through the lowered Dirent surface itself
|
|
2560
|
-
//
|
|
2561
|
-
//
|
|
2562
|
-
//
|
|
2658
|
+
// %-field never surfaces through the lowered Dirent surface itself).
|
|
2659
|
+
// A row converted to dyn takes Node's Dirent prototype and Symbol(type)
|
|
2660
|
+
// key, with %dtype non-enumerable (scr_dyn_dirent_finish), and inspect
|
|
2661
|
+
// renders rows through that view. @types/node declares Dirent<Name>
|
|
2662
|
+
// generic over the name's encoding — only the string instantiation maps (the
|
|
2563
2663
|
// encoding:'buffer' readdir form has no lowering); the shipped fallback
|
|
2564
2664
|
// declares it concrete (an interface; @types/node uses a class — both
|
|
2565
2665
|
// provenance-checked, the Buffer/URL pattern).
|
|
@@ -2679,6 +2779,31 @@ function mapTypeInner(type, ctx) {
|
|
|
2679
2779
|
], false, undefined, ["fingerprint", "validFrom", "validTo"]),
|
|
2680
2780
|
};
|
|
2681
2781
|
}
|
|
2782
|
+
// perf_hooks' PerformanceEntry, PerformanceMark and PerformanceMeasure
|
|
2783
|
+
// (performance.mark/measure and the getEntries family): ONE record shape
|
|
2784
|
+
// for the three classes, so marks and measures share PerformanceEntry[]
|
|
2785
|
+
// arrays. The visible fields are toJSON's, in its order; the hidden
|
|
2786
|
+
// marker field keeps the shape distinct from a structurally equal user
|
|
2787
|
+
// record (util.inspect names the class from entryType, like Node).
|
|
2788
|
+
// @types/node declares the classes in perf_hooks and global interfaces
|
|
2789
|
+
// over them; the shipped fallback declares the classes.
|
|
2790
|
+
if ((psym?.name === "PerformanceEntry" ||
|
|
2791
|
+
psym?.name === "PerformanceMark" ||
|
|
2792
|
+
psym?.name === "PerformanceMeasure") &&
|
|
2793
|
+
checker
|
|
2794
|
+
.declarationsOf(psym)
|
|
2795
|
+
.some((d) => (ts.isInterfaceDeclaration(d) || ts.isClassDeclaration(d)) &&
|
|
2796
|
+
ctx.isStdlibFile(d.getSourceFile()))) {
|
|
2797
|
+
return { kind: "record", shapeId: perfEntryShape(ctx.shapes, ctx.unions) };
|
|
2798
|
+
}
|
|
2799
|
+
// process.memoryUsage()'s record, in Node's key order.
|
|
2800
|
+
if (isStdlibInterface("MemoryUsage")) {
|
|
2801
|
+
const names = ["rss", "heapTotal", "heapUsed", "external", "arrayBuffers"];
|
|
2802
|
+
return {
|
|
2803
|
+
kind: "record",
|
|
2804
|
+
shapeId: ctx.shapes.intern([...names].sort().map((name) => ({ name, type: F64 })), false, undefined, names),
|
|
2805
|
+
};
|
|
2806
|
+
}
|
|
2682
2807
|
// process.cpuUsage()/threadCpuUsage()'s {user, system} microsecond
|
|
2683
2808
|
// record and resourceUsage()'s getrusage record — stdlib data
|
|
2684
2809
|
// interfaces interned explicitly (the RemoteInfo pattern; declared
|
|
@@ -4436,7 +4561,7 @@ function mapRecordTypeInner(widened, ctx) {
|
|
|
4436
4561
|
return DYN;
|
|
4437
4562
|
// A computed shape with NO members is not a real empty record: inside a
|
|
4438
4563
|
// generic body `Partial<T>` resolves to no members at all (keyof T is
|
|
4439
|
-
// still unknown there) — interning `{}` would
|
|
4564
|
+
// still unknown there) — interning `{}` would give a wrong type. The
|
|
4440
4565
|
// degenerate empties (`Partial<{}>`, `Omit<C, keyof C>`) go with it.
|
|
4441
4566
|
// An INDEX-SIGNATURE shape is exempt: `Record<string, T>` legitimately
|
|
4442
4567
|
// has zero declared members — the signature is the shape.
|
|
@@ -4476,8 +4601,8 @@ function mapRecordTypeInner(widened, ctx) {
|
|
|
4476
4601
|
// accessor MEMBERS map the same way so accessor records cross
|
|
4477
4602
|
// annotated boundaries (`function f(p: { get x(): number })`) —
|
|
4478
4603
|
// tsc lets a plain DATA property satisfy such a member, but the
|
|
4479
|
-
// exact-shape stance turns that into a
|
|
4480
|
-
// at the literal
|
|
4604
|
+
// exact-shape stance turns that into a shape-mismatch diagnostic
|
|
4605
|
+
// at the literal instead of an undiagnosed split. JS-file literals keep
|
|
4481
4606
|
// their existing paths (the CJS export-table narrowing and the
|
|
4482
4607
|
// checked-dynamic fallback), and .d.ts declarations stay out with
|
|
4483
4608
|
// the rest of the lib's type worlds.
|