xbintsc 0.5.32 → 0.5.37

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 (222) hide show
  1. package/README.md +10 -7
  2. package/README.zh-CN.md +10 -8
  3. package/dist/scripts/check-version.d.ts +27 -0
  4. package/dist/scripts/check-version.js +71 -0
  5. package/dist/scripts/check-version.js.map +1 -0
  6. package/dist/scripts/package-platform.d.ts +58 -0
  7. package/dist/scripts/package-platform.js +142 -0
  8. package/dist/scripts/package-platform.js.map +1 -0
  9. package/dist/scripts/verify-platform-package.d.ts +34 -0
  10. package/dist/scripts/verify-platform-package.js +161 -0
  11. package/dist/scripts/verify-platform-package.js.map +1 -0
  12. package/dist/src/cli/help.d.ts +1 -1
  13. package/dist/src/cli/main.js +3 -1
  14. package/dist/src/cli/main.js.map +1 -1
  15. package/dist/src/driver/runtime-lib.d.ts +29 -4
  16. package/dist/src/driver/runtime-lib.js +68 -10
  17. package/dist/src/driver/runtime-lib.js.map +1 -1
  18. package/dist/src/driver/version.d.ts +1 -1
  19. package/dist/src/driver/version.js +1 -1
  20. package/dist/src/extensions/gui/index.js +18 -5
  21. package/dist/src/extensions/gui/index.js.map +1 -1
  22. package/dist/src/extensions/media/index.js +4 -3
  23. package/dist/src/extensions/media/index.js.map +1 -1
  24. package/dist/src/parser/context.d.ts +41 -0
  25. package/dist/src/parser/context.js +89 -4
  26. package/dist/src/parser/context.js.map +1 -1
  27. package/dist/src/parser/literals.js +6 -12
  28. package/dist/src/parser/literals.js.map +1 -1
  29. package/dist/tests/driver/platform-package.test.d.ts +1 -0
  30. package/dist/tests/driver/platform-package.test.js +49 -0
  31. package/dist/tests/driver/platform-package.test.js.map +1 -0
  32. package/dist/tests/driver/runtime-lib.test.js +51 -4
  33. package/dist/tests/driver/runtime-lib.test.js.map +1 -1
  34. package/dist/tests/e2e/gui-audio.test.d.ts +14 -0
  35. package/dist/tests/e2e/gui-audio.test.js +287 -0
  36. package/dist/tests/e2e/gui-audio.test.js.map +1 -0
  37. package/dist/tests/e2e/gui-browser.test.js +65 -0
  38. package/dist/tests/e2e/gui-browser.test.js.map +1 -1
  39. package/dist/tests/e2e/gui-canvas-args.test.d.ts +6 -0
  40. package/dist/tests/e2e/gui-canvas-args.test.js +217 -0
  41. package/dist/tests/e2e/gui-canvas-args.test.js.map +1 -0
  42. package/dist/tests/e2e/gui-canvas.test.js.map +1 -1
  43. package/dist/tests/e2e/gui-dom.test.js +215 -0
  44. package/dist/tests/e2e/gui-dom.test.js.map +1 -1
  45. package/dist/tests/e2e/gui-events.test.js +112 -0
  46. package/dist/tests/e2e/gui-events.test.js.map +1 -1
  47. package/dist/tests/e2e/gui-helpers.d.ts +7 -0
  48. package/dist/tests/e2e/gui-helpers.js +1 -0
  49. package/dist/tests/e2e/gui-helpers.js.map +1 -1
  50. package/dist/tests/e2e/gui-media.test.js +78 -0
  51. package/dist/tests/e2e/gui-media.test.js.map +1 -1
  52. package/dist/tests/e2e/gui-style.test.js +55 -0
  53. package/dist/tests/e2e/gui-style.test.js.map +1 -1
  54. package/dist/tests/e2e/gui-webgl.test.js +258 -0
  55. package/dist/tests/e2e/gui-webgl.test.js.map +1 -1
  56. package/dist/tests/e2e/gui-webgl2-3d.test.d.ts +4 -0
  57. package/dist/tests/e2e/gui-webgl2-3d.test.js +264 -0
  58. package/dist/tests/e2e/gui-webgl2-3d.test.js.map +1 -0
  59. package/dist/tests/e2e/gui-webgl2-blit.test.d.ts +10 -0
  60. package/dist/tests/e2e/gui-webgl2-blit.test.js +262 -0
  61. package/dist/tests/e2e/gui-webgl2-blit.test.js.map +1 -0
  62. package/dist/tests/e2e/gui-webgl2-formats.test.d.ts +6 -0
  63. package/dist/tests/e2e/gui-webgl2-formats.test.js +395 -0
  64. package/dist/tests/e2e/gui-webgl2-formats.test.js.map +1 -0
  65. package/dist/tests/e2e/gui-webgl2-mrt.test.d.ts +4 -0
  66. package/dist/tests/e2e/gui-webgl2-mrt.test.js +105 -0
  67. package/dist/tests/e2e/gui-webgl2-mrt.test.js.map +1 -0
  68. package/dist/tests/e2e/gui-webgl2-ubo.test.d.ts +8 -0
  69. package/dist/tests/e2e/gui-webgl2-ubo.test.js +112 -0
  70. package/dist/tests/e2e/gui-webgl2-ubo.test.js.map +1 -0
  71. package/dist/tests/e2e/gui-webgl2.test.js +45 -1
  72. package/dist/tests/e2e/gui-webgl2.test.js.map +1 -1
  73. package/dist/tests/extensions/gui-index.test.js +1 -0
  74. package/dist/tests/extensions/gui-index.test.js.map +1 -1
  75. package/dist/tests/extensions/media.test.js +1 -0
  76. package/dist/tests/extensions/media.test.js.map +1 -1
  77. package/dist/tests/parser/expressions.test.js +30 -0
  78. package/dist/tests/parser/expressions.test.js.map +1 -1
  79. package/dist/tests/platform-tarball.test.d.ts +1 -0
  80. package/dist/tests/platform-tarball.test.js +111 -0
  81. package/dist/tests/platform-tarball.test.js.map +1 -0
  82. package/dist/tests/version.test.js +6 -0
  83. package/dist/tests/version.test.js.map +1 -1
  84. package/doc/ai/contributing.md +11 -0
  85. package/doc/ai/extensions.md +7 -4
  86. package/doc/ai/troubleshooting.md +7 -5
  87. package/doc/ai/zh-CN/contributing.md +9 -0
  88. package/doc/ai/zh-CN/extensions.md +4 -2
  89. package/doc/ai/zh-CN/troubleshooting.md +5 -3
  90. package/doc/gui/api.md +99 -22
  91. package/doc/gui/build.md +11 -4
  92. package/doc/gui/canvas.md +49 -18
  93. package/doc/gui/dom.md +57 -7
  94. package/doc/gui/media.md +4 -0
  95. package/doc/gui/webgl.md +105 -46
  96. package/doc/gui.md +7 -3
  97. package/doc/npm-package.md +55 -27
  98. package/doc/requirements.md +6 -2
  99. package/doc/zh-CN/gui/api.md +84 -14
  100. package/doc/zh-CN/gui/build.md +7 -2
  101. package/doc/zh-CN/gui/canvas.md +44 -19
  102. package/doc/zh-CN/gui/dom.md +48 -4
  103. package/doc/zh-CN/gui/media.md +3 -0
  104. package/doc/zh-CN/gui/webgl.md +22 -16
  105. package/doc/zh-CN/gui.md +3 -2
  106. package/doc/zh-CN/npm-package.md +44 -23
  107. package/doc/zh-CN/requirements.md +4 -1
  108. package/package.json +17 -1
  109. package/runtime/ext_gui/audio.cpp +365 -153
  110. package/runtime/ext_gui/audio_buffer.cpp +166 -0
  111. package/runtime/ext_gui/audio_buffer.h +37 -0
  112. package/runtime/ext_gui/audio_decode.cpp +219 -0
  113. package/runtime/ext_gui/audio_decode.h +39 -0
  114. package/runtime/ext_gui/audio_device.cpp +87 -0
  115. package/runtime/ext_gui/audio_effects.cpp +163 -0
  116. package/runtime/ext_gui/audio_effects.h +25 -0
  117. package/runtime/ext_gui/audio_internal.h +30 -0
  118. package/runtime/ext_gui/audio_mixer.cpp +494 -0
  119. package/runtime/ext_gui/audio_mixer.h +238 -0
  120. package/runtime/ext_gui/audio_param.cpp +104 -0
  121. package/runtime/ext_gui/audio_param_object.cpp +155 -0
  122. package/runtime/ext_gui/browser.cpp +45 -50
  123. package/runtime/ext_gui/browser_abort.cpp +249 -0
  124. package/runtime/ext_gui/browser_dialogs.cpp +76 -0
  125. package/runtime/ext_gui/browser_media.cpp +176 -0
  126. package/runtime/ext_gui/browser_navigation.cpp +130 -0
  127. package/runtime/ext_gui/canvas.cpp +88 -30
  128. package/runtime/ext_gui/canvas.h +74 -9
  129. package/runtime/ext_gui/canvas_image_data.cpp +143 -0
  130. package/runtime/ext_gui/canvas_internal.h +8 -5
  131. package/runtime/ext_gui/canvas_pattern.cpp +90 -0
  132. package/runtime/ext_gui/canvas_raster.cpp +31 -9
  133. package/runtime/ext_gui/canvas_style.cpp +4 -2
  134. package/runtime/ext_gui/css_selector.cpp +21 -3
  135. package/runtime/ext_gui/dom.h +4 -0
  136. package/runtime/ext_gui/dom_api.cpp +1 -0
  137. package/runtime/ext_gui/dom_api_canvas.cpp +120 -114
  138. package/runtime/ext_gui/dom_api_canvas_extra.cpp +57 -2
  139. package/runtime/ext_gui/dom_api_canvas_image.cpp +239 -0
  140. package/runtime/ext_gui/dom_api_canvas_paths.cpp +179 -0
  141. package/runtime/ext_gui/dom_api_computed_style.cpp +124 -0
  142. package/runtime/ext_gui/dom_api_dataset.cpp +154 -0
  143. package/runtime/ext_gui/dom_api_document.cpp +58 -5
  144. package/runtime/ext_gui/dom_api_events.cpp +93 -17
  145. package/runtime/ext_gui/dom_api_internal.h +71 -2
  146. package/runtime/ext_gui/dom_api_mutation.cpp +159 -0
  147. package/runtime/ext_gui/dom_api_node.cpp +40 -19
  148. package/runtime/ext_gui/dom_api_node_read.cpp +37 -1
  149. package/runtime/ext_gui/dom_api_path2d.cpp +358 -0
  150. package/runtime/ext_gui/dom_api_proto.cpp +35 -0
  151. package/runtime/ext_gui/dom_api_style.cpp +223 -13
  152. package/runtime/ext_gui/dom_api_webgl.cpp +7 -0
  153. package/runtime/ext_gui/dom_api_webgl2.cpp +151 -36
  154. package/runtime/ext_gui/dom_api_webgl2_draw.cpp +3 -3
  155. package/runtime/ext_gui/dom_api_webgl_buffer.cpp +6 -2
  156. package/runtime/ext_gui/dom_api_webgl_compressed.cpp +167 -0
  157. package/runtime/ext_gui/dom_api_webgl_framebuffer.cpp +160 -0
  158. package/runtime/ext_gui/dom_api_webgl_shader.cpp +4 -4
  159. package/runtime/ext_gui/dom_api_webgl_source.cpp +161 -0
  160. package/runtime/ext_gui/dom_api_webgl_state.cpp +169 -23
  161. package/runtime/ext_gui/dom_api_webgl_texture.cpp +276 -236
  162. package/runtime/ext_gui/dom_api_webgl_ubo.cpp +81 -0
  163. package/runtime/ext_gui/gui.cpp +103 -14
  164. package/runtime/ext_gui/gui_engine.h +56 -4
  165. package/runtime/ext_gui/gui_events.cpp +80 -9
  166. package/runtime/ext_gui/image_bitmap.cpp +28 -0
  167. package/runtime/ext_gui/image_bitmap.h +26 -0
  168. package/runtime/ext_gui/image_bitmap_browser.cpp +136 -0
  169. package/runtime/ext_gui/listener_options.h +43 -0
  170. package/runtime/ext_gui/media.cpp +32 -0
  171. package/runtime/ext_gui/media.h +13 -0
  172. package/runtime/ext_gui/media_api.h +23 -0
  173. package/runtime/ext_gui/paint.cpp +28 -0
  174. package/runtime/ext_gui/paint.h +4 -0
  175. package/runtime/ext_gui/webgl.h +152 -18
  176. package/runtime/ext_gui/webgl_blit.cpp +95 -0
  177. package/runtime/ext_gui/webgl_buffer.cpp +178 -263
  178. package/runtime/ext_gui/webgl_buffer_objects.cpp +270 -0
  179. package/runtime/ext_gui/webgl_clear.cpp +142 -0
  180. package/runtime/ext_gui/webgl_compressed.cpp +180 -0
  181. package/runtime/ext_gui/webgl_context.cpp +241 -156
  182. package/runtime/ext_gui/webgl_draw.cpp +68 -3
  183. package/runtime/ext_gui/webgl_draw_buffers.cpp +75 -0
  184. package/runtime/ext_gui/webgl_glsl.h +40 -0
  185. package/runtime/ext_gui/webgl_glsl_compile.cpp +6 -0
  186. package/runtime/ext_gui/webgl_glsl_rewrite.cpp +18 -0
  187. package/runtime/ext_gui/webgl_glsl_scan.cpp +20 -11
  188. package/runtime/ext_gui/webgl_glsl_scan_block.cpp +126 -0
  189. package/runtime/ext_gui/webgl_glsl_tokens.h +28 -0
  190. package/runtime/ext_gui/webgl_pipeline.cpp +71 -19
  191. package/runtime/ext_gui/webgl_program_blocks.cpp +58 -0
  192. package/runtime/ext_gui/webgl_program_internal.h +6 -0
  193. package/runtime/ext_gui/webgl_shader.cpp +13 -1
  194. package/runtime/ext_gui/webgl_state.cpp +228 -0
  195. package/runtime/ext_gui/webgl_texture.cpp +144 -17
  196. package/runtime/ext_gui/webgl_texture_3d.cpp +215 -0
  197. package/runtime/ext_gui/webgl_uniform_block.h +31 -0
  198. package/runtime/ext_gui/webgl_webgl2.cpp +58 -5
  199. package/runtime/ext_gui/window.cpp +14 -65
  200. package/runtime/ext_gui/window_events.cpp +125 -0
  201. package/runtime/ext_media/decode_audio.cpp +308 -0
  202. package/runtime/ext_media/media_bridge.c +2 -0
  203. package/runtime/rt.h +43 -0
  204. package/runtime/rt_internal.h +4 -0
  205. package/runtime/xt_array_buffer.c +30 -0
  206. package/runtime/xt_builtins.c +0 -21
  207. package/runtime/xt_containers/access.inc +94 -2
  208. package/runtime/xt_containers/objects.inc +29 -31
  209. package/runtime/xt_typed_array/elements.inc +13 -0
  210. package/scripts/build-media.ts +14 -6
  211. package/scripts/build-runtime.ts +21 -16
  212. package/scripts/check-version.ts +39 -9
  213. package/scripts/package-platform.ts +183 -0
  214. package/scripts/set-platform-version.ts +62 -0
  215. package/scripts/verify-platform-package.ts +182 -0
  216. package/src/cli/main.ts +5 -1
  217. package/src/driver/runtime-lib.ts +73 -9
  218. package/src/driver/version.ts +1 -1
  219. package/src/extensions/gui/index.ts +18 -5
  220. package/src/extensions/media/index.ts +4 -3
  221. package/src/parser/context.ts +99 -4
  222. package/src/parser/literals.ts +6 -12
@@ -19,7 +19,7 @@ import { formatDiagnostic } from "../diagnostics/diagnostic.js";
19
19
  import { SourceFile } from "../diagnostics/source.js";
20
20
  import { build, compileEntry, COMPILER_VERSION } from "../driver/compiler.js";
21
21
  import { findRuntimeDir, platformSlug } from "../driver/paths.js";
22
- import { runtimeLibDir } from "../driver/runtime-lib.js";
22
+ import { findRuntimeLibrary, runtimeLibDir } from "../driver/runtime-lib.js";
23
23
  import { resolveToolchain } from "../driver/toolchain-provider.js";
24
24
  import { MINIMUM_CLANG_MAJOR, probeClang, realRunner, ToolchainError } from "../driver/toolchain.js";
25
25
  import { DOC_CLI, DOC_TROUBLESHOOTING, documentationHints, thrownFailure, toolchainPointer, UNEXPECTED_FAILURE_HINT, } from "./hints.js";
@@ -260,6 +260,8 @@ function doctor(io) {
260
260
  }
261
261
  try {
262
262
  io.stdout(`runtime lib: ${runtimeLibDir()}\n`);
263
+ const archives = ["core", "ext_node", "gui", "media"].filter((name) => findRuntimeLibrary(name) !== undefined);
264
+ io.stdout(`archives : ${archives.length > 0 ? archives.join(", ") : "none (C runtime compiled on demand)"}\n`);
263
265
  }
264
266
  catch {
265
267
  io.stdout("runtime lib: unavailable\n");
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../src/cli/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../src/cli/main.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAmB,MAAM,8BAA8B,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAmC,MAAM,uBAAuB,CAAC;AAC/G,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAA0B,MAAM,iCAAiC,CAAC;AAC3F,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACrG,OAAO,EACL,OAAO,EACP,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,qBAAqB,EAA0B,MAAM,2BAA2B,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,GAGnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,uEAAuE;AACvE,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC;AAOxB,MAAM,SAAS,GAAU;IACvB,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;IAC5C,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;CAC7C,CAAC;AAEF;;;;GAIG;AACH,IAAI,aAAa,GAAG,KAAK,CAAC;AAS1B,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IAC1B,QAAQ;IACR,KAAK;IACL,MAAM;IACN,UAAU;IACV,KAAK;IACL,YAAY;IACZ,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,UAAU;IACV,cAAc;IACd,SAAS;CACV,CAAC,CAAC;AAEH,SAAS,SAAS,CAAC,IAAuB;IACxC,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,IAAI,GAAG,EAA4B,CAAC;IAClD,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAE,CAAC;QACzB,IAAI,cAAc,EAAE,CAAC;YACnB,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,cAAc,GAAG,IAAI,CAAC;YACtB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACvD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9B,KAAK,CAAC,GAAG,CAAC,IAAK,EAAE,WAAW,CAAC,CAAC;YAChC,CAAC;iBAAM,IAAI,WAAW,CAAC,GAAG,CAAC,IAAK,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBAC7B,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChD,KAAK,CAAC,GAAG,CAAC,IAAK,EAAE,IAAI,CAAC,CAAC;oBACvB,KAAK,EAAE,CAAC;gBACV,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,GAAG,CAAC,IAAK,EAAE,IAAI,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,GAAG,CAAC,IAAK,EAAE,IAAI,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzB,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;YAC9C,CAAC;iBAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBAC7B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvB,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAC1B,KAAK,EAAE,CAAC;gBACV,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AAC3E,CAAC;AAED,SAAS,aAAa,CAAC,QAA2B,EAAE,eAAkC;IACpF,MAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACvE,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,GAAG,CAAC,CAAC;QAC/D,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IACD,2DAA2D;IAC3D,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;QACvC,QAAQ,CAAC,QAAQ,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,wEAAwE;IACxE,wEAAwE;IACxE,uEAAuE;IACvE,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;YAAE,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,gBAAgB,CAAC,WAAkC,EAAE,QAAgB,EAAE,EAAS;IACvF;;;qCAGiC;IACjC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkC,CAAC;IAC1D,MAAM,SAAS,GAAG,CAAC,IAAY,EAA0B,EAAE;QACzD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;YACtE,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC;IACF,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,sEAAsE;QACtE,IAAI,UAAU,CAAC,QAAQ,KAAK,SAAS,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACxE,EAAE,CAAC,MAAM,CAAC,WAAW,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;YACjE,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC;QAC1D,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IACzD,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,kBAAkB,CAAC,WAAW,CAAC;QAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AACzE,CAAC;AAED,8CAA8C;AAC9C,SAAS,YAAY,CAAC,OAA+B,EAAE,EAAS;IAC9D,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClF,EAAE,CAAC,MAAM,CAAC,oBAAoB,IAAI,KAAK,CAAC,CAAC;AAC3C,CAAC;AAED,uEAAuE;AACvE,SAAS,QAAQ,CAAC,EAAS,EAAE,IAAY;IACvC,IAAI,aAAa;QAAE,OAAO;IAC1B,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;AACzB,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CAAC,KAAc,EAAE,EAAS;IAC7C,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;QACpC,EAAE,CAAC,MAAM,CAAC,YAAY,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAChD,QAAQ,CAAC,EAAE,EAAE,SAAS,OAAO,CAAC,IAAI,UAAU,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B;qFAC6E;QAC7E,EAAE,CAAC,MAAM,CAAC,4BAA4B,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC7D,QAAQ,CACN,EAAE,EACF,iHAAiH,uBAAuB,CAAC,IAAI,EAAE,CAChJ,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,EAAE,CAAC,MAAM,CAAC,YAAY,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,EAAE,SAAS,OAAO,CAAC,OAAO,CAAC,IAAI,UAAU,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5E,OAAO,CAAC,CAAC;AACX,CAAC;AAED,6EAA6E;AAC7E,SAAS,iBAAiB,CAAC,KAAa,EAAE,EAAS;IACjD,EAAE,CAAC,MAAM,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;QACjC,CAAC,CAAC,+EAA+E,mBAAmB,EAAE;QACtG,CAAC,CAAC,oDAAoD,OAAO,EAAE,CAAC;IAClE,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACtB,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;;GAMG;AACH,SAAS,MAAM,CAAC,EAAS;IACvB,EAAE,CAAC,MAAM,CAAC,WAAW,gBAAgB,IAAI,CAAC,CAAC;IAC3C,EAAE,CAAC,MAAM,CAAC,gBAAgB,YAAY,EAAE,IAAI,CAAC,CAAC;IAE9C,IAAI,SAAwC,CAAC;IAC7C,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,CAAC;QACH,SAAS,GAAG,gBAAgB,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;QACrE,EAAE,CAAC,MAAM,CAAC,gBAAgB,SAAS,CAAC,KAAK,KAAK,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC;QACrE,EAAE,CAAC,MAAM,CAAC,gBAAgB,KAAK,CAAC,OAAO,IAAI,SAAS,IAAI,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC;QACnD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,wEAAwE;YACxE,MAAM,GAAG,IAAI,CAAC;YACd,EAAE,CAAC,MAAM,CAAC,mDAAmD,mBAAmB,KAAK,CAAC,CAAC;QACzF,CAAC;aAAM,IAAI,OAAO,CAAC,KAAK,IAAI,mBAAmB,EAAE,CAAC;YAChD,MAAM,GAAG,IAAI,CAAC;YACd,EAAE,CAAC,MAAM,CAAC,sCAAsC,mBAAmB,KAAK,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,MAAM,CACP,+BAA+B,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,GAAG;gBAC/E,gBAAgB,mBAAmB,KAAK,CAC3C,CAAC;YACF,EAAE,CAAC,MAAM,CAAC,kFAAkF,CAAC,CAAC;YAC9F,EAAE,CAAC,MAAM,CAAC,kFAAkF,CAAC,CAAC;QAChG,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,EAAE,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;QACvC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;gBAAE,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9D,CAAC;QACD,EAAE,CAAC,MAAM,CAAC,uFAAuF,CAAC,CAAC;IACrG,CAAC;IAED,IAAI,CAAC;QACH,EAAE,CAAC,MAAM,CAAC,gBAAgB,cAAc,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,EAAE,CAAC,MAAM,CAAC,uDAAuD,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,CAAC;QACH,EAAE,CAAC,MAAM,CAAC,gBAAgB,aAAa,EAAE,IAAI,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC;QAC/G,EAAE,CAAC,MAAM,CACP,gBAAgB,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,qCAAqC,IAAI,CACtG,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,EAAE,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,CAAC;QACH,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QACtE,EAAE,CAAC,MAAM,CAAC,gBAAgB,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,2BAA2B,IAAI,CAAC,CAAC;IACxF,CAAC;IAAC,MAAM,CAAC;QACP,EAAE,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,CAAC;AAMD;;;;GAIG;AACH,SAAS,oBAAoB,CAC3B,KAAoC,EACpC,QAA4B;IAE5B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC/E,CAAC;QACD,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QAC5D,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACvE,MAAM,KAAK,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QAC5C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;IAC5E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC;IACxD,CAAC;AACH,CAAC;AAED,6EAA6E;AAC7E,SAAS,cAAc,CAAC,KAAoC,EAAE,MAAqB;IACjF,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACvG,MAAM,QAAQ,GAAG,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAY,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC3G,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACxD,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC/F,OAAO;QACL,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxC,CAAC;AACJ,CAAC;AAED,uEAAuE;AACvE,SAAS,QAAQ,CAAC,KAAoC,EAAE,IAAY;IAClE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChD,OAAO,KAAK;SACT,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SAC5B,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,IAAuB,EAAE,KAAY,SAAS;IAChE,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,aAAa,CAAC;IAC/B,aAAa,GAAG,YAAY,CAAC;IAC7B,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACjC,CAAC;YAAS,CAAC;QACT,aAAa,GAAG,QAAQ,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,IAAuB,EAAE,EAAS;IAClD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAE7B,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7D,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAChB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACvD,EAAE,CAAC,MAAM,CAAC,WAAW,gBAAgB,IAAI,CAAC,CAAC;QAC3C,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,iBAAiB,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;QAChD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,EAAE,CAAC,MAAM,CAAC,wDAAwD,gBAAgB,KAAK,CAAC,CAAC;YACzF,QAAQ,CAAC,EAAE,EAAE,gDAAgD,gBAAgB,UAAU,OAAO,EAAE,CAAC,CAAC;YAClG,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;QACjF,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;QAC9F,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QAC1D;;4EAEoE;QACpE,MAAM,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE;YACpD,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;SACnC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;QACjF,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;aAAM,IAAI,MAAM,EAAE,CAAC;YAClB,gBAAgB,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,iBAAiB,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;QAChD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,EAAE,CAAC,MAAM,CAAC,wDAAwD,gBAAgB,KAAK,CAAC,CAAC;YACzF,QAAQ,CAAC,EAAE,EAAE,gDAAgD,gBAAgB,UAAU,OAAO,EAAE,CAAC,CAAC;YAClG,OAAO,CAAC,CAAC;QACX,CAAC;QACD;iFACyE;QACzE,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACnB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACrC,aAAa,CAAC;YACZ,IAAI,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;YACjC,SAAS,EAAE,GAAG,EAAE;gBACd,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAChB,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACrB,CAAC;SACF,CAAC,CAAC;QACH,EAAE,CAAC,MAAM,CAAC,qBAAqB,IAAI,iCAAiC,CAAC,CAAC;QACtE,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,iBAAiB,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;QAChD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,EAAE,CAAC,MAAM,CAAC,uDAAuD,gBAAgB,KAAK,CAAC,CAAC;YACxF,QAAQ,CAAC,EAAE,EAAE,gDAAgD,gBAAgB,UAAU,OAAO,EAAE,CAAC,CAAC;YAClG,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;QACjF,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;QAC9F,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QAC1D,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE;YACxD,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACvC,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;SACnC,CAAC,CAAC;QACH,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,EAAE,CAAC;YACpD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC9C,OAAO,CAAC,CAAC;YACX,CAAC;YACD,gBAAgB,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACzC,OAAO,CAAC,CAAC;QACX,CAAC;QACD,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACd,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,iBAAiB,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC/B,MAAM,KAAK,GAAG,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC;QACvC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,EAAE,CAAC,MAAM,CAAC,YAAY,OAAO,0CAA0C,gBAAgB,KAAK,CAAC,CAAC;YAC9F,QAAQ,CAAC,EAAE,EAAE,gDAAgD,gBAAgB,UAAU,OAAO,EAAE,CAAC,CAAC;YAClG,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,IAAI,GAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAA0B,IAAI,KAAK,CAAC;QACvE,MAAM,QAAQ,GAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAwB,IAAI,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC;QAC9F,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;QACxE,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;QACrF,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,WAAW,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACtD,EAAE,CAAC,MAAM,CAAC,gEAAgE,CAAC,CAAC;YAC5E,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,GAAG,GACP,WAAW,KAAK,SAAS;YACvB,CAAC,CAAE,UAAoB;YACvB,CAAC,CAAC,MAAM,KAAK,SAAS;gBACpB,CAAC,CAAE,KAAe;gBAClB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;QACnB,MAAM,MAAM,GACV,OAAO,WAAW,KAAK,QAAQ;YAC7B,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,OAAO,MAAM,KAAK,QAAQ;gBAC1B,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QAEtB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE;YAC1B,MAAM,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAY,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM;YAC3G,MAAM,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAY,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM;YACrG,IAAI;YACJ,QAAQ,EAAE,QAAiC;YAC3C,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI;YAChE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC3C,UAAU,EAAE,QAAQ;YACpB,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;YACvC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACvC,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;YAClC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI;YAC1D,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9B,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,EAAE,CAAC;YAC3D,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACrD,OAAO,CAAC,CAAC;YACX,CAAC;YACD,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAChD,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO;YAAE,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAE/E,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1E,EAAE,CAAC,MAAM,CAAC,kBAAkB,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC;YAC/F,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,EAAE,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC;YAChD,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACtF,OAAO,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,EAAE,CAAC,MAAM,CAAC,6BAA6B,OAAO,QAAQ,IAAI,EAAE,CAAC,CAAC;IAC9D,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3F,IAAI,MAAM,EAAE,CAAC;IACX,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C;wEACoE;IACpE,IAAI,MAAM,KAAK,YAAY;QAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACpD,CAAC"}
@@ -7,12 +7,37 @@
7
7
  * runtime/lib/<os>-<arch>/core.a (the core `xt_*.c` runtime)
8
8
  * runtime/lib/<os>-<arch>/ext_<name>.a (per-extension sources, e.g. ext_node.a)
9
9
  *
10
+ * A source checkout or a release archive carries them in the package itself.
11
+ * An npm install instead receives them from the optional
12
+ * `@xbintsc/<os>-<arch>` package (installed only for the host platform), which
13
+ * uses the same `runtime/lib/<os>-<arch>/` layout. The driver reads that folder
14
+ * in place, so no install script has to copy anything into `node_modules`.
15
+ *
10
16
  * Shipping these lets `build` link without compiling C, and shortens the first
11
17
  * build. When an archive is missing the driver transparently falls back to
12
18
  * compiling the `.c` sources, so the archives are an optimization, not a hard
13
19
  * dependency.
14
20
  */
15
- /** Directory holding the prebuilt archives for the current host. */
16
- export declare function runtimeLibDir(): string;
17
- /** Absolute path to a prebuilt archive (`core`, `ext_node`, …), if present. */
18
- export declare function findRuntimeLibrary(name: string): string | undefined;
21
+ /**
22
+ * Archive folders of an installed `@xbintsc/<os>-<arch>` package, given the
23
+ * root of the installed xbintsc package.
24
+ *
25
+ * Package managers place the optional dependency either inside xbintsc's own
26
+ * `node_modules` or in the nearest hoisted `node_modules`, so every ancestor is
27
+ * probed. Yarn PnP has no `node_modules`; there the driver simply falls back to
28
+ * compiling the runtime sources.
29
+ */
30
+ export declare function platformRuntimeLibDirs(packageRoot: string, slug?: string): string[];
31
+ /** Every folder searched for a prebuilt archive, most specific first. */
32
+ export declare function runtimeLibDirs(): readonly string[];
33
+ /**
34
+ * Directory holding the prebuilt archives for the current host: the package's
35
+ * own `runtime/lib/<slug>`, or the optional platform package when the former
36
+ * has no archives (a normal npm install).
37
+ */
38
+ export declare function runtimeLibDir(dirs?: readonly string[]): string;
39
+ /**
40
+ * Absolute path to a prebuilt archive (`core`, `ext_node`, `gui`, `media`, …),
41
+ * if present. `dirs` is injectable for tests.
42
+ */
43
+ export declare function findRuntimeLibrary(name: string, dirs?: readonly string[]): string | undefined;
@@ -7,24 +7,82 @@
7
7
  * runtime/lib/<os>-<arch>/core.a (the core `xt_*.c` runtime)
8
8
  * runtime/lib/<os>-<arch>/ext_<name>.a (per-extension sources, e.g. ext_node.a)
9
9
  *
10
+ * A source checkout or a release archive carries them in the package itself.
11
+ * An npm install instead receives them from the optional
12
+ * `@xbintsc/<os>-<arch>` package (installed only for the host platform), which
13
+ * uses the same `runtime/lib/<os>-<arch>/` layout. The driver reads that folder
14
+ * in place, so no install script has to copy anything into `node_modules`.
15
+ *
10
16
  * Shipping these lets `build` link without compiling C, and shortens the first
11
17
  * build. When an archive is missing the driver transparently falls back to
12
18
  * compiling the `.c` sources, so the archives are an optimization, not a hard
13
19
  * dependency.
14
20
  */
15
- import { existsSync } from "node:fs";
16
- import { join } from "node:path";
21
+ import { existsSync, readdirSync } from "node:fs";
22
+ import { dirname, join } from "node:path";
17
23
  import { findRuntimeDir, platformSlug } from "./paths.js";
18
- /** Directory holding the prebuilt archives for the current host. */
19
- export function runtimeLibDir() {
24
+ /** Archive suffixes, in the order a name is probed. */
25
+ const ARCHIVE_SUFFIXES = [".a", ".lib"];
26
+ /**
27
+ * Folder holding the archives for the current host inside the xbintsc package
28
+ * itself (a source checkout or an unpacked release archive).
29
+ */
30
+ function packagedRuntimeLibDir() {
20
31
  return join(findRuntimeDir(), "lib", platformSlug());
21
32
  }
22
- /** Absolute path to a prebuilt archive (`core`, `ext_node`, …), if present. */
23
- export function findRuntimeLibrary(name) {
24
- const base = join(runtimeLibDir(), name);
25
- for (const candidate of [`${base}.a`, `${base}.lib`]) {
26
- if (existsSync(candidate))
27
- return candidate;
33
+ /**
34
+ * Archive folders of an installed `@xbintsc/<os>-<arch>` package, given the
35
+ * root of the installed xbintsc package.
36
+ *
37
+ * Package managers place the optional dependency either inside xbintsc's own
38
+ * `node_modules` or in the nearest hoisted `node_modules`, so every ancestor is
39
+ * probed. Yarn PnP has no `node_modules`; there the driver simply falls back to
40
+ * compiling the runtime sources.
41
+ */
42
+ export function platformRuntimeLibDirs(packageRoot, slug = platformSlug()) {
43
+ const dirs = new Set();
44
+ let dir = packageRoot;
45
+ for (;;) {
46
+ dirs.add(join(dir, "node_modules", "@xbintsc", slug, "runtime", "lib", slug));
47
+ const parent = dirname(dir);
48
+ if (parent === dir)
49
+ break;
50
+ dir = parent;
51
+ }
52
+ return [...dirs];
53
+ }
54
+ /** Every folder searched for a prebuilt archive, most specific first. */
55
+ export function runtimeLibDirs() {
56
+ return [packagedRuntimeLibDir(), ...platformRuntimeLibDirs(dirname(findRuntimeDir()))];
57
+ }
58
+ /** True when a folder holds at least one runtime archive. */
59
+ function containsArchive(dir) {
60
+ try {
61
+ return readdirSync(dir).some((entry) => ARCHIVE_SUFFIXES.some((suffix) => entry.endsWith(suffix)));
62
+ }
63
+ catch {
64
+ return false;
65
+ }
66
+ }
67
+ /**
68
+ * Directory holding the prebuilt archives for the current host: the package's
69
+ * own `runtime/lib/<slug>`, or the optional platform package when the former
70
+ * has no archives (a normal npm install).
71
+ */
72
+ export function runtimeLibDir(dirs = runtimeLibDirs()) {
73
+ return dirs.find((dir) => containsArchive(dir)) ?? dirs[0];
74
+ }
75
+ /**
76
+ * Absolute path to a prebuilt archive (`core`, `ext_node`, `gui`, `media`, …),
77
+ * if present. `dirs` is injectable for tests.
78
+ */
79
+ export function findRuntimeLibrary(name, dirs = runtimeLibDirs()) {
80
+ for (const dir of dirs) {
81
+ for (const suffix of ARCHIVE_SUFFIXES) {
82
+ const candidate = join(dir, `${name}${suffix}`);
83
+ if (existsSync(candidate))
84
+ return candidate;
85
+ }
28
86
  }
29
87
  return undefined;
30
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-lib.js","sourceRoot":"","sources":["../../../src/driver/runtime-lib.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1D,oEAAoE;AACpE,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,CAAC;IACzC,KAAK,MAAM,SAAS,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,MAAM,CAAC,EAAE,CAAC;QACrD,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IAC9C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"runtime-lib.js","sourceRoot":"","sources":["../../../src/driver/runtime-lib.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1D,uDAAuD;AACvD,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,CAAU,CAAC;AAEjD;;;GAGG;AACH,SAAS,qBAAqB;IAC5B,OAAO,IAAI,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CAAC,WAAmB,EAAE,OAAe,YAAY,EAAE;IACvF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,IAAI,GAAG,GAAG,WAAW,CAAC;IACtB,SAAS,CAAC;QACR,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9E,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AACnB,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAC,qBAAqB,EAAE,EAAE,GAAG,sBAAsB,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;AACzF,CAAC;AAED,6DAA6D;AAC7D,SAAS,eAAe,CAAC,GAAW;IAClC,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACrG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,OAA0B,cAAc,EAAE;IACtE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAE,CAAC;AAC9D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAY,EACZ,OAA0B,cAAc,EAAE;IAE1C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;YACtC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,MAAM,EAAE,CAAC,CAAC;YAChD,IAAI,UAAU,CAAC,SAAS,CAAC;gBAAE,OAAO,SAAS,CAAC;QAC9C,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -9,4 +9,4 @@
9
9
  * `main`/`master` only (see `.githooks/pre-commit`), so feature branches never
10
10
  * change this line and merging two of them cannot conflict here.
11
11
  */
12
- export declare const COMPILER_VERSION = "0.5.32";
12
+ export declare const COMPILER_VERSION = "0.5.37";
@@ -9,5 +9,5 @@
9
9
  * `main`/`master` only (see `.githooks/pre-commit`), so feature branches never
10
10
  * change this line and merging two of them cannot conflict here.
11
11
  */
12
- export const COMPILER_VERSION = "0.5.32";
12
+ export const COMPILER_VERSION = "0.5.37";
13
13
  //# sourceMappingURL=version.js.map
@@ -21,8 +21,8 @@
21
21
  * needs to bind the top-level functions.
22
22
  */
23
23
  import { join } from "node:path";
24
- import { findRuntimeDir, platformSlug } from "../../driver/paths.js";
25
- import { findRuntimeLibrary } from "../../driver/runtime-lib.js";
24
+ import { platformSlug } from "../../driver/paths.js";
25
+ import { findRuntimeLibrary, runtimeLibDir } from "../../driver/runtime-lib.js";
26
26
  import { loadHtmlAsset } from "./html.js";
27
27
  import { loadScriptAsset } from "./three.js";
28
28
  /** Top-level `gui` module bindings. */
@@ -57,6 +57,7 @@ const hostTypes = [
57
57
  "ImageBitmap",
58
58
  "ImageData",
59
59
  "HTMLCanvasElement",
60
+ "Path2D",
60
61
  "HTMLImageElement",
61
62
  "HTMLVideoElement",
62
63
  "HTMLAudioElement",
@@ -66,6 +67,16 @@ const hostTypes = [
66
67
  "Event",
67
68
  "CustomEvent",
68
69
  "ProgressEvent",
70
+ "UIEvent",
71
+ "MouseEvent",
72
+ "PointerEvent",
73
+ "WheelEvent",
74
+ "KeyboardEvent",
75
+ "FocusEvent",
76
+ "InputEvent",
77
+ "SubmitEvent",
78
+ "AbortController",
79
+ "AbortSignal",
69
80
  "EventTarget",
70
81
  "DOMParser",
71
82
  "Request",
@@ -97,7 +108,7 @@ const browserGlobals = {
97
108
  navigator: { symbol: "xt_browser_navigator" },
98
109
  localStorage: { symbol: "xt_browser_local_storage" },
99
110
  __THREE_DEVTOOLS__: { symbol: "xt_browser_missing" },
100
- createImageBitmap: { symbol: "xt_browser_missing" },
111
+ createImageBitmap: { symbol: "xt_browser_create_image_bitmap" },
101
112
  };
102
113
  for (const type of hostTypes) {
103
114
  browserGlobals[type] = { symbol: "xt_browser_type", argument: type };
@@ -105,7 +116,7 @@ for (const type of hostTypes) {
105
116
  /** Absolute path to the per-platform prebuilt GUI archive (`gui.a`, or
106
117
  * `gui.lib` with the MSVC ABI on Windows). */
107
118
  function guiArchive() {
108
- return join(findRuntimeDir(), "lib", platformSlug(), "gui.a");
119
+ return join(runtimeLibDir(), "gui.a");
109
120
  }
110
121
  export const guiExtension = {
111
122
  name: "gui",
@@ -114,7 +125,8 @@ export const guiExtension = {
114
125
  const archive = findRuntimeLibrary("gui");
115
126
  if (archive === undefined) {
116
127
  throw new Error(`GUI native library not found at ${guiArchive()} (or gui.lib).\n` +
117
- `Build it for ${platformSlug()} first (see doc/gui.md).`);
128
+ `The optional @xbintsc/${platformSlug()} package ships it: reinstall xbintsc ` +
129
+ `without --omit=optional, or build it from a source checkout (see doc/gui.md).`);
118
130
  }
119
131
  return [archive];
120
132
  },
@@ -188,6 +200,7 @@ export const guiExtension = {
188
200
  escape: { symbol: "xt_browser_escape" },
189
201
  alert: { symbol: "xt_browser_alert" },
190
202
  prompt: { symbol: "xt_browser_prompt" },
203
+ confirm: { symbol: "xt_browser_confirm_global" },
191
204
  }),
192
205
  /** Browser globals (`window`, `document`, the DOM type names). */
193
206
  globalValues: () => browserGlobals,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/extensions/gui/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/extensions/gui/index.ts"],"names":[],"mappings":"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"}
@@ -26,10 +26,10 @@
26
26
  */
27
27
  import { join } from "node:path";
28
28
  import { findRuntimeDir, platformSlug } from "../../driver/paths.js";
29
- import { findRuntimeLibrary } from "../../driver/runtime-lib.js";
29
+ import { findRuntimeLibrary, runtimeLibDir } from "../../driver/runtime-lib.js";
30
30
  /** Absolute path to the per-platform prebuilt media archive. */
31
31
  function mediaArchive() {
32
- return join(findRuntimeDir(), "lib", platformSlug(), process.platform === "win32" ? "media.lib" : "media.a");
32
+ return join(runtimeLibDir(), process.platform === "win32" ? "media.lib" : "media.a");
33
33
  }
34
34
  export const mediaExtension = {
35
35
  name: "media",
@@ -45,7 +45,8 @@ export const mediaExtension = {
45
45
  const archive = findRuntimeLibrary("media");
46
46
  if (archive === undefined) {
47
47
  throw new Error(`media native library not found at ${mediaArchive()} (media.a or media.lib).\n` +
48
- `Build it for ${platformSlug()} first with \`npm run media\` (see doc/gui/build.md).`);
48
+ `The optional @xbintsc/${platformSlug()} package ships it: reinstall xbintsc ` +
49
+ `without --omit=optional, or build it with \`npm run media\` (see doc/gui/build.md).`);
49
50
  }
50
51
  return [archive];
51
52
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/extensions/media/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,gEAAgE;AAChE,SAAS,YAAY;IACnB,OAAO,IAAI,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAC/G,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAc;IACvC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,uEAAuE;IACpF,QAAQ,EAAE,CAAC,KAAK,CAAC;IACjB;;;;OAIG;IACH,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAC7E,aAAa,EAAE,GAAG,EAAE;QAClB,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,qCAAqC,YAAY,EAAE,4BAA4B;gBAC7E,gBAAgB,YAAY,EAAE,uDAAuD,CACxF,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;IACD;;;mBAGe;IACf,WAAW,EAAE,GAAG,EAAE,CAChB,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;CAC/E,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/extensions/media/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEhF,gEAAgE;AAChE,SAAS,YAAY;IACnB,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAc;IACvC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,uEAAuE;IACpF,QAAQ,EAAE,CAAC,KAAK,CAAC;IACjB;;;;OAIG;IACH,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAC7E,aAAa,EAAE,GAAG,EAAE;QAClB,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,qCAAqC,YAAY,EAAE,4BAA4B;gBAC7E,yBAAyB,YAAY,EAAE,uCAAuC;gBAC9E,qFAAqF,CACxF,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;IACD;;;mBAGe;IACf,WAAW,EAAE,GAAG,EAAE,CAChB,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;CAC/E,CAAC"}
@@ -11,11 +11,22 @@ import type { SourceFile } from "../diagnostics/source.js";
11
11
  import { Scanner } from "../lexer/scanner.js";
12
12
  import { Token, TokenKind } from "../lexer/token.js";
13
13
  import type { Identifier, StringLiteral } from "../ast/nodes.js";
14
+ /**
15
+ * The template-literal context of the scanner at one point in the token
16
+ * stream. `frames` holds the brace depth of every open `${ … }` substitution
17
+ * (innermost last); `pendingOffset` is the `}` that must be re-read as template
18
+ * text before the next token is scanned.
19
+ */
20
+ interface TemplateState {
21
+ readonly frames: readonly number[];
22
+ readonly pendingOffset: number | undefined;
23
+ }
14
24
  export interface ParserState {
15
25
  index: number;
16
26
  tokens: Token[];
17
27
  pos: number;
18
28
  consumed: number;
29
+ template: TemplateState;
19
30
  }
20
31
  export declare class ParserContext {
21
32
  readonly scanner: Scanner;
@@ -27,6 +38,16 @@ export declare class ParserContext {
27
38
  speculating: number;
28
39
  /** Monotonic count of tokens consumed; used to detect lack of progress. */
29
40
  consumed: number;
41
+ /** Brace depth of each open `${ … }` substitution, innermost last. */
42
+ private templateFrames;
43
+ /** Offset of the `}` that must be re-read as template text on the next scan. */
44
+ private pendingTemplateOffset;
45
+ /**
46
+ * Template context after each buffered token. A parser method that rewinds
47
+ * the scanner (the regex fallback) restores the context recorded on the
48
+ * current token so a template that was only seen by lookahead stays coherent.
49
+ */
50
+ private readonly templateStates;
30
51
  constructor(source: SourceFile, diagnostics: DiagnosticBag);
31
52
  get token(): Token;
32
53
  /**
@@ -38,6 +59,25 @@ export declare class ParserContext {
38
59
  atAhead(k: number, kind: TokenKind): boolean;
39
60
  lookAhead(k: number): Token;
40
61
  nextToken(): Token;
62
+ /**
63
+ * Scan the next token, keeping a template literal together. A `${ … }`
64
+ * substitution is ordinary token stream (so the parser can parse the
65
+ * expression), but the `}` that closes it must be followed by a token that
66
+ * re-reads the source as template text. Scanning the tail of a template as
67
+ * normal tokens would let its raw text (quotes, parens, `}`) leak into
68
+ * lookahead - and `findMatchingParen` would then count characters that are
69
+ * part of the literal.
70
+ */
71
+ private scanToken;
72
+ /**
73
+ * Discard any lookahead and continue scanning at `offset`. Used when a
74
+ * literal's raw text has to be re-read (the regex fallback). The template
75
+ * context is restored to the state recorded for the current token, because
76
+ * the skipped source cannot have opened or closed a template.
77
+ */
78
+ rescanFrom(offset: number): void;
79
+ private snapshotTemplateState;
80
+ private restoreTemplateState;
41
81
  parseExpected(kind: TokenKind, message?: string): Token;
42
82
  error(code: DiagnosticCode, message: string, token?: Token): void;
43
83
  /**
@@ -56,3 +96,4 @@ export declare class ParserContext {
56
96
  saveState(): ParserState;
57
97
  restoreState(state: ParserState): void;
58
98
  }
99
+ export {};
@@ -11,6 +11,7 @@ import { Scanner } from "../lexer/scanner.js";
11
11
  import { isIdentifierNameToken, isKeywordKind, TokenKind } from "../lexer/token.js";
12
12
  import { SyntaxKind } from "../ast/kinds.js";
13
13
  import { SpeculationError } from "./speculation.js";
14
+ const OUTSIDE_TEMPLATE = { frames: [], pendingOffset: undefined };
14
15
  export class ParserContext {
15
16
  scanner;
16
17
  diagnostics;
@@ -21,11 +22,21 @@ export class ParserContext {
21
22
  speculating = 0;
22
23
  /** Monotonic count of tokens consumed; used to detect lack of progress. */
23
24
  consumed = 0;
25
+ /** Brace depth of each open `${ … }` substitution, innermost last. */
26
+ templateFrames = [];
27
+ /** Offset of the `}` that must be re-read as template text on the next scan. */
28
+ pendingTemplateOffset;
29
+ /**
30
+ * Template context after each buffered token. A parser method that rewinds
31
+ * the scanner (the regex fallback) restores the context recorded on the
32
+ * current token so a template that was only seen by lookahead stays coherent.
33
+ */
34
+ templateStates = new WeakMap();
24
35
  constructor(source, diagnostics) {
25
36
  this.source = source;
26
37
  this.diagnostics = diagnostics;
27
38
  this.scanner = new Scanner(source, diagnostics);
28
- this.tokens = [this.scanner.nextToken()];
39
+ this.tokens = [this.scanToken()];
29
40
  }
30
41
  // -- token access ---------------------------------------------------------
31
42
  get token() {
@@ -44,7 +55,7 @@ export class ParserContext {
44
55
  }
45
56
  lookAhead(k) {
46
57
  while (this.tokens.length <= this.index + k) {
47
- this.tokens.push(this.scanner.nextToken());
58
+ this.tokens.push(this.scanToken());
48
59
  }
49
60
  return this.tokens[this.index + k];
50
61
  }
@@ -55,11 +66,78 @@ export class ParserContext {
55
66
  this.index++;
56
67
  }
57
68
  else {
58
- this.tokens = [this.scanner.nextToken()];
69
+ this.tokens = [this.scanToken()];
59
70
  this.index = 0;
60
71
  }
61
72
  return current;
62
73
  }
74
+ /**
75
+ * Scan the next token, keeping a template literal together. A `${ … }`
76
+ * substitution is ordinary token stream (so the parser can parse the
77
+ * expression), but the `}` that closes it must be followed by a token that
78
+ * re-reads the source as template text. Scanning the tail of a template as
79
+ * normal tokens would let its raw text (quotes, parens, `}`) leak into
80
+ * lookahead - and `findMatchingParen` would then count characters that are
81
+ * part of the literal.
82
+ */
83
+ scanToken() {
84
+ let token;
85
+ if (this.pendingTemplateOffset !== undefined) {
86
+ const offset = this.pendingTemplateOffset;
87
+ this.pendingTemplateOffset = undefined;
88
+ token = this.scanner.continueTemplate(offset);
89
+ if (token.kind === TokenKind.NoSubstitutionTemplateLiteral) {
90
+ this.templateFrames.pop();
91
+ }
92
+ else if (token.kind === TokenKind.TemplateHead) {
93
+ /* Another `${` in the same template restarts its brace depth. */
94
+ const top = this.templateFrames.length - 1;
95
+ if (top >= 0)
96
+ this.templateFrames[top] = 0;
97
+ }
98
+ }
99
+ else {
100
+ token = this.scanner.nextToken();
101
+ if (token.kind === TokenKind.TemplateHead) {
102
+ this.templateFrames.push(0);
103
+ }
104
+ else if (this.templateFrames.length > 0) {
105
+ const top = this.templateFrames.length - 1;
106
+ if (token.kind === TokenKind.OpenBrace) {
107
+ this.templateFrames[top] = this.templateFrames[top] + 1;
108
+ }
109
+ else if (token.kind === TokenKind.CloseBrace) {
110
+ if (this.templateFrames[top] === 0)
111
+ this.pendingTemplateOffset = token.start;
112
+ else
113
+ this.templateFrames[top] = this.templateFrames[top] - 1;
114
+ }
115
+ }
116
+ }
117
+ if (this.templateFrames.length > 0 || this.pendingTemplateOffset !== undefined) {
118
+ this.templateStates.set(token, this.snapshotTemplateState());
119
+ }
120
+ return token;
121
+ }
122
+ /**
123
+ * Discard any lookahead and continue scanning at `offset`. Used when a
124
+ * literal's raw text has to be re-read (the regex fallback). The template
125
+ * context is restored to the state recorded for the current token, because
126
+ * the skipped source cannot have opened or closed a template.
127
+ */
128
+ rescanFrom(offset) {
129
+ this.restoreTemplateState(this.templateStates.get(this.token) ?? OUTSIDE_TEMPLATE);
130
+ this.scanner.seek(offset);
131
+ this.tokens = [this.scanToken()];
132
+ this.index = 0;
133
+ }
134
+ snapshotTemplateState() {
135
+ return { frames: this.templateFrames.slice(), pendingOffset: this.pendingTemplateOffset };
136
+ }
137
+ restoreTemplateState(state) {
138
+ this.templateFrames = [...state.frames];
139
+ this.pendingTemplateOffset = state.pendingOffset;
140
+ }
63
141
  parseExpected(kind, message) {
64
142
  if (this.token.kind === kind)
65
143
  return this.nextToken();
@@ -150,13 +228,20 @@ export class ParserContext {
150
228
  }
151
229
  // -- state save / restore (for speculative parsing) -----------------------
152
230
  saveState() {
153
- return { index: this.index, tokens: this.tokens.slice(), pos: this.scanner.position, consumed: this.consumed };
231
+ return {
232
+ index: this.index,
233
+ tokens: this.tokens.slice(),
234
+ pos: this.scanner.position,
235
+ consumed: this.consumed,
236
+ template: this.snapshotTemplateState(),
237
+ };
154
238
  }
155
239
  restoreState(state) {
156
240
  this.index = state.index;
157
241
  this.tokens = state.tokens;
158
242
  this.scanner.seek(state.pos);
159
243
  this.consumed = state.consumed;
244
+ this.restoreTemplateState(state.template);
160
245
  }
161
246
  }
162
247
  //# sourceMappingURL=context.js.map