ranger-compiler 3.5.0 → 3.5.2

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 (338) hide show
  1. package/CHANGELOG.md +1160 -19
  2. package/LICENSE +3 -1
  3. package/README.md +124 -29
  4. package/dist/Lang.rgr +1188 -290
  5. package/dist/api.d.ts +2343 -879
  6. package/dist/api.js +79924 -56922
  7. package/dist/lib/JSON.rgr +102 -91
  8. package/dist/lib/Shell.rgr +4 -4
  9. package/dist/lib/apple/AppleToolchain.rgr +4 -4
  10. package/dist/lib/apple/README.md +5 -4
  11. package/dist/lib/apple/apple_test.rgr +1 -1
  12. package/dist/lib/core/README.md +1 -1
  13. package/dist/lib/evg/EVG.rgr +12 -0
  14. package/dist/lib/evg/EVGA11yFromTree.rgr +302 -0
  15. package/dist/lib/evg/EVGA11yTree.rgr +894 -0
  16. package/dist/lib/evg/EVGBox.rgr +267 -0
  17. package/dist/lib/evg/EVGBoxShorthandTest.rgr +220 -0
  18. package/dist/lib/evg/EVGCodepoint.rgr +316 -0
  19. package/dist/lib/evg/EVGColor.rgr +700 -0
  20. package/dist/lib/evg/EVGCommands.rgr +177 -0
  21. package/dist/lib/evg/EVGComponent.rgr +331 -0
  22. package/dist/lib/evg/EVGComponentTest.rgr +387 -0
  23. package/dist/lib/evg/EVGConnector.rgr +541 -0
  24. package/dist/lib/evg/EVGConnectorTest.rgr +306 -0
  25. package/dist/lib/evg/EVGDisplayList.rgr +4186 -0
  26. package/dist/lib/evg/EVGEasing.rgr +370 -0
  27. package/dist/lib/evg/EVGEffectTest.rgr +253 -0
  28. package/dist/lib/evg/EVGElement.rgr +4914 -0
  29. package/dist/lib/evg/EVGFixedTest.rgr +289 -0
  30. package/dist/lib/evg/EVGFlexRulesTest.rgr +317 -0
  31. package/dist/lib/evg/EVGFlexWrapTest.rgr +246 -0
  32. package/dist/lib/evg/EVGFling.rgr +244 -0
  33. package/dist/lib/evg/EVGFocus.rgr +400 -0
  34. package/dist/lib/evg/EVGFocusTest.rgr +399 -0
  35. package/dist/lib/evg/EVGGradient.rgr +322 -0
  36. package/dist/lib/evg/EVGGrapheme.rgr +190 -0
  37. package/dist/lib/evg/EVGGrid.rgr +975 -0
  38. package/dist/lib/evg/EVGHitTest.rgr +208 -0
  39. package/dist/lib/evg/EVGHoles.rgr +294 -0
  40. package/dist/lib/evg/EVGHostMeasurerTest.rgr +281 -0
  41. package/dist/lib/evg/EVGHostTextMeasurer.rgr +331 -0
  42. package/dist/lib/evg/EVGHostTree.rgr +834 -0
  43. package/dist/lib/evg/EVGHostTreeTest.rgr +447 -0
  44. package/dist/lib/evg/EVGImageDecode.rgr +117 -0
  45. package/dist/lib/evg/EVGImageMeasurer.rgr +86 -0
  46. package/dist/lib/evg/EVGInspect.rgr +883 -0
  47. package/dist/lib/evg/EVGInvalidateTest.rgr +432 -0
  48. package/dist/lib/evg/EVGJsonTest.rgr +535 -0
  49. package/dist/lib/evg/EVGLayout.rgr +4220 -0
  50. package/dist/lib/evg/EVGMeasure.rgr +1267 -0
  51. package/dist/lib/evg/EVGOverlayTest.rgr +626 -0
  52. package/dist/lib/evg/EVGPatch.rgr +1721 -0
  53. package/dist/lib/evg/EVGPatchTest.rgr +692 -0
  54. package/dist/lib/evg/EVGPopoverTest.rgr +395 -0
  55. package/dist/lib/evg/EVGReconcile.rgr +226 -0
  56. package/dist/lib/evg/EVGReconcileTest.rgr +421 -0
  57. package/dist/lib/evg/EVGReject.rgr +126 -0
  58. package/dist/lib/evg/EVGRelayoutTest.rgr +375 -0
  59. package/dist/lib/evg/EVGRtlLayoutTest.rgr +319 -0
  60. package/dist/lib/evg/EVGRuler.rgr +232 -0
  61. package/dist/lib/evg/EVGRulerTest.rgr +172 -0
  62. package/dist/lib/evg/EVGSelectChrome.rgr +178 -0
  63. package/dist/lib/evg/EVGStyleCacheTest.rgr +419 -0
  64. package/dist/lib/evg/EVGStyleSheet.rgr +2148 -0
  65. package/dist/lib/evg/EVGStyleStateTest.rgr +407 -0
  66. package/dist/lib/evg/EVGStyleVarTest.rgr +471 -0
  67. package/dist/lib/evg/EVGText.rgr +105 -0
  68. package/dist/lib/evg/EVGTextEngine.rgr +536 -0
  69. package/dist/lib/evg/EVGTextMeasurer.rgr +720 -0
  70. package/dist/lib/evg/EVGTimingTest.rgr +1417 -0
  71. package/dist/lib/evg/EVGToolbar.rgr +1369 -0
  72. package/dist/lib/evg/EVGTransition.rgr +728 -0
  73. package/dist/lib/evg/EVGTreeJson.rgr +721 -0
  74. package/dist/lib/evg/EVGUnit.rgr +554 -0
  75. package/dist/lib/evg/EVGViewportUnitTest.rgr +236 -0
  76. package/dist/lib/evg/EvgApp.rgr +189 -0
  77. package/dist/lib/evg/EvgBitmapTracer.rgr +4277 -0
  78. package/dist/lib/evg/EvgBitmapTracerTest.rgr +2119 -0
  79. package/dist/lib/evg/EvgHost.rgr +451 -0
  80. package/dist/lib/evg/EvgTest.rgr +91 -0
  81. package/dist/lib/evg/EvgTraceColor.rgr +236 -0
  82. package/dist/lib/evg/EvgTraceCurve.rgr +648 -0
  83. package/dist/lib/evg/EvgTraceFit.rgr +767 -0
  84. package/dist/lib/evg/EvgTracePath.rgr +435 -0
  85. package/dist/lib/evg/EvgTraceTypes.rgr +559 -0
  86. package/dist/lib/evg/EvgViewport.rgr +313 -0
  87. package/dist/lib/evg/FxDemoDoc.rgr +185 -0
  88. package/dist/lib/evg/HOSTS.md +227 -0
  89. package/dist/lib/evg/ISSUES.md +835 -0
  90. package/dist/lib/evg/PLAN_ACCESSIBILITY.md +650 -0
  91. package/dist/lib/evg/PLAN_CSS_LAYOUT_AND_FONTS.md +1124 -0
  92. package/dist/lib/evg/PLAN_EFFECTS.md +431 -0
  93. package/dist/lib/evg/PLAN_EVG.md +518 -0
  94. package/dist/lib/evg/PLAN_EVG_RENDERER.md +1674 -0
  95. package/dist/lib/evg/PLAN_INSPECTOR.md +788 -0
  96. package/dist/lib/evg/PLAN_LINKS_AND_FORMS.md +157 -0
  97. package/dist/lib/evg/PLAN_NATIVE_HOSTS.md +671 -0
  98. package/dist/lib/evg/PLAN_VECTOR_IR.md +664 -0
  99. package/dist/lib/evg/PLAN_VIEW_TRANSFORM.md +322 -0
  100. package/dist/lib/evg/PathBuilder.rgr +333 -0
  101. package/dist/lib/evg/README.md +1236 -0
  102. package/dist/lib/evg/SPEC.md +1252 -0
  103. package/dist/lib/evg/SVGPathParser.rgr +1199 -0
  104. package/dist/lib/evg/SvgParser.rgr +1736 -0
  105. package/dist/lib/evg/TODO_EVG_RENDERER.md +595 -0
  106. package/dist/lib/evg/VectorShapes.rgr +331 -0
  107. package/dist/lib/evg/VectorStroke.rgr +107 -0
  108. package/dist/lib/evg/VectorViewBox.rgr +380 -0
  109. package/dist/lib/evg/agent/README.md +290 -0
  110. package/dist/lib/evg/agent/evg_agent.rgr +899 -0
  111. package/dist/lib/evg/agent/fixtures/broken.evg.json +7 -0
  112. package/dist/lib/evg/agent/fixtures/card.evg.json +9 -0
  113. package/dist/lib/evg/agent/fixtures/connector.css +63 -0
  114. package/dist/lib/evg/agent/fixtures/connector.evg.json +14 -0
  115. package/dist/lib/evg/agent/fixtures/drawn.evg.json +129 -0
  116. package/dist/lib/evg/agent/fixtures/gradient.evg.json +4 -0
  117. package/dist/lib/evg/agent/fixtures/popover.css +99 -0
  118. package/dist/lib/evg/agent/fixtures/popover.evg.json +30 -0
  119. package/dist/lib/evg/agent/roundtrip.sh +74 -0
  120. package/dist/lib/evg/agent/smoke.sh +230 -0
  121. package/dist/lib/evg/android/README.md +97 -0
  122. package/dist/lib/evg/android/androidstubs/AndroidStubs.kt +175 -0
  123. package/dist/lib/evg/android/androidstubs/Annotation.kt +10 -0
  124. package/dist/lib/evg/android/androidstubs/App.kt +30 -0
  125. package/dist/lib/evg/android/androidstubs/Content.kt +41 -0
  126. package/dist/lib/evg/android/androidstubs/ContentRes.kt +12 -0
  127. package/dist/lib/evg/android/androidstubs/InputMethod.kt +46 -0
  128. package/dist/lib/evg/android/androidstubs/Net.kt +6 -0
  129. package/dist/lib/evg/android/androidstubs/Os.kt +30 -0
  130. package/dist/lib/evg/android/androidstubs/Util.kt +15 -0
  131. package/dist/lib/evg/android/androidstubs/View.kt +113 -0
  132. package/dist/lib/evg/android/androidstubs/Widget.kt +16 -0
  133. package/dist/lib/evg/android/src/android/kotlin/fi/ranger/evg/AndroidEvgSurface.kt +323 -0
  134. package/dist/lib/evg/android/src/android/kotlin/fi/ranger/evg/AndroidTextMeasurer.kt +56 -0
  135. package/dist/lib/evg/android/src/android/kotlin/fi/ranger/evg/RippleEffect.kt +262 -0
  136. package/dist/lib/evg/android/src/awt/kotlin/fi/ranger/evg/AwtEvgSurface.kt +238 -0
  137. package/dist/lib/evg/android/src/awt/kotlin/fi/ranger/evg/AwtTextMeasurer.kt +85 -0
  138. package/dist/lib/evg/android/src/main/kotlin/fi/ranger/evg/EvgEngineThread.kt +115 -0
  139. package/dist/lib/evg/android/src/main/kotlin/fi/ranger/evg/EvgPainter.kt +231 -0
  140. package/dist/lib/evg/android/src/main/kotlin/fi/ranger/evg/EvgSurface.kt +117 -0
  141. package/dist/lib/evg/android/src/main/kotlin/fi/ranger/evg/RecordingSurface.kt +94 -0
  142. package/dist/lib/evg/apple/README.md +128 -0
  143. package/dist/lib/evg/apple/Sources/CoreGraphicsEvgSurface.swift +329 -0
  144. package/dist/lib/evg/apple/Sources/CoreTextMeasurer.swift +70 -0
  145. package/dist/lib/evg/apple/Sources/EvgEngineQueue.swift +105 -0
  146. package/dist/lib/evg/apple/Sources/EvgPainter.swift +225 -0
  147. package/dist/lib/evg/apple/Sources/EvgSurface.swift +163 -0
  148. package/dist/lib/evg/apple/Sources/RecordingSurface.swift +110 -0
  149. package/dist/lib/evg/bench/EvgLayoutBench.rgr +34 -0
  150. package/dist/lib/evg/bench/README.md +64 -0
  151. package/dist/lib/evg/bench/layout-bench.mjs +316 -0
  152. package/dist/lib/evg/bench/layout-cases.mjs +510 -0
  153. package/dist/lib/evg/bench/layout-conformance.mjs +254 -0
  154. package/dist/lib/evg/bin/.gitignore +17 -0
  155. package/dist/lib/evg/evg_test.rgr +313 -0
  156. package/dist/lib/evg/gl/README.md +198 -0
  157. package/dist/lib/evg/gl/a11y-paint-check.mjs +73 -0
  158. package/dist/lib/evg/gl/blur-check.mjs +399 -0
  159. package/dist/lib/evg/gl/boxmodel.json +1 -0
  160. package/dist/lib/evg/gl/demo.html +46 -0
  161. package/dist/lib/evg/gl/effect-presets.css +285 -0
  162. package/dist/lib/evg/gl/effect-presets.js +63 -0
  163. package/dist/lib/evg/gl/effect-shots.mjs +135 -0
  164. package/dist/lib/evg/gl/evg-a11y.js +566 -0
  165. package/dist/lib/evg/gl/evg-binary.js +160 -0
  166. package/dist/lib/evg/gl/evg-engine.js +296 -0
  167. package/dist/lib/evg/gl/evg-fx.js +237 -0
  168. package/dist/lib/evg/gl/evg-gestures.js +209 -0
  169. package/dist/lib/evg/gl/evg-list.js +167 -0
  170. package/dist/lib/evg/gl/evg-measure.js +186 -0
  171. package/dist/lib/evg/gl/evg-textinput.js +303 -0
  172. package/dist/lib/evg/gl/evg-view.js +144 -0
  173. package/dist/lib/evg/gl/evg-webgl.js +3942 -0
  174. package/dist/lib/evg/gl/fx-check.mjs +998 -0
  175. package/dist/lib/evg/gl/fx-demo.html +166 -0
  176. package/dist/lib/evg/gl/fx-demo.js +2 -0
  177. package/dist/lib/evg/gl/fx-serve.mjs +47 -0
  178. package/dist/lib/evg/gl/gestures-check.mjs +189 -0
  179. package/dist/lib/evg/gl/list-binary-check.mjs +152 -0
  180. package/dist/lib/evg/gl/measure-check.mjs +135 -0
  181. package/dist/lib/evg/gl/rotation-check.mjs +207 -0
  182. package/dist/lib/evg/gl/shift-check.mjs +113 -0
  183. package/dist/lib/evg/gl/stroke-check.mjs +168 -0
  184. package/dist/lib/evg/gl/text-snap-check.mjs +139 -0
  185. package/dist/lib/evg/gl/view-check.mjs +343 -0
  186. package/dist/lib/evg/gl/view-policy-check.mjs +184 -0
  187. package/dist/lib/evg/html/evg-dom.js +318 -0
  188. package/dist/lib/evg/html/evg-html.js +600 -0
  189. package/dist/lib/evg/inspect/README.md +415 -0
  190. package/dist/lib/evg/inspect/browser-smoke.mjs +115 -0
  191. package/dist/lib/evg/inspect/evg-inspect.js +947 -0
  192. package/dist/lib/evg/inspect/shots/css.png +0 -0
  193. package/dist/lib/evg/inspect/shots/dashboard.png +0 -0
  194. package/dist/lib/evg/inspect/shots/pptx-slide.png +0 -0
  195. package/dist/lib/evg/inspect/shots/state.png +0 -0
  196. package/dist/lib/evg/inspect/shots.mjs +226 -0
  197. package/dist/lib/evg/oracle/css-blur.json +576 -0
  198. package/dist/lib/evg/oracle/css-box.json +157 -0
  199. package/dist/lib/evg/oracle/css-timing.json +709 -0
  200. package/dist/lib/evg/oracle/css_blur_oracle.mjs +529 -0
  201. package/dist/lib/evg/oracle/css_box_oracle.mjs +106 -0
  202. package/dist/lib/evg/oracle/css_timing_oracle.mjs +389 -0
  203. package/dist/lib/evg/original/EVGColor.clj +310 -0
  204. package/dist/lib/evg/original/EVGColorContext.rgr +178 -0
  205. package/dist/lib/evg/original/SVGPath.rgr +627 -0
  206. package/dist/lib/evg/original/Vec2.crgr +103 -0
  207. package/dist/lib/evg/ranger.json +9 -0
  208. package/dist/lib/evg/showcase/README.md +246 -0
  209. package/dist/lib/evg/showcase/assets/emblem.svg +30 -0
  210. package/dist/lib/evg/showcase/assets/rosette.svg +22 -0
  211. package/dist/lib/evg/showcase/build.mjs +651 -0
  212. package/dist/lib/evg/showcase/pages/album.tsx +30 -0
  213. package/dist/lib/evg/showcase/pages/boxmodel.tsx +37 -0
  214. package/dist/lib/evg/showcase/pages/cards.tsx +41 -0
  215. package/dist/lib/evg/showcase/pages/chart_api.tsx +170 -0
  216. package/dist/lib/evg/showcase/pages/charts.tsx +219 -0
  217. package/dist/lib/evg/showcase/pages/drawing.tsx +160 -0
  218. package/dist/lib/evg/showcase/pages/emoji.tsx +91 -0
  219. package/dist/lib/evg/showcase/pages/flex.tsx +46 -0
  220. package/dist/lib/evg/showcase/pages/more.tsx +332 -0
  221. package/dist/lib/evg/showcase/pages/plots.tsx +262 -0
  222. package/dist/lib/evg/showcase/pages/svg.tsx +63 -0
  223. package/dist/lib/evg/showcase/pages/tables.tsx +209 -0
  224. package/dist/lib/evg/showcase/pages/typography.tsx +43 -0
  225. package/dist/lib/evg/showcase/pages/units.tsx +35 -0
  226. package/dist/lib/evg/showcase/pages/variants.tsx +233 -0
  227. package/dist/lib/evg/showcase/pages/vector.tsx +75 -0
  228. package/dist/lib/evg/showcase/pages/views.tsx +223 -0
  229. package/dist/lib/evg/showcase/tests/chart_api_smoke.mjs +339 -0
  230. package/dist/lib/evg/showcase/tests/gl_smoke.mjs +125 -0
  231. package/dist/lib/evg/showcase/themes/chart_api-default.css +15 -0
  232. package/dist/lib/evg/showcase/themes/charts-default.css +29 -0
  233. package/dist/lib/evg/showcase/themes/drawing-default.css +35 -0
  234. package/dist/lib/evg/showcase/themes/more-default.css +128 -0
  235. package/dist/lib/evg/showcase/themes/plots-default.css +18 -0
  236. package/dist/lib/evg/showcase/themes/showcase.css +508 -0
  237. package/dist/lib/evg/showcase/themes/tables-default.css +123 -0
  238. package/dist/lib/evg/showcase/themes/variants-default.css +15 -0
  239. package/dist/lib/evg/showcase/themes/views-default.css +15 -0
  240. package/dist/lib/evg/tools/bench_vs_potrace.mjs +290 -0
  241. package/dist/lib/evg/tools/evg_image_tool.rgr +488 -0
  242. package/dist/lib/evg/tools/evg_trace_bench.rgr +114 -0
  243. package/dist/lib/evg/tools/evg_trace_cli.rgr +662 -0
  244. package/dist/lib/evg/tools/evg_trace_cpp_bench.rgr +83 -0
  245. package/dist/lib/evg/tools/run_trace_bench.sh +74 -0
  246. package/dist/lib/evg/tools/run_trace_cli_smoke.sh +128 -0
  247. package/dist/lib/evg/web/responsive/EvgResponsiveCheck.rgr +271 -0
  248. package/dist/lib/evg/web/responsive/EvgResponsiveDemo.rgr +531 -0
  249. package/dist/lib/evg/web/responsive/README.md +97 -0
  250. package/dist/lib/evg/web/responsive/build.mjs +90 -0
  251. package/dist/lib/evg/web/responsive/dom-check.mjs +169 -0
  252. package/dist/lib/evg/web/responsive/index.html +177 -0
  253. package/dist/lib/evg/web/responsive/smoke.mjs +221 -0
  254. package/dist/lib/evg/web/tools/assets-client.mjs +95 -0
  255. package/dist/lib/evg/web/tools/boot-bench.mjs +189 -0
  256. package/dist/lib/evg/web/tools/inline-assets.mjs +119 -0
  257. package/dist/lib/evg/web/tools/minify.mjs +60 -0
  258. package/dist/lib/evg/web/tracer/build.mjs +87 -0
  259. package/dist/lib/evg/web/tracer/index.html +2805 -0
  260. package/dist/lib/evg/web/tracer/sample.png +0 -0
  261. package/dist/lib/evg/web/tracer/smoke.mjs +1162 -0
  262. package/dist/lib/evgr/Cargo.lock +21 -0
  263. package/dist/lib/evgr/Cargo.toml +19 -0
  264. package/dist/lib/evgr/README.md +140 -0
  265. package/dist/lib/evgr/bench/NativeBench.rgr +246 -0
  266. package/dist/lib/evgr/bench/compare.mjs +252 -0
  267. package/dist/lib/evgr/bench/speed.mjs +277 -0
  268. package/dist/lib/evgr/bin/.gitignore +3 -0
  269. package/dist/lib/evgr/src/bin/bench.rs +106 -0
  270. package/dist/lib/evgr/src/bin/smoke.rs +13 -0
  271. package/dist/lib/evgr/src/grid.rs +730 -0
  272. package/dist/lib/evgr/src/lib.rs +1003 -0
  273. package/dist/lib/evgr/src/style.rs +468 -0
  274. package/dist/lib/evgr/src/text.rs +83 -0
  275. package/dist/lib/image/BitReader.rgr +171 -0
  276. package/dist/lib/image/Buffer.rgr +173 -0
  277. package/dist/lib/image/DCT.rgr +283 -0
  278. package/dist/lib/image/Deflate.rgr +339 -0
  279. package/dist/lib/image/HuffmanDecoder.rgr +181 -0
  280. package/dist/lib/image/ImageBuffer.rgr +706 -0
  281. package/dist/lib/image/JPEGDecoder.rgr +808 -0
  282. package/dist/lib/image/PNGDecoder.rgr +544 -0
  283. package/dist/lib/image/PNGEncoder.rgr +388 -0
  284. package/dist/lib/image/PPMImage.rgr +224 -0
  285. package/dist/lib/image/ProgressiveJPEGDecoder.rgr +1154 -0
  286. package/dist/lib/image/README.md +33 -0
  287. package/dist/lib/image/RasterBuffer.rgr +294 -0
  288. package/dist/lib/image/VP8BoolDecoder.rgr +163 -0
  289. package/dist/lib/image/WebPDecoder.rgr +433 -0
  290. package/dist/lib/image/WebPLossless.rgr +1035 -0
  291. package/dist/lib/image/WebPLossy.rgr +1929 -0
  292. package/dist/lib/image/ranger.json +9 -0
  293. package/dist/lib/image/testdata/webp/anim_2f_24x16.webp +0 -0
  294. package/dist/lib/image/testdata/webp/fixtures.txt +33 -0
  295. package/dist/lib/image/testdata/webp/gen_fixtures.py +261 -0
  296. package/dist/lib/image/testdata/webp/ll_1x1.webp +0 -0
  297. package/dist/lib/image/testdata/webp/ll_alpha_29x21.webp +0 -0
  298. package/dist/lib/image/testdata/webp/ll_gradient_64x64.webp +0 -0
  299. package/dist/lib/image/testdata/webp/ll_meta_32x32.webp +0 -0
  300. package/dist/lib/image/testdata/webp/ll_noise_17x9.webp +0 -0
  301. package/dist/lib/image/testdata/webp/ll_pal11_23x11.webp +0 -0
  302. package/dist/lib/image/testdata/webp/ll_pal2_19x7.webp +0 -0
  303. package/dist/lib/image/testdata/webp/ll_pal40_16x16.webp +0 -0
  304. package/dist/lib/image/testdata/webp/ll_pal4_13x5.webp +0 -0
  305. package/dist/lib/image/testdata/webp/ll_photo_40x30.webp +0 -0
  306. package/dist/lib/image/testdata/webp/ll_predictors_64x32.webp +0 -0
  307. package/dist/lib/image/testdata/webp/ly_1x1.webp +0 -0
  308. package/dist/lib/image/testdata/webp/ly_alph_raw_f0_21x13.webp +0 -0
  309. package/dist/lib/image/testdata/webp/ly_alph_raw_f1_21x13.webp +0 -0
  310. package/dist/lib/image/testdata/webp/ly_alph_raw_f2_21x13.webp +0 -0
  311. package/dist/lib/image/testdata/webp/ly_alph_raw_f3_21x13.webp +0 -0
  312. package/dist/lib/image/testdata/webp/ly_alph_vp8l_f0_21x13.webp +0 -0
  313. package/dist/lib/image/testdata/webp/ly_alph_vp8l_f1_21x13.webp +0 -0
  314. package/dist/lib/image/testdata/webp/ly_alph_vp8l_f2_21x13.webp +0 -0
  315. package/dist/lib/image/testdata/webp/ly_alph_vp8l_f3_21x13.webp +0 -0
  316. package/dist/lib/image/testdata/webp/ly_alpha_33x17.webp +0 -0
  317. package/dist/lib/image/testdata/webp/ly_exif_15x11.webp +0 -0
  318. package/dist/lib/image/testdata/webp/ly_i16_96x80.webp +0 -0
  319. package/dist/lib/image/testdata/webp/ly_nofilter_24x20.webp +0 -0
  320. package/dist/lib/image/testdata/webp/ly_odd_17x9.webp +0 -0
  321. package/dist/lib/image/testdata/webp/ly_photo_48x40.webp +0 -0
  322. package/dist/lib/image/testdata/webp/ly_q100_20x18.webp +0 -0
  323. package/dist/lib/image/testdata/webp/ly_sharp_40x36.webp +0 -0
  324. package/dist/lib/image/testdata/webp/ly_simple_filter_33x31.webp +0 -0
  325. package/dist/lib/image/testdata/webp/ly_vpx_parts8_37x45.webp +0 -0
  326. package/dist/lib/image/testdata/webp/ly_vpx_skip_96x80.webp +0 -0
  327. package/dist/lib/image/tests/WebPDecodeTool.rgr +81 -0
  328. package/dist/lib/image/tests/WebPDecoderTest.rgr +1162 -0
  329. package/dist/lib/image/tests/run_webp_tests.sh +39 -0
  330. package/dist/lib/rust/RsJson.rgr +468 -0
  331. package/dist/lib/rust/RsPrelude.rgr +1663 -0
  332. package/dist/lib/shell_test.rgr +7 -7
  333. package/dist/lib/stdlib.rgr +21 -5
  334. package/dist/lib/zip/ranger.json +6 -0
  335. package/dist/rgrc.js +87318 -67610
  336. package/package.json +1010 -1040
  337. package/dist/README.md +0 -117
  338. package/dist/package.json +0 -47
@@ -0,0 +1,125 @@
1
+ /**
2
+ * gl_smoke.mjs — does the WebGL viewer actually draw the pages?
3
+ *
4
+ * node lib/evg/showcase/tests/gl_smoke.mjs [dist]
5
+ *
6
+ * The PDF and PNG targets have suites that would have caught a missing shape;
7
+ * the GPU backend had none, and a page of charts came out as bare text — every
8
+ * path silently dropped, because the display list had no path commands and the
9
+ * viewer had nothing to draw them with. This asserts what that failure looked
10
+ * like: how many paths each page draws, and that none were skipped.
11
+ *
12
+ * Needs a built showcase (`npm run showcase`) and Playwright. Without
13
+ * Playwright it says so and exits 0, the way the Vela parity harness does —
14
+ * a silent skip would read as a pass.
15
+ */
16
+ import http from "node:http";
17
+ import fs from "node:fs";
18
+ import path from "node:path";
19
+ import { createRequire } from "node:module";
20
+ import { fileURLToPath } from "node:url";
21
+
22
+ const HERE = path.dirname(fileURLToPath(import.meta.url));
23
+ const ROOT = path.resolve(HERE, "../../../..");
24
+ const DIST = path.resolve(process.argv[2] || path.join(HERE, "..", "dist"));
25
+
26
+ // What each page must draw. A page that draws fewer paths than this has lost
27
+ // geometry, which is exactly the regression this file exists for.
28
+ const EXPECT = [
29
+ { list: "charts-editorial.json", minPaths: 40, minText: 40 },
30
+ { list: "chart_api-editorial.json", minPaths: 20, minText: 40 },
31
+ { list: "charts-autumn.json", minPaths: 40, minText: 40 },
32
+ { list: "plots-editorial.json", minPaths: 40, minText: 60 },
33
+ { list: "plots-studio.json", minPaths: 40, minText: 60 },
34
+ { list: "more-editorial.json", minPaths: 40, minText: 60 },
35
+ { list: "views-editorial.json", minPaths: 20, minText: 40 },
36
+ { list: "variants-editorial.json", minPaths: 40, minText: 60 },
37
+ { list: "tables-editorial.json", minPaths: 10, minText: 20 },
38
+ { list: "drawing-editorial.json", minPaths: 20, minText: 30 },
39
+ { list: "vector-editorial.json", minPaths: 8, minText: 5 },
40
+ { list: "album-editorial.json", minPaths: 0, minText: 3, minImages: 4 },
41
+ ];
42
+
43
+ function loadPlaywright() {
44
+ const anchors = [
45
+ "/opt/node22/lib/node_modules/x",
46
+ path.join(ROOT, "package.json"),
47
+ path.join(process.cwd(), "package.json"),
48
+ import.meta.url,
49
+ ];
50
+ for (const anchor of anchors) {
51
+ for (const name of ["playwright", "playwright-core"]) {
52
+ try {
53
+ return createRequire(anchor)(name);
54
+ } catch { /* try the next anchor */ }
55
+ }
56
+ }
57
+ return null;
58
+ }
59
+
60
+ const pw = loadPlaywright();
61
+ if (!pw) {
62
+ console.log("Playwright is not available — the WebGL viewer was not checked.");
63
+ process.exit(0);
64
+ }
65
+ if (!fs.existsSync(path.join(DIST, "gl", "view.html"))) {
66
+ console.error(`no build in ${path.relative(ROOT, DIST)} — run: npm run showcase`);
67
+ process.exit(1);
68
+ }
69
+
70
+ const TYPES = { ".html": "text/html", ".js": "text/javascript", ".json": "application/json", ".png": "image/png" };
71
+ const server = http.createServer((req, res) => {
72
+ const file = path.join(DIST, req.url.split("?")[0]);
73
+ if (!file.startsWith(DIST) || !fs.existsSync(file) || fs.statSync(file).isDirectory()) {
74
+ res.writeHead(404);
75
+ res.end();
76
+ return;
77
+ }
78
+ res.writeHead(200, { "content-type": TYPES[path.extname(file)] || "application/octet-stream" });
79
+ fs.createReadStream(file).pipe(res);
80
+ });
81
+ await new Promise((r) => server.listen(0, "127.0.0.1", r));
82
+ const port = server.address().port;
83
+
84
+ // SwiftShader, because CI has no GPU. It is a software rasterizer for the same
85
+ // GL calls, so it exercises every code path a real driver would.
86
+ const browser = await pw.chromium.launch({
87
+ args: ["--use-gl=swiftshader", "--enable-unsafe-swiftshader"],
88
+ });
89
+
90
+ let failed = 0;
91
+ for (const want of EXPECT) {
92
+ const page = await browser.newPage({ viewport: { width: 700, height: 950 } });
93
+ const errors = [];
94
+ page.on("pageerror", (e) => errors.push(String(e)));
95
+ page.on("console", (m) => { if (m.type() === "error") errors.push(m.text()); });
96
+ await page.goto(`http://127.0.0.1:${port}/gl/view.html?list=${want.list}`, { waitUntil: "networkidle" });
97
+ await page.waitForTimeout(1500);
98
+ const s = await page.evaluate(() => window.__evgStats || null);
99
+ await page.close();
100
+
101
+ const problems = [];
102
+ if (!s) problems.push("the viewer reported no stats at all");
103
+ else {
104
+ if (s.error) problems.push(s.error);
105
+ if ((s.paths || 0) < want.minPaths) problems.push(`${s.paths || 0} paths, expected at least ${want.minPaths}`);
106
+ if ((s.textRuns || 0) < want.minText) problems.push(`${s.textRuns || 0} text runs, expected at least ${want.minText}`);
107
+ if (want.minImages && (s.images || 0) < want.minImages) problems.push(`${s.images || 0} images, expected ${want.minImages}`);
108
+ if (s.skippedFills) problems.push(`${s.skippedFills} fills skipped — the context has no stencil buffer`);
109
+ if (s.missingImages) problems.push(`${s.missingImages} images could not be loaded`);
110
+ }
111
+ for (const e of errors.slice(0, 3)) problems.push("console: " + e);
112
+
113
+ if (problems.length) {
114
+ failed += 1;
115
+ console.log(` FAIL ${want.list}`);
116
+ for (const p of problems) console.log(` ${p}`);
117
+ } else {
118
+ console.log(` ok ${want.list}: ${s.drawn} quads, ${s.paths} paths, ${s.textRuns} text runs, ${s.images} images`);
119
+ }
120
+ }
121
+
122
+ await browser.close();
123
+ server.close();
124
+ console.log(failed ? `\n${failed} page(s) failed` : `\n${EXPECT.length} pages drawn by the GPU backend`);
125
+ process.exit(failed ? 1 : 0);
@@ -0,0 +1,15 @@
1
+ /* GENERATED by gallery/vela/tools/vela_evg.rgr — do not edit by hand. */
2
+ /* The colours the Vega specifications asked for, as the DEFAULT layer:
3
+ a theme's own chart rules are scoped and override these, and a build
4
+ with no chart theme still draws the chart the spec described. */
5
+
6
+ .chartFrame { stroke: #ddd; }
7
+ .chartGrid { stroke: #ddd; }
8
+ .chartTick { stroke: #888; }
9
+ .chartLabel { color: #000; }
10
+ .chartDomain { stroke: #888; }
11
+ .chartTitle { color: #000; }
12
+ .chartFill0 { fill: #4c78a8; }
13
+ .chartStroke0 { stroke: #4c78a8; }
14
+ .chartFill1 { fill: #f58518; }
15
+ .chartStroke1 { stroke: #f58518; }
@@ -0,0 +1,29 @@
1
+ /* GENERATED by gallery/vela/tools/vela_evg.rgr — do not edit by hand. */
2
+ /* The colours the Vega specifications asked for, as the DEFAULT layer:
3
+ a theme's own chart rules are scoped and override these, and a build
4
+ with no chart theme still draws the chart the spec described. */
5
+
6
+ .chartFrame { stroke: #8a8f98; }
7
+ .chartGrid { stroke: #8a8f98; }
8
+ .chartTick { stroke: #8a8f98; }
9
+ .chartLabel { color: #8a8f98; }
10
+ .chartDomain { stroke: #8a8f98; }
11
+ .chartTitle { color: #8a8f98; }
12
+ .chartFill0 { fill: #4c78a8; }
13
+ .chartStroke0 { stroke: #4c78a8; }
14
+ .chartFill1 { fill: #f58518; }
15
+ .chartStroke1 { stroke: #f58518; }
16
+ .chartFill2 { fill: #e45756; }
17
+ .chartStroke2 { stroke: #e45756; }
18
+ .chartFill3 { fill: #72b7b2; }
19
+ .chartStroke3 { stroke: #72b7b2; }
20
+ .chartFill4 { fill: #54a24b; }
21
+ .chartStroke4 { stroke: #54a24b; }
22
+ .chartFill5 { fill: #eeca3b; }
23
+ .chartStroke5 { stroke: #eeca3b; }
24
+ .chartFill6 { fill: #b279a2; }
25
+ .chartStroke6 { stroke: #b279a2; }
26
+ .chartFill7 { fill: #ff9da6; }
27
+ .chartStroke7 { stroke: #ff9da6; }
28
+ .chartFill8 { fill: #9d755d; }
29
+ .chartStroke8 { stroke: #9d755d; }
@@ -0,0 +1,35 @@
1
+ /* GENERATED by gallery/vela/tools/vela_evg.rgr — do not edit by hand. */
2
+ /* The colours the Vega specifications asked for, as the DEFAULT layer:
3
+ a theme's own chart rules are scoped and override these, and a build
4
+ with no chart theme still draws the chart the spec described. */
5
+
6
+ .chartTick { stroke: #888; }
7
+ .chartLabel { color: #000; }
8
+ .chartDomain { stroke: #888; }
9
+ .chartGrid { stroke: #ddd; }
10
+ .chartTitle { color: #000; }
11
+ .chartText1 { color: #1c3f5e; }
12
+ .chartFill0 { fill: #4c78a8; }
13
+ .chartStroke0 { stroke: #4c78a8; }
14
+ .chartFill1 { fill: #1c3f5e; }
15
+ .chartStroke1 { stroke: #1c3f5e; }
16
+ .chartFill2 { fill: #f58518; }
17
+ .chartStroke2 { stroke: #f58518; }
18
+ .chartFill3 { fill: #e45756; }
19
+ .chartStroke3 { stroke: #e45756; }
20
+ .chartFill4 { fill: #72b7b2; }
21
+ .chartStroke4 { stroke: #72b7b2; }
22
+ .chartFill5 { fill: #54a24b; }
23
+ .chartStroke5 { stroke: #54a24b; }
24
+ .chartFill6 { fill: #eeca3b; }
25
+ .chartStroke6 { stroke: #eeca3b; }
26
+ .chartFill7 { fill: #b279a2; }
27
+ .chartStroke7 { stroke: #b279a2; }
28
+ .chartFill8 { fill: #ff9da6; }
29
+ .chartStroke8 { stroke: #ff9da6; }
30
+ .chartFill9 { fill: #9d755d; }
31
+ .chartStroke9 { stroke: #9d755d; }
32
+ .chartFill10 { fill: #1e5b18; }
33
+ .chartStroke10 { stroke: #1e5b18; }
34
+ .chartFill11 { fill: #b03a2e; }
35
+ .chartStroke11 { stroke: #b03a2e; }
@@ -0,0 +1,128 @@
1
+ /* GENERATED by gallery/vela/tools/vela_evg.rgr — do not edit by hand. */
2
+ /* The colours the Vega specifications asked for, as the DEFAULT layer:
3
+ a theme's own chart rules are scoped and override these, and a build
4
+ with no chart theme still draws the chart the spec described. */
5
+
6
+ .chartFrame { stroke: #8a8f98; }
7
+ .chartTick { stroke: #8a8f98; }
8
+ .chartLabel { color: #8a8f98; }
9
+ .chartDomain { stroke: #8a8f98; }
10
+ .chartTitle { color: #8a8f98; }
11
+ .chartGrid { stroke: #8a8f98; }
12
+ .chartText57 { color: #8a8f98; }
13
+ .chartFill0 { fill: rgb(212, 238, 180); }
14
+ .chartStroke0 { stroke: rgb(212, 238, 180); }
15
+ .chartFill1 { fill: rgb(69, 180, 194); }
16
+ .chartStroke1 { stroke: rgb(69, 180, 194); }
17
+ .chartFill2 { fill: rgb(134, 208, 187); }
18
+ .chartStroke2 { stroke: rgb(134, 208, 187); }
19
+ .chartFill3 { fill: rgb(28, 49, 133); }
20
+ .chartStroke3 { stroke: rgb(28, 49, 133); }
21
+ .chartFill4 { fill: rgb(34, 82, 161); }
22
+ .chartStroke4 { stroke: rgb(34, 82, 161); }
23
+ .chartFill5 { fill: rgb(79, 185, 193); }
24
+ .chartStroke5 { stroke: rgb(79, 185, 193); }
25
+ .chartFill6 { fill: rgb(239, 249, 189); }
26
+ .chartStroke6 { stroke: rgb(239, 249, 189); }
27
+ .chartFill7 { fill: rgb(32, 61, 146); }
28
+ .chartStroke7 { stroke: rgb(32, 61, 146); }
29
+ .chartFill8 { fill: rgb(84, 187, 192); }
30
+ .chartStroke8 { stroke: rgb(84, 187, 192); }
31
+ .chartFill9 { fill: rgb(234, 247, 187); }
32
+ .chartStroke9 { stroke: rgb(234, 247, 187); }
33
+ .chartFill10 { fill: rgb(229, 245, 185); }
34
+ .chartStroke10 { stroke: rgb(229, 245, 185); }
35
+ .chartFill11 { fill: rgb(224, 243, 182); }
36
+ .chartStroke11 { stroke: rgb(224, 243, 182); }
37
+ .chartFill12 { fill: rgb(219, 241, 180); }
38
+ .chartStroke12 { stroke: rgb(219, 241, 180); }
39
+ .chartFill13 { fill: rgb(204, 235, 181); }
40
+ .chartStroke13 { stroke: rgb(204, 235, 181); }
41
+ .chartFill14 { fill: rgb(197, 232, 181); }
42
+ .chartStroke14 { stroke: rgb(197, 232, 181); }
43
+ .chartFill15 { fill: rgb(189, 229, 181); }
44
+ .chartStroke15 { stroke: rgb(189, 229, 181); }
45
+ .chartFill16 { fill: rgb(179, 225, 182); }
46
+ .chartStroke16 { stroke: rgb(179, 225, 182); }
47
+ .chartFill17 { fill: rgb(169, 221, 183); }
48
+ .chartStroke17 { stroke: rgb(169, 221, 183); }
49
+ .chartFill18 { fill: rgb(158, 217, 184); }
50
+ .chartStroke18 { stroke: rgb(158, 217, 184); }
51
+ .chartFill19 { fill: rgb(148, 213, 185); }
52
+ .chartStroke19 { stroke: rgb(148, 213, 185); }
53
+ .chartFill20 { fill: rgb(137, 209, 186); }
54
+ .chartStroke20 { stroke: rgb(137, 209, 186); }
55
+ .chartFill21 { fill: rgb(126, 205, 188); }
56
+ .chartStroke21 { stroke: rgb(126, 205, 188); }
57
+ .chartFill22 { fill: rgb(116, 201, 189); }
58
+ .chartStroke22 { stroke: rgb(116, 201, 189); }
59
+ .chartFill23 { fill: rgb(105, 197, 190); }
60
+ .chartStroke23 { stroke: rgb(105, 197, 190); }
61
+ .chartFill24 { fill: rgb(96, 193, 191); }
62
+ .chartStroke24 { stroke: rgb(96, 193, 191); }
63
+ .chartFill25 { fill: rgb(87, 189, 192); }
64
+ .chartStroke25 { stroke: rgb(87, 189, 192); }
65
+ .chartFill26 { fill: rgb(78, 184, 193); }
66
+ .chartStroke26 { stroke: rgb(78, 184, 193); }
67
+ .chartFill27 { fill: rgb(63, 175, 194); }
68
+ .chartStroke27 { stroke: rgb(63, 175, 194); }
69
+ .chartFill28 { fill: rgb(57, 169, 193); }
70
+ .chartStroke28 { stroke: rgb(57, 169, 193); }
71
+ .chartFill29 { fill: rgb(50, 164, 193); }
72
+ .chartStroke29 { stroke: rgb(50, 164, 193); }
73
+ .chartFill30 { fill: rgb(44, 158, 192); }
74
+ .chartStroke30 { stroke: rgb(44, 158, 192); }
75
+ .chartFill31 { fill: rgb(41, 151, 190); }
76
+ .chartStroke31 { stroke: rgb(41, 151, 190); }
77
+ .chartFill32 { fill: rgb(38, 144, 188); }
78
+ .chartStroke32 { stroke: rgb(38, 144, 188); }
79
+ .chartFill33 { fill: rgb(36, 137, 186); }
80
+ .chartStroke33 { stroke: rgb(36, 137, 186); }
81
+ .chartFill34 { fill: rgb(33, 130, 184); }
82
+ .chartStroke34 { stroke: rgb(33, 130, 184); }
83
+ .chartFill35 { fill: rgb(33, 122, 181); }
84
+ .chartStroke35 { stroke: rgb(33, 122, 181); }
85
+ .chartFill36 { fill: rgb(33, 115, 177); }
86
+ .chartStroke36 { stroke: rgb(33, 115, 177); }
87
+ .chartFill37 { fill: rgb(33, 107, 173); }
88
+ .chartStroke37 { stroke: rgb(33, 107, 173); }
89
+ .chartFill38 { fill: rgb(33, 99, 170); }
90
+ .chartStroke38 { stroke: rgb(33, 99, 170); }
91
+ .chartFill39 { fill: rgb(34, 92, 167); }
92
+ .chartStroke39 { stroke: rgb(34, 92, 167); }
93
+ .chartFill40 { fill: rgb(34, 85, 163); }
94
+ .chartStroke40 { stroke: rgb(34, 85, 163); }
95
+ .chartFill41 { fill: rgb(35, 78, 160); }
96
+ .chartStroke41 { stroke: rgb(35, 78, 160); }
97
+ .chartFill42 { fill: rgb(35, 71, 156); }
98
+ .chartStroke42 { stroke: rgb(35, 71, 156); }
99
+ .chartFill43 { fill: rgb(33, 66, 150); }
100
+ .chartStroke43 { stroke: rgb(33, 66, 150); }
101
+ .chartFill44 { fill: rgb(32, 60, 145); }
102
+ .chartStroke44 { stroke: rgb(32, 60, 145); }
103
+ .chartFill45 { fill: rgb(30, 55, 139); }
104
+ .chartStroke45 { stroke: rgb(30, 55, 139); }
105
+ .chartFill46 { fill: black; }
106
+ .chartStroke46 { stroke: black; }
107
+ .chartFill47 { fill: #4c78a8; }
108
+ .chartStroke47 { stroke: #4c78a8; }
109
+ .chartFill48 { fill: white; }
110
+ .chartStroke48 { stroke: white; }
111
+ .chartFill49 { fill: #f58518; }
112
+ .chartStroke49 { stroke: #f58518; }
113
+ .chartFill50 { fill: #e45756; }
114
+ .chartStroke50 { stroke: #e45756; }
115
+ .chartFill51 { fill: #72b7b2; }
116
+ .chartStroke51 { stroke: #72b7b2; }
117
+ .chartFill52 { fill: #54a24b; }
118
+ .chartStroke52 { stroke: #54a24b; }
119
+ .chartFill53 { fill: #eeca3b; }
120
+ .chartStroke53 { stroke: #eeca3b; }
121
+ .chartFill54 { fill: #b279a2; }
122
+ .chartStroke54 { stroke: #b279a2; }
123
+ .chartFill55 { fill: #ff9da6; }
124
+ .chartStroke55 { stroke: #ff9da6; }
125
+ .chartFill56 { fill: #9d755d; }
126
+ .chartStroke56 { stroke: #9d755d; }
127
+ .chartFill57 { fill: #8a8f98; }
128
+ .chartStroke57 { stroke: #8a8f98; }
@@ -0,0 +1,18 @@
1
+ /* GENERATED by gallery/vela/tools/vela_evg.rgr — do not edit by hand. */
2
+ /* The colours the Vega specifications asked for, as the DEFAULT layer:
3
+ a theme's own chart rules are scoped and override these, and a build
4
+ with no chart theme still draws the chart the spec described. */
5
+
6
+ .chartFrame { stroke: #8a8f98; }
7
+ .chartGrid { stroke: #8a8f98; }
8
+ .chartTick { stroke: #8a8f98; }
9
+ .chartLabel { color: #8a8f98; }
10
+ .chartDomain { stroke: #8a8f98; }
11
+ .chartTitle { color: #8a8f98; }
12
+ .chartText2 { color: #8a8f98; }
13
+ .chartFill0 { fill: #4c78a8; }
14
+ .chartStroke0 { stroke: #4c78a8; }
15
+ .chartFill1 { fill: #f58518; }
16
+ .chartStroke1 { stroke: #f58518; }
17
+ .chartFill2 { fill: #8a8f98; }
18
+ .chartStroke2 { stroke: #8a8f98; }