@scriptc/compiler 0.1.1 → 0.1.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.
Files changed (279) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +104 -31
  2. package/ambient/scriptc.d.ts +2 -1
  3. package/dist/backend/build-cache.js.map +1 -1
  4. package/dist/backend/c/async.d.ts +5 -0
  5. package/dist/backend/c/async.js +81 -2
  6. package/dist/backend/c/async.js.map +1 -1
  7. package/dist/backend/c/c-emitter.d.ts +25 -10
  8. package/dist/backend/c/c-emitter.js +74 -22
  9. package/dist/backend/c/c-emitter.js.map +1 -1
  10. package/dist/backend/c/exprs.d.ts +8 -1
  11. package/dist/backend/c/exprs.js +371 -18
  12. package/dist/backend/c/exprs.js.map +1 -1
  13. package/dist/backend/c/island.js.map +1 -1
  14. package/dist/backend/c/may-throw.js.map +1 -1
  15. package/dist/backend/c/shapes.js +15 -13
  16. package/dist/backend/c/shapes.js.map +1 -1
  17. package/dist/backend/c/stmts.d.ts +3 -5
  18. package/dist/backend/c/stmts.js +58 -17
  19. package/dist/backend/c/stmts.js.map +1 -1
  20. package/dist/backend/c/types.d.ts +4 -0
  21. package/dist/backend/c/types.js +18 -1
  22. package/dist/backend/c/types.js.map +1 -1
  23. package/dist/backend/c/types.test.js +8 -1
  24. package/dist/backend/c/types.test.js.map +1 -1
  25. package/dist/backend/c/walkers.js +63 -16
  26. package/dist/backend/c/walkers.js.map +1 -1
  27. package/dist/backend/external-c.js.map +1 -1
  28. package/dist/backend/json-literal.d.ts +7 -0
  29. package/dist/backend/json-literal.js +17 -0
  30. package/dist/backend/json-literal.js.map +1 -0
  31. package/dist/backend/json-literal.test.d.ts +1 -0
  32. package/dist/backend/json-literal.test.js +17 -0
  33. package/dist/backend/json-literal.test.js.map +1 -0
  34. package/dist/backend/link-plan.d.ts +1 -1
  35. package/dist/backend/link-plan.js +5 -1
  36. package/dist/backend/link-plan.js.map +1 -1
  37. package/dist/backend/linker.js.map +1 -1
  38. package/dist/backend/llvm/blocks.js.map +1 -1
  39. package/dist/backend/llvm/classes.js +8 -7
  40. package/dist/backend/llvm/classes.js.map +1 -1
  41. package/dist/backend/llvm/common.d.ts +4 -0
  42. package/dist/backend/llvm/common.js +6 -0
  43. package/dist/backend/llvm/common.js.map +1 -1
  44. package/dist/backend/llvm/common.test.d.ts +1 -0
  45. package/dist/backend/llvm/common.test.js +9 -0
  46. package/dist/backend/llvm/common.test.js.map +1 -0
  47. package/dist/backend/llvm/dyn.d.ts +4 -0
  48. package/dist/backend/llvm/dyn.js +80 -16
  49. package/dist/backend/llvm/dyn.js.map +1 -1
  50. package/dist/backend/llvm/emitter.js +132 -25
  51. package/dist/backend/llvm/emitter.js.map +1 -1
  52. package/dist/backend/llvm/expr-async.js +85 -3
  53. package/dist/backend/llvm/expr-async.js.map +1 -1
  54. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  55. package/dist/backend/llvm/expr-calls.js.map +1 -1
  56. package/dist/backend/llvm/expr-containers.js.map +1 -1
  57. package/dist/backend/llvm/expr-context.d.ts +5 -0
  58. package/dist/backend/llvm/expr-control.js.map +1 -1
  59. package/dist/backend/llvm/expr-dispatch.js.map +1 -1
  60. package/dist/backend/llvm/expr-dynamic.js +15 -3
  61. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  62. package/dist/backend/llvm/expr-island.js.map +1 -1
  63. package/dist/backend/llvm/expr-primitives.js +8 -0
  64. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  65. package/dist/backend/llvm/expr-records.js +3 -3
  66. package/dist/backend/llvm/expr-records.js.map +1 -1
  67. package/dist/backend/llvm/expr-stream-bridges.js +222 -10
  68. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  69. package/dist/backend/llvm/expr-stream-callbacks.d.ts +3 -0
  70. package/dist/backend/llvm/expr-stream-callbacks.js +53 -0
  71. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
  72. package/dist/backend/llvm/lib-dispatch.js +24 -0
  73. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  74. package/dist/backend/llvm/lib-process.js +50 -5
  75. package/dist/backend/llvm/lib-process.js.map +1 -1
  76. package/dist/backend/llvm/lib-shared.js +64 -0
  77. package/dist/backend/llvm/lib-shared.js.map +1 -1
  78. package/dist/backend/llvm/lib-stream.js +6 -3
  79. package/dist/backend/llvm/lib-stream.js.map +1 -1
  80. package/dist/backend/llvm/shapes.js +10 -8
  81. package/dist/backend/llvm/shapes.js.map +1 -1
  82. package/dist/backend/llvm/split.js.map +1 -1
  83. package/dist/backend/llvm/unsupported.js.map +1 -1
  84. package/dist/backend/llvm/walkers.js +7 -5
  85. package/dist/backend/llvm/walkers.js.map +1 -1
  86. package/dist/backend/native-codegen.js.map +1 -1
  87. package/dist/backend/native-codegen.test.js +2 -0
  88. package/dist/backend/native-codegen.test.js.map +1 -1
  89. package/dist/backend/native-link-info.d.ts +2 -1
  90. package/dist/backend/native-link-info.js +4 -0
  91. package/dist/backend/native-link-info.js.map +1 -1
  92. package/dist/backend/native-link-info.test.js +24 -1
  93. package/dist/backend/native-link-info.test.js.map +1 -1
  94. package/dist/backend/native-toolchain.d.ts +8 -6
  95. package/dist/backend/native-toolchain.js +28 -13
  96. package/dist/backend/native-toolchain.js.map +1 -1
  97. package/dist/backend/native-toolchain.test.js +36 -1
  98. package/dist/backend/native-toolchain.test.js.map +1 -1
  99. package/dist/backend/runtime-pack-targets.test.js +1 -1
  100. package/dist/backend/runtime-pack-targets.test.js.map +1 -1
  101. package/dist/backend/runtime-pack.js.map +1 -1
  102. package/dist/backend/runtime-pack.test.js +1 -0
  103. package/dist/backend/runtime-pack.test.js.map +1 -1
  104. package/dist/backend/targets.d.ts +5 -0
  105. package/dist/backend/targets.js +9 -0
  106. package/dist/backend/targets.js.map +1 -1
  107. package/dist/backend/targets.test.js +6 -1
  108. package/dist/backend/targets.test.js.map +1 -1
  109. package/dist/backend/vendor-archives.js.map +1 -1
  110. package/dist/compat/fetch-profile.js +4 -2
  111. package/dist/compat/fetch-profile.js.map +1 -1
  112. package/dist/coverage/report.js.map +1 -1
  113. package/dist/coverage/surface-manifest.js +13 -0
  114. package/dist/coverage/surface-manifest.js.map +1 -1
  115. package/dist/diagnostics/diagnostic.d.ts +6 -5
  116. package/dist/diagnostics/diagnostic.js +10 -9
  117. package/dist/diagnostics/diagnostic.js.map +1 -1
  118. package/dist/diagnostics/render.js.map +1 -1
  119. package/dist/executable/executable-cache.d.ts +1 -0
  120. package/dist/executable/executable-cache.js +1 -0
  121. package/dist/executable/executable-cache.js.map +1 -1
  122. package/dist/executable/executable-cache.test.js +1 -0
  123. package/dist/executable/executable-cache.test.js.map +1 -1
  124. package/dist/ffi/ffi-manifest.js.map +1 -1
  125. package/dist/frontend/cjs-lexer.js.map +1 -1
  126. package/dist/frontend/dts-paths.js.map +1 -1
  127. package/dist/frontend/input-tracker.d.ts +10 -0
  128. package/dist/frontend/input-tracker.js +26 -3
  129. package/dist/frontend/input-tracker.js.map +1 -1
  130. package/dist/frontend/input-tracker.test.js +8 -1
  131. package/dist/frontend/input-tracker.test.js.map +1 -1
  132. package/dist/frontend/lib-contract.js.map +1 -1
  133. package/dist/frontend/lowering/array-values.d.ts +4 -0
  134. package/dist/frontend/lowering/array-values.js +18 -2
  135. package/dist/frontend/lowering/array-values.js.map +1 -1
  136. package/dist/frontend/lowering/callback-arg.js.map +1 -1
  137. package/dist/frontend/lowering/containers/bytes.d.ts +31 -0
  138. package/dist/frontend/lowering/containers/bytes.js +1105 -0
  139. package/dist/frontend/lowering/containers/bytes.js.map +1 -0
  140. package/dist/frontend/lowering/containers/string-and-regexp.d.ts +17 -0
  141. package/dist/frontend/lowering/containers/string-and-regexp.js +345 -0
  142. package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -0
  143. package/dist/frontend/lowering/expressions/evaluation-safety.d.ts +13 -0
  144. package/dist/frontend/lowering/expressions/evaluation-safety.js +76 -0
  145. package/dist/frontend/lowering/expressions/evaluation-safety.js.map +1 -0
  146. package/dist/frontend/lowering/expressions/object-literals.d.ts +44 -0
  147. package/dist/frontend/lowering/expressions/object-literals.js +1815 -0
  148. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -0
  149. package/dist/frontend/lowering/expressions/optional-chains.d.ts +31 -0
  150. package/dist/frontend/lowering/expressions/optional-chains.js +382 -0
  151. package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -0
  152. package/dist/frontend/lowering/expressions/try-lower-expression.d.ts +7 -0
  153. package/dist/frontend/lowering/expressions/try-lower-expression.js +26 -0
  154. package/dist/frontend/lowering/expressions/try-lower-expression.js.map +1 -0
  155. package/dist/frontend/lowering/lib-boundary.js +7 -2
  156. package/dist/frontend/lowering/lib-boundary.js.map +1 -1
  157. package/dist/frontend/lowering/lower-assert.js +16 -10
  158. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  159. package/dist/frontend/lowering/lower-async-iteration.d.ts +7 -0
  160. package/dist/frontend/lowering/lower-async-iteration.js +657 -0
  161. package/dist/frontend/lowering/lower-async-iteration.js.map +1 -0
  162. package/dist/frontend/lowering/lower-builtins.d.ts +40 -21
  163. package/dist/frontend/lowering/lower-builtins.js +611 -115
  164. package/dist/frontend/lowering/lower-builtins.js.map +1 -1
  165. package/dist/frontend/lowering/lower-calls.d.ts +21 -10
  166. package/dist/frontend/lowering/lower-calls.js +516 -75
  167. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  168. package/dist/frontend/lowering/lower-classes.d.ts +7 -13
  169. package/dist/frontend/lowering/lower-classes.js +128 -35
  170. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  171. package/dist/frontend/lowering/lower-comptime.js.map +1 -1
  172. package/dist/frontend/lowering/lower-containers.d.ts +1 -47
  173. package/dist/frontend/lowering/lower-containers.js +147 -1475
  174. package/dist/frontend/lowering/lower-containers.js.map +1 -1
  175. package/dist/frontend/lowering/lower-event-emitter.js +51 -5
  176. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  177. package/dist/frontend/lowering/lower-exprs.d.ts +0 -78
  178. package/dist/frontend/lowering/lower-exprs.js +503 -2353
  179. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  180. package/dist/frontend/lowering/lower-generators.d.ts +18 -3
  181. package/dist/frontend/lowering/lower-generators.js +145 -9
  182. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  183. package/dist/frontend/lowering/lower-inspect.js +10 -3
  184. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  185. package/dist/frontend/lowering/lower-island.d.ts +6 -0
  186. package/dist/frontend/lowering/lower-island.js +37 -5
  187. package/dist/frontend/lowering/lower-island.js.map +1 -1
  188. package/dist/frontend/lowering/lower-modules.js +60 -15
  189. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  190. package/dist/frontend/lowering/lower-node-module.d.ts +18 -0
  191. package/dist/frontend/lowering/lower-node-module.js +302 -0
  192. package/dist/frontend/lowering/lower-node-module.js.map +1 -0
  193. package/dist/frontend/lowering/lower-server.js +1 -1
  194. package/dist/frontend/lowering/lower-server.js.map +1 -1
  195. package/dist/frontend/lowering/lower-stmts.d.ts +10 -28
  196. package/dist/frontend/lowering/lower-stmts.js +542 -259
  197. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  198. package/dist/frontend/lowering/lower-stream.js +4 -4
  199. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  200. package/dist/frontend/lowering/lowerer.d.ts +41 -38
  201. package/dist/frontend/lowering/lowerer.js +148 -62
  202. package/dist/frontend/lowering/lowerer.js.map +1 -1
  203. package/dist/frontend/lowering/optional-arguments.d.ts +9 -0
  204. package/dist/frontend/lowering/optional-arguments.js +57 -0
  205. package/dist/frontend/lowering/optional-arguments.js.map +1 -0
  206. package/dist/frontend/lowering/surfaces.d.ts +5 -3
  207. package/dist/frontend/lowering/surfaces.js +33 -13
  208. package/dist/frontend/lowering/surfaces.js.map +1 -1
  209. package/dist/frontend/npm-static-declarations.d.ts +35 -0
  210. package/dist/frontend/npm-static-declarations.js +519 -0
  211. package/dist/frontend/npm-static-declarations.js.map +1 -0
  212. package/dist/frontend/npm-static-declarations.test.d.ts +1 -0
  213. package/dist/frontend/npm-static-declarations.test.js +132 -0
  214. package/dist/frontend/npm-static-declarations.test.js.map +1 -0
  215. package/dist/frontend/npm-static.d.ts +2 -0
  216. package/dist/frontend/npm-static.js +26 -10
  217. package/dist/frontend/npm-static.js.map +1 -1
  218. package/dist/frontend/npm.d.ts +60 -0
  219. package/dist/frontend/npm.js +38 -4
  220. package/dist/frontend/npm.js.map +1 -1
  221. package/dist/frontend/npm.test.d.ts +1 -0
  222. package/dist/frontend/npm.test.js +50 -0
  223. package/dist/frontend/npm.test.js.map +1 -0
  224. package/dist/frontend/program.d.ts +3 -2
  225. package/dist/frontend/program.js +513 -70
  226. package/dist/frontend/program.js.map +1 -1
  227. package/dist/frontend/resolve.d.ts +26 -3
  228. package/dist/frontend/resolve.js +166 -29
  229. package/dist/frontend/resolve.js.map +1 -1
  230. package/dist/frontend/resolve.test.js +24 -1
  231. package/dist/frontend/resolve.test.js.map +1 -1
  232. package/dist/frontend/runtime-resolve.d.ts +22 -0
  233. package/dist/frontend/runtime-resolve.js +101 -0
  234. package/dist/frontend/runtime-resolve.js.map +1 -0
  235. package/dist/frontend/runtime-resolve.test.d.ts +1 -0
  236. package/dist/frontend/runtime-resolve.test.js +18 -0
  237. package/dist/frontend/runtime-resolve.test.js.map +1 -0
  238. package/dist/frontend/ts7/adapter.js +12 -13
  239. package/dist/frontend/ts7/adapter.js.map +1 -1
  240. package/dist/frontend/ts7/ast.js.map +1 -1
  241. package/dist/frontend/ts7/census-check.js +3 -3
  242. package/dist/frontend/ts7/census-check.js.map +1 -1
  243. package/dist/frontend/ts7/checker.d.ts +3 -0
  244. package/dist/frontend/ts7/checker.js +12 -3
  245. package/dist/frontend/ts7/checker.js.map +1 -1
  246. package/dist/frontend/ts7/enums.js.map +1 -1
  247. package/dist/frontend/ts7/program-adapter.js +42 -3
  248. package/dist/frontend/ts7/program-adapter.js.map +1 -1
  249. package/dist/frontend/type-mapper.js +171 -16
  250. package/dist/frontend/type-mapper.js.map +1 -1
  251. package/dist/index.js +11 -5
  252. package/dist/index.js.map +1 -1
  253. package/dist/ir/analysis.js +1 -0
  254. package/dist/ir/analysis.js.map +1 -1
  255. package/dist/ir/ir.d.ts +125 -52
  256. package/dist/ir/ir.js +136 -7
  257. package/dist/ir/ir.js.map +1 -1
  258. package/dist/ir/serialize.d.ts +1 -1
  259. package/dist/ir/serialize.js +1 -1
  260. package/dist/ir/validate.js +120 -63
  261. package/dist/ir/validate.js.map +1 -1
  262. package/dist/library/cache-primitives.js.map +1 -1
  263. package/dist/library/cache-reset.test.js.map +1 -1
  264. package/dist/library/compiler-self-identity.js.map +1 -1
  265. package/dist/library/int-infer.js.map +1 -1
  266. package/dist/library/int-infer.test.js +4 -4
  267. package/dist/library/int-infer.test.js.map +1 -1
  268. package/dist/library/library-cache.d.ts +1 -0
  269. package/dist/library/library-cache.js +1 -0
  270. package/dist/library/library-cache.js.map +1 -1
  271. package/dist/library/library-cache.test.js +18 -5
  272. package/dist/library/library-cache.test.js.map +1 -1
  273. package/dist/library/library-profile.js.map +1 -1
  274. package/dist/library/sidecar-validate.js.map +1 -1
  275. package/dist/library/sidecar.js.map +1 -1
  276. package/dist/startup-cache.js.map +1 -1
  277. package/dist/wasi-paths.js.map +1 -1
  278. package/package.json +18 -18
  279. package/surface-manifest.json +91 -20
@@ -282,6 +282,17 @@ declare var process: {
282
282
  emitWarning(warning: string | Error, ...args: any[]): void;
283
283
  };
284
284
 
285
+ /* Node's process module default export is the global process object. These
286
+ * declaration aliases let the ESM spelling typecheck against the same
287
+ * deliberately narrow fallback surface when @types/node is absent. */
288
+ declare module "process" {
289
+ export = process;
290
+ }
291
+ declare module "node:process" {
292
+ import process = require("process");
293
+ export = process;
294
+ }
295
+
285
296
  /* ── globals a real CLI's sources reference (all @types/node or dyn-lib
286
297
  * territory; the fallback declares the slice so projects PREFLIGHT and
287
298
  * every reached use lands on the SC2020 fence — or a real lowering where
@@ -296,6 +307,20 @@ declare var process: {
296
307
  declare var __dirname: string;
297
308
  declare var __filename: string;
298
309
 
310
+ interface ScriptcModule {
311
+ children: ScriptcModule[];
312
+ exports: any;
313
+ filename: string;
314
+ id: string;
315
+ isPreloading: boolean;
316
+ loaded: boolean;
317
+ parent: ScriptcModule | null | undefined;
318
+ path: string;
319
+ paths: string[];
320
+ require(id: string): any;
321
+ }
322
+ declare var module: ScriptcModule;
323
+
299
324
  /* `global` IS globalThis (Node's alias), and `declare var process` above
300
325
  * puts process on `typeof globalThis` — so `globalThis.process` and
301
326
  * `global.process` read the same object as the bare name. */
@@ -303,29 +328,36 @@ declare var global: typeof globalThis;
303
328
 
304
329
  /* The `require` VALUE's non-call surface. require() CALLS are module
305
330
  * edges (the checker models them as imports); the object's own members
306
- * are declared here so harness idioms typecheck. `require.main` lowers
307
- * to the ENTRY module's record ({ filename } — a compiled binary's main
308
- * module is always the entry, Node's answer for a directly-run script);
309
- * the rest fences per site. */
310
- declare var require: {
331
+ * are declared here so harness idioms typecheck. The main/cache values and
332
+ * the CommonJS module graph lower to native process-lifetime handles. */
333
+ interface ScriptcRequireResolveOptions {
334
+ paths?: string[];
335
+ }
336
+ interface ScriptcRequireResolve {
337
+ (id: string, options?: ScriptcRequireResolveOptions): string;
338
+ paths(id: string): string[] | null;
339
+ }
340
+ interface ScriptcRequire {
311
341
  /* The call signature types NON-IMPORT-SHAPED require expressions (the
312
342
  * checker models import-shaped requires as module aliases regardless,
313
343
  * exactly like under @types/node's NodeRequire). `any`, like
314
344
  * @types/node: the value's home is the module system, not the static
315
345
  * value model — reached uses fence per site. */
316
346
  (id: string): any;
317
- main: { filename: string } | undefined;
318
- resolve(id: string): string;
319
- cache: { [id: string]: unknown };
320
- };
347
+ main: ScriptcModule | undefined;
348
+ resolve: ScriptcRequireResolve;
349
+ cache: { [id: string]: ScriptcModule | undefined };
350
+ }
351
+ declare var require: ScriptcRequire;
321
352
 
322
353
  /* setImmediate/clearImmediate — Node's macrotask pair (fires after I/O
323
354
  * events of the current loop turn, before timers due later). The handle
324
355
  * follows the Timeout pattern: loop-liveness bookkeeping. */
325
- interface Immediate {
356
+ interface Immediate extends Disposable {
326
357
  ref(): Immediate;
327
358
  unref(): Immediate;
328
359
  hasRef(): boolean;
360
+ [Symbol.dispose](): void;
329
361
  }
330
362
  declare function setImmediate(callback: () => void): Immediate;
331
363
  /* The trailing-argument form — Node passes the extras to the callback. */
@@ -442,6 +474,12 @@ interface Buffer<TArrayBuffer extends ArrayBufferLike = ArrayBufferLike> extends
442
474
  writeUIntLE(value: number, offset: number, byteLength: number): number;
443
475
  writeIntBE(value: number, offset: number, byteLength: number): number;
444
476
  writeIntLE(value: number, offset: number, byteLength: number): number;
477
+ writeBigInt64BE(value: bigint, offset?: number): number;
478
+ writeBigInt64LE(value: bigint, offset?: number): number;
479
+ writeBigUInt64BE(value: bigint, offset?: number): number;
480
+ writeBigUInt64LE(value: bigint, offset?: number): number;
481
+ writeBigUint64BE(value: bigint, offset?: number): number;
482
+ writeBigUint64LE(value: bigint, offset?: number): number;
445
483
  readUInt8(offset?: number): number;
446
484
  readUInt16BE(offset?: number): number;
447
485
  readUInt16LE(offset?: number): number;
@@ -460,6 +498,12 @@ interface Buffer<TArrayBuffer extends ArrayBufferLike = ArrayBufferLike> extends
460
498
  readUIntLE(offset: number, byteLength: number): number;
461
499
  readIntBE(offset: number, byteLength: number): number;
462
500
  readIntLE(offset: number, byteLength: number): number;
501
+ readBigInt64BE(offset?: number): bigint;
502
+ readBigInt64LE(offset?: number): bigint;
503
+ readBigUInt64BE(offset?: number): bigint;
504
+ readBigUInt64LE(offset?: number): bigint;
505
+ readBigUint64BE(offset?: number): bigint;
506
+ readBigUint64LE(offset?: number): bigint;
463
507
  }
464
508
  interface BufferConstructor {
465
509
  from(data: string, encoding?: BufferEncoding): Buffer;
@@ -642,6 +686,8 @@ interface ReadableStream<T = unknown> {
642
686
  readonly locked: boolean;
643
687
  cancel(reason?: unknown): Promise<void>;
644
688
  getReader(): ReadableStreamDefaultReader<T>;
689
+ [Symbol.asyncIterator](options?: { preventCancel?: boolean }): AsyncIterableIterator<T>;
690
+ values(options?: { preventCancel?: boolean }): AsyncIterableIterator<T>;
645
691
  }
646
692
  declare var ReadableStream: {
647
693
  new <T = unknown>(source?: UnderlyingSource<T>): ReadableStream<T>;
@@ -776,12 +822,13 @@ declare module "timers" {
776
822
  /* node:timers/promises — the promisified pair the Node test harness leans
777
823
  * on (`await setTimeout(ms)` as a sleep). setTimeout's delay-only form and
778
824
  * setImmediate's bare form lower (a void promise the shared timer heap
779
- * settles); the resolve-value, options (AbortSignal), and setInterval
780
- * async-iterator forms are declared surface that fences per site. */
825
+ * settles); setInterval(delay, value) lowers to a typed async iterator.
826
+ * Resolve values on the one-shot pair and AbortSignal options remain
827
+ * declared surface that fences per site. */
781
828
  declare module "node:timers/promises" {
782
829
  export function setTimeout(delay?: number): Promise<void>;
783
830
  export function setImmediate(): Promise<void>;
784
- export function setInterval(delay?: number, value?: unknown, options?: unknown): unknown;
831
+ export function setInterval<T = unknown>(delay?: number, value?: T, options?: unknown): AsyncGenerator<T, void, undefined>;
785
832
  export const scheduler: {
786
833
  wait(delay?: number): Promise<void>;
787
834
  yield(): Promise<void>;
@@ -912,7 +959,7 @@ declare var performance: import("node:perf_hooks").Performance;
912
959
  * name the builtin, like in Node (the builtin wins over the npm package
913
960
  * named "module" for the bare specifier there too). */
914
961
  declare module "node:module" {
915
- export function createRequire(filename: string | URL): (id: string) => unknown;
962
+ export function createRequire(filename: string | URL): ScriptcRequire;
916
963
  export const builtinModules: string[];
917
964
  export function isBuiltin(moduleName: string): boolean;
918
965
  export function syncBuiltinESMExports(): void;
@@ -1117,7 +1164,7 @@ declare module "fs/promises" {
1117
1164
  bytesWritten: number;
1118
1165
  buffer: T;
1119
1166
  }
1120
- export interface FileHandle {
1167
+ export interface FileHandle extends AsyncDisposable {
1121
1168
  readonly fd: number;
1122
1169
  close(): Promise<void>;
1123
1170
  read<T extends Uint8Array>(
@@ -1138,6 +1185,7 @@ declare module "fs/promises" {
1138
1185
  writeFile(data: string | Uint8Array, encoding?: "utf8" | "utf-8" | null): Promise<void>;
1139
1186
  appendFile(data: string | Uint8Array, encoding?: "utf8" | "utf-8" | null): Promise<void>;
1140
1187
  stat(): Promise<import("node:fs").Stats>;
1188
+ [Symbol.asyncDispose](): Promise<void>;
1141
1189
  }
1142
1190
  export function open(path: string, flags?: string, mode?: number): Promise<FileHandle>;
1143
1191
  export function readFile(path: string, encoding: "utf8" | "utf-8"): Promise<string>;
@@ -1341,23 +1389,31 @@ declare module "node:url" {
1341
1389
  export * from "url";
1342
1390
  }
1343
1391
 
1344
- /* node:crypto: randomUUID(), and randomBytes returning a REAL Buffer —
1345
- * the composed randomBytes(n).toString("hex" | "base64") still lowers as
1346
- * one fused string-producing operation (the Buffer never materializes
1347
- * there); every other use gets an ordinary Buffer value. */
1392
+ /* node:crypto: the static hashing/MAC/random/PBKDF2 utility slice. */
1348
1393
  declare module "crypto" {
1349
1394
  export function randomUUID(): string;
1350
1395
  export function randomBytes(size: number): Buffer;
1351
- /* The lowered Hash surface is exactly the COMPOSED chain
1352
- * createHash("sha256" | "sha1").update(data).digest("hex" | "base64")
1353
- * — fused into one call, the Hash handle never materializes (holding
1354
- * one fences). sha1 exists for the RFC 6455 Sec-WebSocket-Accept
1355
- * hash. */
1356
1396
  export interface Hash {
1357
- update(data: string | Uint8Array): Hash;
1397
+ update(data: string | Uint8Array, inputEncoding?: "utf8" | "utf-8" | "hex" | "base64"): Hash;
1398
+ digest(): Buffer;
1399
+ digest(encoding: "hex" | "base64"): string;
1400
+ copy(): Hash;
1401
+ }
1402
+ export interface Hmac {
1403
+ update(data: string | Uint8Array, inputEncoding?: "utf8" | "utf-8" | "hex" | "base64"): Hmac;
1404
+ digest(): Buffer;
1358
1405
  digest(encoding: "hex" | "base64"): string;
1359
1406
  }
1360
1407
  export function createHash(algorithm: string): Hash;
1408
+ export function createHmac(algorithm: string, key: string | Uint8Array): Hmac;
1409
+ export function hash(algorithm: string, data: string | Uint8Array, outputEncoding?: "hex" | "base64"): string;
1410
+ export function timingSafeEqual(a: Uint8Array, b: Uint8Array): boolean;
1411
+ export function randomFillSync<T extends Uint8Array>(buffer: T, offset?: number, size?: number): T;
1412
+ export function randomInt(max: number): number;
1413
+ export function randomInt(min: number, max: number): number;
1414
+ export function pbkdf2Sync(password: string | Uint8Array, salt: string | Uint8Array, iterations: number, keylen: number, digest: string): Buffer;
1415
+ export function pbkdf2(password: string | Uint8Array, salt: string | Uint8Array, iterations: number, keylen: number, digest: string, callback: (error: Error | null, derivedKey: Buffer) => void): void;
1416
+ export function randomBytes(size: number, callback: (error: Error | null, buffer: Buffer) => void): void;
1361
1417
  /* The lowered X509Certificate surface is the data-record slice:
1362
1418
  * fingerprint (the SHA-1 of the DER, uppercase colon-separated) and
1363
1419
  * the validFrom/validTo validity window (Node's ASN1_TIME_print
@@ -1489,7 +1545,8 @@ declare module "child_process" {
1489
1545
  ): SpawnSyncReturns;
1490
1546
 
1491
1547
  /* The asynchronous slice: spawn with stdio "ignore"/"inherit"/fd/"pipe"
1492
- * tuples (piped stdout/stderr deliver through child.stdout/stderr) and
1548
+ * tuples (piped stdin is writable through child.stdin; piped stdout/stderr
1549
+ * deliver through child.stdout/stderr) and
1493
1550
  * the two terminal events. "exit" fires once with the exit code, or
1494
1551
  * null when the child died to a signal; "error" fires ONLY when the
1495
1552
  * child could not be spawned at all (Node's split: a spawn failure
@@ -1501,7 +1558,18 @@ declare module "child_process" {
1501
1558
  * quiescence (SEMANTICS.md documents the divergence). An "error"
1502
1559
  * event with no registered listener prints the error and exits 1,
1503
1560
  * exactly the unhandled-'error' EventEmitter behavior. */
1504
- export interface ChildProcess {
1561
+ export interface ChildStdin {
1562
+ readonly writable: boolean;
1563
+ write(chunk: string | Uint8Array): boolean;
1564
+ end(): void;
1565
+ destroy(): void;
1566
+ on(event: "drain" | "finish", listener: () => void): void;
1567
+ on(event: "error", listener: (err: Error) => void): void;
1568
+ once(event: "drain" | "finish", listener: () => void): void;
1569
+ once(event: "error", listener: (err: Error) => void): void;
1570
+ }
1571
+
1572
+ export interface ChildProcess extends Disposable {
1505
1573
  /* The exit listener may also take Node's second parameter — the
1506
1574
  * terminating signal's name, null for a normal exit. */
1507
1575
  on(event: "exit", listener: (code: number | null, signal: string | null) => void): void;
@@ -1521,8 +1589,10 @@ declare module "child_process" {
1521
1589
  readonly killed: boolean;
1522
1590
  kill(signal?: string | number): boolean;
1523
1591
  unref(): void;
1524
- /* The piped-output streams — non-null exactly when the matching
1525
- * stdio slot was "pipe" (Node's shape). */
1592
+ [Symbol.dispose](): void;
1593
+ /* The piped streams — non-null exactly when the matching stdio slot
1594
+ * was "pipe" (Node's shape). */
1595
+ readonly stdin: ChildStdin | null;
1526
1596
  readonly stdout: NodeJS.ReadableStream | null;
1527
1597
  readonly stderr: NodeJS.ReadableStream | null;
1528
1598
  }
@@ -1533,7 +1603,8 @@ declare module "child_process" {
1533
1603
  /* The 3-tuple form admits number fds in the stdout/stderr slots —
1534
1604
  * openSync results dup2'd into the child (the daemon-log idiom
1535
1605
  * ["ignore", logFd, logFd]) — and "pipe" there too (child.stdout/
1536
- * child.stderr streams); piped STDIN stays a compile fence. */
1606
+ * child.stderr streams); "pipe" in the stdin slot exposes
1607
+ * child.stdin. */
1537
1608
  stdio: "ignore" | "inherit" | "pipe" | ("ignore" | "inherit" | "pipe" | number)[];
1538
1609
  /* detached gives the child its own session and process group
1539
1610
  * (POSIX_SPAWN_SETSID); env REPLACES the child environment; cwd
@@ -1928,10 +1999,11 @@ declare module "node:querystring" {
1928
1999
  * on("close", cb). An open interface keeps the process alive until
1929
2000
  * close()/EOF, Node's semantics; lines split on \n and \r\n. */
1930
2001
  declare module "readline" {
1931
- export interface Interface {
2002
+ export interface Interface extends Disposable {
1932
2003
  question(query: string, callback: (answer: string) => void): void;
1933
2004
  close(): void;
1934
2005
  on(event: "close", listener: () => void): void;
2006
+ [Symbol.dispose](): void;
1935
2007
  }
1936
2008
  export function createInterface(options: {
1937
2009
  input: unknown;
@@ -3279,6 +3351,7 @@ declare module "stream" {
3279
3351
  _read(size: number): void;
3280
3352
  _destroy(error: Error | null, callback: (error?: Error | null) => void): void;
3281
3353
  [Symbol.asyncIterator](): AsyncIterableIterator<any>;
3354
+ iterator(options?: { destroyOnReturn?: boolean }): AsyncIterableIterator<any>;
3282
3355
  push(chunk: Buffer | string | null, encoding?: string): boolean;
3283
3356
  unshift(chunk: Buffer | string, encoding?: string): void;
3284
3357
  read(size?: number): Buffer | null;
@@ -31,13 +31,14 @@
31
31
  * ref() restores it; hasRef() reports the state. The methods return the
32
32
  * handle for chaining. Under @types/node this MERGES with NodeJS.Timeout
33
33
  * (both map to the same numeric handle). */
34
- interface Timeout {
34
+ interface Timeout extends Disposable {
35
35
  ref(): Timeout;
36
36
  unref(): Timeout;
37
37
  hasRef(): boolean;
38
38
  /* Re-arms the timer to fire at now + the original delay (Node's
39
39
  * Timeout.refresh). Chaining like ref/unref. */
40
40
  refresh(): Timeout;
41
+ [Symbol.dispose](): void;
41
42
  }
42
43
  /* The callback is invoked with NO arguments; the second overload admits a
43
44
  * callback declared with one parameter for the sleep idiom —
@@ -1 +1 @@
1
- {"version":3,"file":"build-cache.js","sourceRoot":"","sources":["../../src/backend/build-cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-cache.js","sourceRoot":"","sources":["../../src/backend/build-cache.ts"],"names":[],"mappings":"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"}
@@ -59,6 +59,11 @@ export declare function dnsLookupThunkFor(emitter: CEmitter, cbT: IrType): strin
59
59
  * ScrError (or NULL); the adapter builds the callback's program-specific
60
60
  * Error | null union, or a dyn error/null for checkJs callbacks. */
61
61
  export declare function fsRenameThunkFor(emitter: CEmitter, cbT: IrType): string;
62
+ /** Callback adapter for randomBytes/pbkdf2. The runtime transfers one
63
+ * owned Buffer; the adapter materializes the callback's Error | null (or
64
+ * checked-dynamic null) first argument and either transfers or boxes the
65
+ * Buffer according to the program-specific callback signature. */
66
+ export declare function cryptoBytesThunkFor(emitter: CEmitter, cbT: IrType): string;
62
67
  /** Interned CONNECT-listener adapter for a UNION socket slot — the h2
63
68
  * compat listener (`(req, resOrSocket: Http2ServerResponse | net.Socket)
64
69
  * => void`): the runtime fires (cb, req, sock, head) like an upgrade;
@@ -53,7 +53,7 @@ function emitArgPackAndTrampolinePrologue(fn) {
53
53
  * their closure env through the pack (+1, released after the body). */
54
54
  export function emitAsyncScaffolding(emitter, out) {
55
55
  for (const fn of emitter.mod.functions) {
56
- if (!fn.async)
56
+ if (!fn.async || fn.generator !== undefined)
57
57
  continue;
58
58
  const { definitions, ret, lines, spawnParams, argPackLines } = emitArgPackAndTrampolinePrologue(fn);
59
59
  out.push(...definitions);
@@ -157,9 +157,31 @@ function emitGenScaffolding(emitter, out) {
157
157
  ? [` ${releaseCallC(ret, "sc_r")}; /* unwound: the never-read dummy */`]
158
158
  : []), ` }`, `}`);
159
159
  out.push(...lines);
160
+ let settleAsync = null;
161
+ if (fn.async) {
162
+ const genT = {
163
+ kind: "generator",
164
+ async: true,
165
+ yieldT: fn.generator.yieldT,
166
+ retT: ret,
167
+ nextT: fn.generator.nextT,
168
+ };
169
+ const resultT = fn.generator.resultType;
170
+ const build = genResultThunkFor(emitter, genT, resultT);
171
+ settleAsync = `${build}_async`;
172
+ const settleKey = `async:${typeKey(genT)}`;
173
+ if (!emitter.genResThunks.has(settleKey)) {
174
+ emitter.genResThunks.set(settleKey, settleAsync);
175
+ const adapters = vAdapters(resultT);
176
+ out.push(`static void ${settleAsync}(ScrGen *sc_g, ScrPromise *sc_p);`);
177
+ emitter.walkerDefs.push(`static void ${settleAsync}(ScrGen *sc_g, ScrPromise *sc_p) {`, ` ${mangleRecordStruct(resultT.shapeId)} *sc_r = ${build}(sc_g);`, ` scr_promise_fulfill_ref(sc_p, sc_r, ${adapters.retain}, ${adapters.release}, ${emitter.traceArgC(resultT)});`, `}`, ``);
178
+ }
179
+ }
160
180
  out.push(`static void ${mangleGenDrop(fn.name)}(void *sc_ap0) {`, ` ${pack} sc_a = *(${pack} *)sc_ap0;`, ` free(sc_ap0);`, ...(lifted ? [` scr_closure_release(sc_a.sc_env);`] : []), ...fn.params
161
181
  .filter((p) => isRefCounted(p.type))
162
- .map((p) => ` ${releaseCallC(p.type, `sc_a.${pname(p)}`)};`), ...(!lifted && !fn.params.some((p) => isRefCounted(p.type)) ? [` (void)sc_a;`] : []), `}`, `static ScrGen *${mangleGenSpawn(fn.name)}(${spawnParams.join(", ") || "void"}) {`, ...argPackLines, ` return scr_gen_new(&${mangleTrampoline(fn.name)}, sc_ap, &${mangleGenDrop(fn.name)});`, `}`);
182
+ .map((p) => ` ${releaseCallC(p.type, `sc_a.${pname(p)}`)};`), ...(!lifted && !fn.params.some((p) => isRefCounted(p.type)) ? [` (void)sc_a;`] : []), `}`, `static ScrGen *${mangleGenSpawn(fn.name)}(${spawnParams.join(", ") || "void"}) {`, ...argPackLines, settleAsync === null
183
+ ? ` return scr_gen_new(&${mangleTrampoline(fn.name)}, sc_ap, &${mangleGenDrop(fn.name)});`
184
+ : ` return scr_async_gen_new(&${mangleTrampoline(fn.name)}, sc_ap, &${mangleGenDrop(fn.name)}, &${settleAsync});`, `}`);
163
185
  }
164
186
  }
165
187
  /** Interned per-union child exit adapter: the runtime invokes
@@ -402,6 +424,63 @@ export function fsRenameThunkFor(emitter, cbT) {
402
424
  emitter.walkerDefs.push(`static void ${sym}(ScrClosure *sc_cb, ScrError *sc_err) {`, ` ScrUnion *sc_u = sc_err`, ` ? scr_union_new_ref(${errTag}, scr_error_retain(sc_err), &scr_error_retain_v, &scr_error_release_v, NULL)`, ` : ${emitter.unitInstanceRef(param.unionId, nullTag)};`, ` ((void (*)(ScrClosure *, ScrUnion *))sc_cb->fn)(sc_cb, sc_u);`, `}`);
403
425
  return sym;
404
426
  }
427
+ /** Callback adapter for randomBytes/pbkdf2. The runtime transfers one
428
+ * owned Buffer; the adapter materializes the callback's Error | null (or
429
+ * checked-dynamic null) first argument and either transfers or boxes the
430
+ * Buffer according to the program-specific callback signature. */
431
+ export function cryptoBytesThunkFor(emitter, cbT) {
432
+ if (cbT.kind !== "func" || cbT.params.length > 2) {
433
+ throw new InternalCompilerError("emitter bug: crypto bytes callback shape");
434
+ }
435
+ const key = `crypto:${typeKey(cbT)}`;
436
+ let sym = emitter.fsRenameThunks.get(key);
437
+ if (sym)
438
+ return sym;
439
+ sym = `sc_cryptobytes_${emitter.fsRenameThunks.size}`;
440
+ emitter.fsRenameThunks.set(key, sym);
441
+ emitter.walkerProtos.push(`static void ${sym}(ScrClosure *sc_cb, ScrBytes *sc_value);`);
442
+ const lines = [`static void ${sym}(ScrClosure *sc_cb, ScrBytes *sc_value) {`];
443
+ const callTypes = ["ScrClosure *"];
444
+ const callArgs = ["sc_cb"];
445
+ const error = cbT.params[0];
446
+ if (error !== undefined) {
447
+ if (error.kind === "dyn") {
448
+ lines.push(` ScrDyn *sc_error = scr_dyn_new_null();`);
449
+ callTypes.push("ScrDyn *");
450
+ }
451
+ else if (error.kind === "union") {
452
+ const def = emitter.unionsById.get(error.unionId);
453
+ const nullTag = def ? def.arms.findIndex((arm) => arm.kind === "nullT") : -1;
454
+ if (nullTag < 0)
455
+ throw new InternalCompilerError("emitter bug: crypto callback error union lacks null");
456
+ lines.push(` ScrUnion *sc_error = ${emitter.unitInstanceRef(error.unionId, nullTag)};`);
457
+ callTypes.push("ScrUnion *");
458
+ }
459
+ else {
460
+ throw new InternalCompilerError("emitter bug: crypto callback error param");
461
+ }
462
+ callArgs.push("sc_error");
463
+ }
464
+ const value = cbT.params[1];
465
+ if (value === undefined) {
466
+ lines.push(` scr_bytes_release(sc_value);`);
467
+ }
468
+ else if (value.kind === "dyn") {
469
+ lines.push(` ScrDyn *sc_result = scr_dyn_new_bytes_copy(sc_value);`, ` scr_bytes_release(sc_value);`);
470
+ callTypes.push("ScrDyn *");
471
+ callArgs.push("sc_result");
472
+ }
473
+ else if (value.kind === "bytes" && value.elem === "u8") {
474
+ callTypes.push("ScrBytes *");
475
+ callArgs.push("sc_value");
476
+ }
477
+ else {
478
+ throw new InternalCompilerError("emitter bug: crypto callback value param");
479
+ }
480
+ lines.push(` ((void (*)(${callTypes.join(", ")}))sc_cb->fn)(${callArgs.join(", ")});`, `}`);
481
+ emitter.walkerDefs.push(...lines);
482
+ return sym;
483
+ }
405
484
  /** Interned CONNECT-listener adapter for a UNION socket slot — the h2
406
485
  * compat listener (`(req, resOrSocket: Http2ServerResponse | net.Socket)
407
486
  * => void`): the runtime fires (cb, req, sock, head) like an upgrade;