From 9ca43d38780f2d05d54f3e35fa9f587d7686af03 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Fri, 30 Aug 2024 19:50:14 +0200 Subject: [PATCH 1/9] chore: try regex --- packages/core/package.json | 1 + packages/core/src/engines/javascript.ts | 18 +- pnpm-lock.yaml | 18 +- scripts/report-engine-js-compat.md | 426 ++++++++++++------------ 4 files changed, 236 insertions(+), 227 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index cd0fc8cc..816d43e4 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -71,6 +71,7 @@ "devDependencies": { "hast-util-to-html": "catalog:", "oniguruma-to-js": "catalog:", + "regex": "^4.1.3", "vscode-oniguruma": "catalog:" } } diff --git a/packages/core/src/engines/javascript.ts b/packages/core/src/engines/javascript.ts index d9a0208a..24e58b01 100644 --- a/packages/core/src/engines/javascript.ts +++ b/packages/core/src/engines/javascript.ts @@ -1,4 +1,4 @@ -import { onigurumaToRegexp } from 'oniguruma-to-js' +import { regex } from 'regex' import type { PatternScanner, RegexEngine, RegexEngineString } from '../textmate' import type { JavaScriptRegexEngineOptions } from '../types/engines' @@ -23,14 +23,14 @@ export class JavaScriptScanner implements PatternScanner { throw cached } try { - const regex = onigurumaToRegexp( - p - // YAML specific handling; TODO: move to tm-grammars - .replaceAll('[^\\s[-?:,\\[\\]{}#&*!|>\'"%@`]]', '[^\\s\\-?:,\\[\\]{}#&*!|>\'"%@`]'), - { flags: 'dg' }, - ) - cache?.set(p, regex) - return regex + const re = regex({ + flags: 'dg', + disable: { + x: true, + }, + })({ raw: [p] }) + cache?.set(p, re) + return re } catch (e) { cache?.set(p, e as Error) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 76274fb2..4ffe1911 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -504,6 +504,9 @@ importers: oniguruma-to-js: specifier: 'catalog:' version: 0.2.3 + regex: + specifier: ^4.1.3 + version: 4.1.3 vscode-oniguruma: specifier: ^1.7.0 version: 1.7.0 @@ -2092,8 +2095,8 @@ packages: '@vitest/eslint-plugin@1.1.0': resolution: {integrity: sha512-Ur80Y27Wbw8gFHJ3cv6vypcjXmrx6QHfw+q435h6Q2L+tf+h4Xf5pJTCL4YU/Jps9EVeggQxS85OcUZU7sdXRw==} peerDependencies: - '@typescript-eslint/utils': '>= 8.0' - eslint: '>= 8.57.0' + '@typescript-eslint/utils': ^8.3.0 + eslint: ^9.9.1 typescript: '>= 5.0.0' vitest: '*' peerDependenciesMeta: @@ -2969,7 +2972,7 @@ packages: eslint-config-flat-gitignore@0.3.0: resolution: {integrity: sha512-0Ndxo4qGhcewjTzw52TK06Mc00aDtHNTdeeW2JfONgDcLkRO/n/BteMRzNVpLQYxdCC/dFEilfM9fjjpGIJ9Og==} peerDependencies: - eslint: ^9.5.0 + eslint: ^9.9.1 eslint-flat-config-utils@0.3.1: resolution: {integrity: sha512-eFT3EaoJN1hlN97xw4FIEX//h0TiFUobgl2l5uLkIwhVN9ahGq95Pbs+i1/B5UACA78LO3rco3JzuvxLdTUOPA==} @@ -3015,7 +3018,7 @@ packages: resolution: {integrity: sha512-dBEM8fACIFNt4H7GoOaRmnH6evJW6JSTJTYYgmRd3vI4geBTjgDM/JyUDKUwIw0HDSyI+u7Vs3vFRXUo/BOAtA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^9.9.1 eslint-plugin-jsdoc@50.2.2: resolution: {integrity: sha512-i0ZMWA199DG7sjxlzXn5AeYZxpRfMJjDPUl7lL9eJJX8TPRoIaxJU4ys/joP5faM5AXE1eqW/dslCj3uj4Nqpg==} @@ -3050,7 +3053,7 @@ packages: engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: astro-eslint-parser: ^1.0.2 - eslint: '>=8.0.0' + eslint: ^9.9.1 svelte: '>=3.0.0' svelte-eslint-parser: ^0.41.0 vue-eslint-parser: '>=9.0.0' @@ -4626,6 +4629,9 @@ packages: resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + regex@4.1.3: + resolution: {integrity: sha512-Z+pnmhdwVy/YRtLGV0OEM+vIYtAETDVr3nvFm2hcMU0C4YXcam43gWlVmPHFKKfJcnriusjVwEuSM10CrUOORg==} + regexp-ast-analysis@0.7.1: resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} @@ -10024,6 +10030,8 @@ snapshots: dependencies: '@eslint-community/regexpp': 4.11.0 + regex@4.1.3: {} + regexp-ast-analysis@0.7.1: dependencies: '@eslint-community/regexpp': 4.11.0 diff --git a/scripts/report-engine-js-compat.md b/scripts/report-engine-js-compat.md index 8568a51d..c7031a2f 100644 --- a/scripts/report-engine-js-compat.md +++ b/scripts/report-engine-js-compat.md @@ -2,229 +2,229 @@ > At Fri Aug 30 2024 > -> Version `1.14.1` +> Version `1.15.0` > > Runtime: Node.js v20.12.2 | Status | Number | | :-------------- | -----: | | Total Languages | 213 | -| OK | 84 | -| Mismatch | 127 | -| Error | 2 | +| OK | 3 | +| Mismatch | 4 | +| Error | 206 | | Language | Highlight Match | Patterns Parsable | Patterns Failed | | ------------------ | :-------------- | ----------------- | --------------- | -| actionscript-3 | ✅ OK | 57 | - | -| apl | ✅ OK | 179 | - | -| awk | ✅ OK | 36 | - | -| ballerina | ✅ OK | 231 | - | -| beancount | ✅ OK | 39 | - | -| berry | ✅ OK | 18 | - | -| bibtex | ✅ OK | 19 | - | -| clj | ✅ OK | 38 | - | -| clojure | ✅ OK | 38 | - | | codeowners | ✅ OK | 4 | - | -| coffee | ✅ OK | 120 | - | -| css | ✅ OK | 141 | - | -| csv | ✅ OK | 1 | - | -| dax | ✅ OK | 23 | - | -| desktop | ✅ OK | 16 | - | -| dream-maker | ✅ OK | 55 | - | -| elixir | ✅ OK | 102 | - | -| elm | ✅ OK | 68 | - | -| erb | ✅ OK | 6 | - | -| fennel | ✅ OK | 31 | - | -| fsl | ✅ OK | 30 | - | -| gdshader | ✅ OK | 38 | - | -| gherkin | ✅ OK | 16 | - | -| gleam | ✅ OK | 26 | - | -| glimmer-js | ✅ OK | 74 | - | -| glimmer-ts | ✅ OK | 74 | - | -| graphql | ✅ OK | 63 | - | -| handlebars | ✅ OK | 64 | - | -| hcl | ✅ OK | 61 | - | -| imba | ✅ OK | 242 | - | -| javascript | ✅ OK | 378 | - | -| jinja | ✅ OK | 35 | - | -| json | ✅ OK | 19 | - | -| json5 | ✅ OK | 23 | - | -| jssm | ✅ OK | 30 | - | -| jsx | ✅ OK | 378 | - | -| kotlin | ✅ OK | 58 | - | -| lean | ✅ OK | 32 | - | -| liquid | ✅ OK | 69 | - | -| log | ✅ OK | 30 | - | -| luau | ✅ OK | 88 | - | -| marko | ✅ OK | 81 | - | -| mojo | ✅ OK | 213 | - | -| move | ✅ OK | 117 | - | -| nextflow | ✅ OK | 17 | - | -| nginx | ✅ OK | 102 | - | -| nix | ✅ OK | 80 | - | -| ocaml | ✅ OK | 178 | - | -| postcss | ✅ OK | 47 | - | -| prisma | ✅ OK | 26 | - | -| prolog | ✅ OK | 26 | - | -| proto | ✅ OK | 33 | - | -| python | ✅ OK | 218 | - | -| qml | ✅ OK | 38 | - | | qmldir | ✅ OK | 7 | - | -| qss | ✅ OK | 31 | - | -| regexp | ✅ OK | 34 | - | -| rel | ✅ OK | 17 | - | -| rst | ✅ OK | 61 | - | -| sas | ✅ OK | 32 | - | -| sass | ✅ OK | 67 | - | -| scss | ✅ OK | 104 | - | -| smalltalk | ✅ OK | 31 | - | -| system-verilog | ✅ OK | 102 | - | -| systemd | ✅ OK | 32 | - | -| tcl | ✅ OK | 33 | - | -| terraform | ✅ OK | 62 | - | -| ts-tags | ✅ OK | - | - | -| tsv | ✅ OK | 1 | - | -| tsx | ✅ OK | 378 | - | -| twig | ✅ OK | 94 | - | -| typescript | ✅ OK | 366 | - | -| typst | ✅ OK | 78 | - | -| v | ✅ OK | 76 | - | -| viml | ✅ OK | 72 | - | -| vyper | ✅ OK | 238 | - | | wenyan | ✅ OK | 18 | - | -| wgsl | ✅ OK | 44 | - | -| wikitext | ✅ OK | 104 | - | -| wolfram | ✅ OK | 501 | - | -| xml | ✅ OK | 30 | - | -| xsl | ✅ OK | 5 | - | -| zenscript | ✅ OK | 21 | - | -| zig | ✅ OK | 51 | - | -| abap | ⚠️ Mismatch | 49 | - | -| angular-html | ⚠️ Mismatch | 2 | - | -| angular-ts | ⚠️ Mismatch | 366 | - | -| apache | ⚠️ Mismatch | 60 | - | -| apex | ⚠️ Mismatch | 189 | - | -| applescript | ⚠️ Mismatch | 151 | - | -| ara | ⚠️ Mismatch | 54 | - | -| asciidoc | ⚠️ Mismatch | 262 | - | -| asm | ⚠️ Mismatch | 297 | - | -| astro | ⚠️ Mismatch | 59 | - | -| bash | ⚠️ Mismatch | 146 | - | -| bat | ⚠️ Mismatch | 58 | - | -| bicep | ⚠️ Mismatch | 28 | - | -| blade | ⚠️ Mismatch | 330 | - | -| c | ⚠️ Mismatch | 158 | - | -| cadence | ⚠️ Mismatch | 71 | - | -| clarity | ⚠️ Mismatch | 43 | - | -| cmake | ⚠️ Mismatch | 23 | - | -| cobol | ⚠️ Mismatch | 138 | - | -| codeql | ⚠️ Mismatch | 150 | - | -| common-lisp | ⚠️ Mismatch | 57 | - | | coq | ⚠️ Mismatch | 25 | - | -| cpp | ⚠️ Mismatch | 220 | - | -| crystal | ⚠️ Mismatch | 140 | - | -| cue | ⚠️ Mismatch | 85 | - | -| cypher | ⚠️ Mismatch | 39 | - | -| d | ⚠️ Mismatch | 270 | - | -| dart | ⚠️ Mismatch | 71 | - | -| diff | ⚠️ Mismatch | 16 | - | -| docker | ⚠️ Mismatch | 7 | - | -| dotenv | ⚠️ Mismatch | 9 | - | -| edge | ⚠️ Mismatch | 10 | - | -| emacs-lisp | ⚠️ Mismatch | 151 | - | -| erlang | ⚠️ Mismatch | 147 | - | -| fish | ⚠️ Mismatch | 22 | - | -| fluent | ⚠️ Mismatch | 23 | - | -| fortran-fixed-form | ⚠️ Mismatch | 6 | - | -| fortran-free-form | ⚠️ Mismatch | 317 | - | -| fsharp | ⚠️ Mismatch | 120 | - | -| gdresource | ⚠️ Mismatch | 32 | - | -| gdscript | ⚠️ Mismatch | 93 | - | -| genie | ⚠️ Mismatch | 20 | - | -| glsl | ⚠️ Mismatch | 7 | - | -| gnuplot | ⚠️ Mismatch | 82 | - | -| go | ⚠️ Mismatch | 117 | - | -| groovy | ⚠️ Mismatch | 134 | - | -| hack | ⚠️ Mismatch | 301 | - | -| haml | ⚠️ Mismatch | 64 | - | -| haskell | ⚠️ Mismatch | 157 | - | -| haxe | ⚠️ Mismatch | 175 | - | -| hjson | ⚠️ Mismatch | 55 | - | -| hlsl | ⚠️ Mismatch | 52 | - | -| html | ⚠️ Mismatch | 116 | - | -| http | ⚠️ Mismatch | 20 | - | -| hxml | ⚠️ Mismatch | 6 | - | -| hy | ⚠️ Mismatch | 9 | - | -| ini | ⚠️ Mismatch | 11 | - | -| java | ⚠️ Mismatch | 141 | - | -| jison | ⚠️ Mismatch | 57 | - | -| jsonc | ⚠️ Mismatch | 19 | - | -| jsonl | ⚠️ Mismatch | 19 | - | -| jsonnet | ⚠️ Mismatch | 33 | - | -| kusto | ⚠️ Mismatch | 60 | - | -| latex | ⚠️ Mismatch | 183 | - | -| less | ⚠️ Mismatch | 261 | - | -| logo | ⚠️ Mismatch | 9 | - | -| lua | ⚠️ Mismatch | 113 | - | -| make | ⚠️ Mismatch | 48 | - | -| markdown | ⚠️ Mismatch | 103 | - | -| matlab | ⚠️ Mismatch | 77 | - | -| mdc | ⚠️ Mismatch | 27 | - | -| mdx | ⚠️ Mismatch | 180 | - | -| mermaid | ⚠️ Mismatch | 129 | - | -| narrat | ⚠️ Mismatch | 34 | - | -| nim | ⚠️ Mismatch | 114 | - | -| nushell | ⚠️ Mismatch | 75 | - | -| objective-c | ⚠️ Mismatch | 219 | - | -| objective-cpp | ⚠️ Mismatch | 300 | - | -| pascal | ⚠️ Mismatch | 23 | - | -| perl | ⚠️ Mismatch | 156 | - | -| php | ⚠️ Mismatch | 328 | - | -| plsql | ⚠️ Mismatch | 43 | - | -| po | ⚠️ Mismatch | 23 | - | -| powerquery | ⚠️ Mismatch | 30 | - | -| powershell | ⚠️ Mismatch | 88 | - | -| pug | ⚠️ Mismatch | 92 | - | -| puppet | ⚠️ Mismatch | 59 | - | -| purescript | ⚠️ Mismatch | 72 | - | -| r | ⚠️ Mismatch | 73 | - | -| racket | ⚠️ Mismatch | 68 | - | -| raku | ⚠️ Mismatch | 52 | - | -| reg | ⚠️ Mismatch | 9 | - | -| riscv | ⚠️ Mismatch | 36 | - | -| ruby | ⚠️ Mismatch | 154 | - | -| rust | ⚠️ Mismatch | 89 | - | -| scala | ⚠️ Mismatch | 108 | - | -| scheme | ⚠️ Mismatch | 34 | - | -| shaderlab | ⚠️ Mismatch | 38 | - | -| shellscript | ⚠️ Mismatch | 146 | - | -| shellsession | ⚠️ Mismatch | 2 | - | -| solidity | ⚠️ Mismatch | 102 | - | -| soy | ⚠️ Mismatch | 45 | - | -| sparql | ⚠️ Mismatch | 4 | - | -| splunk | ⚠️ Mismatch | 17 | - | -| sql | ⚠️ Mismatch | 67 | - | -| ssh-config | ⚠️ Mismatch | 12 | - | -| stata | ⚠️ Mismatch | 189 | - | -| stylus | ⚠️ Mismatch | 107 | - | -| svelte | ⚠️ Mismatch | 83 | - | -| tasl | ⚠️ Mismatch | 22 | - | -| templ | ⚠️ Mismatch | 74 | - | -| tex | ⚠️ Mismatch | 38 | - | -| toml | ⚠️ Mismatch | 40 | - | -| turtle | ⚠️ Mismatch | 15 | - | -| typespec | ⚠️ Mismatch | 80 | - | -| vala | ⚠️ Mismatch | 20 | - | -| vb | ⚠️ Mismatch | 34 | - | -| verilog | ⚠️ Mismatch | 33 | - | -| vhdl | ⚠️ Mismatch | 82 | - | -| vue | ⚠️ Mismatch | 69 | - | -| vue-html | ⚠️ Mismatch | 36 | - | -| wasm | ⚠️ Mismatch | 78 | - | -| yaml | ⚠️ Mismatch | 46 | - | -| zsh | ⚠️ Mismatch | 146 | - | -| ada | ⚠️ Mismatch | 199 | 1 | -| csharp | ⚠️ Mismatch | 298 | 1 | -| razor | ⚠️ Mismatch | 83 | 2 | -| swift | ❌ Error | 302 | 4 | -| julia | ❌ Error | 77 | 18 | +| csv | ⚠️ Mismatch | 1 | - | +| tsv | ⚠️ Mismatch | 1 | - | +| regexp | ⚠️ Mismatch | 32 | 2 | +| angular-html | ❌ Error | 2 | - | +| fortran-fixed-form | ❌ Error | 6 | - | +| hxml | ❌ Error | 6 | - | +| ts-tags | ❌ Error | - | - | +| apache | ❌ Error | 59 | 1 | +| diff | ❌ Error | 15 | 1 | +| dotenv | ❌ Error | 8 | 1 | +| gherkin | ❌ Error | 15 | 1 | +| glsl | ❌ Error | 6 | 1 | +| powerquery | ❌ Error | 29 | 1 | +| prolog | ❌ Error | 25 | 1 | +| qss | ❌ Error | 30 | 1 | +| reg | ❌ Error | 8 | 1 | +| shellsession | ❌ Error | 1 | 1 | +| smalltalk | ❌ Error | 30 | 1 | +| ssh-config | ❌ Error | 11 | 1 | +| xsl | ❌ Error | 4 | 1 | +| zenscript | ❌ Error | 20 | 1 | +| cue | ❌ Error | 83 | 2 | +| desktop | ❌ Error | 14 | 2 | +| erb | ❌ Error | 4 | 2 | +| fish | ❌ Error | 20 | 2 | +| genie | ❌ Error | 18 | 2 | +| ini | ❌ Error | 9 | 2 | +| json | ❌ Error | 17 | 2 | +| jsonc | ❌ Error | 17 | 2 | +| jsonl | ❌ Error | 17 | 2 | +| proto | ❌ Error | 31 | 2 | +| typespec | ❌ Error | 78 | 2 | +| vala | ❌ Error | 18 | 2 | +| clarity | ❌ Error | 40 | 3 | +| docker | ❌ Error | 4 | 3 | +| gleam | ❌ Error | 23 | 3 | +| json5 | ❌ Error | 20 | 3 | +| kusto | ❌ Error | 57 | 3 | +| lean | ❌ Error | 29 | 3 | +| logo | ❌ Error | 6 | 3 | +| narrat | ❌ Error | 31 | 3 | +| rel | ❌ Error | 14 | 3 | +| sparql | ❌ Error | 1 | 3 | +| verilog | ❌ Error | 30 | 3 | +| dax | ❌ Error | 19 | 4 | +| hy | ❌ Error | 5 | 4 | +| po | ❌ Error | 19 | 4 | +| prisma | ❌ Error | 22 | 4 | +| tasl | ❌ Error | 18 | 4 | +| turtle | ❌ Error | 11 | 4 | +| wgsl | ❌ Error | 40 | 4 | +| actionscript-3 | ❌ Error | 52 | 5 | +| codeql | ❌ Error | 145 | 5 | +| dart | ❌ Error | 66 | 5 | +| fennel | ❌ Error | 26 | 5 | +| fsl | ❌ Error | 25 | 5 | +| gdresource | ❌ Error | 27 | 5 | +| gdshader | ❌ Error | 33 | 5 | +| jssm | ❌ Error | 25 | 5 | +| nextflow | ❌ Error | 12 | 5 | +| qml | ❌ Error | 33 | 5 | +| riscv | ❌ Error | 31 | 5 | +| zig | ❌ Error | 46 | 5 | +| awk | ❌ Error | 30 | 6 | +| berry | ❌ Error | 12 | 6 | +| dream-maker | ❌ Error | 49 | 6 | +| jison | ❌ Error | 51 | 6 | +| splunk | ❌ Error | 11 | 6 | +| tex | ❌ Error | 32 | 6 | +| edge | ❌ Error | 3 | 7 | +| gnuplot | ❌ Error | 75 | 7 | +| jsonnet | ❌ Error | 26 | 7 | +| nim | ❌ Error | 107 | 7 | +| rust | ❌ Error | 82 | 7 | +| tcl | ❌ Error | 26 | 7 | +| bicep | ❌ Error | 20 | 8 | +| luau | ❌ Error | 80 | 8 | +| d | ❌ Error | 261 | 9 | +| http | ❌ Error | 11 | 9 | +| raku | ❌ Error | 43 | 9 | +| systemd | ❌ Error | 23 | 9 | +| haxe | ❌ Error | 165 | 10 | +| kotlin | ❌ Error | 48 | 10 | +| bibtex | ❌ Error | 8 | 11 | +| fluent | ❌ Error | 12 | 11 | +| graphql | ❌ Error | 52 | 11 | +| jinja | ❌ Error | 24 | 11 | +| julia | ❌ Error | 84 | 11 | +| pascal | ❌ Error | 12 | 11 | +| r | ❌ Error | 62 | 11 | +| solidity | ❌ Error | 91 | 11 | +| system-verilog | ❌ Error | 91 | 11 | +| wasm | ❌ Error | 67 | 11 | +| xml | ❌ Error | 19 | 11 | +| elm | ❌ Error | 56 | 12 | +| nginx | ❌ Error | 90 | 12 | +| shaderlab | ❌ Error | 26 | 12 | +| apl | ❌ Error | 166 | 13 | +| hlsl | ❌ Error | 39 | 13 | +| ara | ❌ Error | 40 | 14 | +| cmake | ❌ Error | 9 | 14 | +| haml | ❌ Error | 50 | 14 | +| matlab | ❌ Error | 63 | 14 | +| scheme | ❌ Error | 20 | 14 | +| vue-html | ❌ Error | 22 | 14 | +| cadence | ❌ Error | 56 | 15 | +| clj | ❌ Error | 23 | 15 | +| clojure | ❌ Error | 23 | 15 | +| lua | ❌ Error | 98 | 15 | +| sas | ❌ Error | 17 | 15 | +| elixir | ❌ Error | 86 | 16 | +| gdscript | ❌ Error | 77 | 16 | +| nushell | ❌ Error | 59 | 16 | +| razor | ❌ Error | 69 | 16 | +| hjson | ❌ Error | 38 | 17 | +| make | ❌ Error | 31 | 17 | +| mdc | ❌ Error | 10 | 17 | +| v | ❌ Error | 59 | 17 | +| viml | ❌ Error | 55 | 17 | +| log | ❌ Error | 12 | 18 | +| marko | ❌ Error | 63 | 18 | +| purescript | ❌ Error | 54 | 18 | +| rst | ❌ Error | 43 | 18 | +| puppet | ❌ Error | 40 | 19 | +| vb | ❌ Error | 15 | 19 | +| beancount | ❌ Error | 19 | 20 | +| move | ❌ Error | 97 | 20 | +| coffee | ❌ Error | 99 | 21 | +| fsharp | ❌ Error | 99 | 21 | +| toml | ❌ Error | 19 | 21 | +| cypher | ❌ Error | 17 | 22 | +| handlebars | ❌ Error | 42 | 22 | +| postcss | ❌ Error | 25 | 22 | +| sass | ❌ Error | 44 | 23 | +| typst | ❌ Error | 55 | 23 | +| yaml | ❌ Error | 23 | 23 | +| bat | ❌ Error | 34 | 24 | +| perl | ❌ Error | 132 | 24 | +| groovy | ❌ Error | 109 | 25 | +| hcl | ❌ Error | 36 | 25 | +| soy | ❌ Error | 20 | 25 | +| stata | ❌ Error | 163 | 26 | +| terraform | ❌ Error | 36 | 26 | +| java | ❌ Error | 114 | 27 | +| pug | ❌ Error | 65 | 27 | +| astro | ❌ Error | 29 | 30 | +| twig | ❌ Error | 64 | 30 | +| objective-c | ❌ Error | 185 | 32 | +| stylus | ❌ Error | 75 | 32 | +| wolfram | ❌ Error | 469 | 32 | +| abap | ❌ Error | 16 | 33 | +| vue | ❌ Error | 36 | 33 | +| nix | ❌ Error | 46 | 34 | +| templ | ❌ Error | 40 | 34 | +| c | ❌ Error | 123 | 35 | +| svelte | ❌ Error | 48 | 35 | +| applescript | ❌ Error | 115 | 36 | +| plsql | ❌ Error | 7 | 36 | +| scala | ❌ Error | 71 | 37 | +| sql | ❌ Error | 29 | 38 | +| glimmer-js | ❌ Error | 34 | 40 | +| glimmer-ts | ❌ Error | 34 | 40 | +| scss | ❌ Error | 64 | 40 | +| liquid | ❌ Error | 27 | 42 | +| apex | ❌ Error | 145 | 44 | +| crystal | ❌ Error | 96 | 44 | +| ocaml | ❌ Error | 134 | 44 | +| bash | ❌ Error | 101 | 45 | +| shellscript | ❌ Error | 101 | 45 | +| zsh | ❌ Error | 101 | 45 | +| go | ❌ Error | 71 | 46 | +| less | ❌ Error | 213 | 48 | +| racket | ❌ Error | 20 | 48 | +| mojo | ❌ Error | 164 | 49 | +| common-lisp | ❌ Error | 6 | 51 | +| objective-cpp | ❌ Error | 246 | 51 | +| ruby | ❌ Error | 101 | 53 | +| python | ❌ Error | 161 | 57 | +| vyper | ❌ Error | 181 | 57 | +| vhdl | ❌ Error | 23 | 59 | +| haskell | ❌ Error | 95 | 62 | +| powershell | ❌ Error | 26 | 62 | +| ballerina | ❌ Error | 159 | 72 | +| wikitext | ❌ Error | 31 | 73 | +| latex | ❌ Error | 107 | 76 | +| erlang | ❌ Error | 70 | 77 | +| html | ❌ Error | 35 | 81 | +| csharp | ❌ Error | 217 | 82 | +| swift | ❌ Error | 216 | 90 | +| markdown | ❌ Error | 11 | 92 | +| cobol | ❌ Error | 42 | 96 | +| mermaid | ❌ Error | 23 | 106 | +| css | ❌ Error | 33 | 108 | +| emacs-lisp | ❌ Error | 43 | 108 | +| imba | ❌ Error | 130 | 112 | +| cpp | ❌ Error | 107 | 113 | +| angular-ts | ❌ Error | 237 | 129 | +| typescript | ❌ Error | 237 | 129 | +| javascript | ❌ Error | 239 | 139 | +| jsx | ❌ Error | 239 | 139 | +| tsx | ❌ Error | 239 | 139 | +| ada | ❌ Error | 46 | 154 | +| mdx | ❌ Error | 25 | 155 | +| hack | ❌ Error | 114 | 187 | +| asciidoc | ❌ Error | 67 | 195 | +| php | ❌ Error | 104 | 224 | +| blade | ❌ Error | 99 | 231 | +| asm | ❌ Error | 43 | 254 | +| fortran-free-form | ❌ Error | 49 | 268 | From 8389ddbd9ef194c23757c5f20491427252e10d64 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Thu, 5 Sep 2024 18:35:22 +0200 Subject: [PATCH 2/9] chore: update --- package.json | 2 +- packages/core/package.json | 2 +- pnpm-workspace.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 4e4d5524..3b1002ae 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "picocolors": "catalog:", "pnpm": "catalog:", "prettier": "catalog:", - "regex-utilities": "^2.2.0", + "regex-utilities": "^2.3.0", "rimraf": "catalog:", "rollup": "catalog:", "rollup-plugin-copy": "catalog:", diff --git a/packages/core/package.json b/packages/core/package.json index 3fd1e4c0..092a30a3 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -72,7 +72,7 @@ "devDependencies": { "hast-util-to-html": "catalog:", "oniguruma-to-js": "catalog:", - "regex": "^4.1.3", + "regex": "^4.2.1", "vscode-oniguruma": "catalog:" } } diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 0bb93928..c555dc71 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -6,7 +6,7 @@ packages: - docs - packages/@shikijs/core/vendor/* catalog: - '@antfu/eslint-config': ^3.2.0 + '@antfu/eslint-config': ^3.2.1 '@antfu/ni': ^0.23.0 '@antfu/utils': ^0.7.10 '@iconify-json/carbon': ^1.2.1 From 4191f90126ebe4dc7b5e3c5d360f945036f0c522 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Thu, 5 Sep 2024 22:05:42 +0200 Subject: [PATCH 3/9] chore: update --- docs/references/engine-js-compat.md | 450 ++++++++++++++-------------- package.json | 1 + pnpm-lock.yaml | 3 + scripts/report-engine-js-compat.ts | 31 +- 4 files changed, 259 insertions(+), 226 deletions(-) diff --git a/docs/references/engine-js-compat.md b/docs/references/engine-js-compat.md index 0400b23d..ac510604 100644 --- a/docs/references/engine-js-compat.md +++ b/docs/references/engine-js-compat.md @@ -8,243 +8,243 @@ ## Report Summary -| | Count | -| :-------------- | --------------------------------: | -| Total Languages | 213 | -| Fully Supported | [188](#fully-supported-languages) | -| Mismatched | [17](#mismatched-languages) | -| Unsupported | [8](#unsupported-languages) | +| | Count | +| :-------------- | -------------------------------: | +| Total Languages | 213 | +| Fully Supported | [37](#fully-supported-languages) | +| Mismatched | [2](#mismatched-languages) | +| Unsupported | [174](#unsupported-languages) | ## Fully Supported Languages Languages that works with the JavaScript RegExp engine, and will produce the same result as the WASM engine. -| Language | Highlight Match | Patterns Parsable | Patterns Failed | -| ------------------ | :-------------- | ----------------: | --------------: | -| abap | ✅ OK | 49 | - | -| actionscript-3 | ✅ OK | 57 | - | -| angular-ts | ✅ OK | 363 | - | -| apache | ✅ OK | 60 | - | -| apl | ✅ OK | 179 | - | -| applescript | ✅ OK | 151 | - | -| ara | ✅ OK | 54 | - | -| asciidoc | ✅ OK | 262 | - | -| asm | ✅ OK | 297 | - | -| astro | ✅ OK | 59 | - | -| awk | ✅ OK | 36 | - | -| ballerina | ✅ OK | 230 | - | -| bash | ✅ OK | 146 | - | -| bat | ✅ OK | 58 | - | -| berry | ✅ OK | 18 | - | -| bibtex | ✅ OK | 19 | - | -| bicep | ✅ OK | 28 | - | -| c | ✅ OK | 158 | - | -| cadence | ✅ OK | 71 | - | -| clarity | ✅ OK | 43 | - | -| clj | ✅ OK | 38 | - | -| clojure | ✅ OK | 38 | - | -| cmake | ✅ OK | 23 | - | -| cobol | ✅ OK | 138 | - | -| codeowners | ✅ OK | 4 | - | -| codeql | ✅ OK | 150 | - | -| coffee | ✅ OK | 120 | - | -| common-lisp | ✅ OK | 57 | - | -| coq | ✅ OK | 25 | - | -| cpp | ✅ OK | 220 | - | -| crystal | ✅ OK | 140 | - | -| css | ✅ OK | 141 | - | -| csv | ✅ OK | 1 | - | -| cue | ✅ OK | 85 | - | -| cypher | ✅ OK | 39 | - | -| d | ✅ OK | 270 | - | -| dart | ✅ OK | 71 | - | -| dax | ✅ OK | 23 | - | -| desktop | ✅ OK | 16 | - | -| diff | ✅ OK | 16 | - | -| docker | ✅ OK | 7 | - | -| dotenv | ✅ OK | 9 | - | -| dream-maker | ✅ OK | 55 | - | -| edge | ✅ OK | 10 | - | -| elixir | ✅ OK | 102 | - | -| elm | ✅ OK | 67 | - | -| emacs-lisp | ✅ OK | 151 | - | -| erb | ✅ OK | 6 | - | -| erlang | ✅ OK | 147 | - | -| fennel | ✅ OK | 31 | - | -| fish | ✅ OK | 22 | - | -| fluent | ✅ OK | 23 | - | -| fortran-fixed-form | ✅ OK | 6 | - | -| fortran-free-form | ✅ OK | 317 | - | -| fsharp | ✅ OK | 120 | - | -| fsl | ✅ OK | 30 | - | -| gdresource | ✅ OK | 32 | - | -| gdscript | ✅ OK | 93 | - | -| gdshader | ✅ OK | 38 | - | -| genie | ✅ OK | 20 | - | -| gherkin | ✅ OK | 16 | - | -| gleam | ✅ OK | 26 | - | -| glimmer-js | ✅ OK | 74 | - | -| glimmer-ts | ✅ OK | 74 | - | -| glsl | ✅ OK | 7 | - | -| gnuplot | ✅ OK | 82 | - | -| go | ✅ OK | 115 | - | -| graphql | ✅ OK | 63 | - | -| groovy | ✅ OK | 133 | - | -| hack | ✅ OK | 301 | - | -| handlebars | ✅ OK | 64 | - | -| haxe | ✅ OK | 175 | - | -| hcl | ✅ OK | 61 | - | -| hjson | ✅ OK | 55 | - | -| hlsl | ✅ OK | 52 | - | -| html | ✅ OK | 116 | - | -| http | ✅ OK | 20 | - | -| hxml | ✅ OK | 6 | - | -| hy | ✅ OK | 9 | - | -| imba | ✅ OK | 241 | - | -| ini | ✅ OK | 11 | - | -| java | ✅ OK | 141 | - | -| javascript | ✅ OK | 376 | - | -| jinja | ✅ OK | 35 | - | -| jison | ✅ OK | 57 | - | -| json | ✅ OK | 19 | - | -| json5 | ✅ OK | 23 | - | -| jsonc | ✅ OK | 19 | - | -| jsonl | ✅ OK | 19 | - | -| jsonnet | ✅ OK | 33 | - | -| jssm | ✅ OK | 30 | - | -| jsx | ✅ OK | 376 | - | -| kotlin | ✅ OK | 58 | - | -| lean | ✅ OK | 32 | - | -| less | ✅ OK | 280 | - | -| liquid | ✅ OK | 69 | - | -| log | ✅ OK | 30 | - | -| logo | ✅ OK | 9 | - | -| lua | ✅ OK | 113 | - | -| luau | ✅ OK | 88 | - | -| make | ✅ OK | 48 | - | -| marko | ✅ OK | 81 | - | -| matlab | ✅ OK | 77 | - | -| mojo | ✅ OK | 213 | - | -| move | ✅ OK | 117 | - | -| narrat | ✅ OK | 34 | - | -| nextflow | ✅ OK | 17 | - | -| nim | ✅ OK | 114 | - | -| nix | ✅ OK | 80 | - | -| nushell | ✅ OK | 75 | - | -| objective-c | ✅ OK | 217 | - | -| objective-cpp | ✅ OK | 297 | - | -| ocaml | ✅ OK | 178 | - | -| pascal | ✅ OK | 23 | - | -| perl | ✅ OK | 155 | - | -| plsql | ✅ OK | 43 | - | -| postcss | ✅ OK | 47 | - | -| powerquery | ✅ OK | 30 | - | -| powershell | ✅ OK | 88 | - | -| prisma | ✅ OK | 26 | - | -| prolog | ✅ OK | 26 | - | -| proto | ✅ OK | 33 | - | -| puppet | ✅ OK | 59 | - | -| python | ✅ OK | 218 | - | -| qml | ✅ OK | 38 | - | -| qmldir | ✅ OK | 7 | - | -| qss | ✅ OK | 31 | - | -| r | ✅ OK | 73 | - | -| racket | ✅ OK | 68 | - | -| raku | ✅ OK | 52 | - | -| reg | ✅ OK | 9 | - | -| regexp | ✅ OK | 34 | - | -| rel | ✅ OK | 17 | - | -| riscv | ✅ OK | 36 | - | -| ruby | ✅ OK | 154 | - | -| rust | ✅ OK | 89 | - | -| sas | ✅ OK | 32 | - | -| sass | ✅ OK | 67 | - | -| scala | ✅ OK | 108 | - | -| scheme | ✅ OK | 34 | - | -| scss | ✅ OK | 104 | - | -| shaderlab | ✅ OK | 38 | - | -| shellscript | ✅ OK | 146 | - | -| shellsession | ✅ OK | 2 | - | -| smalltalk | ✅ OK | 31 | - | -| solidity | ✅ OK | 102 | - | -| soy | ✅ OK | 45 | - | -| sparql | ✅ OK | 4 | - | -| sql | ✅ OK | 67 | - | -| ssh-config | ✅ OK | 12 | - | -| stylus | ✅ OK | 107 | - | -| svelte | ✅ OK | 83 | - | -| system-verilog | ✅ OK | 102 | - | -| systemd | ✅ OK | 32 | - | -| tasl | ✅ OK | 22 | - | -| tcl | ✅ OK | 33 | - | -| templ | ✅ OK | 74 | - | -| terraform | ✅ OK | 62 | - | -| tex | ✅ OK | 38 | - | -| toml | ✅ OK | 40 | - | -| ts-tags | ✅ OK | - | - | -| tsv | ✅ OK | 1 | - | -| tsx | ✅ OK | 376 | - | -| turtle | ✅ OK | 15 | - | -| twig | ✅ OK | 94 | - | -| typescript | ✅ OK | 363 | - | -| typespec | ✅ OK | 80 | - | -| typst | ✅ OK | 78 | - | -| v | ✅ OK | 76 | - | -| vala | ✅ OK | 20 | - | -| vb | ✅ OK | 34 | - | -| verilog | ✅ OK | 33 | - | -| vhdl | ✅ OK | 82 | - | -| viml | ✅ OK | 72 | - | -| vue | ✅ OK | 69 | - | -| vue-html | ✅ OK | 36 | - | -| vyper | ✅ OK | 238 | - | -| wasm | ✅ OK | 78 | - | -| wenyan | ✅ OK | 18 | - | -| wgsl | ✅ OK | 44 | - | -| wikitext | ✅ OK | 104 | - | -| wolfram | ✅ OK | 501 | - | -| xml | ✅ OK | 30 | - | -| xsl | ✅ OK | 5 | - | -| yaml | ✅ OK | 46 | - | -| zenscript | ✅ OK | 21 | - | -| zig | ✅ OK | 51 | - | -| zsh | ✅ OK | 146 | - | +| Language | Highlight Match | Patterns Parsable | Patterns Failed | +| ---------- | :-------------- | ----------------: | --------------: | +| apache | ✅ OK | 60 | - | +| bat | ✅ OK | 58 | - | +| bibtex | ✅ OK | 19 | - | +| codeowners | ✅ OK | 4 | - | +| coq | ✅ OK | 25 | - | +| csv | ✅ OK | 1 | - | +| cue | ✅ OK | 85 | - | +| diff | ✅ OK | 16 | - | +| docker | ✅ OK | 7 | - | +| dotenv | ✅ OK | 9 | - | +| genie | ✅ OK | 20 | - | +| gherkin | ✅ OK | 16 | - | +| gleam | ✅ OK | 26 | - | +| hlsl | ✅ OK | 52 | - | +| json | ✅ OK | 19 | - | +| json5 | ✅ OK | 23 | - | +| jsonc | ✅ OK | 19 | - | +| jsonl | ✅ OK | 19 | - | +| jsonnet | ✅ OK | 33 | - | +| lean | ✅ OK | 32 | - | +| ocaml | ✅ OK | 178 | - | +| plsql | ✅ OK | 43 | - | +| prolog | ✅ OK | 26 | - | +| qmldir | ✅ OK | 7 | - | +| qss | ✅ OK | 31 | - | +| reg | ✅ OK | 9 | - | +| sas | ✅ OK | 32 | - | +| shaderlab | ✅ OK | 38 | - | +| sparql | ✅ OK | 4 | - | +| tsv | ✅ OK | 1 | - | +| turtle | ✅ OK | 15 | - | +| vala | ✅ OK | 20 | - | +| wasm | ✅ OK | 78 | - | +| wenyan | ✅ OK | 18 | - | +| wgsl | ✅ OK | 44 | - | +| xsl | ✅ OK | 5 | - | +| zenscript | ✅ OK | 21 | - | ## Mismatched Languages Languages that does not throw with the JavaScript RegExp engine, but will produce different result than the WASM engine. Please use with caution. -| Language | Highlight Match | Patterns Parsable | Patterns Failed | -| ------------ | :-------------------------------------------------------------------------------- | ----------------: | --------------: | -| angular-html | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=angular-html) | 2 | - | -| apex | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=apex) | 187 | - | -| beancount | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=beancount) | 39 | - | -| blade | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=blade) | 330 | - | -| haml | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=haml) | 64 | - | -| kusto | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=kusto) | 60 | - | -| latex | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=latex) | 183 | - | -| markdown | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=markdown) | 103 | - | -| mdc | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=mdc) | 27 | - | -| mermaid | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=mermaid) | 129 | - | -| nginx | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=nginx) | 102 | - | -| php | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=php) | 328 | - | -| po | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=po) | 23 | - | -| pug | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=pug) | 92 | - | -| rst | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=rst) | 61 | - | -| splunk | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=splunk) | 17 | - | -| stata | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=stata) | 189 | - | +| Language | Highlight Match | Patterns Parsable | Patterns Failed | +| --------- | :----------------------------------------------------------------------------- | ----------------: | --------------: | +| kusto | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=kusto) | 60 | - | +| smalltalk | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=smalltalk) | 31 | - | ## Unsupported Languages Languages that throws with the JavaScript RegExp engine (contains syntaxes that we can't polyfill yet). If you need to use these languages, please use the Oniguruma engine. -| Language | Highlight Match | Patterns Parsable | Patterns Failed | -| ---------- | :-------------------------------------------------------------------------- | ----------------: | --------------: | -| ada | ✅ OK | 199 | 1 | -| csharp | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=csharp) | 294 | 1 | -| razor | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=razor) | 83 | 2 | -| mdx | ❌ Error | 181 | - | -| purescript | ❌ Error | 68 | 4 | -| swift | ❌ Error | 302 | 4 | -| julia | ❌ Error | 90 | 5 | -| haskell | ❌ Error | 114 | 43 | +| Language | Highlight Match | Patterns Parsable | Patterns Failed | +| ------------------ | :-------------- | ----------------: | --------------: | +| cmake | ✅ OK | 22 | 1 | +| fish | ✅ OK | 21 | 1 | +| xml | ✅ OK | 29 | 1 | +| abap | ✅ OK | 47 | 2 | +| regexp | ✅ OK | 32 | 2 | +| angular-html | ❌ Error | 2 | - | +| applescript | ❌ Error | 151 | - | +| cadence | ❌ Error | 71 | - | +| erb | ❌ Error | 6 | - | +| fortran-fixed-form | ❌ Error | 6 | - | +| glsl | ❌ Error | 7 | - | +| hxml | ❌ Error | 6 | - | +| ini | ❌ Error | 11 | - | +| jison | ❌ Error | 57 | - | +| logo | ❌ Error | 9 | - | +| po | ❌ Error | 23 | - | +| qml | ❌ Error | 38 | - | +| shellsession | ❌ Error | 2 | - | +| sql | ❌ Error | 67 | - | +| ssh-config | ❌ Error | 12 | - | +| systemd | ❌ Error | 32 | - | +| ts-tags | ❌ Error | - | - | +| verilog | ❌ Error | 33 | - | +| ara | ❌ Error | 53 | 1 | +| awk | ❌ Error | 35 | 1 | +| clarity | ❌ Error | 42 | 1 | +| codeql | ❌ Error | 149 | 1 | +| desktop | ❌ Error | 15 | 1 | +| fennel | ❌ Error | 30 | 1 | +| gdshader | ❌ Error | 37 | 1 | +| hjson | ❌ Error | 54 | 1 | +| html | ❌ Error | 115 | 1 | +| pascal | ❌ Error | 22 | 1 | +| powerquery | ❌ Error | 29 | 1 | +| proto | ❌ Error | 32 | 1 | +| rel | ❌ Error | 16 | 1 | +| riscv | ❌ Error | 35 | 1 | +| tex | ❌ Error | 37 | 1 | +| typespec | ❌ Error | 79 | 1 | +| vb | ❌ Error | 33 | 1 | +| viml | ❌ Error | 71 | 1 | +| vue-html | ❌ Error | 35 | 1 | +| zig | ❌ Error | 50 | 1 | +| actionscript-3 | ❌ Error | 55 | 2 | +| apl | ❌ Error | 177 | 2 | +| cobol | ❌ Error | 136 | 2 | +| dart | ❌ Error | 69 | 2 | +| dax | ❌ Error | 21 | 2 | +| elm | ❌ Error | 65 | 2 | +| gdresource | ❌ Error | 30 | 2 | +| gnuplot | ❌ Error | 80 | 2 | +| handlebars | ❌ Error | 62 | 2 | +| hy | ❌ Error | 7 | 2 | +| luau | ❌ Error | 86 | 2 | +| narrat | ❌ Error | 32 | 2 | +| rust | ❌ Error | 87 | 2 | +| scheme | ❌ Error | 32 | 2 | +| tasl | ❌ Error | 20 | 2 | +| tcl | ❌ Error | 31 | 2 | +| toml | ❌ Error | 38 | 2 | +| vhdl | ❌ Error | 80 | 2 | +| vue | ❌ Error | 67 | 2 | +| wikitext | ❌ Error | 102 | 2 | +| wolfram | ❌ Error | 499 | 2 | +| berry | ❌ Error | 15 | 3 | +| clj | ❌ Error | 35 | 3 | +| clojure | ❌ Error | 35 | 3 | +| elixir | ❌ Error | 99 | 3 | +| erlang | ❌ Error | 144 | 3 | +| fortran-free-form | ❌ Error | 314 | 3 | +| fsharp | ❌ Error | 117 | 3 | +| haxe | ❌ Error | 172 | 3 | +| nginx | ❌ Error | 99 | 3 | +| nushell | ❌ Error | 72 | 3 | +| powershell | ❌ Error | 85 | 3 | +| prisma | ❌ Error | 23 | 3 | +| scala | ❌ Error | 105 | 3 | +| splunk | ❌ Error | 14 | 3 | +| ada | ❌ Error | 196 | 4 | +| asm | ❌ Error | 293 | 4 | +| cypher | ❌ Error | 35 | 4 | +| dream-maker | ❌ Error | 51 | 4 | +| emacs-lisp | ❌ Error | 147 | 4 | +| fluent | ❌ Error | 19 | 4 | +| fsl | ❌ Error | 26 | 4 | +| jssm | ❌ Error | 26 | 4 | +| move | ❌ Error | 113 | 4 | +| nextflow | ❌ Error | 13 | 4 | +| nim | ❌ Error | 110 | 4 | +| system-verilog | ❌ Error | 98 | 4 | +| asciidoc | ❌ Error | 257 | 5 | +| log | ❌ Error | 25 | 5 | +| matlab | ❌ Error | 72 | 5 | +| mdc | ❌ Error | 22 | 5 | +| pug | ❌ Error | 87 | 5 | +| rst | ❌ Error | 56 | 5 | +| solidity | ❌ Error | 97 | 5 | +| stylus | ❌ Error | 102 | 5 | +| bicep | ❌ Error | 22 | 6 | +| d | ❌ Error | 264 | 6 | +| http | ❌ Error | 14 | 6 | +| raku | ❌ Error | 46 | 6 | +| typst | ❌ Error | 72 | 6 | +| beancount | ❌ Error | 32 | 7 | +| c | ❌ Error | 151 | 7 | +| edge | ❌ Error | 3 | 7 | +| gdscript | ❌ Error | 86 | 7 | +| hcl | ❌ Error | 54 | 7 | +| kotlin | ❌ Error | 51 | 7 | +| lua | ❌ Error | 106 | 7 | +| r | ❌ Error | 66 | 7 | +| ruby | ❌ Error | 147 | 7 | +| hack | ❌ Error | 293 | 8 | +| julia | ❌ Error | 87 | 8 | +| latex | ❌ Error | 175 | 8 | +| mdx | ❌ Error | 173 | 8 | +| objective-c | ❌ Error | 209 | 8 | +| terraform | ❌ Error | 54 | 8 | +| graphql | ❌ Error | 54 | 9 | +| swift | ❌ Error | 297 | 9 | +| yaml | ❌ Error | 37 | 9 | +| coffee | ❌ Error | 110 | 10 | +| haml | ❌ Error | 54 | 10 | +| jinja | ❌ Error | 25 | 10 | +| make | ❌ Error | 38 | 10 | +| sass | ❌ Error | 57 | 10 | +| css | ❌ Error | 130 | 11 | +| markdown | ❌ Error | 92 | 11 | +| marko | ❌ Error | 70 | 11 | +| objective-cpp | ❌ Error | 286 | 11 | +| puppet | ❌ Error | 48 | 11 | +| razor | ❌ Error | 74 | 11 | +| v | ❌ Error | 65 | 11 | +| groovy | ❌ Error | 120 | 13 | +| postcss | ❌ Error | 34 | 13 | +| purescript | ❌ Error | 59 | 13 | +| twig | ❌ Error | 81 | 13 | +| astro | ❌ Error | 45 | 14 | +| crystal | ❌ Error | 126 | 14 | +| glimmer-js | ❌ Error | 60 | 14 | +| glimmer-ts | ❌ Error | 60 | 14 | +| java | ❌ Error | 126 | 15 | +| perl | ❌ Error | 140 | 15 | +| scss | ❌ Error | 87 | 17 | +| svelte | ❌ Error | 66 | 17 | +| bash | ❌ Error | 128 | 18 | +| less | ❌ Error | 262 | 18 | +| shellscript | ❌ Error | 128 | 18 | +| zsh | ❌ Error | 128 | 18 | +| nix | ❌ Error | 61 | 19 | +| soy | ❌ Error | 20 | 25 | +| templ | ❌ Error | 48 | 26 | +| stata | ❌ Error | 162 | 27 | +| php | ❌ Error | 300 | 28 | +| racket | ❌ Error | 40 | 28 | +| apex | ❌ Error | 157 | 30 | +| go | ❌ Error | 85 | 30 | +| common-lisp | ❌ Error | 26 | 31 | +| blade | ❌ Error | 298 | 32 | +| mermaid | ❌ Error | 95 | 34 | +| liquid | ❌ Error | 33 | 36 | +| mojo | ❌ Error | 177 | 36 | +| python | ❌ Error | 177 | 41 | +| vyper | ❌ Error | 197 | 41 | +| ballerina | ❌ Error | 184 | 46 | +| haskell | ❌ Error | 105 | 52 | +| csharp | ❌ Error | 238 | 57 | +| imba | ❌ Error | 184 | 57 | +| angular-ts | ❌ Error | 300 | 63 | +| javascript | ❌ Error | 313 | 63 | +| jsx | ❌ Error | 313 | 63 | +| tsx | ❌ Error | 313 | 63 | +| typescript | ❌ Error | 300 | 63 | +| cpp | ❌ Error | 124 | 96 | diff --git a/package.json b/package.json index 3b1002ae..403e19f9 100644 --- a/package.json +++ b/package.json @@ -52,6 +52,7 @@ "picocolors": "catalog:", "pnpm": "catalog:", "prettier": "catalog:", + "regex": "^4.2.1", "regex-utilities": "^2.3.0", "rimraf": "catalog:", "rollup": "catalog:", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1e32193d..fe2900bc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -371,6 +371,9 @@ importers: prettier: specifier: 'catalog:' version: 3.3.3 + regex: + specifier: ^4.2.1 + version: 4.2.1 regex-utilities: specifier: ^2.3.0 version: 2.3.0 diff --git a/scripts/report-engine-js-compat.ts b/scripts/report-engine-js-compat.ts index fb1739de..1bdf225d 100644 --- a/scripts/report-engine-js-compat.ts +++ b/scripts/report-engine-js-compat.ts @@ -6,9 +6,38 @@ import fs from 'node:fs/promises' import process from 'node:process' import { bundledLanguages, createHighlighter, createJavaScriptRegexEngine } from 'shiki' import c from 'picocolors' +import { rewrite } from 'regex' +import { onigurumaToRegexp } from 'oniguruma-to-js' import { version } from '../package.json' -const engine = createJavaScriptRegexEngine() +const engine = createJavaScriptRegexEngine({ + regexConstructor: (pattern) => { + pattern = pattern + .replace(/\\￿/g, '\\G') + .replace(/\(\{\)/g, '(\\{)') + + const rewritten = rewrite(pattern, { + flags: 'dgm', + unicodeSetsPlugin: null, + disable: { + n: true, + v: true, + x: true, + }, + }) + + try { + return onigurumaToRegexp(rewritten.expression, { + flags: rewritten.flags, + ignoreContiguousAnchors: true, + }) + } + catch (e) { + console.error({ pattern, rewritten }) + throw e + } + }, +}) export interface ReportItem { lang: string From aad33b44ad8c6008e2470b38825af05cd3fa4c54 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Fri, 6 Sep 2024 06:08:01 +0200 Subject: [PATCH 4/9] chore: update --- docs/references/engine-js-compat.md | 452 ++++++++++++++-------------- package.json | 3 +- packages/core/package.json | 2 +- pnpm-lock.yaml | 25 +- pnpm-workspace.yaml | 1 + scripts/report-engine-js-compat.ts | 2 +- 6 files changed, 240 insertions(+), 245 deletions(-) diff --git a/docs/references/engine-js-compat.md b/docs/references/engine-js-compat.md index ac510604..70b46b74 100644 --- a/docs/references/engine-js-compat.md +++ b/docs/references/engine-js-compat.md @@ -1,6 +1,6 @@ # JavaScript RegExp Engine Compatibility References -> Genreated on Thursday, September 5, 2024 +> Genreated on Friday, September 6, 2024 > > Version `1.16.2` > @@ -8,243 +8,243 @@ ## Report Summary -| | Count | -| :-------------- | -------------------------------: | -| Total Languages | 213 | -| Fully Supported | [37](#fully-supported-languages) | -| Mismatched | [2](#mismatched-languages) | -| Unsupported | [174](#unsupported-languages) | +| | Count | +| :-------------- | --------------------------------: | +| Total Languages | 213 | +| Fully Supported | [132](#fully-supported-languages) | +| Mismatched | [45](#mismatched-languages) | +| Unsupported | [36](#unsupported-languages) | ## Fully Supported Languages Languages that works with the JavaScript RegExp engine, and will produce the same result as the WASM engine. -| Language | Highlight Match | Patterns Parsable | Patterns Failed | -| ---------- | :-------------- | ----------------: | --------------: | -| apache | ✅ OK | 60 | - | -| bat | ✅ OK | 58 | - | -| bibtex | ✅ OK | 19 | - | -| codeowners | ✅ OK | 4 | - | -| coq | ✅ OK | 25 | - | -| csv | ✅ OK | 1 | - | -| cue | ✅ OK | 85 | - | -| diff | ✅ OK | 16 | - | -| docker | ✅ OK | 7 | - | -| dotenv | ✅ OK | 9 | - | -| genie | ✅ OK | 20 | - | -| gherkin | ✅ OK | 16 | - | -| gleam | ✅ OK | 26 | - | -| hlsl | ✅ OK | 52 | - | -| json | ✅ OK | 19 | - | -| json5 | ✅ OK | 23 | - | -| jsonc | ✅ OK | 19 | - | -| jsonl | ✅ OK | 19 | - | -| jsonnet | ✅ OK | 33 | - | -| lean | ✅ OK | 32 | - | -| ocaml | ✅ OK | 178 | - | -| plsql | ✅ OK | 43 | - | -| prolog | ✅ OK | 26 | - | -| qmldir | ✅ OK | 7 | - | -| qss | ✅ OK | 31 | - | -| reg | ✅ OK | 9 | - | -| sas | ✅ OK | 32 | - | -| shaderlab | ✅ OK | 38 | - | -| sparql | ✅ OK | 4 | - | -| tsv | ✅ OK | 1 | - | -| turtle | ✅ OK | 15 | - | -| vala | ✅ OK | 20 | - | -| wasm | ✅ OK | 78 | - | -| wenyan | ✅ OK | 18 | - | -| wgsl | ✅ OK | 44 | - | -| xsl | ✅ OK | 5 | - | -| zenscript | ✅ OK | 21 | - | +| Language | Highlight Match | Patterns Parsable | Patterns Failed | +| -------------- | :-------------- | ----------------: | --------------: | +| abap | ✅ OK | 49 | - | +| apache | ✅ OK | 60 | - | +| apl | ✅ OK | 179 | - | +| applescript | ✅ OK | 151 | - | +| asciidoc | ✅ OK | 262 | - | +| asm | ✅ OK | 297 | - | +| astro | ✅ OK | 59 | - | +| awk | ✅ OK | 36 | - | +| bat | ✅ OK | 58 | - | +| berry | ✅ OK | 18 | - | +| bibtex | ✅ OK | 19 | - | +| bicep | ✅ OK | 28 | - | +| clarity | ✅ OK | 43 | - | +| clj | ✅ OK | 38 | - | +| clojure | ✅ OK | 38 | - | +| cmake | ✅ OK | 23 | - | +| cobol | ✅ OK | 138 | - | +| codeowners | ✅ OK | 4 | - | +| codeql | ✅ OK | 150 | - | +| common-lisp | ✅ OK | 57 | - | +| coq | ✅ OK | 25 | - | +| css | ✅ OK | 141 | - | +| csv | ✅ OK | 1 | - | +| cue | ✅ OK | 85 | - | +| cypher | ✅ OK | 39 | - | +| d | ✅ OK | 270 | - | +| dart | ✅ OK | 71 | - | +| dax | ✅ OK | 23 | - | +| desktop | ✅ OK | 16 | - | +| diff | ✅ OK | 16 | - | +| docker | ✅ OK | 7 | - | +| dotenv | ✅ OK | 9 | - | +| dream-maker | ✅ OK | 55 | - | +| elm | ✅ OK | 67 | - | +| fennel | ✅ OK | 31 | - | +| fish | ✅ OK | 22 | - | +| fluent | ✅ OK | 23 | - | +| fsharp | ✅ OK | 120 | - | +| fsl | ✅ OK | 30 | - | +| gdresource | ✅ OK | 32 | - | +| gdscript | ✅ OK | 93 | - | +| gdshader | ✅ OK | 38 | - | +| genie | ✅ OK | 20 | - | +| gherkin | ✅ OK | 16 | - | +| gleam | ✅ OK | 26 | - | +| glimmer-js | ✅ OK | 74 | - | +| glimmer-ts | ✅ OK | 74 | - | +| graphql | ✅ OK | 63 | - | +| groovy | ✅ OK | 133 | - | +| handlebars | ✅ OK | 64 | - | +| hcl | ✅ OK | 61 | - | +| hjson | ✅ OK | 55 | - | +| hlsl | ✅ OK | 52 | - | +| http | ✅ OK | 20 | - | +| hxml | ✅ OK | 6 | - | +| hy | ✅ OK | 9 | - | +| jinja | ✅ OK | 35 | - | +| jison | ✅ OK | 57 | - | +| json | ✅ OK | 19 | - | +| json5 | ✅ OK | 23 | - | +| jsonc | ✅ OK | 19 | - | +| jsonl | ✅ OK | 19 | - | +| jsonnet | ✅ OK | 33 | - | +| jssm | ✅ OK | 30 | - | +| lean | ✅ OK | 32 | - | +| less | ✅ OK | 280 | - | +| liquid | ✅ OK | 69 | - | +| log | ✅ OK | 30 | - | +| luau | ✅ OK | 88 | - | +| make | ✅ OK | 48 | - | +| marko | ✅ OK | 81 | - | +| matlab | ✅ OK | 77 | - | +| mojo | ✅ OK | 213 | - | +| move | ✅ OK | 118 | - | +| narrat | ✅ OK | 34 | - | +| nextflow | ✅ OK | 17 | - | +| nim | ✅ OK | 114 | - | +| nix | ✅ OK | 80 | - | +| nushell | ✅ OK | 75 | - | +| ocaml | ✅ OK | 178 | - | +| pascal | ✅ OK | 23 | - | +| plsql | ✅ OK | 43 | - | +| postcss | ✅ OK | 47 | - | +| powerquery | ✅ OK | 30 | - | +| prisma | ✅ OK | 26 | - | +| prolog | ✅ OK | 26 | - | +| proto | ✅ OK | 33 | - | +| puppet | ✅ OK | 59 | - | +| python | ✅ OK | 218 | - | +| qmldir | ✅ OK | 7 | - | +| qss | ✅ OK | 31 | - | +| racket | ✅ OK | 68 | - | +| reg | ✅ OK | 9 | - | +| regexp | ✅ OK | 34 | - | +| rel | ✅ OK | 17 | - | +| rust | ✅ OK | 89 | - | +| sas | ✅ OK | 32 | - | +| sass | ✅ OK | 67 | - | +| scss | ✅ OK | 104 | - | +| shaderlab | ✅ OK | 38 | - | +| shellsession | ✅ OK | 2 | - | +| solidity | ✅ OK | 102 | - | +| soy | ✅ OK | 45 | - | +| sparql | ✅ OK | 4 | - | +| sql | ✅ OK | 67 | - | +| stylus | ✅ OK | 107 | - | +| system-verilog | ✅ OK | 102 | - | +| systemd | ✅ OK | 32 | - | +| tasl | ✅ OK | 22 | - | +| tcl | ✅ OK | 33 | - | +| terraform | ✅ OK | 62 | - | +| tex | ✅ OK | 38 | - | +| ts-tags | ✅ OK | - | - | +| tsv | ✅ OK | 1 | - | +| turtle | ✅ OK | 15 | - | +| twig | ✅ OK | 94 | - | +| typespec | ✅ OK | 80 | - | +| typst | ✅ OK | 78 | - | +| v | ✅ OK | 76 | - | +| vala | ✅ OK | 20 | - | +| vb | ✅ OK | 34 | - | +| vhdl | ✅ OK | 82 | - | +| vue-html | ✅ OK | 36 | - | +| vyper | ✅ OK | 238 | - | +| wasm | ✅ OK | 78 | - | +| wenyan | ✅ OK | 18 | - | +| wgsl | ✅ OK | 44 | - | +| wikitext | ✅ OK | 104 | - | +| xml | ✅ OK | 30 | - | +| xsl | ✅ OK | 5 | - | +| zenscript | ✅ OK | 21 | - | +| zig | ✅ OK | 51 | - | ## Mismatched Languages Languages that does not throw with the JavaScript RegExp engine, but will produce different result than the WASM engine. Please use with caution. -| Language | Highlight Match | Patterns Parsable | Patterns Failed | -| --------- | :----------------------------------------------------------------------------- | ----------------: | --------------: | -| kusto | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=kusto) | 60 | - | -| smalltalk | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=smalltalk) | 31 | - | +| Language | Highlight Match | Patterns Parsable | Patterns Failed | +| ------------------ | :-------------------------------------------------------------------------------------- | ----------------: | --------------: | +| angular-html | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=angular-html) | 2 | - | +| ara | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=ara) | 54 | - | +| bash | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=bash) | 146 | - | +| beancount | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=beancount) | 39 | - | +| c | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=c) | 158 | - | +| cadence | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=cadence) | 71 | - | +| edge | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=edge) | 10 | - | +| elixir | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=elixir) | 102 | - | +| fortran-fixed-form | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=fortran-fixed-form) | 6 | - | +| fortran-free-form | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=fortran-free-form) | 317 | - | +| glsl | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=glsl) | 7 | - | +| gnuplot | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=gnuplot) | 82 | - | +| go | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=go) | 115 | - | +| hack | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=hack) | 301 | - | +| html | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=html) | 116 | - | +| ini | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=ini) | 11 | - | +| java | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=java) | 141 | - | +| kusto | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=kusto) | 60 | - | +| latex | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=latex) | 183 | - | +| logo | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=logo) | 9 | - | +| lua | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=lua) | 113 | - | +| mermaid | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=mermaid) | 129 | - | +| nginx | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=nginx) | 102 | - | +| objective-c | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=objective-c) | 217 | - | +| objective-cpp | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=objective-cpp) | 297 | - | +| perl | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=perl) | 155 | - | +| php | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=php) | 328 | - | +| po | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=po) | 23 | - | +| pug | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=pug) | 92 | - | +| qml | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=qml) | 38 | - | +| r | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=r) | 73 | - | +| raku | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=raku) | 52 | - | +| riscv | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=riscv) | 36 | - | +| scala | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=scala) | 108 | - | +| scheme | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=scheme) | 34 | - | +| shellscript | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=shellscript) | 146 | - | +| smalltalk | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=smalltalk) | 31 | - | +| splunk | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=splunk) | 17 | - | +| ssh-config | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=ssh-config) | 12 | - | +| svelte | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=svelte) | 83 | - | +| templ | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=templ) | 74 | - | +| toml | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=toml) | 40 | - | +| verilog | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=verilog) | 33 | - | +| vue | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=vue) | 69 | - | +| zsh | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=zsh) | 146 | - | ## Unsupported Languages Languages that throws with the JavaScript RegExp engine (contains syntaxes that we can't polyfill yet). If you need to use these languages, please use the Oniguruma engine. -| Language | Highlight Match | Patterns Parsable | Patterns Failed | -| ------------------ | :-------------- | ----------------: | --------------: | -| cmake | ✅ OK | 22 | 1 | -| fish | ✅ OK | 21 | 1 | -| xml | ✅ OK | 29 | 1 | -| abap | ✅ OK | 47 | 2 | -| regexp | ✅ OK | 32 | 2 | -| angular-html | ❌ Error | 2 | - | -| applescript | ❌ Error | 151 | - | -| cadence | ❌ Error | 71 | - | -| erb | ❌ Error | 6 | - | -| fortran-fixed-form | ❌ Error | 6 | - | -| glsl | ❌ Error | 7 | - | -| hxml | ❌ Error | 6 | - | -| ini | ❌ Error | 11 | - | -| jison | ❌ Error | 57 | - | -| logo | ❌ Error | 9 | - | -| po | ❌ Error | 23 | - | -| qml | ❌ Error | 38 | - | -| shellsession | ❌ Error | 2 | - | -| sql | ❌ Error | 67 | - | -| ssh-config | ❌ Error | 12 | - | -| systemd | ❌ Error | 32 | - | -| ts-tags | ❌ Error | - | - | -| verilog | ❌ Error | 33 | - | -| ara | ❌ Error | 53 | 1 | -| awk | ❌ Error | 35 | 1 | -| clarity | ❌ Error | 42 | 1 | -| codeql | ❌ Error | 149 | 1 | -| desktop | ❌ Error | 15 | 1 | -| fennel | ❌ Error | 30 | 1 | -| gdshader | ❌ Error | 37 | 1 | -| hjson | ❌ Error | 54 | 1 | -| html | ❌ Error | 115 | 1 | -| pascal | ❌ Error | 22 | 1 | -| powerquery | ❌ Error | 29 | 1 | -| proto | ❌ Error | 32 | 1 | -| rel | ❌ Error | 16 | 1 | -| riscv | ❌ Error | 35 | 1 | -| tex | ❌ Error | 37 | 1 | -| typespec | ❌ Error | 79 | 1 | -| vb | ❌ Error | 33 | 1 | -| viml | ❌ Error | 71 | 1 | -| vue-html | ❌ Error | 35 | 1 | -| zig | ❌ Error | 50 | 1 | -| actionscript-3 | ❌ Error | 55 | 2 | -| apl | ❌ Error | 177 | 2 | -| cobol | ❌ Error | 136 | 2 | -| dart | ❌ Error | 69 | 2 | -| dax | ❌ Error | 21 | 2 | -| elm | ❌ Error | 65 | 2 | -| gdresource | ❌ Error | 30 | 2 | -| gnuplot | ❌ Error | 80 | 2 | -| handlebars | ❌ Error | 62 | 2 | -| hy | ❌ Error | 7 | 2 | -| luau | ❌ Error | 86 | 2 | -| narrat | ❌ Error | 32 | 2 | -| rust | ❌ Error | 87 | 2 | -| scheme | ❌ Error | 32 | 2 | -| tasl | ❌ Error | 20 | 2 | -| tcl | ❌ Error | 31 | 2 | -| toml | ❌ Error | 38 | 2 | -| vhdl | ❌ Error | 80 | 2 | -| vue | ❌ Error | 67 | 2 | -| wikitext | ❌ Error | 102 | 2 | -| wolfram | ❌ Error | 499 | 2 | -| berry | ❌ Error | 15 | 3 | -| clj | ❌ Error | 35 | 3 | -| clojure | ❌ Error | 35 | 3 | -| elixir | ❌ Error | 99 | 3 | -| erlang | ❌ Error | 144 | 3 | -| fortran-free-form | ❌ Error | 314 | 3 | -| fsharp | ❌ Error | 117 | 3 | -| haxe | ❌ Error | 172 | 3 | -| nginx | ❌ Error | 99 | 3 | -| nushell | ❌ Error | 72 | 3 | -| powershell | ❌ Error | 85 | 3 | -| prisma | ❌ Error | 23 | 3 | -| scala | ❌ Error | 105 | 3 | -| splunk | ❌ Error | 14 | 3 | -| ada | ❌ Error | 196 | 4 | -| asm | ❌ Error | 293 | 4 | -| cypher | ❌ Error | 35 | 4 | -| dream-maker | ❌ Error | 51 | 4 | -| emacs-lisp | ❌ Error | 147 | 4 | -| fluent | ❌ Error | 19 | 4 | -| fsl | ❌ Error | 26 | 4 | -| jssm | ❌ Error | 26 | 4 | -| move | ❌ Error | 113 | 4 | -| nextflow | ❌ Error | 13 | 4 | -| nim | ❌ Error | 110 | 4 | -| system-verilog | ❌ Error | 98 | 4 | -| asciidoc | ❌ Error | 257 | 5 | -| log | ❌ Error | 25 | 5 | -| matlab | ❌ Error | 72 | 5 | -| mdc | ❌ Error | 22 | 5 | -| pug | ❌ Error | 87 | 5 | -| rst | ❌ Error | 56 | 5 | -| solidity | ❌ Error | 97 | 5 | -| stylus | ❌ Error | 102 | 5 | -| bicep | ❌ Error | 22 | 6 | -| d | ❌ Error | 264 | 6 | -| http | ❌ Error | 14 | 6 | -| raku | ❌ Error | 46 | 6 | -| typst | ❌ Error | 72 | 6 | -| beancount | ❌ Error | 32 | 7 | -| c | ❌ Error | 151 | 7 | -| edge | ❌ Error | 3 | 7 | -| gdscript | ❌ Error | 86 | 7 | -| hcl | ❌ Error | 54 | 7 | -| kotlin | ❌ Error | 51 | 7 | -| lua | ❌ Error | 106 | 7 | -| r | ❌ Error | 66 | 7 | -| ruby | ❌ Error | 147 | 7 | -| hack | ❌ Error | 293 | 8 | -| julia | ❌ Error | 87 | 8 | -| latex | ❌ Error | 175 | 8 | -| mdx | ❌ Error | 173 | 8 | -| objective-c | ❌ Error | 209 | 8 | -| terraform | ❌ Error | 54 | 8 | -| graphql | ❌ Error | 54 | 9 | -| swift | ❌ Error | 297 | 9 | -| yaml | ❌ Error | 37 | 9 | -| coffee | ❌ Error | 110 | 10 | -| haml | ❌ Error | 54 | 10 | -| jinja | ❌ Error | 25 | 10 | -| make | ❌ Error | 38 | 10 | -| sass | ❌ Error | 57 | 10 | -| css | ❌ Error | 130 | 11 | -| markdown | ❌ Error | 92 | 11 | -| marko | ❌ Error | 70 | 11 | -| objective-cpp | ❌ Error | 286 | 11 | -| puppet | ❌ Error | 48 | 11 | -| razor | ❌ Error | 74 | 11 | -| v | ❌ Error | 65 | 11 | -| groovy | ❌ Error | 120 | 13 | -| postcss | ❌ Error | 34 | 13 | -| purescript | ❌ Error | 59 | 13 | -| twig | ❌ Error | 81 | 13 | -| astro | ❌ Error | 45 | 14 | -| crystal | ❌ Error | 126 | 14 | -| glimmer-js | ❌ Error | 60 | 14 | -| glimmer-ts | ❌ Error | 60 | 14 | -| java | ❌ Error | 126 | 15 | -| perl | ❌ Error | 140 | 15 | -| scss | ❌ Error | 87 | 17 | -| svelte | ❌ Error | 66 | 17 | -| bash | ❌ Error | 128 | 18 | -| less | ❌ Error | 262 | 18 | -| shellscript | ❌ Error | 128 | 18 | -| zsh | ❌ Error | 128 | 18 | -| nix | ❌ Error | 61 | 19 | -| soy | ❌ Error | 20 | 25 | -| templ | ❌ Error | 48 | 26 | -| stata | ❌ Error | 162 | 27 | -| php | ❌ Error | 300 | 28 | -| racket | ❌ Error | 40 | 28 | -| apex | ❌ Error | 157 | 30 | -| go | ❌ Error | 85 | 30 | -| common-lisp | ❌ Error | 26 | 31 | -| blade | ❌ Error | 298 | 32 | -| mermaid | ❌ Error | 95 | 34 | -| liquid | ❌ Error | 33 | 36 | -| mojo | ❌ Error | 177 | 36 | -| python | ❌ Error | 177 | 41 | -| vyper | ❌ Error | 197 | 41 | -| ballerina | ❌ Error | 184 | 46 | -| haskell | ❌ Error | 105 | 52 | -| csharp | ❌ Error | 238 | 57 | -| imba | ❌ Error | 184 | 57 | -| angular-ts | ❌ Error | 300 | 63 | -| javascript | ❌ Error | 313 | 63 | -| jsx | ❌ Error | 313 | 63 | -| tsx | ❌ Error | 313 | 63 | -| typescript | ❌ Error | 300 | 63 | -| cpp | ❌ Error | 124 | 96 | +| Language | Highlight Match | Patterns Parsable | Patterns Failed | +| -------------- | :------------------------------------------------------------------------------ | ----------------: | --------------: | +| ada | ✅ OK | 199 | 1 | +| angular-ts | ✅ OK | 362 | 1 | +| ballerina | ✅ OK | 229 | 1 | +| haxe | ✅ OK | 174 | 1 | +| imba | ✅ OK | 240 | 1 | +| tsx | ✅ OK | 375 | 1 | +| typescript | ✅ OK | 362 | 1 | +| coffee | ✅ OK | 118 | 2 | +| erlang | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=erlang) | 146 | 1 | +| javascript | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=javascript) | 375 | 1 | +| jsx | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=jsx) | 375 | 1 | +| blade | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=blade) | 328 | 2 | +| stata | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=stata) | 187 | 2 | +| erb | ❌ Error | 6 | - | +| haml | ❌ Error | 64 | - | +| actionscript-3 | ❌ Error | 56 | 1 | +| crystal | ❌ Error | 139 | 1 | +| emacs-lisp | ❌ Error | 150 | 1 | +| mdc | ❌ Error | 26 | 1 | +| powershell | ❌ Error | 87 | 1 | +| rst | ❌ Error | 60 | 1 | +| ruby | ❌ Error | 153 | 1 | +| viml | ❌ Error | 71 | 1 | +| wolfram | ❌ Error | 500 | 1 | +| razor | ❌ Error | 82 | 3 | +| yaml | ❌ Error | 42 | 4 | +| julia | ❌ Error | 90 | 5 | +| swift | ❌ Error | 301 | 5 | +| kotlin | ❌ Error | 52 | 6 | +| mdx | ❌ Error | 173 | 8 | +| markdown | ❌ Error | 94 | 9 | +| purescript | ❌ Error | 63 | 9 | +| apex | ❌ Error | 173 | 14 | +| csharp | ❌ Error | 263 | 32 | +| haskell | ❌ Error | 113 | 44 | +| cpp | ❌ Error | 135 | 85 | diff --git a/package.json b/package.json index 403e19f9..5807698f 100644 --- a/package.json +++ b/package.json @@ -52,8 +52,7 @@ "picocolors": "catalog:", "pnpm": "catalog:", "prettier": "catalog:", - "regex": "^4.2.1", - "regex-utilities": "^2.3.0", + "regex": "catalog:", "rimraf": "catalog:", "rollup": "catalog:", "rollup-plugin-copy": "catalog:", diff --git a/packages/core/package.json b/packages/core/package.json index 092a30a3..4a22e1d0 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -72,7 +72,7 @@ "devDependencies": { "hast-util-to-html": "catalog:", "oniguruma-to-js": "catalog:", - "regex": "^4.2.1", + "regex": "catalog:", "vscode-oniguruma": "catalog:" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fb9effe6..a96d1b46 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -153,6 +153,9 @@ catalogs: prettier: specifier: ^3.3.3 version: 3.3.3 + regex: + specifier: ^4.3.0 + version: 4.3.0 rehype-raw: specifier: ^7.0.0 version: 7.0.0 @@ -372,11 +375,8 @@ importers: specifier: 'catalog:' version: 3.3.3 regex: - specifier: ^4.2.1 - version: 4.2.1 - regex-utilities: - specifier: ^2.3.0 - version: 2.3.0 + specifier: 'catalog:' + version: 4.3.0 rimraf: specifier: 'catalog:' version: 6.0.1 @@ -523,8 +523,8 @@ importers: specifier: 'catalog:' version: 0.3.3 regex: - specifier: ^4.2.1 - version: 4.2.1 + specifier: 'catalog:' + version: 4.3.0 vscode-oniguruma: specifier: ^1.7.0 version: 1.7.0 @@ -4566,11 +4566,8 @@ packages: resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - regex-utilities@2.3.0: - resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} - - regex@4.2.1: - resolution: {integrity: sha512-tAFCIhw48reUoPbQAcNptAe/ANkKvZRd1cgi1PYGQ8MHbZK6eH4wOC6hTn+eGAJqq3rSqyef4EklG6IIFXibJQ==} + regex@4.3.0: + resolution: {integrity: sha512-LxRRWTIanOzrUmn/f/k49VQ2ZadlC4RomrrBnI6mpT5UJxLTKIJ6SZPXuLCj7qmT4oWQNQXySeiP7GFWXR/b6w==} regexp-ast-analysis@0.7.1: resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} @@ -9887,9 +9884,7 @@ snapshots: dependencies: '@eslint-community/regexpp': 4.11.0 - regex-utilities@2.3.0: {} - - regex@4.2.1: {} + regex@4.3.0: {} regexp-ast-analysis@0.7.1: dependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index d157de83..35be610f 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -56,6 +56,7 @@ catalog: pinia: ^2.2.2 pnpm: ^9.9.0 prettier: ^3.3.3 + regex: ^4.3.0 rehype-raw: ^7.0.0 rehype-stringify: ^10.0.0 remark-parse: ^11.0.0 diff --git a/scripts/report-engine-js-compat.ts b/scripts/report-engine-js-compat.ts index 3e09d4d7..ac76c38c 100644 --- a/scripts/report-engine-js-compat.ts +++ b/scripts/report-engine-js-compat.ts @@ -28,7 +28,7 @@ const engine = createJavaScriptRegexEngine({ try { return onigurumaToRegexp(rewritten.expression, { - flags: rewritten.flags, + flags: 'dgm', ignoreContiguousAnchors: true, }) } From 007f612dae685783bdcf7146e75eebe11b5da3d7 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Mon, 9 Sep 2024 15:03:18 +0200 Subject: [PATCH 5/9] chore: use local `oniguruma-to-js` for test when presents --- vitest.config.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/vitest.config.ts b/vitest.config.ts index d5bed936..77c2d24c 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -1,8 +1,22 @@ +import { existsSync } from 'node:fs' +import { fileURLToPath } from 'node:url' import tsconfigPaths from 'vite-tsconfig-paths' import { defineConfig } from 'vitest/config' import { wasmPlugin } from './packages/core/rollup.config.mjs' +const localOnigurumaToJs = fileURLToPath(new URL('../oniguruma-to-js/src/index.ts', import.meta.url)) + export default defineConfig({ + resolve: { + alias: { + // For local developement + ...existsSync(localOnigurumaToJs) + ? { + 'oniguruma-to-js': localOnigurumaToJs, + } + : {}, + }, + }, plugins: [ wasmPlugin(), tsconfigPaths(), From 387589f65c7108b49a1443f53bcfd7ef4025afa0 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Mon, 9 Sep 2024 15:07:24 +0200 Subject: [PATCH 6/9] chore: update deps --- pnpm-lock.yaml | 429 ++++++++++++++++++++------------------------ pnpm-workspace.yaml | 14 +- 2 files changed, 198 insertions(+), 245 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a96d1b46..6302965e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,8 +7,8 @@ settings: catalogs: default: '@antfu/eslint-config': - specifier: ^3.3.2 - version: 3.3.2 + specifier: ^3.4.1 + version: 3.4.1 '@antfu/ni': specifier: ^0.23.0 version: 0.23.0 @@ -79,8 +79,8 @@ catalogs: specifier: ^5.3.0 version: 5.3.0 eslint: - specifier: ^9.9.1 - version: 9.9.1 + specifier: ^9.10.0 + version: 9.10.0 eslint-plugin-format: specifier: ^0.1.2 version: 0.1.2 @@ -154,8 +154,8 @@ catalogs: specifier: ^3.3.3 version: 3.3.3 regex: - specifier: ^4.3.0 - version: 4.3.0 + specifier: ^4.3.2 + version: 4.3.2 rehype-raw: specifier: ^7.0.0 version: 7.0.0 @@ -196,17 +196,17 @@ catalogs: specifier: ^0.16.7 version: 0.16.7 tm-grammars: - specifier: ^1.17.17 - version: 1.17.17 + specifier: ^1.17.18 + version: 1.17.18 tm-themes: specifier: ^1.8.1 version: 1.8.1 twoslash: - specifier: ^0.2.10 - version: 0.2.10 + specifier: ^0.2.11 + version: 0.2.11 twoslash-vue: - specifier: ^0.2.10 - version: 0.2.10 + specifier: ^0.2.11 + version: 0.2.11 typescript: specifier: ^5.5.4 version: 5.5.4 @@ -244,8 +244,8 @@ catalogs: specifier: ^2.1.6 version: 2.1.6 wrangler: - specifier: ^3.74.0 - version: 3.74.0 + specifier: ^3.75.0 + version: 3.75.0 overrides: '@shikijs/compat': workspace:* @@ -268,7 +268,7 @@ importers: devDependencies: '@antfu/eslint-config': specifier: 'catalog:' - version: 3.3.2(@typescript-eslint/utils@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4))(@vue/compiler-sfc@3.5.3)(eslint-plugin-format@0.1.2(eslint@9.9.1(jiti@1.21.6)))(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)(vitest@2.0.5(@types/node@22.5.4)(terser@5.27.0)) + version: 3.4.1(@typescript-eslint/utils@8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4))(@vue/compiler-sfc@3.5.3)(eslint-plugin-format@0.1.2(eslint@9.10.0(jiti@1.21.6)))(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4)(vitest@2.0.5(@types/node@22.5.4)(terser@5.27.0)) '@antfu/ni': specifier: 'catalog:' version: 0.23.0 @@ -328,10 +328,10 @@ importers: version: 9.5.2(magicast@0.3.4) eslint: specifier: 'catalog:' - version: 9.9.1(jiti@1.21.6) + version: 9.10.0(jiti@1.21.6) eslint-plugin-format: specifier: 'catalog:' - version: 0.1.2(eslint@9.9.1(jiti@1.21.6)) + version: 0.1.2(eslint@9.10.0(jiti@1.21.6)) esno: specifier: 'catalog:' version: 4.7.0 @@ -376,7 +376,7 @@ importers: version: 3.3.3 regex: specifier: 'catalog:' - version: 4.3.0 + version: 4.3.2 rimraf: specifier: 'catalog:' version: 6.0.1 @@ -427,7 +427,7 @@ importers: version: 2.1.6(typescript@5.5.4) wrangler: specifier: 'catalog:' - version: 3.74.0 + version: 3.75.0 docs: dependencies: @@ -524,7 +524,7 @@ importers: version: 0.3.3 regex: specifier: 'catalog:' - version: 4.3.0 + version: 4.3.2 vscode-oniguruma: specifier: ^1.7.0 version: 1.7.0 @@ -615,7 +615,7 @@ importers: devDependencies: tm-grammars: specifier: 'catalog:' - version: 1.17.17 + version: 1.17.18 tm-themes: specifier: 'catalog:' version: 1.8.1 @@ -636,7 +636,7 @@ importers: version: link:../core twoslash: specifier: 'catalog:' - version: 0.2.10(typescript@5.5.4) + version: 0.2.11(typescript@5.5.4) devDependencies: '@iconify-json/carbon': specifier: 'catalog:' @@ -676,10 +676,10 @@ importers: version: link:../shiki twoslash: specifier: 'catalog:' - version: 0.2.10(typescript@5.5.4) + version: 0.2.11(typescript@5.5.4) twoslash-vue: specifier: 'catalog:' - version: 0.2.10(typescript@5.5.4) + version: 0.2.11(typescript@5.5.4) vue: specifier: 'catalog:' version: 3.5.3(typescript@5.5.4) @@ -756,15 +756,15 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@antfu/eslint-config@3.3.2': - resolution: {integrity: sha512-cHWbGP7CccmuUz/Aj6KORuLitkxuj2sONX+4PN+fvfJKTkVc2WXs9xlhO4AxhF1CU4Pn05M07OjDBXErqEmHzw==} + '@antfu/eslint-config@3.4.1': + resolution: {integrity: sha512-2tfeSToffqK1cD5kvT9ApncMH8J62l2MGHCrbSdQzjrvDwcBbfQQtaio2OaaAvSFxH8oyFjV3gDhRil9QzlvqA==} hasBin: true peerDependencies: '@eslint-react/eslint-plugin': ^1.5.8 '@prettier/plugin-xml': ^3.4.1 '@unocss/eslint-plugin': '>=0.50.0' astro-eslint-parser: ^1.0.2 - eslint: ^9.5.0 + eslint: ^9.10.0 eslint-plugin-astro: ^1.2.0 eslint-plugin-format: '>=0.1.0' eslint-plugin-react-hooks: ^4.6.0 @@ -1049,10 +1049,6 @@ packages: '@dprint/toml@0.6.2': resolution: {integrity: sha512-Mk5unEANsL/L+WHYU3NpDXt1ARU5bNU5k5OZELxaJodDycKG6RoRnSlZXpW6+7UN2PSnETAFVUdKrh937ZwtHA==} - '@es-joy/jsdoccomment@0.43.1': - resolution: {integrity: sha512-I238eDtOolvCuvtxrnqtlBaw0BwdQuYqK7eA6XIonicMdOOOb75mqdIzkGDUbS04+1Di007rgm9snFRNeVrOog==} - engines: {node: '>=16'} - '@es-joy/jsdoccomment@0.48.0': resolution: {integrity: sha512-G6QUWIcC+KvSwXNsJyDTHvqUdNoAVJPPgkc3+Uk4WBKqZvoXhlvazOgm9aL0HwihJLQf0l+tOE2UFzXBqCqgDw==} engines: {node: '>=16'} @@ -1503,14 +1499,18 @@ packages: resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.9.1': - resolution: {integrity: sha512-xIDQRsfg5hNBqHz04H1R3scSVwmI+KUbqjsQKHKQ1DAUSaUjYPReZZmS/5PNiKu1fUvzDd6H7DEDKACSEhu+TQ==} + '@eslint/js@9.10.0': + resolution: {integrity: sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.4': resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/plugin-kit@0.1.0': + resolution: {integrity: sha512-autAXT203ixhqei9xt+qkYOvY8l6LAFIdT2UXc/RPNeUVfqRF1BV94GTJyVPFKT8nFM6MyVJhjLj9E8JWvf5zQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@fastify/busboy@2.1.0': resolution: {integrity: sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==} engines: {node: '>=14'} @@ -1628,7 +1628,7 @@ packages: resolution: {integrity: sha512-lpA3RZ9PdIG7qqhEfv79tBffNaoDuukFDrmhLqg9ifv99u/ehn+lOg30x2zmhf8AQqQUZaMk/B9fZraQ6/acDQ==} engines: {node: '>=14.0.0'} peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + rollup: ^4.21.2 peerDependenciesMeta: rollup: optional: true @@ -1805,9 +1805,6 @@ packages: '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - '@types/eslint@8.56.10': - resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} - '@types/eslint@9.6.1': resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} @@ -1905,10 +1902,6 @@ packages: typescript: optional: true - '@typescript-eslint/types@7.18.0': - resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} - engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@8.4.0': resolution: {integrity: sha512-T1RB3KQdskh9t3v/qv7niK6P8yvn7ja1mS7QK7XfRVL6wtZ8/mFs/FHf4fKvTA0rKnqnYxl/uHFNbnEt0phgbw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2041,8 +2034,8 @@ packages: '@vitest/eslint-plugin@1.1.0': resolution: {integrity: sha512-Ur80Y27Wbw8gFHJ3cv6vypcjXmrx6QHfw+q435h6Q2L+tf+h4Xf5pJTCL4YU/Jps9EVeggQxS85OcUZU7sdXRw==} peerDependencies: - '@typescript-eslint/utils': ^8.3.0 - eslint: ^9.9.1 + '@typescript-eslint/utils': '>= 8.0' + eslint: '>= 8.57.0' typescript: '>= 5.0.0' vitest: '*' peerDependenciesMeta: @@ -2107,14 +2100,6 @@ packages: '@vue/devtools-shared@7.3.8': resolution: {integrity: sha512-1NiJbn7Yp47nPDWhFZyEKpB2+5/+7JYv8IQnU0ccMrgslPR2dL7u1DIyI7mLqy4HN1ll36gQy0k8GqBYSFgZJw==} - '@vue/language-core@2.0.29': - resolution: {integrity: sha512-o2qz9JPjhdoVj8D2+9bDXbaI4q2uZTHQA/dbyZT4Bj1FR9viZxDJnLcKVHfxdn6wsOzRgpqIzJEEmSSvgMvDTQ==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@vue/language-core@2.1.6': resolution: {integrity: sha512-MW569cSky9R/ooKMh6xa2g1D0AtRKbL56k83dzus/bx//RDJk24RHWkMzbAlXjMdDNyxAaagKPRquBIxkxlCkg==} peerDependencies: @@ -2912,10 +2897,10 @@ packages: eslint-config-flat-gitignore@0.3.0: resolution: {integrity: sha512-0Ndxo4qGhcewjTzw52TK06Mc00aDtHNTdeeW2JfONgDcLkRO/n/BteMRzNVpLQYxdCC/dFEilfM9fjjpGIJ9Og==} peerDependencies: - eslint: ^9.9.1 + eslint: ^9.5.0 - eslint-flat-config-utils@0.3.1: - resolution: {integrity: sha512-eFT3EaoJN1hlN97xw4FIEX//h0TiFUobgl2l5uLkIwhVN9ahGq95Pbs+i1/B5UACA78LO3rco3JzuvxLdTUOPA==} + eslint-flat-config-utils@0.4.0: + resolution: {integrity: sha512-kfd5kQZC+BMO0YwTol6zxjKX1zAsk8JfSAopbKjKqmENTJcew+yBejuvccAg37cvOrN0Mh+DVbeyznuNWEjt4A==} eslint-formatting-reporter@0.0.0: resolution: {integrity: sha512-k9RdyTqxqN/wNYVaTk/ds5B5rA8lgoAmvceYN7bcZMBwU7TuXx5ntewJv81eF3pIL/CiJE+pJZm36llG8yhyyw==} @@ -2938,8 +2923,8 @@ packages: peerDependencies: eslint: '*' - eslint-plugin-command@0.2.3: - resolution: {integrity: sha512-1bBYNfjZg60N2ZpLV5ATYSYyueIJ+zl5yKrTs0UFDdnyu07dNSZ7Xplnc+Wb6SXTdc1sIaoIrnuyhvztcltX6A==} + eslint-plugin-command@0.2.4: + resolution: {integrity: sha512-IbZnQY21pOanbcCh/bAWWl+1BynV2HuDE75URMmk/28Tdn+PM7CoKeibXtPGrL7KQdIEHMgUEnRwwI8qmggVMA==} peerDependencies: eslint: '*' @@ -2988,12 +2973,12 @@ packages: resolution: {integrity: sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==} engines: {node: '>=5.0.0'} - eslint-plugin-perfectionist@3.4.0: - resolution: {integrity: sha512-vXyd1sFg3H/7aKgBUie62bA6E0EN3Dh0LCD5r4vR/IYtTljxOnyckI1AV0Arw4eYjC/W9T1X04Pl2mdLsdWtMA==} + eslint-plugin-perfectionist@3.5.0: + resolution: {integrity: sha512-vwDNuxlAlbZJ3DjHo6GnfZrmMlJBLFrkOLBV/rYvVnLFD+x54u9VyJcGOfJ2DK9d1cd3a/C/vtBrbBNgAC6Mrg==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: astro-eslint-parser: ^1.0.2 - eslint: ^9.9.1 + eslint: '>=8.0.0' svelte: '>=3.0.0' svelte-eslint-parser: ^0.41.0 vue-eslint-parser: '>=9.0.0' @@ -3068,8 +3053,8 @@ packages: resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.9.1: - resolution: {integrity: sha512-dHvhrbfr4xFQ9/dq+jcVneZMyRYLjggWjk6RVsIiHsP8Rz6yZ8LvZ//iU4TrZF+SXWG+JkNF2OyiZRvzgRDqMg==} + eslint@9.10.0: + resolution: {integrity: sha512-Y4D0IgtBZfOcOUAIQTSXBKoNGfY0REGqHJG6+Q81vNippW5YlKjHFj4soMxamKK1NXHUWuBZTLdU3Km+L/pcHw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -3579,10 +3564,6 @@ packages: jsbn@1.1.0: resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} - jsdoc-type-pratt-parser@4.0.0: - resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} - engines: {node: '>=12.0.0'} - jsdoc-type-pratt-parser@4.1.0: resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} engines: {node: '>=12.0.0'} @@ -4566,8 +4547,8 @@ packages: resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - regex@4.3.0: - resolution: {integrity: sha512-LxRRWTIanOzrUmn/f/k49VQ2ZadlC4RomrrBnI6mpT5UJxLTKIJ6SZPXuLCj7qmT4oWQNQXySeiP7GFWXR/b6w==} + regex@4.3.2: + resolution: {integrity: sha512-kK/AA3A9K6q2js89+VMymcboLOlF5lZRCYJv3gzszXFHBr6kO6qLGzbm+UIugBEV8SMMKCTR59txoY6ctRHYVw==} regexp-ast-analysis@0.7.1: resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} @@ -4974,8 +4955,8 @@ packages: resolution: {integrity: sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA==} engines: {node: '>=14.0.0'} - tm-grammars@1.17.17: - resolution: {integrity: sha512-sBQqiFENP4Td4jMyw3ijldPOZ0pAid8ud6lyNK/t/QlHbKi52nNDBi/YXusmW3Zx9KuuqtwBtVELmuzuo73/8Q==} + tm-grammars@1.17.18: + resolution: {integrity: sha512-0iCyCjx9ImMPv+BrItHUa30QGz9F1KxGxwF9NYRO2Fr0kW6of+0ebKLLb1WZinafc3exoeKk6PPJ3x0gvCGziA==} tm-themes@1.8.1: resolution: {integrity: sha512-jTUfDRn5TysYhkxxEWBQDo1C1n4yoHcnfNNqXkVxIMGQCgal/9poGuMBsfbnZCPEmFVcN2rtrUwaOJ8s2hVQXg==} @@ -5030,16 +5011,16 @@ packages: engines: {node: '>=18.0.0'} hasBin: true - twoslash-protocol@0.2.10: - resolution: {integrity: sha512-9sFHqPUexUPKAZM2e0dbAh0Hwkxd5fqSKWWMQ8Ah+O6MeYEUDGuWUUw5aUfS6veAqo+24VfV3xF0Vj0ZbH7x3Q==} + twoslash-protocol@0.2.11: + resolution: {integrity: sha512-rp+nkOWbKfJnBTDZtnIaBGjnU+4CaMhqu6db2UU7byU96rH8X4hao4BOxYw6jdZc85Lhv5pOfcjgfHeQyLzndQ==} - twoslash-vue@0.2.10: - resolution: {integrity: sha512-h3ShboisgFDGJCp+Y8q7oNY7jUmZmsWwh8CGXsSfK8R10aUeA2QvjZoWeqDfc7VKQPhrjwaUv8mVXuQOk8QWww==} + twoslash-vue@0.2.11: + resolution: {integrity: sha512-wBwIwG0PRuv5V+1DD4Zno1j6MnaCbaY/ELops7oKSoMBTIQL720iRXppyldVVoYvti2caUA97T36XhZXHpjQyA==} peerDependencies: typescript: '*' - twoslash@0.2.10: - resolution: {integrity: sha512-EBnFbGSD7VtPYCYe8tnx5wDzTfQ2wDS10J89BnTr97Zu2+wRD/CskNLPvvDEZofb37mLSce/YuTP8GgGj+vSOg==} + twoslash@0.2.11: + resolution: {integrity: sha512-392Qkcu5sD2hROLZ+XPywChreDGJ8Yu5nnK/Moxfti/R39q0Q39MaV7iHjz92B5qucyjsQFnKMdYIzafX5T8dg==} peerDependencies: typescript: '*' @@ -5366,8 +5347,8 @@ packages: engines: {node: '>=16'} hasBin: true - wrangler@3.74.0: - resolution: {integrity: sha512-wmtb+tQrgb61yN+Wa2JM98G1Gt4tKFRYPw6xwuyzUcA74L+Dum1A13w22/manl9Gq1jA3dPn+7UzT5sYEVHRog==} + wrangler@3.75.0: + resolution: {integrity: sha512-CitNuNj0O1z6qbonUXmpUbxeWpU3nx28Kc4ZT33tMdeooQssb063Ie7+ZCdfS3kPhRHSwGdtOV22xFYytHON8w==} engines: {node: '>=16.17.0'} hasBin: true peerDependencies: @@ -5549,46 +5530,46 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@antfu/eslint-config@3.3.2(@typescript-eslint/utils@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4))(@vue/compiler-sfc@3.5.3)(eslint-plugin-format@0.1.2(eslint@9.9.1(jiti@1.21.6)))(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)(vitest@2.0.5(@types/node@22.5.4)(terser@5.27.0))': + '@antfu/eslint-config@3.4.1(@typescript-eslint/utils@8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4))(@vue/compiler-sfc@3.5.3)(eslint-plugin-format@0.1.2(eslint@9.10.0(jiti@1.21.6)))(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4)(vitest@2.0.5(@types/node@22.5.4)(terser@5.27.0))': dependencies: '@antfu/install-pkg': 0.4.1 '@clack/prompts': 0.7.0 - '@eslint-community/eslint-plugin-eslint-comments': 4.4.0(eslint@9.9.1(jiti@1.21.6)) - '@stylistic/eslint-plugin': 2.7.2(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/eslint-plugin': 8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/parser': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) - '@vitest/eslint-plugin': 1.1.0(@typescript-eslint/utils@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)(vitest@2.0.5(@types/node@22.5.4)(terser@5.27.0)) - eslint: 9.9.1(jiti@1.21.6) - eslint-config-flat-gitignore: 0.3.0(eslint@9.9.1(jiti@1.21.6)) - eslint-flat-config-utils: 0.3.1 - eslint-merge-processors: 0.1.0(eslint@9.9.1(jiti@1.21.6)) - eslint-plugin-antfu: 2.5.0(eslint@9.9.1(jiti@1.21.6)) - eslint-plugin-command: 0.2.3(eslint@9.9.1(jiti@1.21.6)) - eslint-plugin-import-x: 4.2.1(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) - eslint-plugin-jsdoc: 50.2.2(eslint@9.9.1(jiti@1.21.6)) - eslint-plugin-jsonc: 2.16.0(eslint@9.9.1(jiti@1.21.6)) - eslint-plugin-markdown: 5.1.0(eslint@9.9.1(jiti@1.21.6)) - eslint-plugin-n: 17.10.2(eslint@9.9.1(jiti@1.21.6)) + '@eslint-community/eslint-plugin-eslint-comments': 4.4.0(eslint@9.10.0(jiti@1.21.6)) + '@stylistic/eslint-plugin': 2.7.2(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/eslint-plugin': 8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/parser': 8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) + '@vitest/eslint-plugin': 1.1.0(@typescript-eslint/utils@8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4)(vitest@2.0.5(@types/node@22.5.4)(terser@5.27.0)) + eslint: 9.10.0(jiti@1.21.6) + eslint-config-flat-gitignore: 0.3.0(eslint@9.10.0(jiti@1.21.6)) + eslint-flat-config-utils: 0.4.0 + eslint-merge-processors: 0.1.0(eslint@9.10.0(jiti@1.21.6)) + eslint-plugin-antfu: 2.5.0(eslint@9.10.0(jiti@1.21.6)) + eslint-plugin-command: 0.2.4(eslint@9.10.0(jiti@1.21.6)) + eslint-plugin-import-x: 4.2.1(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) + eslint-plugin-jsdoc: 50.2.2(eslint@9.10.0(jiti@1.21.6)) + eslint-plugin-jsonc: 2.16.0(eslint@9.10.0(jiti@1.21.6)) + eslint-plugin-markdown: 5.1.0(eslint@9.10.0(jiti@1.21.6)) + eslint-plugin-n: 17.10.2(eslint@9.10.0(jiti@1.21.6)) eslint-plugin-no-only-tests: 3.3.0 - eslint-plugin-perfectionist: 3.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)(vue-eslint-parser@9.4.3(eslint@9.9.1(jiti@1.21.6))) - eslint-plugin-regexp: 2.6.0(eslint@9.9.1(jiti@1.21.6)) - eslint-plugin-toml: 0.11.1(eslint@9.9.1(jiti@1.21.6)) - eslint-plugin-unicorn: 55.0.0(eslint@9.9.1(jiti@1.21.6)) - eslint-plugin-unused-imports: 4.1.3(@typescript-eslint/eslint-plugin@8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.1(jiti@1.21.6)) - eslint-plugin-vue: 9.28.0(eslint@9.9.1(jiti@1.21.6)) - eslint-plugin-yml: 1.14.0(eslint@9.9.1(jiti@1.21.6)) - eslint-processor-vue-blocks: 0.1.2(@vue/compiler-sfc@3.5.3)(eslint@9.9.1(jiti@1.21.6)) + eslint-plugin-perfectionist: 3.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4)(vue-eslint-parser@9.4.3(eslint@9.10.0(jiti@1.21.6))) + eslint-plugin-regexp: 2.6.0(eslint@9.10.0(jiti@1.21.6)) + eslint-plugin-toml: 0.11.1(eslint@9.10.0(jiti@1.21.6)) + eslint-plugin-unicorn: 55.0.0(eslint@9.10.0(jiti@1.21.6)) + eslint-plugin-unused-imports: 4.1.3(@typescript-eslint/eslint-plugin@8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.10.0(jiti@1.21.6)) + eslint-plugin-vue: 9.28.0(eslint@9.10.0(jiti@1.21.6)) + eslint-plugin-yml: 1.14.0(eslint@9.10.0(jiti@1.21.6)) + eslint-processor-vue-blocks: 0.1.2(@vue/compiler-sfc@3.5.3)(eslint@9.10.0(jiti@1.21.6)) globals: 15.9.0 jsonc-eslint-parser: 2.4.0 local-pkg: 0.5.0 parse-gitignore: 2.0.0 picocolors: 1.1.0 toml-eslint-parser: 0.10.0 - vue-eslint-parser: 9.4.3(eslint@9.9.1(jiti@1.21.6)) + vue-eslint-parser: 9.4.3(eslint@9.10.0(jiti@1.21.6)) yaml-eslint-parser: 1.2.3 yargs: 17.7.2 optionalDependencies: - eslint-plugin-format: 0.1.2(eslint@9.9.1(jiti@1.21.6)) + eslint-plugin-format: 0.1.2(eslint@9.10.0(jiti@1.21.6)) transitivePeerDependencies: - '@typescript-eslint/utils' - '@vue/compiler-sfc' @@ -5891,15 +5872,6 @@ snapshots: '@dprint/toml@0.6.2': {} - '@es-joy/jsdoccomment@0.43.1': - dependencies: - '@types/eslint': 8.56.10 - '@types/estree': 1.0.5 - '@typescript-eslint/types': 7.18.0 - comment-parser: 1.4.1 - esquery: 1.6.0 - jsdoc-type-pratt-parser: 4.0.0 - '@es-joy/jsdoccomment@0.48.0': dependencies: comment-parser: 1.4.1 @@ -6120,15 +6092,15 @@ snapshots: '@esbuild/win32-x64@0.21.5': optional: true - '@eslint-community/eslint-plugin-eslint-comments@4.4.0(eslint@9.9.1(jiti@1.21.6))': + '@eslint-community/eslint-plugin-eslint-comments@4.4.0(eslint@9.10.0(jiti@1.21.6))': dependencies: escape-string-regexp: 4.0.0 - eslint: 9.9.1(jiti@1.21.6) + eslint: 9.10.0(jiti@1.21.6) ignore: 5.3.1 - '@eslint-community/eslint-utils@4.4.0(eslint@9.9.1(jiti@1.21.6))': + '@eslint-community/eslint-utils@4.4.0(eslint@9.10.0(jiti@1.21.6))': dependencies: - eslint: 9.9.1(jiti@1.21.6) + eslint: 9.10.0(jiti@1.21.6) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.11.0': {} @@ -6157,10 +6129,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.9.1': {} + '@eslint/js@9.10.0': {} '@eslint/object-schema@2.1.4': {} + '@eslint/plugin-kit@0.1.0': + dependencies: + levn: 0.4.1 + '@fastify/busboy@2.1.0': {} '@floating-ui/core@1.6.0': @@ -6459,11 +6435,11 @@ snapshots: '@shikijs/vscode-textmate@9.2.0': {} - '@stylistic/eslint-plugin@2.7.2(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': + '@stylistic/eslint-plugin@2.7.2(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4)': dependencies: '@types/eslint': 9.6.1 - '@typescript-eslint/utils': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) - eslint: 9.9.1(jiti@1.21.6) + '@typescript-eslint/utils': 8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) + eslint: 9.10.0(jiti@1.21.6) eslint-visitor-keys: 4.0.0 espree: 10.1.0 estraverse: 5.3.0 @@ -6486,11 +6462,6 @@ snapshots: dependencies: '@types/ms': 0.7.34 - '@types/eslint@8.56.10': - dependencies: - '@types/estree': 1.0.5 - '@types/json-schema': 7.0.15 - '@types/eslint@9.6.1': dependencies: '@types/estree': 1.0.5 @@ -6557,15 +6528,15 @@ snapshots: '@types/web-bluetooth@0.0.20': {} - '@typescript-eslint/eslint-plugin@8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/eslint-plugin@8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/parser': 8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) '@typescript-eslint/scope-manager': 8.4.0 - '@typescript-eslint/type-utils': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/utils': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/type-utils': 8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/utils': 8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) '@typescript-eslint/visitor-keys': 8.4.0 - eslint: 9.9.1(jiti@1.21.6) + eslint: 9.10.0(jiti@1.21.6) graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -6575,14 +6546,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/parser@8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4)': dependencies: '@typescript-eslint/scope-manager': 8.4.0 '@typescript-eslint/types': 8.4.0 '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) '@typescript-eslint/visitor-keys': 8.4.0 debug: 4.3.6 - eslint: 9.9.1(jiti@1.21.6) + eslint: 9.10.0(jiti@1.21.6) optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: @@ -6593,10 +6564,10 @@ snapshots: '@typescript-eslint/types': 8.4.0 '@typescript-eslint/visitor-keys': 8.4.0 - '@typescript-eslint/type-utils@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/type-utils@8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4)': dependencies: '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) - '@typescript-eslint/utils': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/utils': 8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) debug: 4.3.6 ts-api-utils: 1.3.0(typescript@5.5.4) optionalDependencies: @@ -6605,8 +6576,6 @@ snapshots: - eslint - supports-color - '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/types@8.4.0': {} '@typescript-eslint/typescript-estree@8.4.0(typescript@5.5.4)': @@ -6624,13 +6593,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/utils@8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0(jiti@1.21.6)) '@typescript-eslint/scope-manager': 8.4.0 '@typescript-eslint/types': 8.4.0 '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) - eslint: 9.9.1(jiti@1.21.6) + eslint: 9.10.0(jiti@1.21.6) transitivePeerDependencies: - supports-color - typescript @@ -6832,11 +6801,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/eslint-plugin@1.1.0(@typescript-eslint/utils@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)(vitest@2.0.5(@types/node@22.5.4)(terser@5.27.0))': + '@vitest/eslint-plugin@1.1.0(@typescript-eslint/utils@8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4)(vitest@2.0.5(@types/node@22.5.4)(terser@5.27.0))': dependencies: - eslint: 9.9.1(jiti@1.21.6) + eslint: 9.10.0(jiti@1.21.6) optionalDependencies: - '@typescript-eslint/utils': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/utils': 8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) typescript: 5.5.4 vitest: 2.0.5(@types/node@22.5.4)(terser@5.27.0) @@ -6940,19 +6909,6 @@ snapshots: dependencies: rfdc: 1.4.1 - '@vue/language-core@2.0.29(typescript@5.5.4)': - dependencies: - '@volar/language-core': 2.4.1 - '@vue/compiler-dom': 3.5.3 - '@vue/compiler-vue2': 2.7.16 - '@vue/shared': 3.5.3 - computeds: 0.0.1 - minimatch: 9.0.5 - muggle-string: 0.4.1 - path-browserify: 1.0.1 - optionalDependencies: - typescript: 5.5.4 - '@vue/language-core@2.1.6(typescript@5.5.4)': dependencies: '@volar/language-core': 2.4.1 @@ -7836,29 +7792,28 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-compat-utils@0.1.2(eslint@9.9.1(jiti@1.21.6)): + eslint-compat-utils@0.1.2(eslint@9.10.0(jiti@1.21.6)): dependencies: - eslint: 9.9.1(jiti@1.21.6) + eslint: 9.10.0(jiti@1.21.6) - eslint-compat-utils@0.5.0(eslint@9.9.1(jiti@1.21.6)): + eslint-compat-utils@0.5.0(eslint@9.10.0(jiti@1.21.6)): dependencies: - eslint: 9.9.1(jiti@1.21.6) + eslint: 9.10.0(jiti@1.21.6) semver: 7.6.3 - eslint-config-flat-gitignore@0.3.0(eslint@9.9.1(jiti@1.21.6)): + eslint-config-flat-gitignore@0.3.0(eslint@9.10.0(jiti@1.21.6)): dependencies: '@eslint/compat': 1.1.1 - eslint: 9.9.1(jiti@1.21.6) + eslint: 9.10.0(jiti@1.21.6) find-up-simple: 1.0.0 - eslint-flat-config-utils@0.3.1: + eslint-flat-config-utils@0.4.0: dependencies: - '@types/eslint': 9.6.1 pathe: 1.1.2 - eslint-formatting-reporter@0.0.0(eslint@9.9.1(jiti@1.21.6)): + eslint-formatting-reporter@0.0.0(eslint@9.10.0(jiti@1.21.6)): dependencies: - eslint: 9.9.1(jiti@1.21.6) + eslint: 9.10.0(jiti@1.21.6) prettier-linter-helpers: 1.0.0 eslint-import-resolver-node@0.3.9: @@ -7869,46 +7824,46 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-merge-processors@0.1.0(eslint@9.9.1(jiti@1.21.6)): + eslint-merge-processors@0.1.0(eslint@9.10.0(jiti@1.21.6)): dependencies: - eslint: 9.9.1(jiti@1.21.6) + eslint: 9.10.0(jiti@1.21.6) eslint-parser-plain@0.1.0: {} - eslint-plugin-antfu@2.5.0(eslint@9.9.1(jiti@1.21.6)): + eslint-plugin-antfu@2.5.0(eslint@9.10.0(jiti@1.21.6)): dependencies: '@antfu/utils': 0.7.10 - eslint: 9.9.1(jiti@1.21.6) + eslint: 9.10.0(jiti@1.21.6) - eslint-plugin-command@0.2.3(eslint@9.9.1(jiti@1.21.6)): + eslint-plugin-command@0.2.4(eslint@9.10.0(jiti@1.21.6)): dependencies: - '@es-joy/jsdoccomment': 0.43.1 - eslint: 9.9.1(jiti@1.21.6) + '@es-joy/jsdoccomment': 0.48.0 + eslint: 9.10.0(jiti@1.21.6) - eslint-plugin-es-x@7.5.0(eslint@9.9.1(jiti@1.21.6)): + eslint-plugin-es-x@7.5.0(eslint@9.10.0(jiti@1.21.6)): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0(jiti@1.21.6)) '@eslint-community/regexpp': 4.11.0 - eslint: 9.9.1(jiti@1.21.6) - eslint-compat-utils: 0.1.2(eslint@9.9.1(jiti@1.21.6)) + eslint: 9.10.0(jiti@1.21.6) + eslint-compat-utils: 0.1.2(eslint@9.10.0(jiti@1.21.6)) - eslint-plugin-format@0.1.2(eslint@9.9.1(jiti@1.21.6)): + eslint-plugin-format@0.1.2(eslint@9.10.0(jiti@1.21.6)): dependencies: '@dprint/formatter': 0.3.0 '@dprint/markdown': 0.17.1 '@dprint/toml': 0.6.2 - eslint: 9.9.1(jiti@1.21.6) - eslint-formatting-reporter: 0.0.0(eslint@9.9.1(jiti@1.21.6)) + eslint: 9.10.0(jiti@1.21.6) + eslint-formatting-reporter: 0.0.0(eslint@9.10.0(jiti@1.21.6)) eslint-parser-plain: 0.1.0 prettier: 3.3.3 synckit: 0.9.1 - eslint-plugin-import-x@4.2.1(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4): + eslint-plugin-import-x@4.2.1(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4): dependencies: - '@typescript-eslint/utils': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/utils': 8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) debug: 4.3.6 doctrine: 3.0.0 - eslint: 9.9.1(jiti@1.21.6) + eslint: 9.10.0(jiti@1.21.6) eslint-import-resolver-node: 0.3.9 get-tsconfig: 4.7.5 is-glob: 4.0.3 @@ -7920,14 +7875,14 @@ snapshots: - supports-color - typescript - eslint-plugin-jsdoc@50.2.2(eslint@9.9.1(jiti@1.21.6)): + eslint-plugin-jsdoc@50.2.2(eslint@9.10.0(jiti@1.21.6)): dependencies: '@es-joy/jsdoccomment': 0.48.0 are-docs-informative: 0.0.2 comment-parser: 1.4.1 debug: 4.3.6 escape-string-regexp: 4.0.0 - eslint: 9.9.1(jiti@1.21.6) + eslint: 9.10.0(jiti@1.21.6) espree: 10.1.0 esquery: 1.6.0 parse-imports: 2.1.1 @@ -7937,30 +7892,30 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-jsonc@2.16.0(eslint@9.9.1(jiti@1.21.6)): + eslint-plugin-jsonc@2.16.0(eslint@9.10.0(jiti@1.21.6)): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) - eslint: 9.9.1(jiti@1.21.6) - eslint-compat-utils: 0.5.0(eslint@9.9.1(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0(jiti@1.21.6)) + eslint: 9.10.0(jiti@1.21.6) + eslint-compat-utils: 0.5.0(eslint@9.10.0(jiti@1.21.6)) espree: 9.6.1 graphemer: 1.4.0 jsonc-eslint-parser: 2.4.0 natural-compare: 1.4.0 synckit: 0.6.2 - eslint-plugin-markdown@5.1.0(eslint@9.9.1(jiti@1.21.6)): + eslint-plugin-markdown@5.1.0(eslint@9.10.0(jiti@1.21.6)): dependencies: - eslint: 9.9.1(jiti@1.21.6) + eslint: 9.10.0(jiti@1.21.6) mdast-util-from-markdown: 0.8.5 transitivePeerDependencies: - supports-color - eslint-plugin-n@17.10.2(eslint@9.9.1(jiti@1.21.6)): + eslint-plugin-n@17.10.2(eslint@9.10.0(jiti@1.21.6)): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0(jiti@1.21.6)) enhanced-resolve: 5.17.0 - eslint: 9.9.1(jiti@1.21.6) - eslint-plugin-es-x: 7.5.0(eslint@9.9.1(jiti@1.21.6)) + eslint: 9.10.0(jiti@1.21.6) + eslint-plugin-es-x: 7.5.0(eslint@9.10.0(jiti@1.21.6)) get-tsconfig: 4.7.5 globals: 15.9.0 ignore: 5.3.1 @@ -7969,48 +7924,48 @@ snapshots: eslint-plugin-no-only-tests@3.3.0: {} - eslint-plugin-perfectionist@3.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)(vue-eslint-parser@9.4.3(eslint@9.9.1(jiti@1.21.6))): + eslint-plugin-perfectionist@3.5.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4)(vue-eslint-parser@9.4.3(eslint@9.10.0(jiti@1.21.6))): dependencies: '@typescript-eslint/types': 8.4.0 - '@typescript-eslint/utils': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) - eslint: 9.9.1(jiti@1.21.6) + '@typescript-eslint/utils': 8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) + eslint: 9.10.0(jiti@1.21.6) minimatch: 9.0.5 natural-compare-lite: 1.4.0 optionalDependencies: - vue-eslint-parser: 9.4.3(eslint@9.9.1(jiti@1.21.6)) + vue-eslint-parser: 9.4.3(eslint@9.10.0(jiti@1.21.6)) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-regexp@2.6.0(eslint@9.9.1(jiti@1.21.6)): + eslint-plugin-regexp@2.6.0(eslint@9.10.0(jiti@1.21.6)): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0(jiti@1.21.6)) '@eslint-community/regexpp': 4.11.0 comment-parser: 1.4.1 - eslint: 9.9.1(jiti@1.21.6) + eslint: 9.10.0(jiti@1.21.6) jsdoc-type-pratt-parser: 4.1.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 - eslint-plugin-toml@0.11.1(eslint@9.9.1(jiti@1.21.6)): + eslint-plugin-toml@0.11.1(eslint@9.10.0(jiti@1.21.6)): dependencies: debug: 4.3.6 - eslint: 9.9.1(jiti@1.21.6) - eslint-compat-utils: 0.5.0(eslint@9.9.1(jiti@1.21.6)) + eslint: 9.10.0(jiti@1.21.6) + eslint-compat-utils: 0.5.0(eslint@9.10.0(jiti@1.21.6)) lodash: 4.17.21 toml-eslint-parser: 0.10.0 transitivePeerDependencies: - supports-color - eslint-plugin-unicorn@55.0.0(eslint@9.9.1(jiti@1.21.6)): + eslint-plugin-unicorn@55.0.0(eslint@9.10.0(jiti@1.21.6)): dependencies: '@babel/helper-validator-identifier': 7.24.7 - '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0(jiti@1.21.6)) ci-info: 4.0.0 clean-regexp: 1.0.0 core-js-compat: 3.37.1 - eslint: 9.9.1(jiti@1.21.6) + eslint: 9.10.0(jiti@1.21.6) esquery: 1.6.0 globals: 15.9.0 indent-string: 4.0.0 @@ -8023,41 +7978,41 @@ snapshots: semver: 7.6.3 strip-indent: 3.0.0 - eslint-plugin-unused-imports@4.1.3(@typescript-eslint/eslint-plugin@8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.1(jiti@1.21.6)): + eslint-plugin-unused-imports@4.1.3(@typescript-eslint/eslint-plugin@8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.10.0(jiti@1.21.6)): dependencies: - eslint: 9.9.1(jiti@1.21.6) + eslint: 9.10.0(jiti@1.21.6) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/eslint-plugin': 8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4))(eslint@9.10.0(jiti@1.21.6))(typescript@5.5.4) - eslint-plugin-vue@9.28.0(eslint@9.9.1(jiti@1.21.6)): + eslint-plugin-vue@9.28.0(eslint@9.10.0(jiti@1.21.6)): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) - eslint: 9.9.1(jiti@1.21.6) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0(jiti@1.21.6)) + eslint: 9.10.0(jiti@1.21.6) globals: 13.24.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.0.15 semver: 7.6.3 - vue-eslint-parser: 9.4.3(eslint@9.9.1(jiti@1.21.6)) + vue-eslint-parser: 9.4.3(eslint@9.10.0(jiti@1.21.6)) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color - eslint-plugin-yml@1.14.0(eslint@9.9.1(jiti@1.21.6)): + eslint-plugin-yml@1.14.0(eslint@9.10.0(jiti@1.21.6)): dependencies: debug: 4.3.6 - eslint: 9.9.1(jiti@1.21.6) - eslint-compat-utils: 0.5.0(eslint@9.9.1(jiti@1.21.6)) + eslint: 9.10.0(jiti@1.21.6) + eslint-compat-utils: 0.5.0(eslint@9.10.0(jiti@1.21.6)) lodash: 4.17.21 natural-compare: 1.4.0 yaml-eslint-parser: 1.2.3 transitivePeerDependencies: - supports-color - eslint-processor-vue-blocks@0.1.2(@vue/compiler-sfc@3.5.3)(eslint@9.9.1(jiti@1.21.6)): + eslint-processor-vue-blocks@0.1.2(@vue/compiler-sfc@3.5.3)(eslint@9.10.0(jiti@1.21.6)): dependencies: '@vue/compiler-sfc': 3.5.3 - eslint: 9.9.1(jiti@1.21.6) + eslint: 9.10.0(jiti@1.21.6) eslint-scope@7.2.2: dependencies: @@ -8073,13 +8028,14 @@ snapshots: eslint-visitor-keys@4.0.0: {} - eslint@9.9.1(jiti@1.21.6): + eslint@9.10.0(jiti@1.21.6): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0(jiti@1.21.6)) '@eslint-community/regexpp': 4.11.0 '@eslint/config-array': 0.18.0 '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.9.1 + '@eslint/js': 9.10.0 + '@eslint/plugin-kit': 0.1.0 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.3.0 '@nodelib/fs.walk': 1.2.8 @@ -8102,7 +8058,6 @@ snapshots: is-glob: 4.0.3 is-path-inside: 3.0.3 json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 @@ -8662,8 +8617,6 @@ snapshots: jsbn@1.1.0: {} - jsdoc-type-pratt-parser@4.0.0: {} - jsdoc-type-pratt-parser@4.1.0: {} jsesc@0.5.0: {} @@ -9884,7 +9837,7 @@ snapshots: dependencies: '@eslint-community/regexpp': 4.11.0 - regex@4.3.0: {} + regex@4.3.2: {} regexp-ast-analysis@0.7.1: dependencies: @@ -10333,7 +10286,7 @@ snapshots: tinyspy@3.0.0: {} - tm-grammars@1.17.17: {} + tm-grammars@1.17.18: {} tm-themes@1.8.1: {} @@ -10372,21 +10325,21 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - twoslash-protocol@0.2.10: {} + twoslash-protocol@0.2.11: {} - twoslash-vue@0.2.10(typescript@5.5.4): + twoslash-vue@0.2.11(typescript@5.5.4): dependencies: - '@vue/language-core': 2.0.29(typescript@5.5.4) - twoslash: 0.2.10(typescript@5.5.4) - twoslash-protocol: 0.2.10 + '@vue/language-core': 2.1.6(typescript@5.5.4) + twoslash: 0.2.11(typescript@5.5.4) + twoslash-protocol: 0.2.11 typescript: 5.5.4 transitivePeerDependencies: - supports-color - twoslash@0.2.10(typescript@5.5.4): + twoslash@0.2.11(typescript@5.5.4): dependencies: '@typescript/vfs': 1.6.0(typescript@5.5.4) - twoslash-protocol: 0.2.10 + twoslash-protocol: 0.2.11 typescript: 5.5.4 transitivePeerDependencies: - supports-color @@ -10763,10 +10716,10 @@ snapshots: dependencies: vue: 3.5.3(typescript@5.5.4) - vue-eslint-parser@9.4.3(eslint@9.9.1(jiti@1.21.6)): + vue-eslint-parser@9.4.3(eslint@9.10.0(jiti@1.21.6)): dependencies: debug: 4.3.6 - eslint: 9.9.1(jiti@1.21.6) + eslint: 9.10.0(jiti@1.21.6) eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 @@ -10822,7 +10775,7 @@ snapshots: '@cloudflare/workerd-linux-arm64': 1.20240821.1 '@cloudflare/workerd-windows-64': 1.20240821.1 - wrangler@3.74.0: + wrangler@3.75.0: dependencies: '@cloudflare/kv-asset-handler': 0.3.4 '@cloudflare/workers-shared': 0.4.1 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 35be610f..4765de1b 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -6,7 +6,7 @@ packages: - docs - packages/@shikijs/core/vendor/* catalog: - '@antfu/eslint-config': ^3.3.2 + '@antfu/eslint-config': ^3.4.1 '@antfu/ni': ^0.23.0 '@antfu/utils': ^0.7.10 '@iconify-json/carbon': ^1.2.1 @@ -31,7 +31,7 @@ catalog: ansi-sequence-parser: ^1.1.1 bumpp: ^9.5.2 chalk: ^5.3.0 - eslint: ^9.9.1 + eslint: ^9.10.0 eslint-plugin-format: ^0.1.2 esno: ^4.7.0 fast-glob: ^3.3.2 @@ -56,7 +56,7 @@ catalog: pinia: ^2.2.2 pnpm: ^9.9.0 prettier: ^3.3.3 - regex: ^4.3.0 + regex: ^4.3.2 rehype-raw: ^7.0.0 rehype-stringify: ^10.0.0 remark-parse: ^11.0.0 @@ -70,10 +70,10 @@ catalog: shiki-legacy: npm:shiki@^0.14.7 simple-git-hooks: ^2.11.1 taze: ^0.16.7 - tm-grammars: ^1.17.17 + tm-grammars: ^1.17.18 tm-themes: ^1.8.1 - twoslash: ^0.2.10 - twoslash-vue: ^0.2.10 + twoslash: ^0.2.11 + twoslash-vue: ^0.2.11 typescript: ^5.5.4 unbuild: ^2.0.0 unified: ^11.0.5 @@ -88,4 +88,4 @@ catalog: vscode-oniguruma: ^1.7.0 vue: ^3.5.3 vue-tsc: ^2.1.6 - wrangler: ^3.74.0 + wrangler: ^3.75.0 From b71b674f2b3d808a30d3b4bf042f0734731b3d22 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Mon, 9 Sep 2024 15:10:24 +0200 Subject: [PATCH 7/9] chore: update regex --- docs/references/engine-js-compat.md | 446 ++++++++++++++-------------- scripts/report-engine-js-compat.ts | 4 - 2 files changed, 223 insertions(+), 227 deletions(-) diff --git a/docs/references/engine-js-compat.md b/docs/references/engine-js-compat.md index 70b46b74..e77d4a84 100644 --- a/docs/references/engine-js-compat.md +++ b/docs/references/engine-js-compat.md @@ -1,6 +1,6 @@ # JavaScript RegExp Engine Compatibility References -> Genreated on Friday, September 6, 2024 +> Genreated on Monday, September 9, 2024 > > Version `1.16.2` > @@ -11,240 +11,240 @@ | | Count | | :-------------- | --------------------------------: | | Total Languages | 213 | -| Fully Supported | [132](#fully-supported-languages) | -| Mismatched | [45](#mismatched-languages) | -| Unsupported | [36](#unsupported-languages) | +| Fully Supported | [172](#fully-supported-languages) | +| Mismatched | [24](#mismatched-languages) | +| Unsupported | [17](#unsupported-languages) | ## Fully Supported Languages Languages that works with the JavaScript RegExp engine, and will produce the same result as the WASM engine. -| Language | Highlight Match | Patterns Parsable | Patterns Failed | -| -------------- | :-------------- | ----------------: | --------------: | -| abap | ✅ OK | 49 | - | -| apache | ✅ OK | 60 | - | -| apl | ✅ OK | 179 | - | -| applescript | ✅ OK | 151 | - | -| asciidoc | ✅ OK | 262 | - | -| asm | ✅ OK | 297 | - | -| astro | ✅ OK | 59 | - | -| awk | ✅ OK | 36 | - | -| bat | ✅ OK | 58 | - | -| berry | ✅ OK | 18 | - | -| bibtex | ✅ OK | 19 | - | -| bicep | ✅ OK | 28 | - | -| clarity | ✅ OK | 43 | - | -| clj | ✅ OK | 38 | - | -| clojure | ✅ OK | 38 | - | -| cmake | ✅ OK | 23 | - | -| cobol | ✅ OK | 138 | - | -| codeowners | ✅ OK | 4 | - | -| codeql | ✅ OK | 150 | - | -| common-lisp | ✅ OK | 57 | - | -| coq | ✅ OK | 25 | - | -| css | ✅ OK | 141 | - | -| csv | ✅ OK | 1 | - | -| cue | ✅ OK | 85 | - | -| cypher | ✅ OK | 39 | - | -| d | ✅ OK | 270 | - | -| dart | ✅ OK | 71 | - | -| dax | ✅ OK | 23 | - | -| desktop | ✅ OK | 16 | - | -| diff | ✅ OK | 16 | - | -| docker | ✅ OK | 7 | - | -| dotenv | ✅ OK | 9 | - | -| dream-maker | ✅ OK | 55 | - | -| elm | ✅ OK | 67 | - | -| fennel | ✅ OK | 31 | - | -| fish | ✅ OK | 22 | - | -| fluent | ✅ OK | 23 | - | -| fsharp | ✅ OK | 120 | - | -| fsl | ✅ OK | 30 | - | -| gdresource | ✅ OK | 32 | - | -| gdscript | ✅ OK | 93 | - | -| gdshader | ✅ OK | 38 | - | -| genie | ✅ OK | 20 | - | -| gherkin | ✅ OK | 16 | - | -| gleam | ✅ OK | 26 | - | -| glimmer-js | ✅ OK | 74 | - | -| glimmer-ts | ✅ OK | 74 | - | -| graphql | ✅ OK | 63 | - | -| groovy | ✅ OK | 133 | - | -| handlebars | ✅ OK | 64 | - | -| hcl | ✅ OK | 61 | - | -| hjson | ✅ OK | 55 | - | -| hlsl | ✅ OK | 52 | - | -| http | ✅ OK | 20 | - | -| hxml | ✅ OK | 6 | - | -| hy | ✅ OK | 9 | - | -| jinja | ✅ OK | 35 | - | -| jison | ✅ OK | 57 | - | -| json | ✅ OK | 19 | - | -| json5 | ✅ OK | 23 | - | -| jsonc | ✅ OK | 19 | - | -| jsonl | ✅ OK | 19 | - | -| jsonnet | ✅ OK | 33 | - | -| jssm | ✅ OK | 30 | - | -| lean | ✅ OK | 32 | - | -| less | ✅ OK | 280 | - | -| liquid | ✅ OK | 69 | - | -| log | ✅ OK | 30 | - | -| luau | ✅ OK | 88 | - | -| make | ✅ OK | 48 | - | -| marko | ✅ OK | 81 | - | -| matlab | ✅ OK | 77 | - | -| mojo | ✅ OK | 213 | - | -| move | ✅ OK | 118 | - | -| narrat | ✅ OK | 34 | - | -| nextflow | ✅ OK | 17 | - | -| nim | ✅ OK | 114 | - | -| nix | ✅ OK | 80 | - | -| nushell | ✅ OK | 75 | - | -| ocaml | ✅ OK | 178 | - | -| pascal | ✅ OK | 23 | - | -| plsql | ✅ OK | 43 | - | -| postcss | ✅ OK | 47 | - | -| powerquery | ✅ OK | 30 | - | -| prisma | ✅ OK | 26 | - | -| prolog | ✅ OK | 26 | - | -| proto | ✅ OK | 33 | - | -| puppet | ✅ OK | 59 | - | -| python | ✅ OK | 218 | - | -| qmldir | ✅ OK | 7 | - | -| qss | ✅ OK | 31 | - | -| racket | ✅ OK | 68 | - | -| reg | ✅ OK | 9 | - | -| regexp | ✅ OK | 34 | - | -| rel | ✅ OK | 17 | - | -| rust | ✅ OK | 89 | - | -| sas | ✅ OK | 32 | - | -| sass | ✅ OK | 67 | - | -| scss | ✅ OK | 104 | - | -| shaderlab | ✅ OK | 38 | - | -| shellsession | ✅ OK | 2 | - | -| solidity | ✅ OK | 102 | - | -| soy | ✅ OK | 45 | - | -| sparql | ✅ OK | 4 | - | -| sql | ✅ OK | 67 | - | -| stylus | ✅ OK | 107 | - | -| system-verilog | ✅ OK | 102 | - | -| systemd | ✅ OK | 32 | - | -| tasl | ✅ OK | 22 | - | -| tcl | ✅ OK | 33 | - | -| terraform | ✅ OK | 62 | - | -| tex | ✅ OK | 38 | - | -| ts-tags | ✅ OK | - | - | -| tsv | ✅ OK | 1 | - | -| turtle | ✅ OK | 15 | - | -| twig | ✅ OK | 94 | - | -| typespec | ✅ OK | 80 | - | -| typst | ✅ OK | 78 | - | -| v | ✅ OK | 76 | - | -| vala | ✅ OK | 20 | - | -| vb | ✅ OK | 34 | - | -| vhdl | ✅ OK | 82 | - | -| vue-html | ✅ OK | 36 | - | -| vyper | ✅ OK | 238 | - | -| wasm | ✅ OK | 78 | - | -| wenyan | ✅ OK | 18 | - | -| wgsl | ✅ OK | 44 | - | -| wikitext | ✅ OK | 104 | - | -| xml | ✅ OK | 30 | - | -| xsl | ✅ OK | 5 | - | -| zenscript | ✅ OK | 21 | - | -| zig | ✅ OK | 51 | - | +| Language | Highlight Match | Patterns Parsable | Patterns Failed | +| ------------------ | :-------------- | ----------------: | --------------: | +| abap | ✅ OK | 49 | - | +| actionscript-3 | ✅ OK | 57 | - | +| angular-ts | ✅ OK | 363 | - | +| apache | ✅ OK | 60 | - | +| apl | ✅ OK | 179 | - | +| applescript | ✅ OK | 151 | - | +| ara | ✅ OK | 54 | - | +| asciidoc | ✅ OK | 262 | - | +| asm | ✅ OK | 297 | - | +| astro | ✅ OK | 59 | - | +| awk | ✅ OK | 36 | - | +| ballerina | ✅ OK | 230 | - | +| bat | ✅ OK | 58 | - | +| berry | ✅ OK | 18 | - | +| bibtex | ✅ OK | 19 | - | +| bicep | ✅ OK | 28 | - | +| cadence | ✅ OK | 71 | - | +| clarity | ✅ OK | 43 | - | +| clj | ✅ OK | 38 | - | +| clojure | ✅ OK | 38 | - | +| cmake | ✅ OK | 23 | - | +| cobol | ✅ OK | 138 | - | +| codeowners | ✅ OK | 4 | - | +| codeql | ✅ OK | 150 | - | +| coffee | ✅ OK | 120 | - | +| common-lisp | ✅ OK | 57 | - | +| coq | ✅ OK | 25 | - | +| css | ✅ OK | 141 | - | +| csv | ✅ OK | 1 | - | +| cue | ✅ OK | 85 | - | +| cypher | ✅ OK | 39 | - | +| d | ✅ OK | 270 | - | +| dart | ✅ OK | 71 | - | +| dax | ✅ OK | 23 | - | +| desktop | ✅ OK | 16 | - | +| diff | ✅ OK | 16 | - | +| docker | ✅ OK | 7 | - | +| dotenv | ✅ OK | 9 | - | +| dream-maker | ✅ OK | 55 | - | +| edge | ✅ OK | 10 | - | +| elm | ✅ OK | 67 | - | +| emacs-lisp | ✅ OK | 151 | - | +| erb | ✅ OK | 6 | - | +| fennel | ✅ OK | 31 | - | +| fish | ✅ OK | 22 | - | +| fluent | ✅ OK | 23 | - | +| fortran-fixed-form | ✅ OK | 6 | - | +| fortran-free-form | ✅ OK | 317 | - | +| fsharp | ✅ OK | 120 | - | +| fsl | ✅ OK | 30 | - | +| gdresource | ✅ OK | 32 | - | +| gdscript | ✅ OK | 93 | - | +| gdshader | ✅ OK | 38 | - | +| genie | ✅ OK | 20 | - | +| gherkin | ✅ OK | 16 | - | +| gleam | ✅ OK | 26 | - | +| glimmer-js | ✅ OK | 74 | - | +| glimmer-ts | ✅ OK | 74 | - | +| gnuplot | ✅ OK | 82 | - | +| go | ✅ OK | 115 | - | +| graphql | ✅ OK | 63 | - | +| groovy | ✅ OK | 133 | - | +| hack | ✅ OK | 301 | - | +| handlebars | ✅ OK | 64 | - | +| haxe | ✅ OK | 175 | - | +| hcl | ✅ OK | 61 | - | +| hjson | ✅ OK | 55 | - | +| hlsl | ✅ OK | 52 | - | +| html | ✅ OK | 116 | - | +| http | ✅ OK | 20 | - | +| hxml | ✅ OK | 6 | - | +| hy | ✅ OK | 9 | - | +| imba | ✅ OK | 241 | - | +| ini | ✅ OK | 11 | - | +| java | ✅ OK | 141 | - | +| javascript | ✅ OK | 376 | - | +| jinja | ✅ OK | 35 | - | +| jison | ✅ OK | 57 | - | +| json | ✅ OK | 19 | - | +| json5 | ✅ OK | 23 | - | +| jsonc | ✅ OK | 19 | - | +| jsonl | ✅ OK | 19 | - | +| jsonnet | ✅ OK | 33 | - | +| jssm | ✅ OK | 30 | - | +| jsx | ✅ OK | 376 | - | +| lean | ✅ OK | 32 | - | +| less | ✅ OK | 280 | - | +| liquid | ✅ OK | 69 | - | +| log | ✅ OK | 30 | - | +| logo | ✅ OK | 9 | - | +| lua | ✅ OK | 113 | - | +| luau | ✅ OK | 88 | - | +| make | ✅ OK | 48 | - | +| marko | ✅ OK | 81 | - | +| matlab | ✅ OK | 77 | - | +| mojo | ✅ OK | 213 | - | +| move | ✅ OK | 120 | - | +| narrat | ✅ OK | 34 | - | +| nextflow | ✅ OK | 17 | - | +| nim | ✅ OK | 114 | - | +| nix | ✅ OK | 80 | - | +| nushell | ✅ OK | 75 | - | +| objective-c | ✅ OK | 217 | - | +| ocaml | ✅ OK | 178 | - | +| pascal | ✅ OK | 23 | - | +| perl | ✅ OK | 155 | - | +| plsql | ✅ OK | 43 | - | +| postcss | ✅ OK | 47 | - | +| powerquery | ✅ OK | 30 | - | +| prisma | ✅ OK | 26 | - | +| prolog | ✅ OK | 26 | - | +| proto | ✅ OK | 33 | - | +| puppet | ✅ OK | 59 | - | +| python | ✅ OK | 218 | - | +| qml | ✅ OK | 38 | - | +| qmldir | ✅ OK | 7 | - | +| qss | ✅ OK | 31 | - | +| r | ✅ OK | 73 | - | +| racket | ✅ OK | 68 | - | +| raku | ✅ OK | 52 | - | +| reg | ✅ OK | 9 | - | +| regexp | ✅ OK | 34 | - | +| rel | ✅ OK | 17 | - | +| riscv | ✅ OK | 36 | - | +| rust | ✅ OK | 89 | - | +| sas | ✅ OK | 32 | - | +| sass | ✅ OK | 67 | - | +| scala | ✅ OK | 108 | - | +| scheme | ✅ OK | 34 | - | +| scss | ✅ OK | 104 | - | +| shaderlab | ✅ OK | 38 | - | +| shellsession | ✅ OK | 2 | - | +| solidity | ✅ OK | 102 | - | +| soy | ✅ OK | 45 | - | +| sparql | ✅ OK | 4 | - | +| sql | ✅ OK | 67 | - | +| ssh-config | ✅ OK | 12 | - | +| stylus | ✅ OK | 107 | - | +| svelte | ✅ OK | 83 | - | +| system-verilog | ✅ OK | 102 | - | +| systemd | ✅ OK | 32 | - | +| tasl | ✅ OK | 22 | - | +| tcl | ✅ OK | 33 | - | +| templ | ✅ OK | 74 | - | +| terraform | ✅ OK | 62 | - | +| tex | ✅ OK | 38 | - | +| toml | ✅ OK | 40 | - | +| ts-tags | ✅ OK | - | - | +| tsv | ✅ OK | 1 | - | +| tsx | ✅ OK | 376 | - | +| turtle | ✅ OK | 15 | - | +| twig | ✅ OK | 94 | - | +| typescript | ✅ OK | 363 | - | +| typespec | ✅ OK | 80 | - | +| typst | ✅ OK | 78 | - | +| v | ✅ OK | 76 | - | +| vala | ✅ OK | 20 | - | +| vb | ✅ OK | 34 | - | +| verilog | ✅ OK | 33 | - | +| vhdl | ✅ OK | 82 | - | +| viml | ✅ OK | 72 | - | +| vue | ✅ OK | 69 | - | +| vue-html | ✅ OK | 36 | - | +| vyper | ✅ OK | 238 | - | +| wasm | ✅ OK | 78 | - | +| wenyan | ✅ OK | 18 | - | +| wgsl | ✅ OK | 44 | - | +| wikitext | ✅ OK | 104 | - | +| xml | ✅ OK | 30 | - | +| xsl | ✅ OK | 5 | - | +| zenscript | ✅ OK | 21 | - | +| zig | ✅ OK | 51 | - | ## Mismatched Languages Languages that does not throw with the JavaScript RegExp engine, but will produce different result than the WASM engine. Please use with caution. -| Language | Highlight Match | Patterns Parsable | Patterns Failed | -| ------------------ | :-------------------------------------------------------------------------------------- | ----------------: | --------------: | -| angular-html | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=angular-html) | 2 | - | -| ara | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=ara) | 54 | - | -| bash | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=bash) | 146 | - | -| beancount | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=beancount) | 39 | - | -| c | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=c) | 158 | - | -| cadence | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=cadence) | 71 | - | -| edge | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=edge) | 10 | - | -| elixir | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=elixir) | 102 | - | -| fortran-fixed-form | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=fortran-fixed-form) | 6 | - | -| fortran-free-form | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=fortran-free-form) | 317 | - | -| glsl | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=glsl) | 7 | - | -| gnuplot | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=gnuplot) | 82 | - | -| go | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=go) | 115 | - | -| hack | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=hack) | 301 | - | -| html | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=html) | 116 | - | -| ini | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=ini) | 11 | - | -| java | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=java) | 141 | - | -| kusto | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=kusto) | 60 | - | -| latex | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=latex) | 183 | - | -| logo | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=logo) | 9 | - | -| lua | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=lua) | 113 | - | -| mermaid | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=mermaid) | 129 | - | -| nginx | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=nginx) | 102 | - | -| objective-c | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=objective-c) | 217 | - | -| objective-cpp | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=objective-cpp) | 297 | - | -| perl | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=perl) | 155 | - | -| php | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=php) | 328 | - | -| po | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=po) | 23 | - | -| pug | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=pug) | 92 | - | -| qml | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=qml) | 38 | - | -| r | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=r) | 73 | - | -| raku | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=raku) | 52 | - | -| riscv | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=riscv) | 36 | - | -| scala | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=scala) | 108 | - | -| scheme | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=scheme) | 34 | - | -| shellscript | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=shellscript) | 146 | - | -| smalltalk | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=smalltalk) | 31 | - | -| splunk | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=splunk) | 17 | - | -| ssh-config | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=ssh-config) | 12 | - | -| svelte | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=svelte) | 83 | - | -| templ | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=templ) | 74 | - | -| toml | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=toml) | 40 | - | -| verilog | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=verilog) | 33 | - | -| vue | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=vue) | 69 | - | -| zsh | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=zsh) | 146 | - | +| Language | Highlight Match | Patterns Parsable | Patterns Failed | +| ------------- | :--------------------------------------------------------------------------------- | ----------------: | --------------: | +| angular-html | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=angular-html) | 2 | - | +| bash | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=bash) | 146 | - | +| beancount | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=beancount) | 39 | - | +| c | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=c) | 158 | - | +| crystal | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=crystal) | 140 | - | +| elixir | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=elixir) | 102 | - | +| erlang | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=erlang) | 147 | - | +| glsl | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=glsl) | 7 | - | +| haml | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=haml) | 64 | - | +| kusto | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=kusto) | 60 | - | +| latex | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=latex) | 183 | - | +| mermaid | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=mermaid) | 129 | - | +| nginx | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=nginx) | 102 | - | +| objective-cpp | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=objective-cpp) | 297 | - | +| php | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=php) | 328 | - | +| po | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=po) | 23 | - | +| pug | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=pug) | 92 | - | +| rst | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=rst) | 61 | - | +| ruby | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=ruby) | 154 | - | +| shellscript | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=shellscript) | 146 | - | +| smalltalk | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=smalltalk) | 31 | - | +| splunk | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=splunk) | 17 | - | +| stata | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=stata) | 189 | - | +| zsh | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=zsh) | 146 | - | ## Unsupported Languages Languages that throws with the JavaScript RegExp engine (contains syntaxes that we can't polyfill yet). If you need to use these languages, please use the Oniguruma engine. -| Language | Highlight Match | Patterns Parsable | Patterns Failed | -| -------------- | :------------------------------------------------------------------------------ | ----------------: | --------------: | -| ada | ✅ OK | 199 | 1 | -| angular-ts | ✅ OK | 362 | 1 | -| ballerina | ✅ OK | 229 | 1 | -| haxe | ✅ OK | 174 | 1 | -| imba | ✅ OK | 240 | 1 | -| tsx | ✅ OK | 375 | 1 | -| typescript | ✅ OK | 362 | 1 | -| coffee | ✅ OK | 118 | 2 | -| erlang | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=erlang) | 146 | 1 | -| javascript | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=javascript) | 375 | 1 | -| jsx | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=jsx) | 375 | 1 | -| blade | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=blade) | 328 | 2 | -| stata | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=stata) | 187 | 2 | -| erb | ❌ Error | 6 | - | -| haml | ❌ Error | 64 | - | -| actionscript-3 | ❌ Error | 56 | 1 | -| crystal | ❌ Error | 139 | 1 | -| emacs-lisp | ❌ Error | 150 | 1 | -| mdc | ❌ Error | 26 | 1 | -| powershell | ❌ Error | 87 | 1 | -| rst | ❌ Error | 60 | 1 | -| ruby | ❌ Error | 153 | 1 | -| viml | ❌ Error | 71 | 1 | -| wolfram | ❌ Error | 500 | 1 | -| razor | ❌ Error | 82 | 3 | -| yaml | ❌ Error | 42 | 4 | -| julia | ❌ Error | 90 | 5 | -| swift | ❌ Error | 301 | 5 | -| kotlin | ❌ Error | 52 | 6 | -| mdx | ❌ Error | 173 | 8 | -| markdown | ❌ Error | 94 | 9 | -| purescript | ❌ Error | 63 | 9 | -| apex | ❌ Error | 173 | 14 | -| csharp | ❌ Error | 263 | 32 | -| haskell | ❌ Error | 113 | 44 | -| cpp | ❌ Error | 135 | 85 | +| Language | Highlight Match | Patterns Parsable | Patterns Failed | +| ---------- | :------------------------------------------------------------------------- | ----------------: | --------------: | +| ada | ✅ OK | 199 | 1 | +| blade | [🚧 Mismatch](https://textmate-grammars-themes.netlify.app/?grammar=blade) | 328 | 2 | +| mdc | ❌ Error | 27 | - | +| powershell | ❌ Error | 87 | 1 | +| wolfram | ❌ Error | 500 | 1 | +| razor | ❌ Error | 82 | 3 | +| mdx | ❌ Error | 177 | 4 | +| swift | ❌ Error | 302 | 4 | +| yaml | ❌ Error | 42 | 4 | +| julia | ❌ Error | 90 | 5 | +| kotlin | ❌ Error | 52 | 6 | +| markdown | ❌ Error | 96 | 7 | +| purescript | ❌ Error | 63 | 9 | +| apex | ❌ Error | 173 | 14 | +| cpp | ❌ Error | 198 | 22 | +| csharp | ❌ Error | 263 | 32 | +| haskell | ❌ Error | 113 | 44 | diff --git a/scripts/report-engine-js-compat.ts b/scripts/report-engine-js-compat.ts index ac76c38c..a0e2e0cb 100644 --- a/scripts/report-engine-js-compat.ts +++ b/scripts/report-engine-js-compat.ts @@ -12,10 +12,6 @@ import { version } from '../package.json' const engine = createJavaScriptRegexEngine({ regexConstructor: (pattern) => { - pattern = pattern - .replace(/\\￿/g, '\\G') - .replace(/\(\{\)/g, '(\\{)') - const rewritten = rewrite(pattern, { flags: 'dgm', unicodeSetsPlugin: null, From cf5c930d4a1c63e8f857a6362738cb53063713fe Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Mon, 9 Sep 2024 15:13:58 +0200 Subject: [PATCH 8/9] chore: update --- scripts/report-engine-js-compat.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/scripts/report-engine-js-compat.ts b/scripts/report-engine-js-compat.ts index a0e2e0cb..70ad951e 100644 --- a/scripts/report-engine-js-compat.ts +++ b/scripts/report-engine-js-compat.ts @@ -12,6 +12,17 @@ import { version } from '../package.json' const engine = createJavaScriptRegexEngine({ regexConstructor: (pattern) => { + // TODO: without combining `oniguruma-to-js`, it will get a lot more syntax errors + // return regex({ + // flags: 'dgm', + // unicodeSetsPlugin: null, + // disable: { + // n: true, + // v: true, + // x: true, + // }, + // })({ raw: [pattern] }) + const rewritten = rewrite(pattern, { flags: 'dgm', unicodeSetsPlugin: null, From b878e53594c27c31ce6695c7423549c7c6f52de3 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Mon, 9 Sep 2024 18:22:34 +0200 Subject: [PATCH 9/9] feat: update --- .vscode/settings.json | 1 + docs/references/engine-js-compat.md | 6 ++-- package.json | 2 +- packages/core/package.json | 6 ++-- packages/core/rollup.config.mjs | 6 ++++ packages/core/src/engines/javascript.ts | 19 +++++++++++-- pnpm-lock.yaml | 26 ++++++++--------- pnpm-workspace.yaml | 6 ++-- scripts/report-engine-js-compat.ts | 38 +------------------------ 9 files changed, 47 insertions(+), 63 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 6dd5e3e3..41441c18 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -36,6 +36,7 @@ ], "references.preferredLocation": "peek", "cSpell.words": [ + "Extenerlaize", "shikijs" ] } diff --git a/docs/references/engine-js-compat.md b/docs/references/engine-js-compat.md index e77d4a84..a4442aaa 100644 --- a/docs/references/engine-js-compat.md +++ b/docs/references/engine-js-compat.md @@ -11,9 +11,9 @@ | | Count | | :-------------- | --------------------------------: | | Total Languages | 213 | -| Fully Supported | [172](#fully-supported-languages) | +| Fully Supported | [173](#fully-supported-languages) | | Mismatched | [24](#mismatched-languages) | -| Unsupported | [17](#unsupported-languages) | +| Unsupported | [16](#unsupported-languages) | ## Fully Supported Languages @@ -191,6 +191,7 @@ Languages that works with the JavaScript RegExp engine, and will produce the sam | wikitext | ✅ OK | 104 | - | | xml | ✅ OK | 30 | - | | xsl | ✅ OK | 5 | - | +| yaml | ✅ OK | 46 | - | | zenscript | ✅ OK | 21 | - | | zig | ✅ OK | 51 | - | @@ -239,7 +240,6 @@ Languages that throws with the JavaScript RegExp engine (contains syntaxes that | razor | ❌ Error | 82 | 3 | | mdx | ❌ Error | 177 | 4 | | swift | ❌ Error | 302 | 4 | -| yaml | ❌ Error | 42 | 4 | | julia | ❌ Error | 90 | 5 | | kotlin | ❌ Error | 52 | 6 | | markdown | ❌ Error | 96 | 7 | diff --git a/package.json b/package.json index 5807698f..3997d88b 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "type": "module", "version": "1.16.2", "private": true, - "packageManager": "pnpm@9.9.0", + "packageManager": "pnpm@9.10.0", "scripts": { "lint": "eslint . --cache", "release": "bumpp && pnpm -r publish", diff --git a/packages/core/package.json b/packages/core/package.json index 4a22e1d0..13c010e4 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -67,12 +67,12 @@ }, "dependencies": { "@shikijs/vscode-textmate": "catalog:", - "@types/hast": "catalog:" + "@types/hast": "catalog:", + "oniguruma-to-js": "catalog:", + "regex": "catalog:" }, "devDependencies": { "hast-util-to-html": "catalog:", - "oniguruma-to-js": "catalog:", - "regex": "catalog:", "vscode-oniguruma": "catalog:" } } diff --git a/packages/core/rollup.config.mjs b/packages/core/rollup.config.mjs index 4796c3f6..414d8ebb 100644 --- a/packages/core/rollup.config.mjs +++ b/packages/core/rollup.config.mjs @@ -35,6 +35,12 @@ const plugins = [ const external = [ 'hast', '@shikijs/vscode-textmate', + + // Externalize them to make it easier to patch and experiments + // Versions are pinned to avoid regressions + // Later we might consider to bundle them. + 'oniguruma-to-js', + 'regex', ] export default defineConfig([ diff --git a/packages/core/src/engines/javascript.ts b/packages/core/src/engines/javascript.ts index 975b73e8..52ac2f56 100644 --- a/packages/core/src/engines/javascript.ts +++ b/packages/core/src/engines/javascript.ts @@ -1,4 +1,5 @@ import { onigurumaToRegexp } from 'oniguruma-to-js' +import { rewrite } from 'regex' import type { JavaScriptRegexEngineOptions, PatternScanner, RegexEngine, RegexEngineString } from '../types' const MAX = 4294967295 @@ -7,10 +8,22 @@ const MAX = 4294967295 * The default RegExp constructor for JavaScript regex engine. */ export function defaultJavaScriptRegexConstructor(pattern: string): RegExp { + pattern = pattern + // YAML specific handling; TODO: move to tm-grammars + .replaceAll('[^\\s[-?:,\\[\\]{}#&*!|>\'"%@`]]', '[^\\s\\-?:,\\[\\]{}#&*!|>\'"%@`]') + + const rewritten = rewrite(pattern, { + flags: 'dgm', + unicodeSetsPlugin: null, + disable: { + n: true, + v: true, + x: true, + }, + }) + return onigurumaToRegexp( - pattern - // YAML specific handling; TODO: move to tm-grammars - .replaceAll('[^\\s[-?:,\\[\\]{}#&*!|>\'"%@`]]', '[^\\s\\-?:,\\[\\]{}#&*!|>\'"%@`]'), + rewritten.expression, { flags: 'dgm', ignoreContiguousAnchors: true, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6302965e..b48e8c5a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -139,7 +139,7 @@ catalogs: specifier: ^1.3.4 version: 1.3.4 oniguruma-to-js: - specifier: ^0.3.3 + specifier: 0.3.3 version: 0.3.3 picocolors: specifier: ^1.1.0 @@ -148,13 +148,13 @@ catalogs: specifier: ^2.2.2 version: 2.2.2 pnpm: - specifier: ^9.9.0 - version: 9.9.0 + specifier: ^9.10.0 + version: 9.10.0 prettier: specifier: ^3.3.3 version: 3.3.3 regex: - specifier: ^4.3.2 + specifier: 4.3.2 version: 4.3.2 rehype-raw: specifier: ^7.0.0 @@ -370,7 +370,7 @@ importers: version: 1.1.0 pnpm: specifier: 'catalog:' - version: 9.9.0 + version: 9.10.0 prettier: specifier: 'catalog:' version: 3.3.3 @@ -515,16 +515,16 @@ importers: '@types/hast': specifier: ^3.0.4 version: 3.0.4 - devDependencies: - hast-util-to-html: - specifier: 'catalog:' - version: 9.0.2 oniguruma-to-js: specifier: 'catalog:' version: 0.3.3 regex: specifier: 'catalog:' version: 4.3.2 + devDependencies: + hast-util-to-html: + specifier: 'catalog:' + version: 9.0.2 vscode-oniguruma: specifier: ^1.7.0 version: 1.7.0 @@ -1628,7 +1628,7 @@ packages: resolution: {integrity: sha512-lpA3RZ9PdIG7qqhEfv79tBffNaoDuukFDrmhLqg9ifv99u/ehn+lOg30x2zmhf8AQqQUZaMk/B9fZraQ6/acDQ==} engines: {node: '>=14.0.0'} peerDependencies: - rollup: ^4.21.2 + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true @@ -4292,8 +4292,8 @@ packages: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} - pnpm@9.9.0: - resolution: {integrity: sha512-YMGKzROL/2ldM5vmrRP36TbupnRWYNTMSndtUkfFQNDt7hpWNpXBg6ZuuRfviPK0/rH8JfMqetytx6rzQ46ZwQ==} + pnpm@9.10.0: + resolution: {integrity: sha512-c6Ka+jag0JLs5Scd5Rd+y/gxjUVOzXATQxMbjrwMGpHEh9pGq3fI5ZbWrPFGHjWUztS+zt+JIbB0+9hlPtcFHA==} engines: {node: '>=18.12'} hasBin: true @@ -9606,7 +9606,7 @@ snapshots: pluralize@8.0.0: {} - pnpm@9.9.0: {} + pnpm@9.10.0: {} postcss-calc@9.0.1(postcss@8.4.44): dependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 4765de1b..cbdbd4a4 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -51,12 +51,12 @@ catalog: minimist: ^1.2.8 monaco-editor-core: ^0.51.0 ofetch: ^1.3.4 - oniguruma-to-js: ^0.3.3 + oniguruma-to-js: 0.3.3 picocolors: ^1.1.0 pinia: ^2.2.2 - pnpm: ^9.9.0 + pnpm: ^9.10.0 prettier: ^3.3.3 - regex: ^4.3.2 + regex: 4.3.2 rehype-raw: ^7.0.0 rehype-stringify: ^10.0.0 remark-parse: ^11.0.0 diff --git a/scripts/report-engine-js-compat.ts b/scripts/report-engine-js-compat.ts index 70ad951e..47a615f1 100644 --- a/scripts/report-engine-js-compat.ts +++ b/scripts/report-engine-js-compat.ts @@ -4,47 +4,11 @@ import fs from 'node:fs/promises' import process from 'node:process' -import { onigurumaToRegexp } from 'oniguruma-to-js' import c from 'picocolors' -import { rewrite } from 'regex' import { bundledLanguages, createHighlighter, createJavaScriptRegexEngine } from 'shiki' import { version } from '../package.json' -const engine = createJavaScriptRegexEngine({ - regexConstructor: (pattern) => { - // TODO: without combining `oniguruma-to-js`, it will get a lot more syntax errors - // return regex({ - // flags: 'dgm', - // unicodeSetsPlugin: null, - // disable: { - // n: true, - // v: true, - // x: true, - // }, - // })({ raw: [pattern] }) - - const rewritten = rewrite(pattern, { - flags: 'dgm', - unicodeSetsPlugin: null, - disable: { - n: true, - v: true, - x: true, - }, - }) - - try { - return onigurumaToRegexp(rewritten.expression, { - flags: 'dgm', - ignoreContiguousAnchors: true, - }) - } - catch (e) { - console.error({ pattern, rewritten }) - throw e - } - }, -}) +const engine = createJavaScriptRegexEngine() export interface ReportItem { lang: string