@soundscript/soundscript 0.1.13 → 0.1.15

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 (441) hide show
  1. package/package.json +15 -6
  2. package/project-transform/index.js +2 -0
  3. package/project-transform/index.ts +8 -0
  4. package/project-transform/src/annotation_syntax.js +948 -0
  5. package/project-transform/src/annotation_syntax.ts +1217 -0
  6. package/project-transform/src/build_package.js +475 -0
  7. package/project-transform/src/build_package.ts +683 -0
  8. package/project-transform/src/bundled/portable-web-globals.d.ts +153 -0
  9. package/project-transform/src/bundled/runtime_externs.js +220 -0
  10. package/project-transform/src/bundled/runtime_externs.ts +237 -0
  11. package/project-transform/src/bundled/sound-libs/lib.decorators.d.ts +385 -0
  12. package/project-transform/src/bundled/sound-libs/lib.decorators.legacy.d.ts +22 -0
  13. package/project-transform/src/bundled/sound-libs/lib.dom.asynciterable.d.ts +42 -0
  14. package/project-transform/src/bundled/sound-libs/lib.dom.d.ts +39440 -0
  15. package/project-transform/src/bundled/sound-libs/lib.es2015.collection.d.ts +149 -0
  16. package/project-transform/src/bundled/sound-libs/lib.es2015.core.d.ts +657 -0
  17. package/project-transform/src/bundled/sound-libs/lib.es2015.d.ts +28 -0
  18. package/project-transform/src/bundled/sound-libs/lib.es2015.generator.d.ts +77 -0
  19. package/project-transform/src/bundled/sound-libs/lib.es2015.iterable.d.ts +616 -0
  20. package/project-transform/src/bundled/sound-libs/lib.es2015.promise.d.ts +80 -0
  21. package/project-transform/src/bundled/sound-libs/lib.es2015.proxy.d.ts +128 -0
  22. package/project-transform/src/bundled/sound-libs/lib.es2015.reflect.d.ts +144 -0
  23. package/project-transform/src/bundled/sound-libs/lib.es2015.symbol.d.ts +46 -0
  24. package/project-transform/src/bundled/sound-libs/lib.es2015.symbol.wellknown.d.ts +170 -0
  25. package/project-transform/src/bundled/sound-libs/lib.es2016.array.include.d.ts +116 -0
  26. package/project-transform/src/bundled/sound-libs/lib.es2016.d.ts +21 -0
  27. package/project-transform/src/bundled/sound-libs/lib.es2017.arraybuffer.d.ts +21 -0
  28. package/project-transform/src/bundled/sound-libs/lib.es2017.d.ts +26 -0
  29. package/project-transform/src/bundled/sound-libs/lib.es2017.date.d.ts +31 -0
  30. package/project-transform/src/bundled/sound-libs/lib.es2017.object.d.ts +49 -0
  31. package/project-transform/src/bundled/sound-libs/lib.es2017.string.d.ts +45 -0
  32. package/project-transform/src/bundled/sound-libs/lib.es2017.typedarrays.d.ts +53 -0
  33. package/project-transform/src/bundled/sound-libs/lib.es2018.asyncgenerator.d.ts +77 -0
  34. package/project-transform/src/bundled/sound-libs/lib.es2018.asynciterable.d.ts +57 -0
  35. package/project-transform/src/bundled/sound-libs/lib.es2018.d.ts +24 -0
  36. package/project-transform/src/bundled/sound-libs/lib.es2018.promise.d.ts +30 -0
  37. package/project-transform/src/bundled/sound-libs/lib.es2018.regexp.d.ts +37 -0
  38. package/project-transform/src/bundled/sound-libs/lib.es2019.array.d.ts +79 -0
  39. package/project-transform/src/bundled/sound-libs/lib.es2019.d.ts +24 -0
  40. package/project-transform/src/bundled/sound-libs/lib.es2019.object.d.ts +47 -0
  41. package/project-transform/src/bundled/sound-libs/lib.es2019.string.d.ts +37 -0
  42. package/project-transform/src/bundled/sound-libs/lib.es2019.symbol.d.ts +24 -0
  43. package/project-transform/src/bundled/sound-libs/lib.es2020.bigint.d.ts +765 -0
  44. package/project-transform/src/bundled/sound-libs/lib.es2020.d.ts +27 -0
  45. package/project-transform/src/bundled/sound-libs/lib.es2020.date.d.ts +42 -0
  46. package/project-transform/src/bundled/sound-libs/lib.es2020.number.d.ts +28 -0
  47. package/project-transform/src/bundled/sound-libs/lib.es2020.promise.d.ts +49 -0
  48. package/project-transform/src/bundled/sound-libs/lib.es2020.string.d.ts +44 -0
  49. package/project-transform/src/bundled/sound-libs/lib.es2020.symbol.wellknown.d.ts +41 -0
  50. package/project-transform/src/bundled/sound-libs/lib.es2021.d.ts +23 -0
  51. package/project-transform/src/bundled/sound-libs/lib.es2021.promise.d.ts +48 -0
  52. package/project-transform/src/bundled/sound-libs/lib.es2021.string.d.ts +33 -0
  53. package/project-transform/src/bundled/sound-libs/lib.es2021.weakref.d.ts +78 -0
  54. package/project-transform/src/bundled/sound-libs/lib.es2022.array.d.ts +121 -0
  55. package/project-transform/src/bundled/sound-libs/lib.es2022.d.ts +25 -0
  56. package/project-transform/src/bundled/sound-libs/lib.es2022.error.d.ts +75 -0
  57. package/project-transform/src/bundled/sound-libs/lib.es2022.object.d.ts +26 -0
  58. package/project-transform/src/bundled/sound-libs/lib.es2022.regexp.d.ts +39 -0
  59. package/project-transform/src/bundled/sound-libs/lib.es2022.string.d.ts +25 -0
  60. package/project-transform/src/bundled/sound-libs/lib.es2023.array.d.ts +924 -0
  61. package/project-transform/src/bundled/sound-libs/lib.es2023.collection.d.ts +21 -0
  62. package/project-transform/src/bundled/sound-libs/lib.es2023.d.ts +22 -0
  63. package/project-transform/src/bundled/sound-libs/lib.es2024.arraybuffer.d.ts +65 -0
  64. package/project-transform/src/bundled/sound-libs/lib.es2024.collection.d.ts +29 -0
  65. package/project-transform/src/bundled/sound-libs/lib.es2024.d.ts +26 -0
  66. package/project-transform/src/bundled/sound-libs/lib.es2024.object.d.ts +33 -0
  67. package/project-transform/src/bundled/sound-libs/lib.es2024.promise.d.ts +35 -0
  68. package/project-transform/src/bundled/sound-libs/lib.es2024.regexp.d.ts +25 -0
  69. package/project-transform/src/bundled/sound-libs/lib.es2024.string.d.ts +29 -0
  70. package/project-transform/src/bundled/sound-libs/lib.es5.d.ts +4924 -0
  71. package/project-transform/src/bundled/sound_stdlib.js +142 -0
  72. package/project-transform/src/bundled/sound_stdlib.ts +180 -0
  73. package/project-transform/src/checker/analyze_project.js +1361 -0
  74. package/project-transform/src/checker/analyze_project.ts +2246 -0
  75. package/project-transform/src/checker/diagnostics.js +112 -0
  76. package/project-transform/src/checker/diagnostics.ts +222 -0
  77. package/project-transform/src/checker/engine/context.js +235 -0
  78. package/project-transform/src/checker/engine/context.ts +340 -0
  79. package/project-transform/src/checker/engine/diagnostic_codes.js +72 -0
  80. package/project-transform/src/checker/engine/diagnostic_codes.ts +95 -0
  81. package/project-transform/src/checker/engine/facts.js +35 -0
  82. package/project-transform/src/checker/engine/facts.ts +48 -0
  83. package/project-transform/src/checker/engine/types.js +1 -0
  84. package/project-transform/src/checker/engine/types.ts +485 -0
  85. package/project-transform/src/checker/proof_escape_hatch_diagnostics.js +104 -0
  86. package/project-transform/src/checker/proof_escape_hatch_diagnostics.ts +173 -0
  87. package/project-transform/src/checker/rules/async_surface.js +231 -0
  88. package/project-transform/src/checker/rules/async_surface.ts +335 -0
  89. package/project-transform/src/checker/rules/class_lifecycle.js +798 -0
  90. package/project-transform/src/checker/rules/class_lifecycle.ts +1276 -0
  91. package/project-transform/src/checker/rules/directive_validation.js +571 -0
  92. package/project-transform/src/checker/rules/directive_validation.ts +938 -0
  93. package/project-transform/src/checker/rules/directives.js +23 -0
  94. package/project-transform/src/checker/rules/directives.ts +25 -0
  95. package/project-transform/src/checker/rules/flow.js +202 -0
  96. package/project-transform/src/checker/rules/flow.ts +333 -0
  97. package/project-transform/src/checker/rules/flow_facts.js +601 -0
  98. package/project-transform/src/checker/rules/flow_facts.ts +978 -0
  99. package/project-transform/src/checker/rules/flow_invalidation.js +1119 -0
  100. package/project-transform/src/checker/rules/flow_invalidation.ts +2150 -0
  101. package/project-transform/src/checker/rules/flow_shared.js +2822 -0
  102. package/project-transform/src/checker/rules/flow_shared.ts +4383 -0
  103. package/project-transform/src/checker/rules/foreign_boundary.js +120 -0
  104. package/project-transform/src/checker/rules/foreign_boundary.ts +196 -0
  105. package/project-transform/src/checker/rules/foreign_projection.js +279 -0
  106. package/project-transform/src/checker/rules/foreign_projection.ts +425 -0
  107. package/project-transform/src/checker/rules/generated_helpers.js +13 -0
  108. package/project-transform/src/checker/rules/generated_helpers.ts +18 -0
  109. package/project-transform/src/checker/rules/index.js +35 -0
  110. package/project-transform/src/checker/rules/index.ts +49 -0
  111. package/project-transform/src/checker/rules/namespace_object.js +845 -0
  112. package/project-transform/src/checker/rules/namespace_object.ts +1224 -0
  113. package/project-transform/src/checker/rules/non_ordinary_recovery.js +1328 -0
  114. package/project-transform/src/checker/rules/non_ordinary_recovery.ts +2391 -0
  115. package/project-transform/src/checker/rules/null_prototype.js +3 -0
  116. package/project-transform/src/checker/rules/null_prototype.ts +6 -0
  117. package/project-transform/src/checker/rules/overloads.js +181 -0
  118. package/project-transform/src/checker/rules/overloads.ts +317 -0
  119. package/project-transform/src/checker/rules/predicate_verification.js +691 -0
  120. package/project-transform/src/checker/rules/predicate_verification.ts +1088 -0
  121. package/project-transform/src/checker/rules/prototype_hardening.js +237 -0
  122. package/project-transform/src/checker/rules/prototype_hardening.ts +343 -0
  123. package/project-transform/src/checker/rules/receiver_discipline.js +263 -0
  124. package/project-transform/src/checker/rules/receiver_discipline.ts +356 -0
  125. package/project-transform/src/checker/rules/relations.js +6861 -0
  126. package/project-transform/src/checker/rules/relations.ts +12158 -0
  127. package/project-transform/src/checker/rules/resolved_builtins.js +274 -0
  128. package/project-transform/src/checker/rules/resolved_builtins.ts +438 -0
  129. package/project-transform/src/checker/rules/trust.js +217 -0
  130. package/project-transform/src/checker/rules/trust.ts +301 -0
  131. package/project-transform/src/checker/rules/type_guards.js +173 -0
  132. package/project-transform/src/checker/rules/type_guards.ts +257 -0
  133. package/project-transform/src/checker/rules/universal.js +17 -0
  134. package/project-transform/src/checker/rules/universal.ts +22 -0
  135. package/project-transform/src/checker/rules/unsafe_value_origin.js +80 -0
  136. package/project-transform/src/checker/rules/unsafe_value_origin.ts +125 -0
  137. package/project-transform/src/checker/rules/unsound_imports.js +218 -0
  138. package/project-transform/src/checker/rules/unsound_imports.ts +301 -0
  139. package/project-transform/src/checker/rules/unsound_syntax.js +1695 -0
  140. package/project-transform/src/checker/rules/unsound_syntax.ts +2540 -0
  141. package/project-transform/src/checker/rules/value_types.js +206 -0
  142. package/project-transform/src/checker/rules/value_types.ts +407 -0
  143. package/project-transform/src/checker/timing.js +43 -0
  144. package/project-transform/src/checker/timing.ts +78 -0
  145. package/project-transform/src/checker/unsupported_feature_messages.js +337 -0
  146. package/project-transform/src/checker/unsupported_feature_messages.ts +531 -0
  147. package/project-transform/src/cli.js +892 -0
  148. package/project-transform/src/cli.ts +1476 -0
  149. package/project-transform/src/compiler/compile_project.js +319 -0
  150. package/project-transform/src/compiler/compile_project.ts +508 -0
  151. package/project-transform/src/compiler/errors.js +10 -0
  152. package/project-transform/src/compiler/errors.ts +29 -0
  153. package/project-transform/src/compiler/ir.js +1 -0
  154. package/project-transform/src/compiler/ir.ts +1526 -0
  155. package/project-transform/src/compiler/lower.js +30550 -0
  156. package/project-transform/src/compiler/lower.ts +43645 -0
  157. package/project-transform/src/compiler/lower_arrays.js +140 -0
  158. package/project-transform/src/compiler/lower_arrays.ts +190 -0
  159. package/project-transform/src/compiler/lower_strings.js +121 -0
  160. package/project-transform/src/compiler/lower_strings.ts +198 -0
  161. package/project-transform/src/compiler/lower_tagged.js +329 -0
  162. package/project-transform/src/compiler/lower_tagged.ts +427 -0
  163. package/project-transform/src/compiler/lower_views.js +171 -0
  164. package/project-transform/src/compiler/lower_views.ts +251 -0
  165. package/project-transform/src/compiler/object_keys.js +25 -0
  166. package/project-transform/src/compiler/object_keys.ts +35 -0
  167. package/project-transform/src/compiler/runtime_ir.js +30 -0
  168. package/project-transform/src/compiler/runtime_ir.ts +727 -0
  169. package/project-transform/src/compiler/tagged_boundary.js +18 -0
  170. package/project-transform/src/compiler/tagged_boundary.ts +37 -0
  171. package/project-transform/src/compiler/toolchain.js +170 -0
  172. package/project-transform/src/compiler/toolchain.ts +229 -0
  173. package/project-transform/src/compiler/unicode_case_data.js +2102 -0
  174. package/project-transform/src/compiler/unicode_case_data.ts +2112 -0
  175. package/project-transform/src/compiler/wasm_js_host_runtime.js +656 -0
  176. package/project-transform/src/compiler/wasm_js_host_runtime.ts +762 -0
  177. package/project-transform/src/compiler/wat_arrays.js +3132 -0
  178. package/project-transform/src/compiler/wat_arrays.ts +3768 -0
  179. package/project-transform/src/compiler/wat_emitter.js +17952 -0
  180. package/project-transform/src/compiler/wat_emitter.ts +22812 -0
  181. package/project-transform/src/compiler/wat_strings.js +129 -0
  182. package/project-transform/src/compiler/wat_strings.ts +187 -0
  183. package/project-transform/src/compiler/wat_tagged.js +548 -0
  184. package/project-transform/src/compiler/wat_tagged.ts +674 -0
  185. package/project-transform/src/compiler_generator_runner.js +153 -0
  186. package/project-transform/src/compiler_generator_runner.ts +171 -0
  187. package/project-transform/src/compiler_object_test_helpers.js +69 -0
  188. package/project-transform/src/compiler_object_test_helpers.ts +96 -0
  189. package/project-transform/src/compiler_promise_runner.js +2116 -0
  190. package/project-transform/src/compiler_promise_runner.ts +2184 -0
  191. package/project-transform/src/compiler_test_helpers.js +854 -0
  192. package/project-transform/src/compiler_test_helpers.ts +1087 -0
  193. package/project-transform/src/config.js +568 -0
  194. package/project-transform/src/config.ts +892 -0
  195. package/project-transform/src/diagnostic_metadata.js +67 -0
  196. package/project-transform/src/diagnostic_metadata.ts +99 -0
  197. package/project-transform/src/diagnostic_reference.js +1368 -0
  198. package/project-transform/src/diagnostic_reference.ts +1523 -0
  199. package/project-transform/src/editor_diagnostics_worker.js +176 -0
  200. package/project-transform/src/editor_diagnostics_worker.ts +250 -0
  201. package/project-transform/src/editor_projection.js +224 -0
  202. package/project-transform/src/editor_projection.ts +421 -0
  203. package/project-transform/src/frontend/builtin_expanded_program_test_cleanup.js +47 -0
  204. package/project-transform/src/frontend/builtin_expanded_program_test_cleanup.ts +72 -0
  205. package/project-transform/src/frontend/builtin_macro_support.js +842 -0
  206. package/project-transform/src/frontend/builtin_macro_support.ts +1386 -0
  207. package/project-transform/src/frontend/builtin_macros.js +409 -0
  208. package/project-transform/src/frontend/builtin_macros.ts +542 -0
  209. package/project-transform/src/frontend/component_poc_runtime.js +279 -0
  210. package/project-transform/src/frontend/component_poc_runtime.ts +372 -0
  211. package/project-transform/src/frontend/css_macro.js +148 -0
  212. package/project-transform/src/frontend/css_macro.ts +222 -0
  213. package/project-transform/src/frontend/derive_macros.js +2072 -0
  214. package/project-transform/src/frontend/derive_macros.ts +3188 -0
  215. package/project-transform/src/frontend/embedded_fragment_support.js +106 -0
  216. package/project-transform/src/frontend/embedded_fragment_support.ts +172 -0
  217. package/project-transform/src/frontend/error_normalization.js +403 -0
  218. package/project-transform/src/frontend/error_normalization.ts +832 -0
  219. package/project-transform/src/frontend/error_stdlib_support.js +1 -0
  220. package/project-transform/src/frontend/error_stdlib_support.ts +6 -0
  221. package/project-transform/src/frontend/expand_project.js +169 -0
  222. package/project-transform/src/frontend/expand_project.ts +248 -0
  223. package/project-transform/src/frontend/format_soundscript.js +297 -0
  224. package/project-transform/src/frontend/format_soundscript.ts +582 -0
  225. package/project-transform/src/frontend/graphql_macro.js +174 -0
  226. package/project-transform/src/frontend/graphql_macro.ts +253 -0
  227. package/project-transform/src/frontend/hash_context.js +83 -0
  228. package/project-transform/src/frontend/hash_context.ts +113 -0
  229. package/project-transform/src/frontend/hkt_macro.js +448 -0
  230. package/project-transform/src/frontend/hkt_macro.ts +897 -0
  231. package/project-transform/src/frontend/import_binding_usage.js +190 -0
  232. package/project-transform/src/frontend/import_binding_usage.ts +277 -0
  233. package/project-transform/src/frontend/macro_advanced_backend_adapter.js +58 -0
  234. package/project-transform/src/frontend/macro_advanced_backend_adapter.ts +123 -0
  235. package/project-transform/src/frontend/macro_advanced_context.js +826 -0
  236. package/project-transform/src/frontend/macro_advanced_context.ts +1102 -0
  237. package/project-transform/src/frontend/macro_advanced_output.js +21 -0
  238. package/project-transform/src/frontend/macro_advanced_output.ts +41 -0
  239. package/project-transform/src/frontend/macro_api.js +353 -0
  240. package/project-transform/src/frontend/macro_api.ts +1722 -0
  241. package/project-transform/src/frontend/macro_api_internal.js +35 -0
  242. package/project-transform/src/frontend/macro_api_internal.ts +80 -0
  243. package/project-transform/src/frontend/macro_api_module_support.js +39 -0
  244. package/project-transform/src/frontend/macro_api_module_support.ts +65 -0
  245. package/project-transform/src/frontend/macro_backend_adapter.js +272 -0
  246. package/project-transform/src/frontend/macro_backend_adapter.ts +420 -0
  247. package/project-transform/src/frontend/macro_context.js +816 -0
  248. package/project-transform/src/frontend/macro_context.ts +1105 -0
  249. package/project-transform/src/frontend/macro_debug.js +99 -0
  250. package/project-transform/src/frontend/macro_debug.ts +157 -0
  251. package/project-transform/src/frontend/macro_definition_support.js +28 -0
  252. package/project-transform/src/frontend/macro_definition_support.ts +73 -0
  253. package/project-transform/src/frontend/macro_errors.js +40 -0
  254. package/project-transform/src/frontend/macro_errors.ts +70 -0
  255. package/project-transform/src/frontend/macro_expander.js +919 -0
  256. package/project-transform/src/frontend/macro_expander.ts +1611 -0
  257. package/project-transform/src/frontend/macro_factory_support.js +176 -0
  258. package/project-transform/src/frontend/macro_factory_support.ts +263 -0
  259. package/project-transform/src/frontend/macro_host_ast_internal.js +64 -0
  260. package/project-transform/src/frontend/macro_host_ast_internal.ts +109 -0
  261. package/project-transform/src/frontend/macro_index.js +27 -0
  262. package/project-transform/src/frontend/macro_index.ts +50 -0
  263. package/project-transform/src/frontend/macro_loader.js +281 -0
  264. package/project-transform/src/frontend/macro_loader.ts +506 -0
  265. package/project-transform/src/frontend/macro_operand_semantics.js +838 -0
  266. package/project-transform/src/frontend/macro_operand_semantics.ts +1489 -0
  267. package/project-transform/src/frontend/macro_output.js +54 -0
  268. package/project-transform/src/frontend/macro_output.ts +123 -0
  269. package/project-transform/src/frontend/macro_parser.js +611 -0
  270. package/project-transform/src/frontend/macro_parser.ts +832 -0
  271. package/project-transform/src/frontend/macro_resolver.js +69 -0
  272. package/project-transform/src/frontend/macro_resolver.ts +125 -0
  273. package/project-transform/src/frontend/macro_rewrite.js +285 -0
  274. package/project-transform/src/frontend/macro_rewrite.ts +442 -0
  275. package/project-transform/src/frontend/macro_runtime_support.js +232 -0
  276. package/project-transform/src/frontend/macro_runtime_support.ts +324 -0
  277. package/project-transform/src/frontend/macro_scanner.js +393 -0
  278. package/project-transform/src/frontend/macro_scanner.ts +455 -0
  279. package/project-transform/src/frontend/macro_semantic_backend_adapter.js +87 -0
  280. package/project-transform/src/frontend/macro_semantic_backend_adapter.ts +166 -0
  281. package/project-transform/src/frontend/macro_semantic_context.js +5 -0
  282. package/project-transform/src/frontend/macro_semantic_context.ts +12 -0
  283. package/project-transform/src/frontend/macro_semantic_output.js +24 -0
  284. package/project-transform/src/frontend/macro_semantic_output.ts +47 -0
  285. package/project-transform/src/frontend/macro_semantic_types.js +1 -0
  286. package/project-transform/src/frontend/macro_semantic_types.ts +98 -0
  287. package/project-transform/src/frontend/macro_semantics.js +1172 -0
  288. package/project-transform/src/frontend/macro_semantics.ts +1502 -0
  289. package/project-transform/src/frontend/macro_site_kind_support.js +164 -0
  290. package/project-transform/src/frontend/macro_site_kind_support.ts +255 -0
  291. package/project-transform/src/frontend/macro_syntax_internal.js +1950 -0
  292. package/project-transform/src/frontend/macro_syntax_internal.ts +3338 -0
  293. package/project-transform/src/frontend/macro_templates.js +57 -0
  294. package/project-transform/src/frontend/macro_templates.ts +143 -0
  295. package/project-transform/src/frontend/macro_test_helpers.js +82 -0
  296. package/project-transform/src/frontend/macro_test_helpers.ts +136 -0
  297. package/project-transform/src/frontend/macro_types.js +1 -0
  298. package/project-transform/src/frontend/macro_types.ts +103 -0
  299. package/project-transform/src/frontend/macro_vm.js +39 -0
  300. package/project-transform/src/frontend/macro_vm.ts +113 -0
  301. package/project-transform/src/frontend/match_macro.js +885 -0
  302. package/project-transform/src/frontend/match_macro.ts +1220 -0
  303. package/project-transform/src/frontend/numeric_normalization.js +824 -0
  304. package/project-transform/src/frontend/numeric_normalization.ts +1380 -0
  305. package/project-transform/src/frontend/numeric_prelude.js +278 -0
  306. package/project-transform/src/frontend/numeric_prelude.ts +370 -0
  307. package/project-transform/src/frontend/project_frontend.js +2396 -0
  308. package/project-transform/src/frontend/project_frontend.ts +3776 -0
  309. package/project-transform/src/frontend/project_macro_support.js +1401 -0
  310. package/project-transform/src/frontend/project_macro_support.ts +2137 -0
  311. package/project-transform/src/frontend/sql_macro.js +175 -0
  312. package/project-transform/src/frontend/sql_macro.ts +254 -0
  313. package/project-transform/src/frontend/sql_stdlib_support.js +1 -0
  314. package/project-transform/src/frontend/sql_stdlib_support.ts +6 -0
  315. package/project-transform/src/frontend/std_package_support.js +228 -0
  316. package/project-transform/src/frontend/std_package_support.ts +400 -0
  317. package/project-transform/src/frontend/value_normalization.js +306 -0
  318. package/project-transform/src/frontend/value_normalization.ts +599 -0
  319. package/project-transform/src/lsp/project_service.js +4771 -0
  320. package/project-transform/src/lsp/project_service.ts +7580 -0
  321. package/project-transform/src/lsp/protocol.js +9 -0
  322. package/project-transform/src/lsp/protocol.ts +38 -0
  323. package/project-transform/src/lsp/server.js +355 -0
  324. package/project-transform/src/lsp/server.ts +671 -0
  325. package/project-transform/src/lsp/session.js +49 -0
  326. package/project-transform/src/lsp/session.ts +48 -0
  327. package/project-transform/src/lsp/timing.js +43 -0
  328. package/project-transform/src/lsp/timing.ts +76 -0
  329. package/project-transform/src/lsp/transport.js +205 -0
  330. package/project-transform/src/lsp/transport.ts +253 -0
  331. package/project-transform/src/lsp_main.js +5 -0
  332. package/project-transform/src/lsp_main.ts +7 -0
  333. package/project-transform/src/macros.d.ts +1 -0
  334. package/project-transform/src/macros.js +1 -0
  335. package/project-transform/src/macros.ts +1 -0
  336. package/project-transform/src/main.js +24 -0
  337. package/project-transform/src/main.ts +28 -0
  338. package/project-transform/src/platform/host.js +264 -0
  339. package/project-transform/src/platform/host.ts +343 -0
  340. package/project-transform/src/platform/path.js +8 -0
  341. package/project-transform/src/platform/path.ts +20 -0
  342. package/project-transform/src/public_macro_api/macro_api.d.ts +1054 -0
  343. package/project-transform/src/public_macro_api/macro_semantic_types.d.ts +66 -0
  344. package/project-transform/src/public_macro_api/macro_types.d.ts +70 -0
  345. package/project-transform/src/run_program.js +14 -0
  346. package/project-transform/src/run_program.ts +33 -0
  347. package/project-transform/src/runtime/materialize.js +371 -0
  348. package/project-transform/src/runtime/materialize.ts +502 -0
  349. package/project-transform/src/runtime/on_demand.js +203 -0
  350. package/project-transform/src/runtime/on_demand.ts +305 -0
  351. package/project-transform/src/runtime/source_maps.js +205 -0
  352. package/project-transform/src/runtime/source_maps.ts +297 -0
  353. package/project-transform/src/runtime/transform.js +148 -0
  354. package/project-transform/src/runtime/transform.ts +295 -0
  355. package/project-transform/src/service/types.js +1 -0
  356. package/project-transform/src/service/types.ts +22 -0
  357. package/project-transform/src/soundscript_packages.js +477 -0
  358. package/project-transform/src/soundscript_packages.ts +754 -0
  359. package/project-transform/src/soundscript_runtime_specifiers.js +88 -0
  360. package/project-transform/src/soundscript_runtime_specifiers.ts +96 -0
  361. package/project-transform/src/stdlib/async.d.ts +81 -0
  362. package/project-transform/src/stdlib/async.js +213 -0
  363. package/project-transform/src/stdlib/async.ts +315 -0
  364. package/project-transform/src/stdlib/codec.d.ts +32 -0
  365. package/project-transform/src/stdlib/codec.js +30 -0
  366. package/project-transform/src/stdlib/codec.ts +76 -0
  367. package/project-transform/src/stdlib/compare.d.ts +28 -0
  368. package/project-transform/src/stdlib/compare.js +115 -0
  369. package/project-transform/src/stdlib/compare.ts +151 -0
  370. package/project-transform/src/stdlib/css.d.ts +16 -0
  371. package/project-transform/src/stdlib/css.js +9 -0
  372. package/project-transform/src/stdlib/css.ts +28 -0
  373. package/project-transform/src/stdlib/debug.d.ts +2 -0
  374. package/project-transform/src/stdlib/debug.js +9 -0
  375. package/project-transform/src/stdlib/debug.ts +10 -0
  376. package/project-transform/src/stdlib/decode.d.ts +86 -0
  377. package/project-transform/src/stdlib/decode.js +254 -0
  378. package/project-transform/src/stdlib/decode.ts +390 -0
  379. package/project-transform/src/stdlib/derive.d.ts +6 -0
  380. package/project-transform/src/stdlib/derive.js +7 -0
  381. package/project-transform/src/stdlib/derive.ts +7 -0
  382. package/project-transform/src/stdlib/encode.d.ts +100 -0
  383. package/project-transform/src/stdlib/encode.js +130 -0
  384. package/project-transform/src/stdlib/encode.ts +259 -0
  385. package/project-transform/src/stdlib/failures.d.ts +23 -0
  386. package/project-transform/src/stdlib/failures.js +41 -0
  387. package/project-transform/src/stdlib/failures.ts +64 -0
  388. package/project-transform/src/stdlib/fetch.d.ts +67 -0
  389. package/project-transform/src/stdlib/fetch.js +5 -0
  390. package/project-transform/src/stdlib/fetch.ts +11 -0
  391. package/project-transform/src/stdlib/graphql.d.ts +16 -0
  392. package/project-transform/src/stdlib/graphql.js +9 -0
  393. package/project-transform/src/stdlib/graphql.ts +28 -0
  394. package/project-transform/src/stdlib/hash.d.ts +34 -0
  395. package/project-transform/src/stdlib/hash.js +110 -0
  396. package/project-transform/src/stdlib/hash.ts +188 -0
  397. package/project-transform/src/stdlib/hkt.d.ts +40 -0
  398. package/project-transform/src/stdlib/hkt.js +3 -0
  399. package/project-transform/src/stdlib/hkt.ts +41 -0
  400. package/project-transform/src/stdlib/index.d.ts +9 -0
  401. package/project-transform/src/stdlib/index.js +15 -0
  402. package/project-transform/src/stdlib/index.ts +23 -0
  403. package/project-transform/src/stdlib/json.d.ts +125 -0
  404. package/project-transform/src/stdlib/json.js +764 -0
  405. package/project-transform/src/stdlib/json.ts +1034 -0
  406. package/project-transform/src/stdlib/match.d.ts +11 -0
  407. package/project-transform/src/stdlib/match.js +13 -0
  408. package/project-transform/src/stdlib/match.ts +26 -0
  409. package/project-transform/src/stdlib/numerics.d.ts +523 -0
  410. package/project-transform/src/stdlib/numerics.js +1356 -0
  411. package/project-transform/src/stdlib/numerics.ts +1937 -0
  412. package/project-transform/src/stdlib/random.d.ts +19 -0
  413. package/project-transform/src/stdlib/random.js +3 -0
  414. package/project-transform/src/stdlib/random.ts +5 -0
  415. package/project-transform/src/stdlib/result.d.ts +68 -0
  416. package/project-transform/src/stdlib/result.js +139 -0
  417. package/project-transform/src/stdlib/result.ts +248 -0
  418. package/project-transform/src/stdlib/sql.d.ts +22 -0
  419. package/project-transform/src/stdlib/sql.js +23 -0
  420. package/project-transform/src/stdlib/sql.ts +53 -0
  421. package/project-transform/src/stdlib/text.d.ts +24 -0
  422. package/project-transform/src/stdlib/text.js +3 -0
  423. package/project-transform/src/stdlib/text.ts +4 -0
  424. package/project-transform/src/stdlib/thunk.d.ts +2 -0
  425. package/project-transform/src/stdlib/thunk.js +9 -0
  426. package/project-transform/src/stdlib/thunk.ts +15 -0
  427. package/project-transform/src/stdlib/typeclasses.d.ts +57 -0
  428. package/project-transform/src/stdlib/typeclasses.js +78 -0
  429. package/project-transform/src/stdlib/typeclasses.ts +173 -0
  430. package/project-transform/src/stdlib/url.d.ts +37 -0
  431. package/project-transform/src/stdlib/url.js +3 -0
  432. package/project-transform/src/stdlib/url.ts +4 -0
  433. package/project-transform/src/stdlib/value.d.ts +9 -0
  434. package/project-transform/src/stdlib/value.js +104 -0
  435. package/project-transform/src/stdlib/value.ts +133 -0
  436. package/project-transform/src/test_installed_stdlib.js +147 -0
  437. package/project-transform/src/test_installed_stdlib.ts +245 -0
  438. package/project-transform/src/test_macro_package_fixture.js +50 -0
  439. package/project-transform/src/test_macro_package_fixture.ts +68 -0
  440. package/project-transform/src/value_deep_safe.js +191 -0
  441. package/project-transform/src/value_deep_safe.ts +273 -0
@@ -0,0 +1,77 @@
1
+ /*! *****************************************************************************
2
+ Copyright (c) Microsoft Corporation. All rights reserved.
3
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use
4
+ this file except in compliance with the License. You may obtain a copy of the
5
+ License at http://www.apache.org/licenses/LICENSE-2.0
6
+
7
+ THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
8
+ KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
9
+ WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
10
+ MERCHANTABLITY OR NON-INFRINGEMENT.
11
+
12
+ See the Apache Version 2.0 License for specific language governing permissions
13
+ and limitations under the License.
14
+ ***************************************************************************** */
15
+
16
+
17
+ /// <reference no-default-lib="true"/>
18
+
19
+ /// <reference lib="es2015.iterable" />
20
+
21
+ interface Generator<T = unknown, TReturn = unknown, TNext = unknown> extends IteratorObject<T, TReturn, TNext> {
22
+ // NOTE: 'next' is defined using a tuple to ensure we report the correct assignability errors in all places.
23
+ next(...[value]: [] | [TNext]): IteratorResult<T, TReturn>;
24
+ return(value: TReturn): IteratorResult<T, TReturn>;
25
+ throw(e: unknown): IteratorResult<T, TReturn>;
26
+ [Symbol.iterator](): Generator<T, TReturn, TNext>;
27
+ }
28
+
29
+ interface GeneratorFunction {
30
+ /**
31
+ * Creates a new Generator object.
32
+ * @param args A list of arguments the function accepts.
33
+ */
34
+ new (...args: unknown[]): Generator;
35
+ /**
36
+ * Creates a new Generator object.
37
+ * @param args A list of arguments the function accepts.
38
+ */
39
+ (...args: unknown[]): Generator;
40
+ /**
41
+ * The length of the arguments.
42
+ */
43
+ readonly length: number;
44
+ /**
45
+ * Returns the name of the function.
46
+ */
47
+ readonly name: string;
48
+ /**
49
+ * A reference to the prototype.
50
+ */
51
+ readonly prototype: Generator;
52
+ }
53
+
54
+ interface GeneratorFunctionConstructor {
55
+ /**
56
+ * Creates a new Generator function.
57
+ * @param args A list of arguments the function accepts.
58
+ */
59
+ new (...args: string[]): GeneratorFunction;
60
+ /**
61
+ * Creates a new Generator function.
62
+ * @param args A list of arguments the function accepts.
63
+ */
64
+ (...args: string[]): GeneratorFunction;
65
+ /**
66
+ * The length of the arguments.
67
+ */
68
+ readonly length: number;
69
+ /**
70
+ * Returns the name of the function.
71
+ */
72
+ readonly name: string;
73
+ /**
74
+ * A reference to the prototype.
75
+ */
76
+ readonly prototype: GeneratorFunction;
77
+ }
@@ -0,0 +1,616 @@
1
+ /*! *****************************************************************************
2
+ Copyright (c) Microsoft Corporation. All rights reserved.
3
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use
4
+ this file except in compliance with the License. You may obtain a copy of the
5
+ License at http://www.apache.org/licenses/LICENSE-2.0
6
+
7
+ THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
8
+ KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
9
+ WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
10
+ MERCHANTABLITY OR NON-INFRINGEMENT.
11
+
12
+ See the Apache Version 2.0 License for specific language governing permissions
13
+ and limitations under the License.
14
+ ***************************************************************************** */
15
+
16
+
17
+ /// <reference no-default-lib="true"/>
18
+
19
+ /// <reference lib="es2015.symbol" />
20
+
21
+ interface SymbolConstructor {
22
+ /**
23
+ * A method that returns the default iterator for an object. Called by the semantics of the
24
+ * for-of statement.
25
+ */
26
+ readonly iterator: unique symbol;
27
+ }
28
+
29
+ // #[variance(TYield: out)]
30
+ interface IteratorYieldResult<TYield> {
31
+ readonly done: false;
32
+ readonly value: TYield;
33
+ }
34
+
35
+ // #[variance(TReturn: out)]
36
+ interface IteratorReturnResult<TReturn> {
37
+ readonly done: true;
38
+ readonly value: TReturn;
39
+ }
40
+
41
+ // #[variance(T: out, TReturn: out)]
42
+ type IteratorResult<T, TReturn = unknown> = IteratorYieldResult<T> | IteratorReturnResult<TReturn>;
43
+
44
+ // #[variance(T: out, TReturn: inout, TNext: in)]
45
+ interface Iterator<T, TReturn = unknown, TNext = unknown> {
46
+ // NOTE: 'next' is defined using a tuple to ensure we report the correct assignability errors in all places.
47
+ next(...[value]: [] | [TNext]): IteratorResult<T, TReturn>;
48
+ return?(value?: TReturn): IteratorResult<T, TReturn>;
49
+ throw?(e?: unknown): IteratorResult<T, TReturn>;
50
+ }
51
+
52
+ // #[variance(T: out, TReturn: out, TNext: in)]
53
+ interface Iterable<T, TReturn = unknown, TNext = unknown> {
54
+ [Symbol.iterator](): Iterator<T, TReturn, TNext>;
55
+ }
56
+
57
+ /**
58
+ * Describes a user-defined {@link Iterator} that is also iterable.
59
+ */
60
+ // #[variance(T: out, TReturn: inout, TNext: in)]
61
+ interface IterableIterator<T, TReturn = unknown, TNext = unknown> extends Iterator<T, TReturn, TNext> {
62
+ [Symbol.iterator](): IterableIterator<T, TReturn, TNext>;
63
+ }
64
+
65
+ /**
66
+ * Describes an {@link Iterator} produced by the runtime that inherits from the intrinsic `Iterator.prototype`.
67
+ */
68
+ // #[variance(T: out, TReturn: inout, TNext: in)]
69
+ interface IteratorObject<T, TReturn = unknown, TNext = unknown> extends Iterator<T, TReturn, TNext> {
70
+ [Symbol.iterator](): IteratorObject<T, TReturn, TNext>;
71
+ }
72
+
73
+ /**
74
+ * Defines the `TReturn` type used for built-in iterators produced by `Array`, `Map`, `Set`, and others.
75
+ * This is `undefined` when `strictBuiltInIteratorReturn` is `true`; otherwise, this is `any`.
76
+ */
77
+ type BuiltinIteratorReturn = intrinsic;
78
+
79
+ // #[variance(T: out)]
80
+ interface ArrayIterator<T> extends IteratorObject<T, BuiltinIteratorReturn, unknown> {
81
+ [Symbol.iterator](): ArrayIterator<T>;
82
+ }
83
+
84
+ interface Array<T> {
85
+ /** Iterator */
86
+ [Symbol.iterator](): ArrayIterator<T>;
87
+
88
+ /**
89
+ * Returns an iterable of key, value pairs for every entry in the array
90
+ */
91
+ entries(): ArrayIterator<[number, T]>;
92
+
93
+ /**
94
+ * Returns an iterable of keys in the array
95
+ */
96
+ keys(): ArrayIterator<number>;
97
+
98
+ /**
99
+ * Returns an iterable of values in the array
100
+ */
101
+ values(): ArrayIterator<T>;
102
+ }
103
+
104
+ interface ArrayConstructor {
105
+ /**
106
+ * Creates an array from an iterable object.
107
+ * @param iterable An iterable object to convert to an array.
108
+ */
109
+ from<T>(iterable: Iterable<T> | ArrayLike<T>): T[];
110
+
111
+ /**
112
+ * Creates an array from an iterable object.
113
+ * @param iterable An iterable object to convert to an array.
114
+ * @param mapfn A mapping function to call on every element of the array.
115
+ * @param thisArg Value of 'this' used to invoke the mapfn.
116
+ */
117
+ from<T, U>(iterable: Iterable<T> | ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: unknown): U[];
118
+ }
119
+
120
+ interface ReadonlyArray<T> {
121
+ /** Iterator of values in the array. */
122
+ [Symbol.iterator](): ArrayIterator<T>;
123
+
124
+ /**
125
+ * Returns an iterable of key, value pairs for every entry in the array
126
+ */
127
+ entries(): ArrayIterator<[number, T]>;
128
+
129
+ /**
130
+ * Returns an iterable of keys in the array
131
+ */
132
+ keys(): ArrayIterator<number>;
133
+
134
+ /**
135
+ * Returns an iterable of values in the array
136
+ */
137
+ values(): ArrayIterator<T>;
138
+ }
139
+
140
+ interface IArguments {
141
+ /** Iterator */
142
+ [Symbol.iterator](): ArrayIterator<unknown>;
143
+ }
144
+
145
+ // #[variance(T: out)]
146
+ interface MapIterator<T> extends IteratorObject<T, BuiltinIteratorReturn, unknown> {
147
+ [Symbol.iterator](): MapIterator<T>;
148
+ }
149
+
150
+ interface Map<K, V> extends ReadonlyMap<K, V> {
151
+ /** Returns an iterable of entries in the map. */
152
+ [Symbol.iterator](): MapIterator<[K, V]>;
153
+
154
+ /**
155
+ * Returns an iterable of key, value pairs for every entry in the map.
156
+ */
157
+ entries(): MapIterator<[K, V]>;
158
+
159
+ /**
160
+ * Returns an iterable of keys in the map
161
+ */
162
+ keys(): MapIterator<K>;
163
+
164
+ /**
165
+ * Returns an iterable of values in the map
166
+ */
167
+ values(): MapIterator<V>;
168
+ }
169
+
170
+ interface ReadonlyMap<K, V> {
171
+ /** Returns an iterable of entries in the map. */
172
+ [Symbol.iterator](): MapIterator<readonly [K, V]>;
173
+
174
+ /**
175
+ * Returns an iterable of key, value pairs for every entry in the map.
176
+ */
177
+ entries(): MapIterator<readonly [K, V]>;
178
+
179
+ /**
180
+ * Returns an iterable of keys in the map
181
+ */
182
+ keys(): MapIterator<K>;
183
+
184
+ /**
185
+ * Returns an iterable of values in the map
186
+ */
187
+ values(): MapIterator<V>;
188
+ }
189
+
190
+ interface MapConstructor {
191
+ new (): Map<unknown, unknown>;
192
+ new <K, V>(iterable?: Iterable<readonly [K, V]> | null): Map<K, V>;
193
+ }
194
+
195
+ interface WeakMap<K extends WeakKey, V> {}
196
+
197
+ interface WeakMapConstructor {
198
+ new <K extends WeakKey, V>(iterable: Iterable<readonly [K, V]>): WeakMap<K, V>;
199
+ }
200
+
201
+ // #[variance(T: out)]
202
+ interface SetIterator<T> extends IteratorObject<T, BuiltinIteratorReturn, unknown> {
203
+ [Symbol.iterator](): SetIterator<T>;
204
+ }
205
+
206
+ interface Set<T> extends ReadonlySet<T> {
207
+ /** Iterates over values in the set. */
208
+ [Symbol.iterator](): SetIterator<T>;
209
+
210
+ /**
211
+ * Returns an iterable of [v,v] pairs for every value `v` in the set.
212
+ */
213
+ entries(): SetIterator<[T, T]>;
214
+
215
+ /**
216
+ * Despite its name, returns an iterable of the values in the set.
217
+ */
218
+ keys(): SetIterator<T>;
219
+
220
+ /**
221
+ * Returns an iterable of values in the set.
222
+ */
223
+ values(): SetIterator<T>;
224
+ }
225
+
226
+ interface ReadonlySet<T> {
227
+ /** Iterates over values in the set. */
228
+ [Symbol.iterator](): SetIterator<T>;
229
+
230
+ /**
231
+ * Returns an iterable of [v,v] pairs for every value `v` in the set.
232
+ */
233
+ entries(): SetIterator<readonly [T, T]>;
234
+
235
+ /**
236
+ * Despite its name, returns an iterable of the values in the set.
237
+ */
238
+ keys(): SetIterator<T>;
239
+
240
+ /**
241
+ * Returns an iterable of values in the set.
242
+ */
243
+ values(): SetIterator<T>;
244
+ }
245
+
246
+ interface SetConstructor {
247
+ new <T>(iterable?: Iterable<T> | null): Set<T>;
248
+ }
249
+
250
+ interface WeakSet<T extends WeakKey> {}
251
+
252
+ interface WeakSetConstructor {
253
+ new <T extends WeakKey = WeakKey>(iterable: Iterable<T>): WeakSet<T>;
254
+ }
255
+
256
+ interface Promise<T> {}
257
+
258
+ interface PromiseConstructor {
259
+ /**
260
+ * Creates a Promise that is resolved with an array of results when all of the provided Promises
261
+ * resolve, or rejected when any Promise is rejected.
262
+ * @param values An iterable of Promises.
263
+ * @returns A new Promise.
264
+ */
265
+ all<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>[]>;
266
+
267
+ /**
268
+ * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved
269
+ * or rejected.
270
+ * @param values An iterable of Promises.
271
+ * @returns A new Promise.
272
+ */
273
+ race<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>>;
274
+ }
275
+
276
+ // #[variance(T: out)]
277
+ interface StringIterator<T> extends IteratorObject<T, BuiltinIteratorReturn, unknown> {
278
+ [Symbol.iterator](): StringIterator<T>;
279
+ }
280
+
281
+ interface String {
282
+ /** Iterator */
283
+ [Symbol.iterator](): StringIterator<string>;
284
+ }
285
+
286
+ interface Int8Array<TArrayBuffer extends ArrayBufferLike> {
287
+ [Symbol.iterator](): ArrayIterator<number>;
288
+
289
+ /**
290
+ * Returns an array of key, value pairs for every entry in the array
291
+ */
292
+ entries(): ArrayIterator<[number, number]>;
293
+
294
+ /**
295
+ * Returns an list of keys in the array
296
+ */
297
+ keys(): ArrayIterator<number>;
298
+
299
+ /**
300
+ * Returns an list of values in the array
301
+ */
302
+ values(): ArrayIterator<number>;
303
+ }
304
+
305
+ interface Int8ArrayConstructor {
306
+ new (elements: Iterable<number>): Int8Array<ArrayBuffer>;
307
+
308
+ /**
309
+ * Creates an array from an array-like or iterable object.
310
+ * @param elements An iterable object to convert to an array.
311
+ */
312
+ from(elements: Iterable<number>): Int8Array<ArrayBuffer>;
313
+
314
+ /**
315
+ * Creates an array from an array-like or iterable object.
316
+ * @param elements An iterable object to convert to an array.
317
+ * @param mapfn A mapping function to call on every element of the array.
318
+ * @param thisArg Value of 'this' used to invoke the mapfn.
319
+ */
320
+ from<T>(elements: Iterable<T>, mapfn?: (v: T, k: number) => number, thisArg?: unknown): Int8Array<ArrayBuffer>;
321
+ }
322
+
323
+ interface Uint8Array<TArrayBuffer extends ArrayBufferLike> {
324
+ [Symbol.iterator](): ArrayIterator<number>;
325
+
326
+ /**
327
+ * Returns an array of key, value pairs for every entry in the array
328
+ */
329
+ entries(): ArrayIterator<[number, number]>;
330
+
331
+ /**
332
+ * Returns an list of keys in the array
333
+ */
334
+ keys(): ArrayIterator<number>;
335
+
336
+ /**
337
+ * Returns an list of values in the array
338
+ */
339
+ values(): ArrayIterator<number>;
340
+ }
341
+
342
+ interface Uint8ArrayConstructor {
343
+ new (elements: Iterable<number>): Uint8Array<ArrayBuffer>;
344
+
345
+ /**
346
+ * Creates an array from an array-like or iterable object.
347
+ * @param elements An iterable object to convert to an array.
348
+ */
349
+ from(elements: Iterable<number>): Uint8Array<ArrayBuffer>;
350
+
351
+ /**
352
+ * Creates an array from an array-like or iterable object.
353
+ * @param elements An iterable object to convert to an array.
354
+ * @param mapfn A mapping function to call on every element of the array.
355
+ * @param thisArg Value of 'this' used to invoke the mapfn.
356
+ */
357
+ from<T>(elements: Iterable<T>, mapfn?: (v: T, k: number) => number, thisArg?: unknown): Uint8Array<ArrayBuffer>;
358
+ }
359
+
360
+ interface Uint8ClampedArray<TArrayBuffer extends ArrayBufferLike> {
361
+ [Symbol.iterator](): ArrayIterator<number>;
362
+
363
+ /**
364
+ * Returns an array of key, value pairs for every entry in the array
365
+ */
366
+ entries(): ArrayIterator<[number, number]>;
367
+
368
+ /**
369
+ * Returns an list of keys in the array
370
+ */
371
+ keys(): ArrayIterator<number>;
372
+
373
+ /**
374
+ * Returns an list of values in the array
375
+ */
376
+ values(): ArrayIterator<number>;
377
+ }
378
+
379
+ interface Uint8ClampedArrayConstructor {
380
+ new (elements: Iterable<number>): Uint8ClampedArray<ArrayBuffer>;
381
+
382
+ /**
383
+ * Creates an array from an array-like or iterable object.
384
+ * @param elements An iterable object to convert to an array.
385
+ */
386
+ from(elements: Iterable<number>): Uint8ClampedArray<ArrayBuffer>;
387
+
388
+ /**
389
+ * Creates an array from an array-like or iterable object.
390
+ * @param elements An iterable object to convert to an array.
391
+ * @param mapfn A mapping function to call on every element of the array.
392
+ * @param thisArg Value of 'this' used to invoke the mapfn.
393
+ */
394
+ from<T>(elements: Iterable<T>, mapfn?: (v: T, k: number) => number, thisArg?: unknown): Uint8ClampedArray<ArrayBuffer>;
395
+ }
396
+
397
+ interface Int16Array<TArrayBuffer extends ArrayBufferLike> {
398
+ [Symbol.iterator](): ArrayIterator<number>;
399
+ /**
400
+ * Returns an array of key, value pairs for every entry in the array
401
+ */
402
+ entries(): ArrayIterator<[number, number]>;
403
+
404
+ /**
405
+ * Returns an list of keys in the array
406
+ */
407
+ keys(): ArrayIterator<number>;
408
+
409
+ /**
410
+ * Returns an list of values in the array
411
+ */
412
+ values(): ArrayIterator<number>;
413
+ }
414
+
415
+ interface Int16ArrayConstructor {
416
+ new (elements: Iterable<number>): Int16Array<ArrayBuffer>;
417
+
418
+ /**
419
+ * Creates an array from an array-like or iterable object.
420
+ * @param elements An iterable object to convert to an array.
421
+ */
422
+ from(elements: Iterable<number>): Int16Array<ArrayBuffer>;
423
+
424
+ /**
425
+ * Creates an array from an array-like or iterable object.
426
+ * @param elements An iterable object to convert to an array.
427
+ * @param mapfn A mapping function to call on every element of the array.
428
+ * @param thisArg Value of 'this' used to invoke the mapfn.
429
+ */
430
+ from<T>(elements: Iterable<T>, mapfn?: (v: T, k: number) => number, thisArg?: unknown): Int16Array<ArrayBuffer>;
431
+ }
432
+
433
+ interface Uint16Array<TArrayBuffer extends ArrayBufferLike> {
434
+ [Symbol.iterator](): ArrayIterator<number>;
435
+
436
+ /**
437
+ * Returns an array of key, value pairs for every entry in the array
438
+ */
439
+ entries(): ArrayIterator<[number, number]>;
440
+
441
+ /**
442
+ * Returns an list of keys in the array
443
+ */
444
+ keys(): ArrayIterator<number>;
445
+
446
+ /**
447
+ * Returns an list of values in the array
448
+ */
449
+ values(): ArrayIterator<number>;
450
+ }
451
+
452
+ interface Uint16ArrayConstructor {
453
+ new (elements: Iterable<number>): Uint16Array<ArrayBuffer>;
454
+
455
+ /**
456
+ * Creates an array from an array-like or iterable object.
457
+ * @param elements An iterable object to convert to an array.
458
+ */
459
+ from(elements: Iterable<number>): Uint16Array<ArrayBuffer>;
460
+
461
+ /**
462
+ * Creates an array from an array-like or iterable object.
463
+ * @param elements An iterable object to convert to an array.
464
+ * @param mapfn A mapping function to call on every element of the array.
465
+ * @param thisArg Value of 'this' used to invoke the mapfn.
466
+ */
467
+ from<T>(elements: Iterable<T>, mapfn?: (v: T, k: number) => number, thisArg?: unknown): Uint16Array<ArrayBuffer>;
468
+ }
469
+
470
+ interface Int32Array<TArrayBuffer extends ArrayBufferLike> {
471
+ [Symbol.iterator](): ArrayIterator<number>;
472
+
473
+ /**
474
+ * Returns an array of key, value pairs for every entry in the array
475
+ */
476
+ entries(): ArrayIterator<[number, number]>;
477
+
478
+ /**
479
+ * Returns an list of keys in the array
480
+ */
481
+ keys(): ArrayIterator<number>;
482
+
483
+ /**
484
+ * Returns an list of values in the array
485
+ */
486
+ values(): ArrayIterator<number>;
487
+ }
488
+
489
+ interface Int32ArrayConstructor {
490
+ new (elements: Iterable<number>): Int32Array<ArrayBuffer>;
491
+
492
+ /**
493
+ * Creates an array from an array-like or iterable object.
494
+ * @param elements An iterable object to convert to an array.
495
+ */
496
+ from(elements: Iterable<number>): Int32Array<ArrayBuffer>;
497
+
498
+ /**
499
+ * Creates an array from an array-like or iterable object.
500
+ * @param elements An iterable object to convert to an array.
501
+ * @param mapfn A mapping function to call on every element of the array.
502
+ * @param thisArg Value of 'this' used to invoke the mapfn.
503
+ */
504
+ from<T>(elements: Iterable<T>, mapfn?: (v: T, k: number) => number, thisArg?: unknown): Int32Array<ArrayBuffer>;
505
+ }
506
+
507
+ interface Uint32Array<TArrayBuffer extends ArrayBufferLike> {
508
+ [Symbol.iterator](): ArrayIterator<number>;
509
+
510
+ /**
511
+ * Returns an array of key, value pairs for every entry in the array
512
+ */
513
+ entries(): ArrayIterator<[number, number]>;
514
+
515
+ /**
516
+ * Returns an list of keys in the array
517
+ */
518
+ keys(): ArrayIterator<number>;
519
+
520
+ /**
521
+ * Returns an list of values in the array
522
+ */
523
+ values(): ArrayIterator<number>;
524
+ }
525
+
526
+ interface Uint32ArrayConstructor {
527
+ new (elements: Iterable<number>): Uint32Array<ArrayBuffer>;
528
+
529
+ /**
530
+ * Creates an array from an array-like or iterable object.
531
+ * @param elements An iterable object to convert to an array.
532
+ */
533
+ from(elements: Iterable<number>): Uint32Array<ArrayBuffer>;
534
+
535
+ /**
536
+ * Creates an array from an array-like or iterable object.
537
+ * @param elements An iterable object to convert to an array.
538
+ * @param mapfn A mapping function to call on every element of the array.
539
+ * @param thisArg Value of 'this' used to invoke the mapfn.
540
+ */
541
+ from<T>(elements: Iterable<T>, mapfn?: (v: T, k: number) => number, thisArg?: unknown): Uint32Array<ArrayBuffer>;
542
+ }
543
+
544
+ interface Float32Array<TArrayBuffer extends ArrayBufferLike> {
545
+ [Symbol.iterator](): ArrayIterator<number>;
546
+
547
+ /**
548
+ * Returns an array of key, value pairs for every entry in the array
549
+ */
550
+ entries(): ArrayIterator<[number, number]>;
551
+
552
+ /**
553
+ * Returns an list of keys in the array
554
+ */
555
+ keys(): ArrayIterator<number>;
556
+
557
+ /**
558
+ * Returns an list of values in the array
559
+ */
560
+ values(): ArrayIterator<number>;
561
+ }
562
+
563
+ interface Float32ArrayConstructor {
564
+ new (elements: Iterable<number>): Float32Array<ArrayBuffer>;
565
+
566
+ /**
567
+ * Creates an array from an array-like or iterable object.
568
+ * @param elements An iterable object to convert to an array.
569
+ */
570
+ from(elements: Iterable<number>): Float32Array<ArrayBuffer>;
571
+
572
+ /**
573
+ * Creates an array from an array-like or iterable object.
574
+ * @param elements An iterable object to convert to an array.
575
+ * @param mapfn A mapping function to call on every element of the array.
576
+ * @param thisArg Value of 'this' used to invoke the mapfn.
577
+ */
578
+ from<T>(elements: Iterable<T>, mapfn?: (v: T, k: number) => number, thisArg?: unknown): Float32Array<ArrayBuffer>;
579
+ }
580
+
581
+ interface Float64Array<TArrayBuffer extends ArrayBufferLike> {
582
+ [Symbol.iterator](): ArrayIterator<number>;
583
+
584
+ /**
585
+ * Returns an array of key, value pairs for every entry in the array
586
+ */
587
+ entries(): ArrayIterator<[number, number]>;
588
+
589
+ /**
590
+ * Returns an list of keys in the array
591
+ */
592
+ keys(): ArrayIterator<number>;
593
+
594
+ /**
595
+ * Returns an list of values in the array
596
+ */
597
+ values(): ArrayIterator<number>;
598
+ }
599
+
600
+ interface Float64ArrayConstructor {
601
+ new (elements: Iterable<number>): Float64Array<ArrayBuffer>;
602
+
603
+ /**
604
+ * Creates an array from an array-like or iterable object.
605
+ * @param elements An iterable object to convert to an array.
606
+ */
607
+ from(elements: Iterable<number>): Float64Array<ArrayBuffer>;
608
+
609
+ /**
610
+ * Creates an array from an array-like or iterable object.
611
+ * @param elements An iterable object to convert to an array.
612
+ * @param mapfn A mapping function to call on every element of the array.
613
+ * @param thisArg Value of 'this' used to invoke the mapfn.
614
+ */
615
+ from<T>(elements: Iterable<T>, mapfn?: (v: T, k: number) => number, thisArg?: unknown): Float64Array<ArrayBuffer>;
616
+ }