full site update

This commit is contained in:
2025-07-24 18:46:24 +02:00
parent bfe2b90d8d
commit 37a6e0ab31
6912 changed files with 540482 additions and 361712 deletions

View File

@@ -1,4 +1,4 @@
import '@shikijs/types';
import 'oniguruma-to-es';
export { J as JavaScriptRegexEngineOptions, c as createJavaScriptRegexEngine, d as defaultJavaScriptRegexConstructor } from './shared/engine-javascript.DoNZS58X.mjs';
export { J as JavaScriptRegexEngineOptions, c as createJavaScriptRegexEngine, d as defaultJavaScriptRegexConstructor } from './shared/engine-javascript.CDEDnU-m.mjs';
import '@shikijs/vscode-textmate';

View File

@@ -1,4 +0,0 @@
import '@shikijs/types';
import 'oniguruma-to-es';
export { J as JavaScriptRegexEngineOptions, c as createJavaScriptRegexEngine, d as defaultJavaScriptRegexConstructor } from './shared/engine-javascript.DoNZS58X.js';
import '@shikijs/vscode-textmate';

View File

@@ -7,6 +7,9 @@ function defaultJavaScriptRegexConstructor(pattern, options) {
{
global: true,
hasIndices: true,
// This has no benefit for the standard JS engine, but it avoids a perf penalty for
// precompiled grammars when constructing extremely long patterns that aren't always used
lazyCompileLength: 3e3,
rules: {
// Needed since TextMate grammars merge backrefs across patterns
allowOrphanBackrefs: true,

View File

@@ -1,12 +0,0 @@
import { RegexEngine } from '@shikijs/types';
/**
* Raw JavaScript regex engine that only supports precompiled grammars.
*
* This further simplifies the engine by excluding the regex compilation step.
*
* Zero dependencies.
*/
declare function createJavaScriptRawEngine(): RegexEngine;
export { createJavaScriptRawEngine };

View File

@@ -1,4 +1,4 @@
export { J as JavaScriptRegexEngineOptions, a as JavaScriptRegexScannerOptions, b as JavaScriptScanner, c as createJavaScriptRegexEngine, d as defaultJavaScriptRegexConstructor } from './shared/engine-javascript.DoNZS58X.mjs';
export { J as JavaScriptRegexEngineOptions, a as JavaScriptRegexScannerOptions, b as JavaScriptScanner, c as createJavaScriptRegexEngine, d as defaultJavaScriptRegexConstructor } from './shared/engine-javascript.CDEDnU-m.mjs';
export { createJavaScriptRawEngine } from './engine-raw.mjs';
import '@shikijs/types';
import 'oniguruma-to-es';

View File

@@ -1,5 +0,0 @@
export { J as JavaScriptRegexEngineOptions, a as JavaScriptRegexScannerOptions, b as JavaScriptScanner, c as createJavaScriptRegexEngine, d as defaultJavaScriptRegexConstructor } from './shared/engine-javascript.DoNZS58X.js';
export { createJavaScriptRawEngine } from './engine-raw.js';
import '@shikijs/types';
import 'oniguruma-to-es';
import '@shikijs/vscode-textmate';

View File

@@ -1,5 +1,5 @@
import { PatternScanner, RegexEngineString, RegexEngine } from '@shikijs/types';
import { OnigurumaToEsOptions } from 'oniguruma-to-es';
import { ToRegExpOptions } from 'oniguruma-to-es';
import { IOnigMatch } from '@shikijs/vscode-textmate';
interface JavaScriptRegexScannerOptions {
@@ -48,7 +48,7 @@ interface JavaScriptRegexEngineOptions extends JavaScriptRegexScannerOptions {
/**
* The default regex constructor for the JavaScript RegExp engine.
*/
declare function defaultJavaScriptRegexConstructor(pattern: string, options?: OnigurumaToEsOptions): RegExp;
declare function defaultJavaScriptRegexConstructor(pattern: string, options?: ToRegExpOptions): RegExp;
/**
* Use the modern JavaScript RegExp engine to implement the OnigScanner.
*
@@ -59,4 +59,5 @@ declare function defaultJavaScriptRegexConstructor(pattern: string, options?: On
*/
declare function createJavaScriptRegexEngine(options?: JavaScriptRegexEngineOptions): RegexEngine;
export { type JavaScriptRegexEngineOptions as J, type JavaScriptRegexScannerOptions as a, JavaScriptScanner as b, createJavaScriptRegexEngine as c, defaultJavaScriptRegexConstructor as d };
export { JavaScriptScanner as b, createJavaScriptRegexEngine as c, defaultJavaScriptRegexConstructor as d };
export type { JavaScriptRegexEngineOptions as J, JavaScriptRegexScannerOptions as a };

View File

@@ -1,62 +0,0 @@
import { PatternScanner, RegexEngineString, RegexEngine } from '@shikijs/types';
import { OnigurumaToEsOptions } from 'oniguruma-to-es';
import { IOnigMatch } from '@shikijs/vscode-textmate';
interface JavaScriptRegexScannerOptions {
/**
* Whether to allow invalid regex patterns.
*
* @default false
*/
forgiving?: boolean;
/**
* Cache for regex patterns.
*/
cache?: Map<string, RegExp | Error> | null;
/**
* Custom pattern to RegExp constructor.
*
* By default `oniguruma-to-es` is used.
*/
regexConstructor?: (pattern: string) => RegExp;
}
declare class JavaScriptScanner implements PatternScanner {
patterns: (string | RegExp)[];
options: JavaScriptRegexScannerOptions;
regexps: (RegExp | null)[];
constructor(patterns: (string | RegExp)[], options?: JavaScriptRegexScannerOptions);
findNextMatchSync(string: string | RegexEngineString, startPosition: number, _options: number): IOnigMatch | null;
}
interface JavaScriptRegexEngineOptions extends JavaScriptRegexScannerOptions {
/**
* The target ECMAScript version.
*
* Oniguruma-To-ES uses RegExp features from later versions of ECMAScript to add support for a
* few more grammars. If using target `ES2024` or later, the RegExp `v` flag is used which
* requires Node.js 20+ or Chrome 112+.
* @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/unicodeSets
*
* For maximum compatibility, you can set it to `ES2018` which uses the RegExp `u` flag.
*
* Set to `auto` to automatically detect the latest version supported by the environment.
*
* @default 'auto'
*/
target?: 'auto' | 'ES2025' | 'ES2024' | 'ES2018';
}
/**
* The default regex constructor for the JavaScript RegExp engine.
*/
declare function defaultJavaScriptRegexConstructor(pattern: string, options?: OnigurumaToEsOptions): RegExp;
/**
* Use the modern JavaScript RegExp engine to implement the OnigScanner.
*
* As Oniguruma supports some features that can't be emulated using native JavaScript regexes, some
* patterns are not supported. Errors will be thrown when parsing TextMate grammars with
* unsupported patterns, and when the grammar includes patterns that use invalid Oniguruma syntax.
* Set `forgiving` to `true` to ignore these errors and skip any unsupported or invalid patterns.
*/
declare function createJavaScriptRegexEngine(options?: JavaScriptRegexEngineOptions): RegexEngine;
export { type JavaScriptRegexEngineOptions as J, type JavaScriptRegexScannerOptions as a, JavaScriptScanner as b, createJavaScriptRegexEngine as c, defaultJavaScriptRegexConstructor as d };

View File

@@ -1,7 +1,7 @@
{
"name": "@shikijs/engine-javascript",
"type": "module",
"version": "1.29.2",
"version": "3.8.1",
"description": "Engine for Shiki using JavaScript's native RegExp",
"author": "Anthony Fu <anthonyfu117@hotmail.com>",
"license": "MIT",
@@ -18,14 +18,8 @@
],
"sideEffects": false,
"exports": {
".": {
"types": "./dist/index.d.mts",
"default": "./dist/index.mjs"
},
"./raw": {
"types": "./dist/engine-raw.d.mts",
"default": "./dist/engine-raw.mjs"
}
".": "./dist/index.mjs",
"./raw": "./dist/engine-raw.mjs"
},
"main": "./dist/index.mjs",
"module": "./dist/index.mjs",
@@ -34,9 +28,9 @@
"dist"
],
"dependencies": {
"@shikijs/vscode-textmate": "^10.0.1",
"oniguruma-to-es": "^2.2.0",
"@shikijs/types": "1.29.2"
"@shikijs/vscode-textmate": "^10.0.2",
"oniguruma-to-es": "^4.3.3",
"@shikijs/types": "3.8.1"
},
"scripts": {
"build": "unbuild",