@scriptc/compiler 0.4.2 → 0.4.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 (636) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +397 -37
  2. package/dist/backend/cycle-analysis.d.ts +4 -1
  3. package/dist/backend/cycle-analysis.js +6 -4
  4. package/dist/backend/cycle-analysis.js.map +1 -1
  5. package/dist/backend/cycle-analysis.test.js +55 -0
  6. package/dist/backend/cycle-analysis.test.js.map +1 -1
  7. package/dist/backend/cycle-mutability.d.ts +7 -0
  8. package/dist/backend/cycle-mutability.js +19 -1
  9. package/dist/backend/cycle-mutability.js.map +1 -1
  10. package/dist/backend/executable-features.js +2 -0
  11. package/dist/backend/executable-features.js.map +1 -1
  12. package/dist/backend/immutability.d.ts +6 -3
  13. package/dist/backend/immutability.js +33 -29
  14. package/dist/backend/immutability.js.map +1 -1
  15. package/dist/backend/library-pack.js +1 -0
  16. package/dist/backend/library-pack.js.map +1 -1
  17. package/dist/backend/llvm/alloc.d.ts +16 -1
  18. package/dist/backend/llvm/alloc.js +54 -4
  19. package/dist/backend/llvm/alloc.js.map +1 -1
  20. package/dist/backend/llvm/appended-array-literals.d.ts +2 -1
  21. package/dist/backend/llvm/appended-array-literals.js +44 -36
  22. package/dist/backend/llvm/appended-array-literals.js.map +1 -1
  23. package/dist/backend/llvm/appended-array-literals.test.js +4 -3
  24. package/dist/backend/llvm/appended-array-literals.test.js.map +1 -1
  25. package/dist/backend/llvm/array-search.d.ts +4 -3
  26. package/dist/backend/llvm/array-search.js +21 -9
  27. package/dist/backend/llvm/array-search.js.map +1 -1
  28. package/dist/backend/llvm/blocks.d.ts +1 -1
  29. package/dist/backend/llvm/blocks.js +2 -2
  30. package/dist/backend/llvm/blocks.js.map +1 -1
  31. package/dist/backend/llvm/byte-windows.js +2 -0
  32. package/dist/backend/llvm/byte-windows.js.map +1 -1
  33. package/dist/backend/llvm/bytes-alias.d.ts +6 -1
  34. package/dist/backend/llvm/bytes-alias.js +8 -2
  35. package/dist/backend/llvm/bytes-alias.js.map +1 -1
  36. package/dist/backend/llvm/bytes-loop-versions.d.ts +47 -5
  37. package/dist/backend/llvm/bytes-loop-versions.js +473 -32
  38. package/dist/backend/llvm/bytes-loop-versions.js.map +1 -1
  39. package/dist/backend/llvm/bytes-loop-versions.test.js +258 -2
  40. package/dist/backend/llvm/bytes-loop-versions.test.js.map +1 -1
  41. package/dist/backend/llvm/checked-value-lifetimes.js +2 -0
  42. package/dist/backend/llvm/checked-value-lifetimes.js.map +1 -1
  43. package/dist/backend/llvm/classes.d.ts +7 -5
  44. package/dist/backend/llvm/classes.js +44 -20
  45. package/dist/backend/llvm/classes.js.map +1 -1
  46. package/dist/backend/llvm/classes.test.js +167 -7
  47. package/dist/backend/llvm/classes.test.js.map +1 -1
  48. package/dist/backend/llvm/common.d.ts +9 -3
  49. package/dist/backend/llvm/common.js +9 -3
  50. package/dist/backend/llvm/common.js.map +1 -1
  51. package/dist/backend/llvm/constant-callbacks.d.ts +2 -1
  52. package/dist/backend/llvm/constant-callbacks.js +83 -52
  53. package/dist/backend/llvm/constant-callbacks.js.map +1 -1
  54. package/dist/backend/llvm/counted-loops.d.ts +7 -0
  55. package/dist/backend/llvm/counted-loops.js +18 -0
  56. package/dist/backend/llvm/counted-loops.js.map +1 -1
  57. package/dist/backend/llvm/dense-array-access.d.ts +39 -8
  58. package/dist/backend/llvm/dense-array-access.js +222 -52
  59. package/dist/backend/llvm/dense-array-access.js.map +1 -1
  60. package/dist/backend/llvm/dense-array-access.test.js +36 -0
  61. package/dist/backend/llvm/dense-array-access.test.js.map +1 -1
  62. package/dist/backend/llvm/dense-array-loops.d.ts +17 -1
  63. package/dist/backend/llvm/dense-array-loops.js +194 -5
  64. package/dist/backend/llvm/dense-array-loops.js.map +1 -1
  65. package/dist/backend/llvm/dense-array-loops.test.js +90 -1
  66. package/dist/backend/llvm/dense-array-loops.test.js.map +1 -1
  67. package/dist/backend/llvm/dyn-handle-tags.test.js +6 -1
  68. package/dist/backend/llvm/dyn-handle-tags.test.js.map +1 -1
  69. package/dist/backend/llvm/dyn.d.ts +26 -0
  70. package/dist/backend/llvm/dyn.js +352 -61
  71. package/dist/backend/llvm/dyn.js.map +1 -1
  72. package/dist/backend/llvm/emit-function.js +11 -20
  73. package/dist/backend/llvm/emit-function.js.map +1 -1
  74. package/dist/backend/llvm/emit-journal.d.ts +93 -0
  75. package/dist/backend/llvm/emit-journal.js +170 -0
  76. package/dist/backend/llvm/emit-journal.js.map +1 -0
  77. package/dist/backend/llvm/emit-module.js +195 -27
  78. package/dist/backend/llvm/emit-module.js.map +1 -1
  79. package/dist/backend/llvm/emit-statements.d.ts +0 -4
  80. package/dist/backend/llvm/emit-statements.js +268 -84
  81. package/dist/backend/llvm/emit-statements.js.map +1 -1
  82. package/dist/backend/llvm/emitter-state.d.ts +7 -0
  83. package/dist/backend/llvm/emitter-state.js +14 -0
  84. package/dist/backend/llvm/emitter-state.js.map +1 -0
  85. package/dist/backend/llvm/emitter.d.ts +176 -37
  86. package/dist/backend/llvm/emitter.js +724 -85
  87. package/dist/backend/llvm/emitter.js.map +1 -1
  88. package/dist/backend/llvm/emitter.test.js +54 -5
  89. package/dist/backend/llvm/emitter.test.js.map +1 -1
  90. package/dist/backend/llvm/expr-bytes.js +34 -12
  91. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  92. package/dist/backend/llvm/expr-callbacks.js +47 -0
  93. package/dist/backend/llvm/expr-callbacks.js.map +1 -1
  94. package/dist/backend/llvm/expr-calls.js +28 -14
  95. package/dist/backend/llvm/expr-calls.js.map +1 -1
  96. package/dist/backend/llvm/expr-containers.d.ts +14 -2
  97. package/dist/backend/llvm/expr-containers.js +129 -37
  98. package/dist/backend/llvm/expr-containers.js.map +1 -1
  99. package/dist/backend/llvm/expr-context.d.ts +14 -0
  100. package/dist/backend/llvm/expr-dynamic.js +18 -11
  101. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  102. package/dist/backend/llvm/expr-primitives.js +100 -28
  103. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  104. package/dist/backend/llvm/expr-primitives.test.js +11 -6
  105. package/dist/backend/llvm/expr-primitives.test.js.map +1 -1
  106. package/dist/backend/llvm/expr-records.d.ts +12 -0
  107. package/dist/backend/llvm/expr-records.js +106 -0
  108. package/dist/backend/llvm/expr-records.js.map +1 -1
  109. package/dist/backend/llvm/expr-stream-bridges.d.ts +2 -2
  110. package/dist/backend/llvm/expr-stream-bridges.js +194 -65
  111. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  112. package/dist/backend/llvm/expr-stream-bridges.test.js +1 -1
  113. package/dist/backend/llvm/expr-stream-bridges.test.js.map +1 -1
  114. package/dist/backend/llvm/expr-stream-callbacks.d.ts +2 -2
  115. package/dist/backend/llvm/expr-stream-callbacks.js +74 -20
  116. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
  117. package/dist/backend/llvm/int32-kind-loops.d.ts +39 -0
  118. package/dist/backend/llvm/int32-kind-loops.js +106 -0
  119. package/dist/backend/llvm/int32-kind-loops.js.map +1 -0
  120. package/dist/backend/llvm/integer-or-nan-indexes.test.d.ts +1 -0
  121. package/dist/backend/llvm/integer-or-nan-indexes.test.js +118 -0
  122. package/dist/backend/llvm/integer-or-nan-indexes.test.js.map +1 -0
  123. package/dist/backend/llvm/integer-values.d.ts +20 -1
  124. package/dist/backend/llvm/integer-values.js +71 -0
  125. package/dist/backend/llvm/integer-values.js.map +1 -1
  126. package/dist/backend/llvm/js-ic.d.ts +1 -1
  127. package/dist/backend/llvm/js-ic.js +1 -1
  128. package/dist/backend/llvm/js-ic.js.map +1 -1
  129. package/dist/backend/llvm/key-orders.d.ts +7 -0
  130. package/dist/backend/llvm/key-orders.js +33 -0
  131. package/dist/backend/llvm/key-orders.js.map +1 -0
  132. package/dist/backend/llvm/lib-connect.js +4 -0
  133. package/dist/backend/llvm/lib-connect.js.map +1 -1
  134. package/dist/backend/llvm/lib-datagram.js +11 -0
  135. package/dist/backend/llvm/lib-datagram.js.map +1 -1
  136. package/dist/backend/llvm/lib-dispatch.js +80 -2
  137. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  138. package/dist/backend/llvm/lib-filesystem.js +4 -4
  139. package/dist/backend/llvm/lib-filesystem.js.map +1 -1
  140. package/dist/backend/llvm/lib-http2.js +4 -0
  141. package/dist/backend/llvm/lib-http2.js.map +1 -1
  142. package/dist/backend/llvm/lib-lookup.js +16 -6
  143. package/dist/backend/llvm/lib-lookup.js.map +1 -1
  144. package/dist/backend/llvm/lib-shared.js +73 -2
  145. package/dist/backend/llvm/lib-shared.js.map +1 -1
  146. package/dist/backend/llvm/lib-stream.js +35 -5
  147. package/dist/backend/llvm/lib-stream.js.map +1 -1
  148. package/dist/backend/llvm/local-array-reads.js +115 -19
  149. package/dist/backend/llvm/local-array-reads.js.map +1 -1
  150. package/dist/backend/llvm/local-array-reads.test.js +14 -0
  151. package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
  152. package/dist/backend/llvm/loop-state.d.ts +33 -0
  153. package/dist/backend/llvm/loop-state.js +42 -0
  154. package/dist/backend/llvm/loop-state.js.map +1 -0
  155. package/dist/backend/llvm/map-number-lookup.d.ts +26 -8
  156. package/dist/backend/llvm/map-number-lookup.js +91 -31
  157. package/dist/backend/llvm/map-number-lookup.js.map +1 -1
  158. package/dist/backend/llvm/map-number-lookup.test.js +55 -0
  159. package/dist/backend/llvm/map-number-lookup.test.js.map +1 -1
  160. package/dist/backend/llvm/map-read-lifetimes.js +4 -2
  161. package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
  162. package/dist/backend/llvm/nullable-unions.d.ts +2 -1
  163. package/dist/backend/llvm/nullable-unions.js +15 -3
  164. package/dist/backend/llvm/nullable-unions.js.map +1 -1
  165. package/dist/backend/llvm/publish.d.ts +10 -0
  166. package/dist/backend/llvm/publish.js +12 -0
  167. package/dist/backend/llvm/publish.js.map +1 -1
  168. package/dist/backend/llvm/receivers.js +6 -1
  169. package/dist/backend/llvm/receivers.js.map +1 -1
  170. package/dist/backend/llvm/record-results.d.ts +1 -9
  171. package/dist/backend/llvm/record-results.js +2 -11
  172. package/dist/backend/llvm/record-results.js.map +1 -1
  173. package/dist/backend/llvm/reference-writes.d.ts +7 -2
  174. package/dist/backend/llvm/reference-writes.js +89 -72
  175. package/dist/backend/llvm/reference-writes.js.map +1 -1
  176. package/dist/backend/llvm/running-extrema.d.ts +11 -0
  177. package/dist/backend/llvm/running-extrema.js +115 -0
  178. package/dist/backend/llvm/running-extrema.js.map +1 -0
  179. package/dist/backend/llvm/running-extrema.test.d.ts +1 -0
  180. package/dist/backend/llvm/running-extrema.test.js +89 -0
  181. package/dist/backend/llvm/running-extrema.test.js.map +1 -0
  182. package/dist/backend/llvm/shapes.d.ts +71 -15
  183. package/dist/backend/llvm/shapes.js +222 -33
  184. package/dist/backend/llvm/shapes.js.map +1 -1
  185. package/dist/backend/llvm/shapes.test.js +53 -7
  186. package/dist/backend/llvm/shapes.test.js.map +1 -1
  187. package/dist/backend/llvm/speculative-integers.d.ts +6 -0
  188. package/dist/backend/llvm/speculative-integers.js +2 -2
  189. package/dist/backend/llvm/speculative-integers.js.map +1 -1
  190. package/dist/backend/llvm/stack-objects.d.ts +3 -2
  191. package/dist/backend/llvm/stack-objects.js +5 -2
  192. package/dist/backend/llvm/stack-objects.js.map +1 -1
  193. package/dist/backend/llvm/string-reads.d.ts +12 -0
  194. package/dist/backend/llvm/string-reads.js +44 -0
  195. package/dist/backend/llvm/string-reads.js.map +1 -1
  196. package/dist/backend/llvm/walk-borrows.d.ts +3 -0
  197. package/dist/backend/llvm/walk-borrows.js +46 -41
  198. package/dist/backend/llvm/walk-borrows.js.map +1 -1
  199. package/dist/backend/llvm/walkers.d.ts +3 -0
  200. package/dist/backend/llvm/walkers.js +88 -65
  201. package/dist/backend/llvm/walkers.js.map +1 -1
  202. package/dist/backend/llvm/wrapping-sums.d.ts +16 -1
  203. package/dist/backend/llvm/wrapping-sums.js +126 -0
  204. package/dist/backend/llvm/wrapping-sums.js.map +1 -1
  205. package/dist/backend/may-throw.d.ts +8 -10
  206. package/dist/backend/may-throw.js +14 -10
  207. package/dist/backend/may-throw.js.map +1 -1
  208. package/dist/backend/native/contracts.d.ts +5 -0
  209. package/dist/backend/native/executable.js +7 -0
  210. package/dist/backend/native/executable.js.map +1 -1
  211. package/dist/backend/native/runtime-inputs.d.ts +1 -1
  212. package/dist/backend/native/runtime-inputs.js +1 -0
  213. package/dist/backend/native/runtime-inputs.js.map +1 -1
  214. package/dist/backend/native-link-info-core.d.ts +4 -0
  215. package/dist/backend/native-link-info-core.js.map +1 -1
  216. package/dist/backend/publication.d.ts +12 -1
  217. package/dist/backend/publication.js +37 -14
  218. package/dist/backend/publication.js.map +1 -1
  219. package/dist/backend/publication.test.js +30 -0
  220. package/dist/backend/publication.test.js.map +1 -1
  221. package/dist/backend/result-slots.d.ts +16 -0
  222. package/dist/backend/result-slots.js +23 -0
  223. package/dist/backend/result-slots.js.map +1 -0
  224. package/dist/backend/runtime-abi.d.ts +2 -2
  225. package/dist/backend/runtime-abi.js +2 -2
  226. package/dist/backend/runtime-pack-core.d.ts +1 -0
  227. package/dist/backend/runtime-pack-core.js +1 -0
  228. package/dist/backend/runtime-pack-core.js.map +1 -1
  229. package/dist/backend/runtime-pack-targets.test.js +2 -1
  230. package/dist/backend/runtime-pack-targets.test.js.map +1 -1
  231. package/dist/backend/runtime-pack.test.js +2 -1
  232. package/dist/backend/runtime-pack.test.js.map +1 -1
  233. package/dist/backend/stack-observations.d.ts +2 -1
  234. package/dist/backend/stack-observations.js +67 -42
  235. package/dist/backend/stack-observations.js.map +1 -1
  236. package/dist/backend/target-diagnostics.js +5 -3
  237. package/dist/backend/target-diagnostics.js.map +1 -1
  238. package/dist/backend/warm-cache.js +1 -0
  239. package/dist/backend/warm-cache.js.map +1 -1
  240. package/dist/cli/usage.d.ts +1 -1
  241. package/dist/cli/usage.js +3 -3
  242. package/dist/compat/fetch-profile.js +1 -1
  243. package/dist/compat/fetch-profile.js.map +1 -1
  244. package/dist/contracts/check.js +4 -3
  245. package/dist/contracts/check.js.map +1 -1
  246. package/dist/contracts/int32-elements.js +10 -2
  247. package/dist/contracts/int32-elements.js.map +1 -1
  248. package/dist/coverage/report.js +12 -3
  249. package/dist/coverage/report.js.map +1 -1
  250. package/dist/diagnostics/diagnostic.d.ts +4 -0
  251. package/dist/diagnostics/diagnostic.js.map +1 -1
  252. package/dist/diagnostics/envelope.d.ts +3 -0
  253. package/dist/diagnostics/envelope.js +1 -0
  254. package/dist/diagnostics/envelope.js.map +1 -1
  255. package/dist/executable/executable-cache.d.ts +2 -0
  256. package/dist/executable/executable-cache.js +1 -0
  257. package/dist/executable/executable-cache.js.map +1 -1
  258. package/dist/executable/executable-cache.test.js +1 -0
  259. package/dist/executable/executable-cache.test.js.map +1 -1
  260. package/dist/frontend/decl-projection.d.ts +41 -0
  261. package/dist/frontend/decl-projection.js +854 -0
  262. package/dist/frontend/decl-projection.js.map +1 -0
  263. package/dist/frontend/decl-projection.test.d.ts +1 -0
  264. package/dist/frontend/decl-projection.test.js +30 -0
  265. package/dist/frontend/decl-projection.test.js.map +1 -0
  266. package/dist/frontend/dts-paths.d.ts +15 -0
  267. package/dist/frontend/dts-paths.js +25 -0
  268. package/dist/frontend/dts-paths.js.map +1 -1
  269. package/dist/frontend/input-tracker.d.ts +6 -0
  270. package/dist/frontend/input-tracker.js +51 -28
  271. package/dist/frontend/input-tracker.js.map +1 -1
  272. package/dist/frontend/input-tracker.test.js +19 -0
  273. package/dist/frontend/input-tracker.test.js.map +1 -1
  274. package/dist/frontend/lowering/array-values.js +100 -2
  275. package/dist/frontend/lowering/array-values.js.map +1 -1
  276. package/dist/frontend/lowering/builtins/child-process-methods.js +46 -15
  277. package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -1
  278. package/dist/frontend/lowering/builtins/child-process.js +13 -2
  279. package/dist/frontend/lowering/builtins/child-process.js.map +1 -1
  280. package/dist/frontend/lowering/builtins/crypto.js +84 -9
  281. package/dist/frontend/lowering/builtins/crypto.js.map +1 -1
  282. package/dist/frontend/lowering/builtins/global-namespace-keys.d.ts +3 -0
  283. package/dist/frontend/lowering/builtins/global-namespace-keys.js +122 -0
  284. package/dist/frontend/lowering/builtins/global-namespace-keys.js.map +1 -0
  285. package/dist/frontend/lowering/builtins/numbers.js +9 -1
  286. package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
  287. package/dist/frontend/lowering/builtins/promises.d.ts +6 -0
  288. package/dist/frontend/lowering/builtins/promises.js +88 -2
  289. package/dist/frontend/lowering/builtins/promises.js.map +1 -1
  290. package/dist/frontend/lowering/builtins/readline.d.ts +5 -1
  291. package/dist/frontend/lowering/builtins/readline.js +35 -3
  292. package/dist/frontend/lowering/builtins/readline.js.map +1 -1
  293. package/dist/frontend/lowering/builtins/url.js +24 -1
  294. package/dist/frontend/lowering/builtins/url.js.map +1 -1
  295. package/dist/frontend/lowering/builtins/webassembly.js +6 -3
  296. package/dist/frontend/lowering/builtins/webassembly.js.map +1 -1
  297. package/dist/frontend/lowering/class-callbacks.d.ts +5 -2
  298. package/dist/frontend/lowering/class-callbacks.js +82 -12
  299. package/dist/frontend/lowering/class-callbacks.js.map +1 -1
  300. package/dist/frontend/lowering/class-construction.d.ts +4 -1
  301. package/dist/frontend/lowering/class-construction.js +17 -3
  302. package/dist/frontend/lowering/class-construction.js.map +1 -1
  303. package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +39 -2
  304. package/dist/frontend/lowering/class-dynamic-dispatch.js +766 -108
  305. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  306. package/dist/frontend/lowering/class-dynamic-dispatch.test.js +47 -0
  307. package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
  308. package/dist/frontend/lowering/class-iterables.d.ts +2 -1
  309. package/dist/frontend/lowering/class-iterables.js +9 -1
  310. package/dist/frontend/lowering/class-iterables.js.map +1 -1
  311. package/dist/frontend/lowering/class-method-mutations.js +32 -9
  312. package/dist/frontend/lowering/class-method-mutations.js.map +1 -1
  313. package/dist/frontend/lowering/class-prototypes.js +31 -2
  314. package/dist/frontend/lowering/class-prototypes.js.map +1 -1
  315. package/dist/frontend/lowering/class-runtime-statics.d.ts +9 -3
  316. package/dist/frontend/lowering/class-runtime-statics.js +29 -4
  317. package/dist/frontend/lowering/class-runtime-statics.js.map +1 -1
  318. package/dist/frontend/lowering/coercions/structural-plans.js +48 -1
  319. package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
  320. package/dist/frontend/lowering/coercions/structural.js +91 -1
  321. package/dist/frontend/lowering/coercions/structural.js.map +1 -1
  322. package/dist/frontend/lowering/containers/array-callback-call.js +2 -2
  323. package/dist/frontend/lowering/containers/array-callback-call.js.map +1 -1
  324. package/dist/frontend/lowering/containers/array-callbacks.js +338 -18
  325. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
  326. package/dist/frontend/lowering/containers/array-concat.js +10 -0
  327. package/dist/frontend/lowering/containers/array-concat.js.map +1 -1
  328. package/dist/frontend/lowering/containers/array-methods.js +15 -0
  329. package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
  330. package/dist/frontend/lowering/containers/array-pipelines.js +19 -8
  331. package/dist/frontend/lowering/containers/array-pipelines.js.map +1 -1
  332. package/dist/frontend/lowering/containers/bytes.js +2 -1
  333. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  334. package/dist/frontend/lowering/containers/callback-arguments.js +3 -0
  335. package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
  336. package/dist/frontend/lowering/containers/collection-methods.js +7 -2
  337. package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
  338. package/dist/frontend/lowering/containers/filter-predicates.d.ts +6 -0
  339. package/dist/frontend/lowering/containers/filter-predicates.js +205 -0
  340. package/dist/frontend/lowering/containers/filter-predicates.js.map +1 -0
  341. package/dist/frontend/lowering/containers/indexed-objects.d.ts +0 -12
  342. package/dist/frontend/lowering/containers/indexed-objects.js +46 -7
  343. package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
  344. package/dist/frontend/lowering/containers/string-and-regexp.js +55 -9
  345. package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
  346. package/dist/frontend/lowering/containers/string-replacement.js +43 -19
  347. package/dist/frontend/lowering/containers/string-replacement.js.map +1 -1
  348. package/dist/frontend/lowering/dispatch-sites.js +15 -1
  349. package/dist/frontend/lowering/dispatch-sites.js.map +1 -1
  350. package/dist/frontend/lowering/divergences.js +9 -1
  351. package/dist/frontend/lowering/divergences.js.map +1 -1
  352. package/dist/frontend/lowering/error-methods.js +47 -2
  353. package/dist/frontend/lowering/error-methods.js.map +1 -1
  354. package/dist/frontend/lowering/expressions/array-literals.js +47 -0
  355. package/dist/frontend/lowering/expressions/array-literals.js.map +1 -1
  356. package/dist/frontend/lowering/expressions/binary.js +36 -2
  357. package/dist/frontend/lowering/expressions/binary.js.map +1 -1
  358. package/dist/frontend/lowering/expressions/element-access.js +90 -13
  359. package/dist/frontend/lowering/expressions/element-access.js.map +1 -1
  360. package/dist/frontend/lowering/expressions/identifiers.js +33 -4
  361. package/dist/frontend/lowering/expressions/identifiers.js.map +1 -1
  362. package/dist/frontend/lowering/expressions/narrowing.js +95 -1
  363. package/dist/frontend/lowering/expressions/narrowing.js.map +1 -1
  364. package/dist/frontend/lowering/expressions/nullish-assignment.js +3 -1
  365. package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
  366. package/dist/frontend/lowering/expressions/object-literals.d.ts +10 -0
  367. package/dist/frontend/lowering/expressions/object-literals.js +138 -51
  368. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  369. package/dist/frontend/lowering/expressions/optional-chains.js +12 -0
  370. package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
  371. package/dist/frontend/lowering/expressions/property-access.js +113 -11
  372. package/dist/frontend/lowering/expressions/property-access.js.map +1 -1
  373. package/dist/frontend/lowering/expressions/relational.js +212 -33
  374. package/dist/frontend/lowering/expressions/relational.js.map +1 -1
  375. package/dist/frontend/lowering/expressions/union-fields.js +4 -0
  376. package/dist/frontend/lowering/expressions/union-fields.js.map +1 -1
  377. package/dist/frontend/lowering/expressions/updates.js +22 -3
  378. package/dist/frontend/lowering/expressions/updates.js.map +1 -1
  379. package/dist/frontend/lowering/frozen-records.d.ts +28 -0
  380. package/dist/frontend/lowering/frozen-records.js +322 -0
  381. package/dist/frontend/lowering/frozen-records.js.map +1 -0
  382. package/dist/frontend/lowering/function-returns.js +49 -0
  383. package/dist/frontend/lowering/function-returns.js.map +1 -1
  384. package/dist/frontend/lowering/generic-functions.js +7 -2
  385. package/dist/frontend/lowering/generic-functions.js.map +1 -1
  386. package/dist/frontend/lowering/iterable-values.d.ts +49 -0
  387. package/dist/frontend/lowering/iterable-values.js +297 -0
  388. package/dist/frontend/lowering/iterable-values.js.map +1 -0
  389. package/dist/frontend/lowering/iterator-adapters.js +186 -1
  390. package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
  391. package/dist/frontend/lowering/js-class-fields.d.ts +8 -0
  392. package/dist/frontend/lowering/js-class-fields.js +45 -10
  393. package/dist/frontend/lowering/js-class-fields.js.map +1 -1
  394. package/dist/frontend/lowering/key-order-witness.d.ts +18 -3
  395. package/dist/frontend/lowering/key-order-witness.js +770 -22
  396. package/dist/frontend/lowering/key-order-witness.js.map +1 -1
  397. package/dist/frontend/lowering/key-order-witness.test.js +428 -8
  398. package/dist/frontend/lowering/key-order-witness.test.js.map +1 -1
  399. package/dist/frontend/lowering/lower-async-iteration.js +4 -1
  400. package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
  401. package/dist/frontend/lowering/lower-calls.d.ts +7 -0
  402. package/dist/frontend/lowering/lower-calls.js +443 -41
  403. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  404. package/dist/frontend/lowering/lower-classes.d.ts +11 -2
  405. package/dist/frontend/lowering/lower-classes.js +302 -22
  406. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  407. package/dist/frontend/lowering/lower-dgram.js +3 -1
  408. package/dist/frontend/lowering/lower-dgram.js.map +1 -1
  409. package/dist/frontend/lowering/lower-exprs.js +10 -2
  410. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  411. package/dist/frontend/lowering/lower-functions.d.ts +11 -0
  412. package/dist/frontend/lowering/lower-functions.js +83 -0
  413. package/dist/frontend/lowering/lower-functions.js.map +1 -1
  414. package/dist/frontend/lowering/lower-generators.js +41 -31
  415. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  416. package/dist/frontend/lowering/lower-global-value.js +6 -3
  417. package/dist/frontend/lowering/lower-global-value.js.map +1 -1
  418. package/dist/frontend/lowering/lower-inspect.js +18 -6
  419. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  420. package/dist/frontend/lowering/lower-modules.js +32 -0
  421. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  422. package/dist/frontend/lowering/lower-namespaces.js +5 -1
  423. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  424. package/dist/frontend/lowering/lower-server.js +2 -2
  425. package/dist/frontend/lowering/lower-server.js.map +1 -1
  426. package/dist/frontend/lowering/lower-stdlib.d.ts +5 -0
  427. package/dist/frontend/lowering/lower-stdlib.js +30 -0
  428. package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
  429. package/dist/frontend/lowering/lower-stmts.d.ts +23 -0
  430. package/dist/frontend/lowering/lower-stmts.js +454 -48
  431. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  432. package/dist/frontend/lowering/lower-stream.d.ts +20 -2
  433. package/dist/frontend/lowering/lower-stream.js +1483 -156
  434. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  435. package/dist/frontend/lowering/lowerer.d.ts +77 -6
  436. package/dist/frontend/lowering/lowerer.js +313 -29
  437. package/dist/frontend/lowering/lowerer.js.map +1 -1
  438. package/dist/frontend/lowering/module-namespace-elements.d.ts +11 -1
  439. package/dist/frontend/lowering/module-namespace-elements.js +82 -5
  440. package/dist/frontend/lowering/module-namespace-elements.js.map +1 -1
  441. package/dist/frontend/lowering/new-target.d.ts +12 -0
  442. package/dist/frontend/lowering/new-target.js +280 -0
  443. package/dist/frontend/lowering/new-target.js.map +1 -0
  444. package/dist/frontend/lowering/surfaces.d.ts +3 -0
  445. package/dist/frontend/lowering/surfaces.js +18 -6
  446. package/dist/frontend/lowering/surfaces.js.map +1 -1
  447. package/dist/frontend/lowering/undefined-index.d.ts +27 -0
  448. package/dist/frontend/lowering/undefined-index.js +82 -0
  449. package/dist/frontend/lowering/undefined-index.js.map +1 -0
  450. package/dist/frontend/lowering/var-hoisting.js +29 -13
  451. package/dist/frontend/lowering/var-hoisting.js.map +1 -1
  452. package/dist/frontend/lowering/width-lift.d.ts +18 -0
  453. package/dist/frontend/npm-static-bundled-chunks.js +9 -11
  454. package/dist/frontend/npm-static-bundled-chunks.js.map +1 -1
  455. package/dist/frontend/npm-static-bundled-chunks.test.js +6 -5
  456. package/dist/frontend/npm-static-bundled-chunks.test.js.map +1 -1
  457. package/dist/frontend/npm-static-rewrite-syntax.js +9 -1
  458. package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -1
  459. package/dist/frontend/npm-static.js +4 -20
  460. package/dist/frontend/npm-static.js.map +1 -1
  461. package/dist/frontend/package-shims.d.ts +3 -0
  462. package/dist/frontend/package-shims.js +71 -8
  463. package/dist/frontend/package-shims.js.map +1 -1
  464. package/dist/frontend/pipeline.js +18 -10
  465. package/dist/frontend/pipeline.js.map +1 -1
  466. package/dist/frontend/process-fork.d.ts +25 -0
  467. package/dist/frontend/process-fork.js +2 -0
  468. package/dist/frontend/process-fork.js.map +1 -0
  469. package/dist/frontend/program.d.ts +8 -1
  470. package/dist/frontend/program.js +484 -69
  471. package/dist/frontend/program.js.map +1 -1
  472. package/dist/frontend/program.test.js +43 -3
  473. package/dist/frontend/program.test.js.map +1 -1
  474. package/dist/frontend/token-equivalence.d.ts +3 -0
  475. package/dist/frontend/token-equivalence.js +409 -0
  476. package/dist/frontend/token-equivalence.js.map +1 -0
  477. package/dist/frontend/token-equivalence.test.d.ts +1 -0
  478. package/dist/frontend/token-equivalence.test.js +67 -0
  479. package/dist/frontend/token-equivalence.test.js.map +1 -0
  480. package/dist/frontend/ts7/ast-node.d.ts +22 -0
  481. package/dist/frontend/ts7/ast-node.js +1048 -103
  482. package/dist/frontend/ts7/ast-node.js.map +1 -1
  483. package/dist/frontend/ts7/ast-node.test.js +24 -0
  484. package/dist/frontend/ts7/ast-node.test.js.map +1 -1
  485. package/dist/frontend/ts7/ast-wire.d.ts +4 -3
  486. package/dist/frontend/ts7/ast-wire.js +34 -24
  487. package/dist/frontend/ts7/ast-wire.js.map +1 -1
  488. package/dist/frontend/ts7/ast-wire.test.js +23 -0
  489. package/dist/frontend/ts7/ast-wire.test.js.map +1 -1
  490. package/dist/frontend/ts7/checker-backend.d.ts +3 -4
  491. package/dist/frontend/ts7/checker-backend.js +2 -2
  492. package/dist/frontend/ts7/checker-backend.js.map +1 -1
  493. package/dist/frontend/ts7/checker-backend.test.js +5 -9
  494. package/dist/frontend/ts7/checker-backend.test.js.map +1 -1
  495. package/dist/frontend/ts7/checker.d.ts +4 -0
  496. package/dist/frontend/ts7/checker.js +7 -0
  497. package/dist/frontend/ts7/checker.js.map +1 -1
  498. package/dist/frontend/ts7/lib-diagnostics.d.ts +24 -0
  499. package/dist/frontend/ts7/lib-diagnostics.js +307 -0
  500. package/dist/frontend/ts7/lib-diagnostics.js.map +1 -0
  501. package/dist/frontend/ts7/lib-diagnostics.test.d.ts +1 -0
  502. package/dist/frontend/ts7/lib-diagnostics.test.js +199 -0
  503. package/dist/frontend/ts7/lib-diagnostics.test.js.map +1 -0
  504. package/dist/frontend/ts7/program-host.d.ts +7 -0
  505. package/dist/frontend/ts7/program-host.js +25 -2
  506. package/dist/frontend/ts7/program-host.js.map +1 -1
  507. package/dist/frontend/ts7/session.d.ts +14 -1
  508. package/dist/frontend/ts7/session.js +22 -0
  509. package/dist/frontend/ts7/session.js.map +1 -1
  510. package/dist/frontend/type-mapper.d.ts +13 -1
  511. package/dist/frontend/type-mapper.js +191 -11
  512. package/dist/frontend/type-mapper.js.map +1 -1
  513. package/dist/index.d.ts +0 -5
  514. package/dist/index.js +34 -4
  515. package/dist/index.js.map +1 -1
  516. package/dist/ir/analysis.js +5 -3
  517. package/dist/ir/analysis.js.map +1 -1
  518. package/dist/ir/array-length-stability.d.ts +4 -0
  519. package/dist/ir/array-length-stability.js +19 -6
  520. package/dist/ir/array-length-stability.js.map +1 -1
  521. package/dist/ir/array-length-stability.test.js +24 -0
  522. package/dist/ir/array-length-stability.test.js.map +1 -1
  523. package/dist/ir/builtin-effects.d.ts +7 -0
  524. package/dist/ir/builtin-effects.js +52 -0
  525. package/dist/ir/builtin-effects.js.map +1 -1
  526. package/dist/ir/builtin-signatures.d.ts +6 -4
  527. package/dist/ir/builtin-signatures.js +166 -13
  528. package/dist/ir/builtin-signatures.js.map +1 -1
  529. package/dist/ir/callback-specialization.d.ts +2 -1
  530. package/dist/ir/callback-specialization.js +23 -18
  531. package/dist/ir/callback-specialization.js.map +1 -1
  532. package/dist/ir/char-unit-locals.d.ts +19 -0
  533. package/dist/ir/char-unit-locals.js +185 -0
  534. package/dist/ir/char-unit-locals.js.map +1 -0
  535. package/dist/ir/char-unit-locals.test.d.ts +1 -0
  536. package/dist/ir/char-unit-locals.test.js +94 -0
  537. package/dist/ir/char-unit-locals.test.js.map +1 -0
  538. package/dist/ir/final-fields.d.ts +2 -1
  539. package/dist/ir/final-fields.js +14 -16
  540. package/dist/ir/final-fields.js.map +1 -1
  541. package/dist/ir/function-references.d.ts +2 -0
  542. package/dist/ir/function-references.js +2 -0
  543. package/dist/ir/function-references.js.map +1 -1
  544. package/dist/ir/function-references.test.js +3 -0
  545. package/dist/ir/function-references.test.js.map +1 -1
  546. package/dist/ir/initializer-bindings.d.ts +2 -1
  547. package/dist/ir/initializer-bindings.js +27 -20
  548. package/dist/ir/initializer-bindings.js.map +1 -1
  549. package/dist/ir/int32-arrays.d.ts +108 -0
  550. package/dist/ir/int32-arrays.js +831 -0
  551. package/dist/ir/int32-arrays.js.map +1 -0
  552. package/dist/ir/int32-slots.d.ts +24 -2
  553. package/dist/ir/int32-slots.js +259 -57
  554. package/dist/ir/int32-slots.js.map +1 -1
  555. package/dist/ir/integer-loops.d.ts +3 -3
  556. package/dist/ir/integer-loops.js +14 -6
  557. package/dist/ir/integer-loops.js.map +1 -1
  558. package/dist/ir/integer-loops.test.js +10 -0
  559. package/dist/ir/integer-loops.test.js.map +1 -1
  560. package/dist/ir/integer-ranges.d.ts +5 -0
  561. package/dist/ir/integer-ranges.js +125 -12
  562. package/dist/ir/integer-ranges.js.map +1 -1
  563. package/dist/ir/integer-ranges.test.js +30 -0
  564. package/dist/ir/integer-ranges.test.js.map +1 -1
  565. package/dist/ir/ir.d.ts +70 -7
  566. package/dist/ir/ir.js +58 -1
  567. package/dist/ir/ir.js.map +1 -1
  568. package/dist/ir/ir.test.js +21 -1
  569. package/dist/ir/ir.test.js.map +1 -1
  570. package/dist/ir/js-ic.d.ts +19 -2
  571. package/dist/ir/js-ic.js +95 -11
  572. package/dist/ir/js-ic.js.map +1 -1
  573. package/dist/ir/js-ic.test.js +188 -0
  574. package/dist/ir/js-ic.test.js.map +1 -1
  575. package/dist/ir/node-index.d.ts +57 -0
  576. package/dist/ir/node-index.js +215 -0
  577. package/dist/ir/node-index.js.map +1 -0
  578. package/dist/ir/paired-while-loops.d.ts +25 -0
  579. package/dist/ir/paired-while-loops.js +335 -0
  580. package/dist/ir/paired-while-loops.js.map +1 -0
  581. package/dist/ir/paired-while-loops.test.d.ts +1 -0
  582. package/dist/ir/paired-while-loops.test.js +163 -0
  583. package/dist/ir/paired-while-loops.test.js.map +1 -0
  584. package/dist/ir/parameter-versions.d.ts +25 -0
  585. package/dist/ir/parameter-versions.js +300 -0
  586. package/dist/ir/parameter-versions.js.map +1 -0
  587. package/dist/ir/runtime-features.d.ts +34 -13
  588. package/dist/ir/runtime-features.js +152 -38
  589. package/dist/ir/runtime-features.js.map +1 -1
  590. package/dist/ir/serialize.d.ts +12 -2
  591. package/dist/ir/serialize.js +16 -3
  592. package/dist/ir/serialize.js.map +1 -1
  593. package/dist/ir/serialize.test.js +17 -0
  594. package/dist/ir/serialize.test.js.map +1 -1
  595. package/dist/ir/traverse.js +18 -6
  596. package/dist/ir/traverse.js.map +1 -1
  597. package/dist/ir/validate.js +122 -36
  598. package/dist/ir/validate.js.map +1 -1
  599. package/dist/library/ir-policy.js +2 -0
  600. package/dist/library/ir-policy.js.map +1 -1
  601. package/dist/native/cache.d.ts +6 -1
  602. package/dist/native/cache.js +28 -5
  603. package/dist/native/cache.js.map +1 -1
  604. package/dist/native/cache.test.js +16 -2
  605. package/dist/native/cache.test.js.map +1 -1
  606. package/dist/native/cli.js +21 -1
  607. package/dist/native/cli.js.map +1 -1
  608. package/dist/native/compiler.js +8 -6
  609. package/dist/native/compiler.js.map +1 -1
  610. package/dist/native/executable-cache.d.ts +1 -1
  611. package/dist/native/executable-cache.js +2 -2
  612. package/dist/native/executable-cache.js.map +1 -1
  613. package/dist/native/prepare.d.ts +3 -1
  614. package/dist/native/prepare.js +119 -31
  615. package/dist/native/prepare.js.map +1 -1
  616. package/dist/native/prepare.test.js +78 -18
  617. package/dist/native/prepare.test.js.map +1 -1
  618. package/dist/native/sanitizer.test.js +2 -0
  619. package/dist/native/sanitizer.test.js.map +1 -1
  620. package/dist/native/text-file.d.ts +13 -3
  621. package/dist/native/text-file.js +63 -9
  622. package/dist/native/text-file.js.map +1 -1
  623. package/dist/native/text-file.test.d.ts +1 -0
  624. package/dist/native/text-file.test.js +49 -0
  625. package/dist/native/text-file.test.js.map +1 -0
  626. package/dist/native/toolchain.js +4 -4
  627. package/dist/native/toolchain.js.map +1 -1
  628. package/dist/native/toolchain.test.js +3 -3
  629. package/dist/native/toolchain.test.js.map +1 -1
  630. package/package.json +21 -21
  631. package/shims/chalk/v5.ts +688 -0
  632. package/shims/hono-node-server/v2.ts +645 -0
  633. package/shims/hot-shots/client.ts +1126 -0
  634. package/shims/hot-shots/v8-unix-dgram.ts +8 -0
  635. package/shims/hot-shots/v8.ts +8 -0
  636. package/surface-manifest.json +26 -4
@@ -0,0 +1,688 @@
1
+ // scriptc's built-in implementation of the `chalk` package, 5.x API.
2
+ //
3
+ // Programs whose installed chalk is 5.x compile this module in its place
4
+ // (packages/compiler/src/frontend/package-shims.ts). chalk builds its
5
+ // styles as functions whose prototypes it swaps at run time; here a style
6
+ // chain is an instance of one class whose style members are cached
7
+ // getters, and the instance is callable through its `%call` field (the
8
+ // merged interface below gives it chalk's call signature; the lowerer calls
9
+ // the field). The output, color-level detection (supports-color 10:
10
+ // FORCE_COLOR, the --color/--no-color flags, TTY, TERM, CI variables) and
11
+ // the shared, settable `level` follow chalk 5.6 byte for byte.
12
+ import * as os from "node:os";
13
+ import * as tty from "node:tty";
14
+
15
+ export type ColorSupportLevel = 0 | 1 | 2 | 3;
16
+
17
+ export interface ColorSupport {
18
+ level: ColorSupportLevel;
19
+ hasBasic: boolean;
20
+ has256: boolean;
21
+ has16m: boolean;
22
+ }
23
+
24
+ export type ColorInfo = ColorSupport | false;
25
+
26
+ export interface Options {
27
+ readonly level?: ColorSupportLevel;
28
+ }
29
+
30
+ export type ModifierName =
31
+ | "reset"
32
+ | "bold"
33
+ | "dim"
34
+ | "italic"
35
+ | "underline"
36
+ | "overline"
37
+ | "inverse"
38
+ | "hidden"
39
+ | "strikethrough";
40
+
41
+ export type ForegroundColorName =
42
+ | "black"
43
+ | "red"
44
+ | "green"
45
+ | "yellow"
46
+ | "blue"
47
+ | "cyan"
48
+ | "magenta"
49
+ | "white"
50
+ | "gray"
51
+ | "grey"
52
+ | "blackBright"
53
+ | "redBright"
54
+ | "greenBright"
55
+ | "yellowBright"
56
+ | "blueBright"
57
+ | "cyanBright"
58
+ | "magentaBright"
59
+ | "whiteBright";
60
+
61
+ export type BackgroundColorName =
62
+ | "bgBlack"
63
+ | "bgRed"
64
+ | "bgGreen"
65
+ | "bgYellow"
66
+ | "bgBlue"
67
+ | "bgCyan"
68
+ | "bgMagenta"
69
+ | "bgWhite"
70
+ | "bgGray"
71
+ | "bgGrey"
72
+ | "bgBlackBright"
73
+ | "bgRedBright"
74
+ | "bgGreenBright"
75
+ | "bgYellowBright"
76
+ | "bgBlueBright"
77
+ | "bgCyanBright"
78
+ | "bgMagentaBright"
79
+ | "bgWhiteBright";
80
+
81
+ export type ColorName = ForegroundColorName | BackgroundColorName;
82
+
83
+ export type Modifiers = ModifierName;
84
+ export type ForegroundColor = ForegroundColorName;
85
+ export type BackgroundColor = BackgroundColorName;
86
+ export type Color = ColorName;
87
+
88
+ // ── ansi-styles ──────────────────────────────────────────────────────────
89
+
90
+ export const modifierNames: ModifierName[] = [
91
+ "reset",
92
+ "bold",
93
+ "dim",
94
+ "italic",
95
+ "underline",
96
+ "overline",
97
+ "inverse",
98
+ "hidden",
99
+ "strikethrough",
100
+ ];
101
+ export const foregroundColorNames: ForegroundColorName[] = [
102
+ "black",
103
+ "red",
104
+ "green",
105
+ "yellow",
106
+ "blue",
107
+ "magenta",
108
+ "cyan",
109
+ "white",
110
+ "blackBright",
111
+ "gray",
112
+ "grey",
113
+ "redBright",
114
+ "greenBright",
115
+ "yellowBright",
116
+ "blueBright",
117
+ "magentaBright",
118
+ "cyanBright",
119
+ "whiteBright",
120
+ ];
121
+ export const backgroundColorNames: BackgroundColorName[] = [
122
+ "bgBlack",
123
+ "bgRed",
124
+ "bgGreen",
125
+ "bgYellow",
126
+ "bgBlue",
127
+ "bgMagenta",
128
+ "bgCyan",
129
+ "bgWhite",
130
+ "bgBlackBright",
131
+ "bgGray",
132
+ "bgGrey",
133
+ "bgRedBright",
134
+ "bgGreenBright",
135
+ "bgYellowBright",
136
+ "bgBlueBright",
137
+ "bgMagentaBright",
138
+ "bgCyanBright",
139
+ "bgWhiteBright",
140
+ ];
141
+ export const colorNames: ColorName[] = [...foregroundColorNames, ...backgroundColorNames];
142
+ export const modifiers: Modifiers[] = modifierNames;
143
+ export const foregroundColors: ForegroundColor[] = foregroundColorNames;
144
+ export const backgroundColors: BackgroundColor[] = backgroundColorNames;
145
+ export const colors: Color[] = colorNames;
146
+
147
+ const ESC = "\u001B[";
148
+
149
+ /** Open and close codes, indexed by style id (the order of the getters). */
150
+ const OPEN_CODES: number[] = [
151
+ 0, 1, 2, 3, 4, 53, 7, 8, 9, 30, 31, 32, 33, 34, 35, 36, 37, 90, 90, 90, 91, 92, 93, 94, 95, 96,
152
+ 97, 40, 41, 42, 43, 44, 45, 46, 47, 100, 100, 100, 101, 102, 103, 104, 105, 106, 107,
153
+ ];
154
+ const CLOSE_CODES: number[] = [
155
+ 0, 22, 22, 23, 24, 55, 27, 28, 29, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
156
+ 39, 39, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
157
+ ];
158
+ const VISIBLE = 45;
159
+
160
+ function rgbToAnsi256(red: number, green: number, blue: number): number {
161
+ if (red === green && green === blue) {
162
+ if (red < 8) return 16;
163
+ if (red > 248) return 231;
164
+ return Math.round(((red - 8) / 247) * 24) + 232;
165
+ }
166
+ return (
167
+ 16 +
168
+ 36 * Math.round((red / 255) * 5) +
169
+ 6 * Math.round((green / 255) * 5) +
170
+ Math.round((blue / 255) * 5)
171
+ );
172
+ }
173
+
174
+ function hexToRgb(hex: string): number[] {
175
+ const matches = /[a-f\d]{6}|[a-f\d]{3}/i.exec(hex);
176
+ if (matches === null) return [0, 0, 0];
177
+ let colorString = matches[0];
178
+ if (colorString.length === 3) {
179
+ let doubled = "";
180
+ for (const character of colorString) doubled += character + character;
181
+ colorString = doubled;
182
+ }
183
+ const integer = Number.parseInt(colorString, 16);
184
+ return [(integer >> 16) & 0xff, (integer >> 8) & 0xff, integer & 0xff];
185
+ }
186
+
187
+ function ansi256ToAnsi(code: number): number {
188
+ if (code < 8) return 30 + code;
189
+ if (code < 16) return 90 + (code - 8);
190
+ let red: number;
191
+ let green: number;
192
+ let blue: number;
193
+ if (code >= 232) {
194
+ red = ((code - 232) * 10 + 8) / 255;
195
+ green = red;
196
+ blue = red;
197
+ } else {
198
+ code -= 16;
199
+ const remainder = code % 36;
200
+ red = Math.floor(code / 36) / 5;
201
+ green = Math.floor(remainder / 6) / 5;
202
+ blue = (remainder % 6) / 5;
203
+ }
204
+ const value = Math.max(red, green, blue) * 2;
205
+ if (value === 0) return 30;
206
+ let result = 30 + ((Math.round(blue) << 2) | (Math.round(green) << 1) | Math.round(red));
207
+ if (value === 2) result += 60;
208
+ return result;
209
+ }
210
+
211
+ /** The open code of a color model at a level: offset 0 is the foreground,
212
+ * 10 the background (ansi-styles' wrapAnsi16/256/16m). */
213
+ function rgbOpen(level: number, offset: number, red: number, green: number, blue: number): string {
214
+ if (level === 3) return `${ESC}${38 + offset};2;${red};${green};${blue}m`;
215
+ if (level === 2) return `${ESC}${38 + offset};5;${rgbToAnsi256(red, green, blue)}m`;
216
+ return `${ESC}${ansi256ToAnsi(rgbToAnsi256(red, green, blue)) + offset}m`;
217
+ }
218
+
219
+ /** chalk's ansi256 model emits the 256-color code at every level (only
220
+ * the rgb and hex models downsample). */
221
+ function ansi256Open(offset: number, code: number): string {
222
+ return `${ESC}${38 + offset};5;${code}m`;
223
+ }
224
+
225
+ // ── supports-color ───────────────────────────────────────────────────────
226
+
227
+ function hasFlag(flag: string): boolean {
228
+ const argv = process.argv;
229
+ const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
230
+ const position = argv.indexOf(prefix + flag);
231
+ const terminatorPosition = argv.indexOf("--");
232
+ return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
233
+ }
234
+
235
+ let flagForceColor: number | undefined = undefined;
236
+ if (
237
+ hasFlag("no-color") ||
238
+ hasFlag("no-colors") ||
239
+ hasFlag("color=false") ||
240
+ hasFlag("color=never")
241
+ ) {
242
+ flagForceColor = 0;
243
+ } else if (
244
+ hasFlag("color") ||
245
+ hasFlag("colors") ||
246
+ hasFlag("color=true") ||
247
+ hasFlag("color=always")
248
+ ) {
249
+ flagForceColor = 1;
250
+ }
251
+
252
+ function envForceColor(): number | undefined {
253
+ const force = process.env["FORCE_COLOR"];
254
+ if (force !== undefined) {
255
+ if (force === "true") return 1;
256
+ if (force === "false") return 0;
257
+ return force.length === 0 ? 1 : Math.min(Number.parseInt(force, 10), 3);
258
+ }
259
+ return undefined;
260
+ }
261
+
262
+ function translateLevel(level: number): ColorInfo {
263
+ if (level === 0) return false;
264
+ return {
265
+ level: level as ColorSupportLevel,
266
+ hasBasic: true,
267
+ has256: level >= 2,
268
+ has16m: level >= 3,
269
+ };
270
+ }
271
+
272
+ function inEnv(name: string): boolean {
273
+ return process.env[name] !== undefined;
274
+ }
275
+
276
+ function detectLevel(streamIsTTY: boolean): number {
277
+ const noFlagForceColor = envForceColor();
278
+ if (noFlagForceColor !== undefined) flagForceColor = noFlagForceColor;
279
+ const forceColor = flagForceColor;
280
+ if (forceColor === 0) return 0;
281
+ if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) return 3;
282
+ if (hasFlag("color=256")) return 2;
283
+ if (inEnv("TF_BUILD") && inEnv("AGENT_NAME")) return 1;
284
+ if (!streamIsTTY && forceColor === undefined) return 0;
285
+ const min =
286
+ forceColor === undefined || forceColor === 0 || Number.isNaN(forceColor) ? 0 : forceColor;
287
+ const env = process.env;
288
+ const term = env["TERM"];
289
+ if (term === "dumb") return min;
290
+ if (process.platform === "win32") {
291
+ const osRelease = os.release().split(".");
292
+ if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10_586) {
293
+ return Number(osRelease[2]) >= 14_931 ? 3 : 2;
294
+ }
295
+ return 1;
296
+ }
297
+ if (inEnv("CI")) {
298
+ if (inEnv("GITHUB_ACTIONS") || inEnv("GITEA_ACTIONS") || inEnv("CIRCLECI")) return 3;
299
+ if (
300
+ inEnv("TRAVIS") ||
301
+ inEnv("APPVEYOR") ||
302
+ inEnv("GITLAB_CI") ||
303
+ inEnv("BUILDKITE") ||
304
+ inEnv("DRONE") ||
305
+ env["CI_NAME"] === "codeship"
306
+ ) {
307
+ return 1;
308
+ }
309
+ return min;
310
+ }
311
+ const teamcity = env["TEAMCITY_VERSION"];
312
+ if (teamcity !== undefined) {
313
+ return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(teamcity) ? 1 : 0;
314
+ }
315
+ if (env["COLORTERM"] === "truecolor") return 3;
316
+ if (term === "xterm-kitty") return 3;
317
+ if (term === "xterm-ghostty") return 3;
318
+ if (term === "wezterm") return 3;
319
+ const termProgram = env["TERM_PROGRAM"];
320
+ if (termProgram !== undefined) {
321
+ const version = Number.parseInt((env["TERM_PROGRAM_VERSION"] || "").split(".")[0]!, 10);
322
+ if (termProgram === "iTerm.app") return version >= 3 ? 3 : 2;
323
+ if (termProgram === "Apple_Terminal") return 2;
324
+ }
325
+ // supports-color tests these against `env.TERM`, which is the string
326
+ // "undefined" when TERM is unset.
327
+ const termText = term === undefined ? "undefined" : term;
328
+ if (/-256(color)?$/i.test(termText)) return 2;
329
+ if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(termText)) return 1;
330
+ if (inEnv("COLORTERM")) return 1;
331
+ return min;
332
+ }
333
+
334
+ const stdoutColor: ColorInfo = translateLevel(detectLevel(tty.isatty(1)));
335
+ const stderrColor: ColorInfo = translateLevel(detectLevel(tty.isatty(2)));
336
+
337
+ export const supportsColor: ColorInfo = stdoutColor;
338
+ export const supportsColorStderr: ColorInfo = stderrColor;
339
+
340
+ // ── the builder ──────────────────────────────────────────────────────────
341
+
342
+ /** One link of a style chain (chalk's styler). */
343
+ class Styler {
344
+ open: string;
345
+ close: string;
346
+ openAll: string;
347
+ closeAll: string;
348
+ parent: Styler | undefined;
349
+ constructor(open: string, close: string, parent: Styler | undefined) {
350
+ this.open = open;
351
+ this.close = close;
352
+ this.parent = parent;
353
+ if (parent === undefined) {
354
+ this.openAll = open;
355
+ this.closeAll = close;
356
+ } else {
357
+ this.openAll = parent.openAll + open;
358
+ this.closeAll = close + parent.closeAll;
359
+ }
360
+ }
361
+ }
362
+
363
+ /** The level every builder of one chalk instance shares. */
364
+ class LevelBox {
365
+ level: number;
366
+ constructor(level: number) {
367
+ this.level = level;
368
+ }
369
+ }
370
+
371
+ function stringReplaceAll(string: string, substring: string, replacer: string): string {
372
+ let index = string.indexOf(substring);
373
+ if (index === -1) return string;
374
+ const substringLength = substring.length;
375
+ let endIndex = 0;
376
+ let returnValue = "";
377
+ do {
378
+ returnValue += string.slice(endIndex, index) + substring + replacer;
379
+ endIndex = index + substringLength;
380
+ index = string.indexOf(substring, endIndex);
381
+ } while (index !== -1);
382
+ returnValue += string.slice(endIndex);
383
+ return returnValue;
384
+ }
385
+
386
+ function stringEncaseCRLFWithFirstIndex(
387
+ string: string,
388
+ prefix: string,
389
+ postfix: string,
390
+ index: number,
391
+ ): string {
392
+ let endIndex = 0;
393
+ let returnValue = "";
394
+ do {
395
+ const gotCR = string[index - 1] === "\r";
396
+ returnValue +=
397
+ string.slice(endIndex, gotCR ? index - 1 : index) +
398
+ prefix +
399
+ (gotCR ? "\r\n" : "\n") +
400
+ postfix;
401
+ endIndex = index + 1;
402
+ index = string.indexOf("\n", endIndex);
403
+ } while (index !== -1);
404
+ returnValue += string.slice(endIndex);
405
+ return returnValue;
406
+ }
407
+
408
+ function applyStyle(self: ChalkInstance, string: string): string {
409
+ if (self.box.level <= 0 || !string) return self.isEmpty ? "" : string;
410
+ let styler = self.styler;
411
+ if (styler === undefined) return string;
412
+ const openAll = styler.openAll;
413
+ const closeAll = styler.closeAll;
414
+ if (string.includes("\u001B")) {
415
+ while (styler !== undefined) {
416
+ string = stringReplaceAll(string, styler.close, styler.open);
417
+ styler = styler.parent;
418
+ }
419
+ }
420
+ const lfIndex = string.indexOf("\n");
421
+ if (lfIndex !== -1) string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);
422
+ return openAll + string + closeAll;
423
+ }
424
+
425
+ function joinArguments(args: unknown[]): string {
426
+ let out = "";
427
+ for (let i = 0; i < args.length; i++) {
428
+ if (i > 0) out += " ";
429
+ const value = args[i];
430
+ if (value !== undefined && value !== null) out += String(value);
431
+ }
432
+ return out;
433
+ }
434
+
435
+ /** A chalk instance or one of its style chains: callable (chalk's call
436
+ * signature merges in from the interface), with every style a cached
437
+ * getter. */
438
+ // The merge is the point: the interface gives instances chalk's call
439
+ // signature, and the class's `%call` field implements it.
440
+ // oxlint-disable-next-line typescript/no-unsafe-declaration-merging
441
+ export interface ChalkInstance {
442
+ (...text: unknown[]): string;
443
+ }
444
+
445
+ // oxlint-disable-next-line typescript/no-unsafe-declaration-merging
446
+ export class ChalkInstance {
447
+ "%call": (...text: unknown[]) => string = (...text: unknown[]): string =>
448
+ this.root
449
+ ? joinArguments(text)
450
+ : applyStyle(this, text.length === 1 ? "" + String(text[0]) : joinArguments(text));
451
+ box: LevelBox;
452
+ styler: Styler | undefined;
453
+ isEmpty: boolean;
454
+ private readonly root: boolean;
455
+ private readonly cache: (ChalkInstance | undefined)[] = [];
456
+
457
+ constructor(box: LevelBox, styler: Styler | undefined, isEmpty: boolean, root: boolean) {
458
+ this.box = box;
459
+ this.styler = styler;
460
+ this.isEmpty = isEmpty;
461
+ this.root = root;
462
+ }
463
+
464
+ /** One string argument: the compiler calls this instead of `%call`
465
+ * (no variadic arguments to box). */
466
+ "%call1"(text: string): string {
467
+ return this.root ? text : applyStyle(this, text);
468
+ }
469
+
470
+ get level(): ColorSupportLevel {
471
+ return this.box.level as ColorSupportLevel;
472
+ }
473
+
474
+ set level(level: ColorSupportLevel) {
475
+ this.box.level = level;
476
+ }
477
+
478
+ private style(id: number): ChalkInstance {
479
+ const cached = this.cache[id];
480
+ if (cached !== undefined) return cached;
481
+ let builder: ChalkInstance;
482
+ if (id === VISIBLE) {
483
+ builder = new ChalkInstance(this.box, this.styler, true, false);
484
+ } else {
485
+ const styler = new Styler(
486
+ `${ESC}${OPEN_CODES[id]!}m`,
487
+ `${ESC}${CLOSE_CODES[id]!}m`,
488
+ this.styler,
489
+ );
490
+ builder = new ChalkInstance(this.box, styler, this.isEmpty, false);
491
+ }
492
+ while (this.cache.length <= id) this.cache.push(undefined);
493
+ this.cache[id] = builder;
494
+ return builder;
495
+ }
496
+
497
+ private model(open: string, background: boolean): ChalkInstance {
498
+ const styler = new Styler(open, background ? `${ESC}49m` : `${ESC}39m`, this.styler);
499
+ return new ChalkInstance(this.box, styler, this.isEmpty, false);
500
+ }
501
+
502
+ rgb(red: number, green: number, blue: number): ChalkInstance {
503
+ return this.model(rgbOpen(this.box.level, 0, red, green, blue), false);
504
+ }
505
+ hex(color: string): ChalkInstance {
506
+ const [red, green, blue] = hexToRgb(color);
507
+ return this.model(rgbOpen(this.box.level, 0, red!, green!, blue!), false);
508
+ }
509
+ ansi256(index: number): ChalkInstance {
510
+ return this.model(ansi256Open(0, index), false);
511
+ }
512
+ bgRgb(red: number, green: number, blue: number): ChalkInstance {
513
+ return this.model(rgbOpen(this.box.level, 10, red, green, blue), true);
514
+ }
515
+ bgHex(color: string): ChalkInstance {
516
+ const [red, green, blue] = hexToRgb(color);
517
+ return this.model(rgbOpen(this.box.level, 10, red!, green!, blue!), true);
518
+ }
519
+ bgAnsi256(index: number): ChalkInstance {
520
+ return this.model(ansi256Open(10, index), true);
521
+ }
522
+
523
+ get reset(): ChalkInstance {
524
+ return this.style(0);
525
+ }
526
+ get bold(): ChalkInstance {
527
+ return this.style(1);
528
+ }
529
+ get dim(): ChalkInstance {
530
+ return this.style(2);
531
+ }
532
+ get italic(): ChalkInstance {
533
+ return this.style(3);
534
+ }
535
+ get underline(): ChalkInstance {
536
+ return this.style(4);
537
+ }
538
+ get overline(): ChalkInstance {
539
+ return this.style(5);
540
+ }
541
+ get inverse(): ChalkInstance {
542
+ return this.style(6);
543
+ }
544
+ get hidden(): ChalkInstance {
545
+ return this.style(7);
546
+ }
547
+ get strikethrough(): ChalkInstance {
548
+ return this.style(8);
549
+ }
550
+ get visible(): ChalkInstance {
551
+ return this.style(VISIBLE);
552
+ }
553
+ get black(): ChalkInstance {
554
+ return this.style(9);
555
+ }
556
+ get red(): ChalkInstance {
557
+ return this.style(10);
558
+ }
559
+ get green(): ChalkInstance {
560
+ return this.style(11);
561
+ }
562
+ get yellow(): ChalkInstance {
563
+ return this.style(12);
564
+ }
565
+ get blue(): ChalkInstance {
566
+ return this.style(13);
567
+ }
568
+ get magenta(): ChalkInstance {
569
+ return this.style(14);
570
+ }
571
+ get cyan(): ChalkInstance {
572
+ return this.style(15);
573
+ }
574
+ get white(): ChalkInstance {
575
+ return this.style(16);
576
+ }
577
+ get blackBright(): ChalkInstance {
578
+ return this.style(17);
579
+ }
580
+ get gray(): ChalkInstance {
581
+ return this.style(18);
582
+ }
583
+ get grey(): ChalkInstance {
584
+ return this.style(19);
585
+ }
586
+ get redBright(): ChalkInstance {
587
+ return this.style(20);
588
+ }
589
+ get greenBright(): ChalkInstance {
590
+ return this.style(21);
591
+ }
592
+ get yellowBright(): ChalkInstance {
593
+ return this.style(22);
594
+ }
595
+ get blueBright(): ChalkInstance {
596
+ return this.style(23);
597
+ }
598
+ get magentaBright(): ChalkInstance {
599
+ return this.style(24);
600
+ }
601
+ get cyanBright(): ChalkInstance {
602
+ return this.style(25);
603
+ }
604
+ get whiteBright(): ChalkInstance {
605
+ return this.style(26);
606
+ }
607
+ get bgBlack(): ChalkInstance {
608
+ return this.style(27);
609
+ }
610
+ get bgRed(): ChalkInstance {
611
+ return this.style(28);
612
+ }
613
+ get bgGreen(): ChalkInstance {
614
+ return this.style(29);
615
+ }
616
+ get bgYellow(): ChalkInstance {
617
+ return this.style(30);
618
+ }
619
+ get bgBlue(): ChalkInstance {
620
+ return this.style(31);
621
+ }
622
+ get bgMagenta(): ChalkInstance {
623
+ return this.style(32);
624
+ }
625
+ get bgCyan(): ChalkInstance {
626
+ return this.style(33);
627
+ }
628
+ get bgWhite(): ChalkInstance {
629
+ return this.style(34);
630
+ }
631
+ get bgBlackBright(): ChalkInstance {
632
+ return this.style(35);
633
+ }
634
+ get bgGray(): ChalkInstance {
635
+ return this.style(36);
636
+ }
637
+ get bgGrey(): ChalkInstance {
638
+ return this.style(37);
639
+ }
640
+ get bgRedBright(): ChalkInstance {
641
+ return this.style(38);
642
+ }
643
+ get bgGreenBright(): ChalkInstance {
644
+ return this.style(39);
645
+ }
646
+ get bgYellowBright(): ChalkInstance {
647
+ return this.style(40);
648
+ }
649
+ get bgBlueBright(): ChalkInstance {
650
+ return this.style(41);
651
+ }
652
+ get bgMagentaBright(): ChalkInstance {
653
+ return this.style(42);
654
+ }
655
+ get bgCyanBright(): ChalkInstance {
656
+ return this.style(43);
657
+ }
658
+ get bgWhiteBright(): ChalkInstance {
659
+ return this.style(44);
660
+ }
661
+ }
662
+
663
+ function optionsLevel(options: Options | undefined): number {
664
+ const level = options === undefined ? undefined : options.level;
665
+ if (
666
+ level !== undefined &&
667
+ level !== 0 &&
668
+ !(Number.isInteger(level) && level >= 0 && level <= 3)
669
+ ) {
670
+ throw new Error("The `level` option should be an integer from 0 to 3");
671
+ }
672
+ if (level === undefined) return stdoutColor === false ? 0 : stdoutColor.level;
673
+ return level;
674
+ }
675
+
676
+ /** `new Chalk(options)`: a fresh chalk instance with its own level. */
677
+ export class Chalk extends ChalkInstance {
678
+ constructor(options?: Options) {
679
+ super(new LevelBox(optionsLevel(options)), undefined, false, true);
680
+ }
681
+ }
682
+
683
+ const chalk: ChalkInstance = new Chalk();
684
+ export const chalkStderr: ChalkInstance = new Chalk({
685
+ level: stderrColor === false ? 0 : stderrColor.level,
686
+ });
687
+
688
+ export default chalk;