feat: add multi-engine regex flavour support

This commit is contained in:
2026-07-27 11:43:51 +02:00
parent 7079cde15f
commit 7f3a91ad37
340 changed files with 643286 additions and 483 deletions

View File

@@ -0,0 +1,23 @@
The MIT License (MIT)
Copyright (c) .NET Foundation and Contributors
All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -0,0 +1,19 @@
cfc21f5e8bd655ae997eec916138b707b1d290b83272c02a95c9f821b8c87310 LICENSE-dotnet.txt
2dc8f8c5a39401e928b5784ab564eb8b3ceb99ead3df8f260e0cab7e0bbecc7a THIRD-PARTY-NOTICES.txt
8178d080bf8b139da2417184ad607664f0abb8bf5f7bc3acfdd19dac1c01be57 _framework/RegexTools.DotNet.nq07srqsrv.wasm
fc65ef6182d0633e5da7fb634f3c6bbc9cda00c04fb9318023a0d75c91fd0be6 _framework/System.Collections.035l5xddsu.wasm
e95181d82588827027195b7be3ba2a4df8b1580b0a1a98cf3e4275378f673984 _framework/System.IO.Pipelines.9846faqurl.wasm
08f8ff79ef495e642c1f000b7d9e2d8d651675f67cf3c3b974acc85bfba38ecc _framework/System.Linq.0mnik33gd9.wasm
8b52fd95bdaafddde9c041faaf908153ff3763712ebb8c274897df1e97bd8840 _framework/System.Memory.1p33wui4du.wasm
c813dfea69a9161b6e721c663b960193597fe148f48acbae57315cae7988681d _framework/System.Private.CoreLib.kprynbd0oq.wasm
18e7c4e1816cab053848fa468beedc191c5d57b7f8050e82e2d74541c9c05467 _framework/System.Runtime.8ovzk6bt8k.wasm
f03ceddaccb17a82e8e27e2ae71f7bcea8155c527f50569f94b52199ea11d451 _framework/System.Runtime.InteropServices.JavaScript.sx1hj7vtls.wasm
4ba3b0e95e97a3897fc5dd4823dfb91de0497166f389cbfd1e1bdc9df548a8b3 _framework/System.Security.Cryptography.nx98zbj2m5.wasm
864de168a4ce82a9aa8deea10bf30f76d0de302a382b20f2fea69f324ff0eadb _framework/System.Text.Encodings.Web.efde74c33p.wasm
12c10b1368766432adc311b48a7970f67bc2cffc76f92336224a1f846673e146 _framework/System.Text.Json.yzatygskj6.wasm
caca9e11dc0df1917a8b14f213bf6c2c404faeddb43ab10551f1807d07c7fc43 _framework/System.Text.RegularExpressions.imqsl0y08u.wasm
647cf2841162fa23115ff9b0c55a4e370ab432912da48dd844a3d16e38c09a1a _framework/dotnet.js
224bc09dfc8b875fff993976d256f751b4f72ccd758e4a9144eab8c9d9f98ed1 _framework/dotnet.native.224bc09dfc8b.js
1603c30cea37bbfc154d37528b99ffd5fcf7ca833d07112bc239d7cee598bff7 _framework/dotnet.native.6k8j5v15h5.wasm
48e507110dc58430226c1491daef74356669a018cfb964661f40400135258495 _framework/dotnet.runtime.web2r9gqbh.js
8359eacd9d1aead6e3c3abef36e73b217233138600dbe1aff8880be48c32309f engine-metadata.json

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,166 @@
{
"schemaVersion": 1,
"engine": "dotnet",
"engineName": "System.Text.RegularExpressions",
"engineVersion": ".NET 10.0.10 System.Text.RegularExpressions",
"semanticIdentity": ".NET 10.0.10 System.Text.RegularExpressions; invariant culture; UTF-16 offsets",
"status": "production-native-runtime",
"bridge": {
"abiVersion": 1,
"nativeOffsetUnit": "UTF-16 code units",
"requestEncoding": "bounded JSON passed to fixed JSExport methods",
"userSourceEvaluation": false,
"replacement": "Fixed streaming parser for .NET replacement tokens ($$, $n, ${name}, $&, $`, $', $+, $_), verified against Match.Result at load",
"replacementOutputTransport": "bounded UTF-8 bytes encoded as canonical base64 in the JSON response",
"supportedApplicationFlags": [
"g",
"i",
"m",
"s",
"n",
"x",
"r",
"c",
"b"
],
"matchTimeoutMilliseconds": 9000,
"limits": {
"maximumPatternUtf16": 65536,
"maximumSubjectUtf16": 16777216,
"maximumReplacementUtf16": 65536,
"maximumMatches": 10000,
"maximumCaptureRows": 100000,
"maximumCaptureGroups": 1000,
"maximumOutputBytes": 67108864
},
"sourceFiles": [
{
"path": "engines/dotnet/Program.cs",
"sha256": "52c7bdf7b95f985e22fe2eff8cf5b0173537c701bb8712c012b558ee5a35f530",
"bytes": 28310
},
{
"path": "engines/dotnet/README.md",
"sha256": "080fa57b00d7c593fc630a8353f5467393879441630790280beb8a39edb81a47",
"bytes": 1359
},
{
"path": "engines/dotnet/RegexTools.DotNet.csproj",
"sha256": "95eefcd69634c79a1a27afbfd68dae28af81803116dc8a9f29d73246fdbf8d5e",
"bytes": 813
},
{
"path": "engines/dotnet/wwwroot/main.js",
"sha256": "1288cf008091453e23640cc7cca21c3bb811cac41be58c98e75b417828f7ff39",
"bytes": 150
}
]
},
"source": {
"project": ".NET",
"repository": "https://github.com/dotnet/runtime",
"license": "MIT",
"runtimeVersion": "10.0.10",
"runtimeCommit": "f7d90799ce"
},
"toolchain": {
"sdkVersion": "10.0.302",
"sdkCommit": "35b593bebf",
"workload": "wasm-tools",
"target": "browser-wasm",
"command": "dotnet publish engines/dotnet/RegexTools.DotNet.csproj -c Release --no-restore -p:PathMap=<source>=/regex-tools-source -p:EmccExtraCFlags=-ffile-prefix-map=<sdk>=/dotnet-sdk-10.0.302"
},
"sourceDateEpoch": 1785110400,
"files": [
{
"path": "LICENSE-dotnet.txt",
"sha256": "cfc21f5e8bd655ae997eec916138b707b1d290b83272c02a95c9f821b8c87310",
"bytes": 1116
},
{
"path": "THIRD-PARTY-NOTICES.txt",
"sha256": "2dc8f8c5a39401e928b5784ab564eb8b3ceb99ead3df8f260e0cab7e0bbecc7a",
"bytes": 77436
},
{
"path": "_framework/RegexTools.DotNet.nq07srqsrv.wasm",
"sha256": "8178d080bf8b139da2417184ad607664f0abb8bf5f7bc3acfdd19dac1c01be57",
"bytes": 25877
},
{
"path": "_framework/System.Collections.035l5xddsu.wasm",
"sha256": "fc65ef6182d0633e5da7fb634f3c6bbc9cda00c04fb9318023a0d75c91fd0be6",
"bytes": 7445
},
{
"path": "_framework/System.IO.Pipelines.9846faqurl.wasm",
"sha256": "e95181d82588827027195b7be3ba2a4df8b1580b0a1a98cf3e4275378f673984",
"bytes": 8469
},
{
"path": "_framework/System.Linq.0mnik33gd9.wasm",
"sha256": "08f8ff79ef495e642c1f000b7d9e2d8d651675f67cf3c3b974acc85bfba38ecc",
"bytes": 23317
},
{
"path": "_framework/System.Memory.1p33wui4du.wasm",
"sha256": "8b52fd95bdaafddde9c041faaf908153ff3763712ebb8c274897df1e97bd8840",
"bytes": 15125
},
{
"path": "_framework/System.Private.CoreLib.kprynbd0oq.wasm",
"sha256": "c813dfea69a9161b6e721c663b960193597fe148f48acbae57315cae7988681d",
"bytes": 1089813
},
{
"path": "_framework/System.Runtime.8ovzk6bt8k.wasm",
"sha256": "18e7c4e1816cab053848fa468beedc191c5d57b7f8050e82e2d74541c9c05467",
"bytes": 6933
},
{
"path": "_framework/System.Runtime.InteropServices.JavaScript.sx1hj7vtls.wasm",
"sha256": "f03ceddaccb17a82e8e27e2ae71f7bcea8155c527f50569f94b52199ea11d451",
"bytes": 40213
},
{
"path": "_framework/System.Security.Cryptography.nx98zbj2m5.wasm",
"sha256": "4ba3b0e95e97a3897fc5dd4823dfb91de0497166f389cbfd1e1bdc9df548a8b3",
"bytes": 6933
},
{
"path": "_framework/System.Text.Encodings.Web.efde74c33p.wasm",
"sha256": "864de168a4ce82a9aa8deea10bf30f76d0de302a382b20f2fea69f324ff0eadb",
"bytes": 26389
},
{
"path": "_framework/System.Text.Json.yzatygskj6.wasm",
"sha256": "12c10b1368766432adc311b48a7970f67bc2cffc76f92336224a1f846673e146",
"bytes": 83733
},
{
"path": "_framework/System.Text.RegularExpressions.imqsl0y08u.wasm",
"sha256": "caca9e11dc0df1917a8b14f213bf6c2c404faeddb43ab10551f1807d07c7fc43",
"bytes": 243989
},
{
"path": "_framework/dotnet.js",
"sha256": "647cf2841162fa23115ff9b0c55a4e370ab432912da48dd844a3d16e38c09a1a",
"bytes": 43459
},
{
"path": "_framework/dotnet.native.224bc09dfc8b.js",
"sha256": "224bc09dfc8b875fff993976d256f751b4f72ccd758e4a9144eab8c9d9f98ed1",
"bytes": 215271
},
{
"path": "_framework/dotnet.native.6k8j5v15h5.wasm",
"sha256": "1603c30cea37bbfc154d37528b99ffd5fcf7ca833d07112bc239d7cee598bff7",
"bytes": 1484398
},
{
"path": "_framework/dotnet.runtime.web2r9gqbh.js",
"sha256": "48e507110dc58430226c1491daef74356669a018cfb964661f40400135258495",
"bytes": 198480
}
]
}