diff --git a/.github/renovate.json b/.github/renovate.json index 3d08468cee499..ec0fd0dca1663 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -10,11 +10,6 @@ "matchManagers": ["cargo"], "ignoreDeps": ["syn", "ureq"] }, - { - "groupName": "website npm packages", - "matchFileNames": ["website/package.json"], - "matchManagers": ["npm"] - }, { "groupName": "vscode npm packages", "matchFileNames": ["editors/vscode/package.json"], diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml deleted file mode 100644 index a6fdd0aed5ad1..0000000000000 --- a/.github/workflows/website.yml +++ /dev/null @@ -1,52 +0,0 @@ -name: Website - -on: - workflow_dispatch: - schedule: - - cron: "0 0 * * *" # 00:00 every day - pull_request: - types: [opened, synchronize] - paths: - - 'website/**' - - '.github/workflows/website.yml' - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: ${{ github.ref_name != 'main' }} - -jobs: - website: - name: Deploy Website - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: taiki-e/checkout-action@v1 - - - uses: Boshen/setup-rust@main - with: - cache-key: 'wasm' - - - name: Install pnpm - working-directory: website - run: corepack enable - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version-file: .node-version - cache-dependency-path: ./website/package.json - cache: pnpm - - - name: Build - working-directory: website - run: | - pnpm install - pnpm run build - - - name: Deploy Website - if: ${{ github.ref_name == 'main' }} - uses: peaceiris/actions-gh-pages@v4 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: website/dist - publish_branch: gh-pages diff --git a/README.md b/README.md index 0675cd369e3f0..c9ebc81c3f855 100644 --- a/README.md +++ b/README.md @@ -262,7 +262,7 @@ Oxc ports or copies code from other open source projects, their licenses are lis [sponsors-badge]: https://img.shields.io/github/sponsors/Boshen [sponsors-url]: https://github.com/sponsors/Boshen [playground-badge]: https://img.shields.io/badge/Playground-blue?color=9BE4E0 -[playground-url]: https://oxc-project.github.io/oxc/playground +[playground-url]: https://oxc-playground.netlify.app [website-badge]: https://img.shields.io/badge/Website-blue [website-url]: https://oxc.rs [crate-oxc-url]: https://crates.io/crates/oxc diff --git a/crates/oxc_ast/src/ast/ts.rs b/crates/oxc_ast/src/ast/ts.rs index a96c2f5560fc2..0a0b5cdd73e87 100644 --- a/crates/oxc_ast/src/ast/ts.rs +++ b/crates/oxc_ast/src/ast/ts.rs @@ -855,7 +855,7 @@ pub enum TSSignature<'a> { /// An index signature within a class, type alias, etc. /// /// ## Example -/// [playground link](https://oxc-project.github.io/oxc/playground/?code=3YCAAIC9gICAgICAgIC6nsrEgtem3AB/pQsrWlLnujiFhkHVtfeFMq5RMD7X5AzJnZ5R/ecQ5KG1FUFjzXvrxFXH0m6HpS+Ob3TC8gQXeRQygA%3D%3D) +/// [playground link](https://oxc-playground.netlify.app/?code=3YCAAIC9gICAgICAgIC6nsrEgtem3AB/pQsrWlLnujiFhkHVtfeFMq5RMD7X5AzJnZ5R/ecQ5KG1FUFjzXvrxFXH0m6HpS+Ob3TC8gQXeRQygA%3D%3D) /// ```ts /// type MapOf = { /// // _________ parameters (vec with 1 element) diff --git a/npm/oxlint/README.md b/npm/oxlint/README.md index 28e2bf62f37fb..cc8b801911ac4 100644 --- a/npm/oxlint/README.md +++ b/npm/oxlint/README.md @@ -27,7 +27,7 @@ [sponsors-badge]: https://img.shields.io/github/sponsors/Boshen [sponsors-url]: https://github.com/sponsors/Boshen [playground-badge]: https://img.shields.io/badge/Playground-blue?color=9BE4E0 -[playground-url]: https://oxc-project.github.io/oxc/playground +[playground-url]: https://oxc-playground.netlify.app diff --git a/website/.gitignore b/website/.gitignore deleted file mode 100644 index 849ddff3b7ec9..0000000000000 --- a/website/.gitignore +++ /dev/null @@ -1 +0,0 @@ -dist/ diff --git a/website/README.md b/website/README.md deleted file mode 100644 index 53ff878502cec..0000000000000 --- a/website/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# Website - -## Installation - -```bash -corepack enable -pnpm i -``` - -## Dev - -```bash -pnpm run dev -``` - -## Build - -```bash -pnpm run build -``` diff --git a/website/index.html b/website/index.html deleted file mode 100644 index 3c4a13c0ea14a..0000000000000 --- a/website/index.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - Oxc - The JavaScript Oxidation Compiler - - - - - - Playground - - diff --git a/website/package.json b/website/package.json deleted file mode 100644 index ef31a130686f1..0000000000000 --- a/website/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "oxc-website", - "private": true, - "version": "0.0.1", - "type": "module", - "packageManager": "pnpm@9.8.0", - "scripts": { - "dev": "pnpm run wasm-dev && concurrently 'vite' 'cd .. && cargo watch --workdir website -s \"pnpm run wasm-dev\"'", - "wasm-dev": "wasm-pack build --out-dir ../../npm/oxc-wasm --target web --dev --scope oxc ../crates/oxc_wasm", - "build": "pnpm run wasm-build && vite build --base=https://oxc-project.github.io/oxc/", - "wasm-build": "wasm-pack build --out-dir ../../npm/oxc-wasm --target web --release --scope oxc ../crates/oxc_wasm", - "lint": "oxlint" - }, - "dependencies": { - "@codemirror/autocomplete": "^6.16.2", - "@codemirror/commands": "^6.6.0", - "@codemirror/lang-javascript": "^6.2.2", - "@codemirror/lang-json": "^6.0.1", - "@codemirror/lang-rust": "^6.0.1", - "@codemirror/language": "^6.10.2", - "@codemirror/lint": "^6.8.0", - "@codemirror/state": "^6.4.1", - "@codemirror/view": "^6.27.0", - "@ddietr/codemirror-themes": "^1.4.2", - "@lezer/json": "^1.0.2", - "@replit/codemirror-vscode-keymap": "^6.0.2", - "codemirror": "^6.0.1", - "lodash.throttle": "^4.1.1", - "lzma": "^2.3.2" - }, - "devDependencies": { - "@types/lodash.throttle": "^4.1.9", - "@types/lzma": "^2.3.0", - "@lezer/common": "^1.2.1", - "oxlint": "link:../apps/oxlint", - "@oxc/oxc_wasm": "link:../npm/oxc-wasm", - "concurrently": "^8.2.2", - "vite": "^5.2.13", - "wasm-pack": "^0.13.0" - }, - "engines": { - "node": ">=20.14.0", - "pnpm": ">=9.2.0" - } -} diff --git a/website/patches/@ddietr__codemirror-themes@1.4.1.patch b/website/patches/@ddietr__codemirror-themes@1.4.1.patch deleted file mode 100644 index e66ead2d34a36..0000000000000 --- a/website/patches/@ddietr__codemirror-themes@1.4.1.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/dist/theme/github-dark.js b/dist/theme/github-dark.js -index 3758dd94146e9434a29d835c59c8e8040544da10..3faefcceab2e060b4020b722dbe1c59bc9ea2323 100644 ---- a/dist/theme/github-dark.js -+++ b/dist/theme/github-dark.js -@@ -46,7 +46,7 @@ const githubDarkTheme = EditorView.theme({ - '.cm-searchMatch.cm-searchMatch-selected': { - backgroundColor: config.selection - }, -- '.cm-activeLine': { backgroundColor: config.activeLine }, -+ '.cm-activeLine': { backgroundColor: 'transparent' }, - '.cm-selectionMatch': { backgroundColor: config.selection }, - '&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket': { - backgroundColor: config.matchingBracket, \ No newline at end of file diff --git a/website/playground/editor.ts b/website/playground/editor.ts deleted file mode 100644 index c8d5331dc3a4a..0000000000000 --- a/website/playground/editor.ts +++ /dev/null @@ -1,40 +0,0 @@ -import type { TreeCursor } from "@lezer/common"; -import type { EditorView } from "codemirror"; - -/** - * Go down and find the `start` and `end` keys - */ -export function getStartAndEnd( - view: EditorView, - cursor: TreeCursor -): [start: number | undefined, end: number | undefined] { - let start: number | undefined, end: number | undefined; - while (true) { - if ( - !start && - this.getTextFromView(view, cursor.from, cursor.to) == '"start"' - ) { - cursor.next(); - start = this.getTextFromView(view, cursor.from, cursor.to); - } - if ( - !end && - this.getTextFromView(view, cursor.from, cursor.to) == '"end"' - ) { - cursor.next(); - end = this.getTextFromView(view, cursor.from, cursor.to); - } - if (start && end) { - break; - } - if (!cursor.next()) { - break; - } - } - - return [start, end] -} - -export const convertToUtf8 = (sourceTextUtf8: ArrayBuffer, d: number) => { - return new TextDecoder().decode(sourceTextUtf8.slice(0, d)).length; -} diff --git a/website/playground/index.html b/website/playground/index.html deleted file mode 100644 index 375722d5d3858..0000000000000 --- a/website/playground/index.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - Oxc - The JavaScript Oxidation Compiler Playground - - - - - -
Loading Wasm (~400kB)...
- -
-
-
- -
- - - -
-
-
-
-
-
- -
- - diff --git a/website/playground/index.ts b/website/playground/index.ts deleted file mode 100644 index cc33b6853c9be..0000000000000 --- a/website/playground/index.ts +++ /dev/null @@ -1,767 +0,0 @@ -import { basicSetup } from "codemirror"; -import { EditorView, keymap, Decoration } from "@codemirror/view"; -import { - EditorState, - StateEffect, - StateField, - EditorSelection, - Compartment, - RangeSet, - type Range, -} from "@codemirror/state"; -import { convertToUtf8, getStartAndEnd } from './editor.ts' -import { findMostInnerNodeForPosition } from './traverseJson.ts' -import { parser } from '@lezer/json' -import { javascript, javascriptLanguage } from "@codemirror/lang-javascript"; -import { rust, rustLanguage } from "@codemirror/lang-rust"; -import { json, jsonLanguage } from "@codemirror/lang-json"; -import { vscodeKeymap } from "@replit/codemirror-vscode-keymap"; -import { githubDark } from "@ddietr/codemirror-themes/github-dark"; -import { type Diagnostic, linter, lintGutter } from "@codemirror/lint"; -import { language, syntaxTree } from "@codemirror/language"; -import { autocompletion } from "@codemirror/autocomplete"; -import { indentWithTab, deleteLine } from "@codemirror/commands"; -import throttle from "lodash.throttle"; - -// lzma is a very old library, it writes to window when built in production with vite. -import { LZMA } from 'lzma/src/lzma_worker.js'; -const GLOBAL_LZMA = LZMA || window.LZMA; - -import initWasm, { - Oxc, -} from "@oxc/oxc_wasm"; -import type { - OxcRunOptions, - OxcParserOptions, - OxcLinterOptions, - OxcMinifierOptions, - OxcCodegenOptions, -} from "@oxc/oxc_wasm" -import { getSymbolAndReferencesSpan, renderSymbols } from "./symbols.js"; - -const placeholderText = ` -import React, { useEffect, useRef } from 'react' - -const DummyComponent: React.FC = () => { - const ref = useRef(null) - - useEffect(() => { - if (ref.current) ref.current.focus() - }, []) - - return ( -
{Boolean(ref.current) ?? ( - - )} -
- ) -} - -export default DummyComponent -`.trim(); - -const STORAGE_KEY_CODE = "playground.code"; -const ACTIVE_TAB_STORAGE_KEY_CODE = "playground.activeTab"; - -const getStringFromStorage = (whatToGet: string) => { - try { - return localStorage.getItem(whatToGet); - } catch (_e) { - return ""; - } -}; - -const setStringToStorage = (whatToSet: string, value: string) => { - try { - localStorage.setItem(whatToSet, value); - } catch (_e) { - return; - } -}; - -const tabBtnsBindClick = (callback) => { - const buttons = document.querySelectorAll('.header.controls button'); - buttons.forEach(btn => { - btn.onclick = (e) => { - callback(e?.target?.id); - }; - }); -} - -const switchActiveTab = (tab) => { - const buttons = document.querySelectorAll('.header.controls button'); - let targetBtn: Element | null = null; - buttons.forEach(btn => { - btn.classList.remove('active') - if (tab === btn.id) { - targetBtn = btn; - } - }); - targetBtn?.classList.add('active'); -} - -const initActiveTab = () => { - const activeTab = getStringFromStorage(ACTIVE_TAB_STORAGE_KEY_CODE); - if (!activeTab) { - return; - } - const btn = document.getElementById(activeTab); - if (!btn?.classList) { - return; - } - btn.classList.add('active'); -} - -type EditorViewKind = - | 'ast' - | 'codegen' - | 'format' - | 'ir' - | 'minify' - | 'prettier-ir' - | 'prettier' - | 'scope' - | 'symbol' - -class Playground { - oxc: Oxc; - sourceTextUtf8 // source text in Uint8Array, for converting from utf8 to utf16 span - - runOptions: OxcRunOptions; - parserOptions: OxcParserOptions; - codegenOptions: OxcCodegenOptions; - linterOptions: OxcLinterOptions; - minifierOptions: OxcMinifierOptions; - - editor: EditorView; - viewer: EditorView; - currentView: EditorViewKind = "ast"; // "ast" | "format" | "minify" | "ir" - languageConf: Compartment; - linterConf: Compartment; - urlParams: URLParams; - viewerIsEditableConf: Compartment; - sourceText: string = '' - - constructor() { - this.languageConf = new Compartment(); - this.urlParams = new URLParams(); - this.viewerIsEditableConf = new Compartment(); - this.linterConf = new Compartment(); - this.editor = this.initEditor(); - this.viewer = this.initViewer(); - this.currentView = (getStringFromStorage(ACTIVE_TAB_STORAGE_KEY_CODE) as EditorViewKind | null) || "ast"; - } - - initOxc() { - this.oxc = new Oxc(); - this.runOptions = {}; - this.parserOptions = {}; - this.codegenOptions = {}; - this.linterOptions = {}; - this.minifierOptions = {}; - - this.parserOptions.sourceFilename = "test.tsx"; - this.runOptions.syntax = true; - this.runOptions.lint = true; - - this.runOxc(this.editor.state.doc.toString()); - this.editor.dispatch({ effects: this.linterConf.reconfigure(this.linter()) }); - } - - linter() { - return linter(() => this.updateDiagnostics(), { delay: 0 }) - } - - runOxc(text: string) { - const sourceText = text; - this.urlParams.updateCode(sourceText); - this.sourceText = sourceText; - this.sourceTextUtf8 = new TextEncoder().encode(sourceText); - this.updateView(); - } - - initEditor() { - const stateListener = EditorView.updateListener.of((view) => { - if (view.docChanged) { - this.runOxc(view.state.doc.toString()); - return; - } - if (!view.docChanged && view.selectionSet && this.currentView === 'ast') { - let ranges = view.state.selection.ranges; - if (ranges.length === 1 && ranges[0].empty) { - this.editorRange = view.state.selection.ranges - let {from} = this.editorRange[0] - let viewerText = this.viewer.state.doc.toString(); - let ast = parser.parse(viewerText) - let root = ast.cursor().node; - let targetNode = findMostInnerNodeForPosition(root.node, from, viewerText) - if (!targetNode?.from) { - return; - } - this.viewer.dispatch({ - selection: EditorSelection.single(targetNode.to, targetNode.from), - scrollIntoView: true, - }) - } - } - }); - - const state = EditorState.create({ - extensions: [ - basicSetup, - EditorView.lineWrapping, - keymap.of([ - ...vscodeKeymap, - indentWithTab, - { - key: "Delete", - shift: deleteLine, - }, - ]), - javascript(), - githubDark, - lintGutter(), - stateListener, - autocompletion(), - this.linterConf.of(this.linter()), - ], - doc: this.urlParams.code || placeholderText, - }); - - return new EditorView({ - state, - parent: document.querySelector("#editor"), - }); - } - - updateDiagnostics() { - const diagnostics = (this.oxc ? this.oxc.getDiagnostics() : []).map((d) => ({ - from: convertToUtf8(this.sourceTextUtf8, d.start), - to: convertToUtf8(this.sourceTextUtf8, d.end), - severity: d.severity.toLowerCase(), - message: d.message, - })); - this.updatePanel(diagnostics); - return diagnostics; - } - - initViewer() { - // scroll selection into the middle https://discuss.codemirror.net/t/cm6-scroll-to-middle/2924/2 - const viewStateListener = EditorView.updateListener.of((update) => { - if (update.transactions.some(tr => tr.scrollIntoView)) { - let view = update.view - // (Sync with other DOM read/write phases for efficiency) - view.requestMeasure({ - read() { - return { - cursor: view.coordsAtPos(view.state.selection.main.head), - scroller: view.scrollDOM.getBoundingClientRect() - } - }, - write({cursor, scroller}) { - if (cursor) { - let curMid = (cursor.top + cursor.bottom) / 2 - let eltMid = (scroller.top + scroller.bottom) / 2 - if (Math.abs(curMid - eltMid) > 5) - view.scrollDOM.scrollTop += curMid - eltMid - } - } - }) - } - }); - return new EditorView({ - extensions: [ - linter( - () => { - try { - this.runQuery(); - } finally { - return []; - } - }, - { delay: 0 } - ), - viewStateListener, - basicSetup, - keymap.of([ - ...vscodeKeymap, - indentWithTab, - { - key: "Delete", - shift: deleteLine, - }, - ]), - githubDark, - EditorState.transactionExtender.of((tr) => { - if (!tr.docChanged) return null; - let ext = EditorView.editable.of(false); - return { - effects: this.viewerIsEditableConf.reconfigure(ext), - }; - }), - this.viewerIsEditableConf.of(EditorView.editable.of(false)), - EditorView.lineWrapping, - this.languageConf.of(javascript()), - // Change language according to the current view - EditorState.transactionExtender.of((tr) => { - if (!tr.docChanged) return null; - const currentLanguage = tr.startState.facet(language); - let newLanguage; - switch (this.currentLanguage()) { - case "json": - if (currentLanguage == jsonLanguage) return null; - newLanguage = json(); - break; - case "javascript": - if (currentLanguage == javascriptLanguage) return null; - newLanguage = javascript(); - break; - case "rust": - if (currentLanguage == rustLanguage) return null; - newLanguage = rust(); - break; - } - return { - effects: this.languageConf.reconfigure(newLanguage), - }; - }), - EditorView.domEventHandlers({ - mouseover: this.highlightEditorFromViewer.bind(this), - }), - autocompletion(), - ], - parent: document.querySelector("#viewer"), - }); - } - - run() { - const start = new Date(); - this.oxc.run(this.sourceText, { - run: this.runOptions, - parser: this.parserOptions, - linter: this.linterOptions, - codegen: this.codegenOptions, - minifier: this.minifierOptions, - }) - const elapsed = new Date() - start; - document.getElementById("duration")!.innerText = `${elapsed}ms`; - } - - currentLanguage() { - switch (this.currentView) { - case "ir": - return "rust"; - case "ast": - case "symbol": - return "json"; - default: - return "javascript"; - } - } - - updatePanel(diagnostics: Diagnostic[]) { - const panel = document.getElementById("panel"); - if (!panel) { - console.error(new Error('No #panel found')) - return - } - panel.innerText = diagnostics - .map((d) => { - const emoji = { - error: "❗", - warning: "⚠️", - advice: "ℹ️", - }[d.severity.toLowerCase()]; - return `${emoji} ${d.message}`; - }) - .join("\n\n"); - panel.scrollTop = panel.scrollHeight; - } - - updateView(view?: EditorViewKind) { - view = view || this.currentView; - this.currentView = view; - - document.getElementById("ir-copy").style.display = "none"; - document.getElementById("codegen-controls").style.display = "none"; - document.getElementById("duration").style.display = "inline"; - document.getElementById("panel").style.display = "inline"; - this.runOptions.format = false; - this.runOptions.minify = false; - - let text: string; - switch (this.currentView) { - case "ast": - this.run(); - let ast = this.oxc.ast; - ast.comments = this.oxc.getComments(); - text = JSON.stringify(ast, null, 2); - break; - case "scope": - this.runOptions.scope = true; - this.run(); - this.runOptions.scope = false - text = this.oxc.scopeText; - break; - case "symbol": - this.runOptions.symbol = true; - this.run(); - this.runOptions.symbol = false - text = renderSymbols(this.oxc.symbols) - break; - case "codegen": - document.getElementById("codegen-controls").style.display = "block"; - this.run(); - text = this.oxc.codegenText; - break; - case "ir": - document.getElementById("ir-copy").style.display = "inline"; - this.runOptions.ir = true; - this.run(); - text = this.oxc.ir; - break; - case "prettier-ir": - this.runOptions.prettier_ir = true; - this.run(); - text = this.oxc.prettierIrText; - break; - case "prettier": - this.runOptions.prettier_format = true; - this.run(); - text = this.oxc.prettierFormattedText; - break; - case "format": - this.runOptions.format = true; - this.run(); - text = this.oxc.formattedText; - break; - default: - console.warn('Unknown view', this.currentView) - return - } - - this.updateEditorText(this.viewer, text); - } - - updateEditorText(instance: EditorView, text: string) { - const transaction = instance.state.update({ - changes: { from: 0, to: instance.state.doc.length, insert: text }, - }); - instance.dispatch(transaction); - } - - highlightEditorRange(view: EditorView, range: Range | Range[]) { - let ranges = Array.isArray(range) ? range : [range]; - ranges = ranges.filter((range) => range.from !== 0 || range.to !== 0); - if (ranges.length === 0) { - return; - } - const addHighlight = StateEffect.define>({ - map: ({ from, to }, change) => ({ - from: change.mapPos(from), - to: change.mapPos(to), - }), - }); - const highlightField = StateField.define({ - create() { - return Decoration.none; - }, - update(highlights, tr) { - highlights = RangeSet.empty; - for (let e of tr.effects) { - if (e.is(addHighlight)) { - highlights = highlights.update({ - add: [Playground.highlightMark.range(e.value.from, e.value.to)], - }); - } - } - return highlights; - }, - provide: (f) => EditorView.decorations.from(f), - }); - const effects = ranges.map((range) => addHighlight.of(range)); - if (!view.state.field(highlightField, false)) { - effects.push( - StateEffect.appendConfig.of([highlightField, Playground.highlightTheme]) - ); - } - view.dispatch({ effects }); - } - - getTextFromView(view: EditorView, from: number, to?: number) { - return view.state.doc.sliceString(from, to); - } - - static highlightMark = Decoration.mark({ class: "cm-highlight" }); - static highlightTheme = EditorView.baseTheme({ - ".cm-highlight": { background: "#3392FF44" }, - }); - - // Highlight the editor by searching for `start` and `end` values. - highlightEditorFromViewer(e: MouseEvent, view: EditorView) { - if (this.currentView === 'symbol') { - const pos = view.posAtCoords(e); - const tree = syntaxTree(view.state); - let cursor = tree.cursorAt(pos); - let [start, end] = getStartAndEnd.call(this, view, cursor) - // if we didn't find a start or an end, return early - if (start == undefined || end == undefined) return; - let ranges = getSymbolAndReferencesSpan(start, end) - this.highlightEditorRange( - this.editor, - ranges.map(range => EditorSelection.range(convertToUtf8(this.sourceTextUtf8, range.start), convertToUtf8(this.sourceTextUtf8, range.end))) - ); - } - else if (this.currentView === "ast") { - const pos = view.posAtCoords(e); - const tree = syntaxTree(view.state); - let cursor = tree.cursorAt(pos); - // Go up and find the `type` key - while (true) { - if (view.state.doc.sliceString(cursor.from, cursor.to) == '"type"') { - break; - } - if (!cursor.prev()) { - break; - } - } - let [start, end] = getStartAndEnd.call(this, view, cursor) - // if we didn't find a start or an end, return early - if (start == undefined || end == undefined) return; - - start = convertToUtf8(this.sourceTextUtf8, start) - end = convertToUtf8(this.sourceTextUtf8, end) - - this.highlightEditorRange( - this.editor, - EditorSelection.range(start, end) - ); - } - } -} - -// Code partly copied from Rome -// -class URLParams { - // Safari/Webkit/JSC/whatever only allows setting a URL 50 times within 30 seconds - // set our maximum update frequency just under that to avoid any chance of hitting it - static URL_UPDATE_THROTTLE = 30000 / 40; - - params; - code; - - constructor() { - this.params = new URLSearchParams(window.location.search); - this.code = this.tryReadCode(this.params); - } - - tryReadCode(params) { - try { - if (params.has("code")) { - return this.decodeCode(params.get("code")); - } - return getStringFromStorage(STORAGE_KEY_CODE); - } catch(e) { - console.error(e); - return '' - } - - } - - updateCode = throttle( - (code) => { - this.code = this.encodeCode(code); - this.params.set("code", this.code); - const url = `${window.location.protocol}//${window.location.host}${ - window.location.pathname - }?${this.params.toString()}`; - window.history.replaceState({ path: url }, "", url); - setStringToStorage(STORAGE_KEY_CODE, code); - }, - URLParams.URL_UPDATE_THROTTLE, - { trailing: true } - ); - - encodeCode(code) { - const lzma = GLOBAL_LZMA.compress(code); - return this.LZMABufferToBase64(lzma); - } - - decodeCode(encoded) { - const compressed = this.base64ToLZMABuffer(encoded); - return GLOBAL_LZMA.decompress(compressed); - } - - // https://developer.mozilla.org/en-US/docs/Glossary/Base64#the_unicode_problem - // btoa is safe here, because we manually construct a string of code points - // which are guaranteed to be one-byte chars - // the 128 offset is to compensate for LZMA's -128 to 127 range - LZMABufferToBase64 = (buffer) => btoa(Array.from(buffer, (x) => String.fromCodePoint(x + 128)).join("")); - base64ToLZMABuffer = (base64) => Uint8Array.from(atob(base64), (m) => m.codePointAt(0) - 128); -} - -async function main() { - const playground = new Playground(); - - await initWasm(); - - playground.initOxc(); - - window.setTimeout(function () { - playground.editor.focus(); - }, 0); - - document.getElementById("loading").remove(); - - addHorizontalResize() - - initActiveTab(); - tabBtnsBindClick((tab) => { - if (tab === 'ir-copy') { - navigator.clipboard.writeText(playground.oxc.ir); - return; - } - playground.updateView(tab); - switchActiveTab(tab); - setStringToStorage(ACTIVE_TAB_STORAGE_KEY_CODE, tab); - }); - - // document.getElementById("format").onclick = () => { - // playground.updateView("format"); - // }; - - document.getElementById("transform").onchange = function () { - const checked = document.getElementById("transform-checkbox").checked; - playground.runOptions.transform = checked; - playground.updateView("codegen"); - }; - - document.getElementById("codegen-ts").onchange = function () { - const checked = document.getElementById("codegen-ts-checkbox").checked; - playground.codegenOptions.enableTypescript = checked; - playground.updateView("codegen"); - }; - - document.getElementById("whitespace").onchange = function () { - const checked = document.getElementById("whitespace-checkbox").checked; - playground.minifierOptions.whitespace = checked; - playground.updateView("codegen"); - }; - - document.getElementById("mangle").onchange = function () { - const checked = document.getElementById("mangle-checkbox").checked; - playground.minifierOptions.mangle = checked; - playground.updateView("codegen"); - }; - - document.getElementById("compress").onchange = function () { - const checked = document.getElementById("compress-checkbox").checked; - playground.minifierOptions.compress = checked; - playground.updateView("codegen"); - }; - - [ - "compress-booleans", - "compress-drop-debugger", - "compress-drop-console", - "compress-join-vars", - "compress-evaluate", - "compress-loops", - "compress-typeofs", - ].forEach((key) => { - let labelElement = document.getElementById(`${key}`) as HTMLLabelElement - if (labelElement) { - labelElement.onchange = function () { - const normalizedKey = () => { - return key.replace('compress-', '').replace(/-([a-z])/g, (g) => g[1].toUpperCase()) - } - const optionKey = normalizedKey(); - - if ( - optionKey !== "booleans" - && optionKey !== "dropDebugger" - && optionKey !== "dropConsole" - && optionKey !== "joinVars" - && optionKey !== "evaluate" - && optionKey !== "loops" - && optionKey !== "typeofs" - ) { - console.error('Unknown compress option key', optionKey) - return - } - - let checkbox = document.getElementById(`${key}-checkbox`) as HTMLInputElement - const checked = checkbox.checked || false; - const compressOptions = playground.minifierOptions.compressOptions - compressOptions[optionKey] = checked - playground.minifierOptions.compressOptions = compressOptions - playground.updateView('codegen') - } - } - }) - - document.getElementById("file-type-select").onchange = function (e) { - playground.parserOptions.sourceFilename= `test.${e.target.value}`; - // Need to repaint the editor to clear the rendered linter diagnostics - const sourceText = playground.sourceText; - playground.updateEditorText(playground.editor, ""); - playground.updateView(); - playground.updateEditorText(playground.editor, sourceText); - }; - - document.getElementById("syntax").onchange = function () { - const checked = document.getElementById("syntax-checkbox").checked; - playground.runOptions.syntax = checked; - // Need to repaint the editor to clear the rendered linter diagnostics - const sourceText = playground.sourceText; - playground.updateEditorText(playground.editor, ""); - playground.updateView(); - playground.updateEditorText(playground.editor, sourceText); - }; - - document.getElementById("lint").onchange = function () { - const checked = document.getElementById("lint-checkbox").checked; - playground.runOptions.lint = checked; - // Need to repaint the editor to clear the rendered linter diagnostics - const sourceText = playground.sourceText; - playground.updateEditorText(playground.editor, ""); - playground.updateView(); - playground.updateEditorText(playground.editor, sourceText); - }; -} - -// port from https://github.com/fkling/astexplorer/blob/541552fe45885c225fbb67d54dc4c6d6107b65b5/website/src/components/SplitPane.js#L26-L55 -function addHorizontalResize() { - const container = document.getElementById("container"); - const left = document.getElementById("left"); - const divider = document.getElementById("divider"); - - divider.addEventListener("mousedown", function (event) { - // This is needed to prevent text selection in Safari - event.preventDefault(); - const offset = container.offsetLeft; - const size = container.offsetWidth; - const setStyle = (position) => { - left.style.minWidth = left.style.maxWidth = position + '%' - } - globalThis.document.body.style.cursor = 'col-resize'; - - const moveHandler = (event: MouseEvent) => { - event.preventDefault(); - const newPosition = ( event.pageX - offset) / size * 100; - // Using 99% as the max value prevents the divider from disappearing - const position = Math.min(Math.max(0, newPosition), 99); - setStyle(position) - }; - let upHandler = () => { - document.removeEventListener('mousemove', moveHandler); - document.removeEventListener('mouseup', upHandler); - globalThis.document.body.style.cursor = ''; - }; - - document.addEventListener('mousemove', moveHandler); - document.addEventListener('mouseup', upHandler); - }) -} - -main(); diff --git a/website/playground/symbols.ts b/website/playground/symbols.ts deleted file mode 100644 index 1b0b0e3dbf894..0000000000000 --- a/website/playground/symbols.ts +++ /dev/null @@ -1,64 +0,0 @@ -import type { SymbolTable } from "@oxc/oxc_wasm"; - -type Span = { start: number; end: number } - -type RenderedSymbol = { - name: string - flags: string - symbolId: number - nodeId: number - span: Span - references: Array<{ - referenceId: number - span: Span - name: string - nodeId: number - symbolId: number | null - flags: string - }> - -} - -let cacheSymbols: RenderedSymbol[] | null = null - -/** - * - * @param {SymbolTable} symbols - * @returns - */ -export const renderSymbols = (symbols: SymbolTable): string => { - const target = symbols.declarations.reduce( - (acc, nodeId, index) => { - acc.push({ - name: symbols.names[index], - flags: symbols.flags[index], - symbolId: index, - nodeId, - span: symbols.spans[index], - references: symbols.resolvedReferences[index].map(id => ({ - referenceId: id, - ...symbols.references[id], - })), - }) - return acc - }, - [] as RenderedSymbol[] - ) - cacheSymbols = target - return JSON.stringify(target, null, 2) -} - -export const getSymbolAndReferencesSpan = (start: number, end: number): Span[] => { - if (!cacheSymbols) { - return [{ start, end }] - } - const symbol = cacheSymbols.find(symbol => { - return symbol.span.start == start && symbol.span.end == end - }) - - if (!symbol) { - return [{ start, end }] - } - - return [symbol.span, ...symbol.references.map(reference => reference.span)] -} diff --git a/website/playground/traverseJson.ts b/website/playground/traverseJson.ts deleted file mode 100644 index fa0158f4ec071..0000000000000 --- a/website/playground/traverseJson.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { SyntaxNode } from "@lezer/common"; - -const typeFilter = ["JsonText", "Object", "Property", "Array"]; - -export function findMostInnerNodeForPosition( - node: SyntaxNode, - offset: number, - source: string -): SyntaxNode | undefined { - if (!typeFilter.includes(node.name)) { - return; - } - let targetNode: SyntaxNode | undefined; - if (node.name === "Object") { - let span = getSpanOfNode(node, source); - if (Object.keys(span).length > 0) { - let { start, end } = span; - if (start <= offset && end >= offset) { - targetNode = node; - } else { - return targetNode; - } - } - } - let curChild = node.firstChild; - while (curChild) { - let node = findMostInnerNodeForPosition(curChild, offset, source); - if (node?.from) { - targetNode = node; - } - curChild = curChild.nextSibling; - } - return targetNode; -} - -/** - * @param {import('@lezer/common').SyntaxNode} node - * @param {string} source - * */ -function getSpanOfNode(node: SyntaxNode, source: string) { - let span = {} as Record; - - for (let child = node.firstChild; !!child; child = child.nextSibling) { - if (child.name === "Property" && child.firstChild?.name === "PropertyName") { - let { from, to } = child.firstChild; - let name = source.slice(from + 1, to - 1); - if (["start", "end"].includes(name)) { - let value = child.firstChild.nextSibling; - if (value) { - span[name] = +source.slice(value.from, value.to); - } - } - } - } - - return span; -} diff --git a/website/pnpm-lock.yaml b/website/pnpm-lock.yaml deleted file mode 100644 index c06db516eaac9..0000000000000 --- a/website/pnpm-lock.yaml +++ /dev/null @@ -1,1215 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - '@codemirror/autocomplete': - specifier: ^6.16.2 - version: 6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1) - '@codemirror/commands': - specifier: ^6.6.0 - version: 6.6.0 - '@codemirror/lang-javascript': - specifier: ^6.2.2 - version: 6.2.2 - '@codemirror/lang-json': - specifier: ^6.0.1 - version: 6.0.1 - '@codemirror/lang-rust': - specifier: ^6.0.1 - version: 6.0.1 - '@codemirror/language': - specifier: ^6.10.2 - version: 6.10.2 - '@codemirror/lint': - specifier: ^6.8.0 - version: 6.8.1 - '@codemirror/state': - specifier: ^6.4.1 - version: 6.4.1 - '@codemirror/view': - specifier: ^6.27.0 - version: 6.33.0 - '@ddietr/codemirror-themes': - specifier: ^1.4.2 - version: 1.4.2 - '@lezer/json': - specifier: ^1.0.2 - version: 1.0.2 - '@replit/codemirror-vscode-keymap': - specifier: ^6.0.2 - version: 6.0.2(@codemirror/autocomplete@6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1))(@codemirror/commands@6.6.0)(@codemirror/language@6.10.2)(@codemirror/lint@6.8.1)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0) - codemirror: - specifier: ^6.0.1 - version: 6.0.1(@lezer/common@1.2.1) - lodash.throttle: - specifier: ^4.1.1 - version: 4.1.1 - lzma: - specifier: ^2.3.2 - version: 2.3.2 - devDependencies: - '@lezer/common': - specifier: ^1.2.1 - version: 1.2.1 - '@oxc/oxc_wasm': - specifier: link:../npm/oxc-wasm - version: link:../npm/oxc-wasm - '@types/lodash.throttle': - specifier: ^4.1.9 - version: 4.1.9 - '@types/lzma': - specifier: ^2.3.0 - version: 2.3.0 - concurrently: - specifier: ^8.2.2 - version: 8.2.2 - oxlint: - specifier: link:../apps/oxlint - version: link:../apps/oxlint - vite: - specifier: ^5.2.13 - version: 5.4.2(@types/node@20.14.2) - wasm-pack: - specifier: ^0.13.0 - version: 0.13.0 - -packages: - - '@babel/runtime@7.24.6': - resolution: {integrity: sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==} - engines: {node: '>=6.9.0'} - - '@codemirror/autocomplete@6.18.0': - resolution: {integrity: sha512-5DbOvBbY4qW5l57cjDsmmpDh3/TeK1vXfTHa+BUMrRzdWdcxKZ4U4V7vQaTtOpApNU4kLS4FQ6cINtLg245LXA==} - peerDependencies: - '@codemirror/language': ^6.0.0 - '@codemirror/state': ^6.0.0 - '@codemirror/view': ^6.0.0 - '@lezer/common': ^1.0.0 - - '@codemirror/commands@6.6.0': - resolution: {integrity: sha512-qnY+b7j1UNcTS31Eenuc/5YJB6gQOzkUoNmJQc0rznwqSRpeaWWpjkWy2C/MPTcePpsKJEM26hXrOXl1+nceXg==} - - '@codemirror/lang-javascript@6.2.2': - resolution: {integrity: sha512-VGQfY+FCc285AhWuwjYxQyUQcYurWlxdKYT4bqwr3Twnd5wP5WSeu52t4tvvuWmljT4EmgEgZCqSieokhtY8hg==} - - '@codemirror/lang-json@6.0.1': - resolution: {integrity: sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==} - - '@codemirror/lang-rust@6.0.1': - resolution: {integrity: sha512-344EMWFBzWArHWdZn/NcgkwMvZIWUR1GEBdwG8FEp++6o6vT6KL9V7vGs2ONsKxxFUPXKI0SPcWhyYyl2zPYxQ==} - - '@codemirror/language@6.10.2': - resolution: {integrity: sha512-kgbTYTo0Au6dCSc/TFy7fK3fpJmgHDv1sG1KNQKJXVi+xBTEeBPY/M30YXiU6mMXeH+YIDLsbrT4ZwNRdtF+SA==} - - '@codemirror/lint@6.8.1': - resolution: {integrity: sha512-IZ0Y7S4/bpaunwggW2jYqwLuHj0QtESf5xcROewY6+lDNwZ/NzvR4t+vpYgg9m7V8UXLPYqG+lu3DF470E5Oxg==} - - '@codemirror/search@6.5.6': - resolution: {integrity: sha512-rpMgcsh7o0GuCDUXKPvww+muLA1pDJaFrpq/CCHtpQJYz8xopu4D1hPcKRoDD0YlF8gZaqTNIRa4VRBWyhyy7Q==} - - '@codemirror/state@6.4.1': - resolution: {integrity: sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A==} - - '@codemirror/view@6.33.0': - resolution: {integrity: sha512-AroaR3BvnjRW8fiZBalAaK+ZzB5usGgI014YKElYZvQdNH5ZIidHlO+cyf/2rWzyBFRkvG6VhiXeAEbC53P2YQ==} - - '@ddietr/codemirror-themes@1.4.2': - resolution: {integrity: sha512-8U3H3lmtmSWLD5VRlt7jf2HW62URnwgPxjZZDYjBX5EtMpgZ2QnqiIYrNzdQPPjJngT9D43gls3+JlekCBmrfw==} - - '@esbuild/aix-ppc64@0.21.5': - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.21.5': - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.21.5': - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.21.5': - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.21.5': - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.21.5': - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.21.5': - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.21.5': - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.21.5': - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.21.5': - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.21.5': - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.21.5': - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.21.5': - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.21.5': - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.21.5': - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.21.5': - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-x64@0.21.5': - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-x64@0.21.5': - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/sunos-x64@0.21.5': - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.21.5': - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.21.5': - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.21.5': - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@lezer/common@1.2.1': - resolution: {integrity: sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==} - - '@lezer/highlight@1.2.0': - resolution: {integrity: sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA==} - - '@lezer/javascript@1.4.16': - resolution: {integrity: sha512-84UXR3N7s11MPQHWgMnjb9571fr19MmXnr5zTv2XX0gHXXUvW3uPJ8GCjKrfTXmSdfktjRK0ayKklw+A13rk4g==} - - '@lezer/json@1.0.2': - resolution: {integrity: sha512-xHT2P4S5eeCYECyKNPhr4cbEL9tc8w83SPwRC373o9uEdrvGKTZoJVAGxpOsZckMlEh9W23Pc72ew918RWQOBQ==} - - '@lezer/lr@1.4.1': - resolution: {integrity: sha512-CHsKq8DMKBf9b3yXPDIU4DbH+ZJd/sJdYOW2llbW/HudP5u0VS6Bfq1hLYfgU7uAYGFIyGGQIsSOXGPEErZiJw==} - - '@lezer/rust@1.0.2': - resolution: {integrity: sha512-Lz5sIPBdF2FUXcWeCu1//ojFAZqzTQNRga0aYv6dYXqJqPfMdCAI0NzajWUd4Xijj1IKJLtjoXRPMvTKWBcqKg==} - - '@replit/codemirror-vscode-keymap@6.0.2': - resolution: {integrity: sha512-j45qTwGxzpsv82lMD/NreGDORFKSctMDVkGRopaP+OrzSzv+pXDQuU3LnFvKpasyjVT0lf+PKG1v2DSCn/vxxg==} - peerDependencies: - '@codemirror/autocomplete': ^6.0.0 - '@codemirror/commands': ^6.0.0 - '@codemirror/language': ^6.0.0 - '@codemirror/lint': ^6.0.0 - '@codemirror/search': ^6.0.0 - '@codemirror/state': ^6.0.0 - '@codemirror/view': ^6.0.0 - - '@rollup/rollup-android-arm-eabi@4.21.0': - resolution: {integrity: sha512-WTWD8PfoSAJ+qL87lE7votj3syLavxunWhzCnx3XFxFiI/BA/r3X7MUM8dVrH8rb2r4AiO8jJsr3ZjdaftmnfA==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.21.0': - resolution: {integrity: sha512-a1sR2zSK1B4eYkiZu17ZUZhmUQcKjk2/j9Me2IDjk1GHW7LB5Z35LEzj9iJch6gtUfsnvZs1ZNyDW2oZSThrkA==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.21.0': - resolution: {integrity: sha512-zOnKWLgDld/svhKO5PD9ozmL6roy5OQ5T4ThvdYZLpiOhEGY+dp2NwUmxK0Ld91LrbjrvtNAE0ERBwjqhZTRAA==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.21.0': - resolution: {integrity: sha512-7doS8br0xAkg48SKE2QNtMSFPFUlRdw9+votl27MvT46vo44ATBmdZdGysOevNELmZlfd+NEa0UYOA8f01WSrg==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-linux-arm-gnueabihf@4.21.0': - resolution: {integrity: sha512-pWJsfQjNWNGsoCq53KjMtwdJDmh/6NubwQcz52aEwLEuvx08bzcy6tOUuawAOncPnxz/3siRtd8hiQ32G1y8VA==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.21.0': - resolution: {integrity: sha512-efRIANsz3UHZrnZXuEvxS9LoCOWMGD1rweciD6uJQIx2myN3a8Im1FafZBzh7zk1RJ6oKcR16dU3UPldaKd83w==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.21.0': - resolution: {integrity: sha512-ZrPhydkTVhyeGTW94WJ8pnl1uroqVHM3j3hjdquwAcWnmivjAwOYjTEAuEDeJvGX7xv3Z9GAvrBkEzCgHq9U1w==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.21.0': - resolution: {integrity: sha512-cfaupqd+UEFeURmqNP2eEvXqgbSox/LHOyN9/d2pSdV8xTrjdg3NgOFJCtc1vQ/jEke1qD0IejbBfxleBPHnPw==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-powerpc64le-gnu@4.21.0': - resolution: {integrity: sha512-ZKPan1/RvAhrUylwBXC9t7B2hXdpb/ufeu22pG2psV7RN8roOfGurEghw1ySmX/CmDDHNTDDjY3lo9hRlgtaHg==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.21.0': - resolution: {integrity: sha512-H1eRaCwd5E8eS8leiS+o/NqMdljkcb1d6r2h4fKSsCXQilLKArq6WS7XBLDu80Yz+nMqHVFDquwcVrQmGr28rg==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.21.0': - resolution: {integrity: sha512-zJ4hA+3b5tu8u7L58CCSI0A9N1vkfwPhWd/puGXwtZlsB5bTkwDNW/+JCU84+3QYmKpLi+XvHdmrlwUwDA6kqw==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.21.0': - resolution: {integrity: sha512-e2hrvElFIh6kW/UNBQK/kzqMNY5mO+67YtEh9OA65RM5IJXYTWiXjX6fjIiPaqOkBthYF1EqgiZ6OXKcQsM0hg==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.21.0': - resolution: {integrity: sha512-1vvmgDdUSebVGXWX2lIcgRebqfQSff0hMEkLJyakQ9JQUbLDkEaMsPTLOmyccyC6IJ/l3FZuJbmrBw/u0A0uCQ==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-win32-arm64-msvc@4.21.0': - resolution: {integrity: sha512-s5oFkZ/hFcrlAyBTONFY1TWndfyre1wOMwU+6KCpm/iatybvrRgmZVM+vCFwxmC5ZhdlgfE0N4XorsDpi7/4XQ==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.21.0': - resolution: {integrity: sha512-G9+TEqRnAA6nbpqyUqgTiopmnfgnMkR3kMukFBDsiyy23LZvUCpiUwjTRx6ezYCjJODXrh52rBR9oXvm+Fp5wg==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.21.0': - resolution: {integrity: sha512-2jsCDZwtQvRhejHLfZ1JY6w6kEuEtfF9nzYsZxzSlNVKDX+DpsDJ+Rbjkm74nvg2rdx0gwBS+IMdvwJuq3S9pQ==} - cpu: [x64] - os: [win32] - - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - - '@types/lodash.throttle@4.1.9': - resolution: {integrity: sha512-PCPVfpfueguWZQB7pJQK890F2scYKoDUL3iM522AptHWn7d5NQmeS/LTEHIcLr5PaTzl3dK2Z0xSUHHTHwaL5g==} - - '@types/lodash@4.17.5': - resolution: {integrity: sha512-MBIOHVZqVqgfro1euRDWX7OO0fBVUUMrN6Pwm8LQsz8cWhEpihlvR70ENj3f40j58TNxZaWv2ndSkInykNBBJw==} - - '@types/lzma@2.3.0': - resolution: {integrity: sha512-z7TknP6ts5GPnN7P2bkZC1B/tMpoMJXG3UnPY1XDrwBq1OJQ2EpHtEypFwq5Q0A5iS37+oc+MT/o/B7x5lgl8Q==} - - '@types/node@20.14.2': - resolution: {integrity: sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==} - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - axios@0.26.1: - resolution: {integrity: sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - binary-install@1.1.0: - resolution: {integrity: sha512-rkwNGW+3aQVSZoD0/o3mfPN6Yxh3Id0R/xzTVBVVpGNlVz8EGwusksxRlbk/A5iKTZt9zkMn3qIqmAt3vpfbzg==} - engines: {node: '>=10'} - - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - - chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} - - cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - - codemirror@6.0.1: - resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - concurrently@8.2.2: - resolution: {integrity: sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==} - engines: {node: ^14.13.0 || >=16.0.0} - hasBin: true - - crelt@1.0.6: - resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} - - date-fns@2.30.0: - resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} - engines: {node: '>=0.11'} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} - engines: {node: '>=12'} - hasBin: true - - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} - - follow-redirects@1.15.6: - resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - - fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} - - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - lodash.throttle@4.1.1: - resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} - - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - lzma@2.3.2: - resolution: {integrity: sha512-DcfiawQ1avYbW+hsILhF38IKAlnguc/fjHrychs9hdxe4qLykvhT5VTGNs5YRWgaNePh7NTxGD4uv4gKsRomCQ==} - hasBin: true - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} - - minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} - - minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} - - mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} - - postcss@8.4.41: - resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} - engines: {node: ^10 || ^12 || >=14} - - regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - - rollup@4.21.0: - resolution: {integrity: sha512-vo+S/lfA2lMS7rZ2Qoubi6I5hwZwzXeUIctILZLbHI+laNtvhhOIon2S1JksA5UEDQ7l3vberd0fxK44lTYjbQ==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - - shell-quote@1.8.1: - resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} - - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - - spawn-command@0.0.2: - resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - style-mod@4.1.2: - resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==} - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - - tar@6.2.1: - resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} - engines: {node: '>=10'} - - tree-kill@1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} - hasBin: true - - tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - - vite@5.4.2: - resolution: {integrity: sha512-dDrQTRHp5C1fTFzcSaMxjk6vdpKvT+2/mIdE07Gw2ykehT49O0z/VHS3zZ8iV/Gh8BJJKHWOe5RjaNrW5xf/GA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - - w3c-keyname@2.2.8: - resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} - - wasm-pack@0.13.0: - resolution: {integrity: sha512-AmboGZEnZoIcVCzSlkLEmNFEqJN+IwgshJ5S7pi30uNUTce4LvWkifQzsQRxnWj47G8gkqZxlyGlyQplsnIS7w==} - hasBin: true - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - - yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - - yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - -snapshots: - - '@babel/runtime@7.24.6': - dependencies: - regenerator-runtime: 0.14.1 - - '@codemirror/autocomplete@6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1)': - dependencies: - '@codemirror/language': 6.10.2 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.33.0 - '@lezer/common': 1.2.1 - - '@codemirror/commands@6.6.0': - dependencies: - '@codemirror/language': 6.10.2 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.33.0 - '@lezer/common': 1.2.1 - - '@codemirror/lang-javascript@6.2.2': - dependencies: - '@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1) - '@codemirror/language': 6.10.2 - '@codemirror/lint': 6.8.1 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.33.0 - '@lezer/common': 1.2.1 - '@lezer/javascript': 1.4.16 - - '@codemirror/lang-json@6.0.1': - dependencies: - '@codemirror/language': 6.10.2 - '@lezer/json': 1.0.2 - - '@codemirror/lang-rust@6.0.1': - dependencies: - '@codemirror/language': 6.10.2 - '@lezer/rust': 1.0.2 - - '@codemirror/language@6.10.2': - dependencies: - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.33.0 - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.0 - '@lezer/lr': 1.4.1 - style-mod: 4.1.2 - - '@codemirror/lint@6.8.1': - dependencies: - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.33.0 - crelt: 1.0.6 - - '@codemirror/search@6.5.6': - dependencies: - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.33.0 - crelt: 1.0.6 - - '@codemirror/state@6.4.1': {} - - '@codemirror/view@6.33.0': - dependencies: - '@codemirror/state': 6.4.1 - style-mod: 4.1.2 - w3c-keyname: 2.2.8 - - '@ddietr/codemirror-themes@1.4.2': - dependencies: - '@codemirror/language': 6.10.2 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.33.0 - '@lezer/highlight': 1.2.0 - - '@esbuild/aix-ppc64@0.21.5': - optional: true - - '@esbuild/android-arm64@0.21.5': - optional: true - - '@esbuild/android-arm@0.21.5': - optional: true - - '@esbuild/android-x64@0.21.5': - optional: true - - '@esbuild/darwin-arm64@0.21.5': - optional: true - - '@esbuild/darwin-x64@0.21.5': - optional: true - - '@esbuild/freebsd-arm64@0.21.5': - optional: true - - '@esbuild/freebsd-x64@0.21.5': - optional: true - - '@esbuild/linux-arm64@0.21.5': - optional: true - - '@esbuild/linux-arm@0.21.5': - optional: true - - '@esbuild/linux-ia32@0.21.5': - optional: true - - '@esbuild/linux-loong64@0.21.5': - optional: true - - '@esbuild/linux-mips64el@0.21.5': - optional: true - - '@esbuild/linux-ppc64@0.21.5': - optional: true - - '@esbuild/linux-riscv64@0.21.5': - optional: true - - '@esbuild/linux-s390x@0.21.5': - optional: true - - '@esbuild/linux-x64@0.21.5': - optional: true - - '@esbuild/netbsd-x64@0.21.5': - optional: true - - '@esbuild/openbsd-x64@0.21.5': - optional: true - - '@esbuild/sunos-x64@0.21.5': - optional: true - - '@esbuild/win32-arm64@0.21.5': - optional: true - - '@esbuild/win32-ia32@0.21.5': - optional: true - - '@esbuild/win32-x64@0.21.5': - optional: true - - '@lezer/common@1.2.1': {} - - '@lezer/highlight@1.2.0': - dependencies: - '@lezer/common': 1.2.1 - - '@lezer/javascript@1.4.16': - dependencies: - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.0 - '@lezer/lr': 1.4.1 - - '@lezer/json@1.0.2': - dependencies: - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.0 - '@lezer/lr': 1.4.1 - - '@lezer/lr@1.4.1': - dependencies: - '@lezer/common': 1.2.1 - - '@lezer/rust@1.0.2': - dependencies: - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.0 - '@lezer/lr': 1.4.1 - - '@replit/codemirror-vscode-keymap@6.0.2(@codemirror/autocomplete@6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1))(@codemirror/commands@6.6.0)(@codemirror/language@6.10.2)(@codemirror/lint@6.8.1)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)': - dependencies: - '@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1) - '@codemirror/commands': 6.6.0 - '@codemirror/language': 6.10.2 - '@codemirror/lint': 6.8.1 - '@codemirror/search': 6.5.6 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.33.0 - - '@rollup/rollup-android-arm-eabi@4.21.0': - optional: true - - '@rollup/rollup-android-arm64@4.21.0': - optional: true - - '@rollup/rollup-darwin-arm64@4.21.0': - optional: true - - '@rollup/rollup-darwin-x64@4.21.0': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.21.0': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.21.0': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.21.0': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.21.0': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.21.0': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.21.0': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.21.0': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.21.0': - optional: true - - '@rollup/rollup-linux-x64-musl@4.21.0': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.21.0': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.21.0': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.21.0': - optional: true - - '@types/estree@1.0.5': {} - - '@types/lodash.throttle@4.1.9': - dependencies: - '@types/lodash': 4.17.5 - - '@types/lodash@4.17.5': {} - - '@types/lzma@2.3.0': - dependencies: - '@types/node': 20.14.2 - - '@types/node@20.14.2': - dependencies: - undici-types: 5.26.5 - - ansi-regex@5.0.1: {} - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - axios@0.26.1: - dependencies: - follow-redirects: 1.15.6 - transitivePeerDependencies: - - debug - - balanced-match@1.0.2: {} - - binary-install@1.1.0: - dependencies: - axios: 0.26.1 - rimraf: 3.0.2 - tar: 6.2.1 - transitivePeerDependencies: - - debug - - brace-expansion@1.1.11: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - chalk@4.1.2: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - chownr@2.0.0: {} - - cliui@8.0.1: - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - - codemirror@6.0.1(@lezer/common@1.2.1): - dependencies: - '@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1) - '@codemirror/commands': 6.6.0 - '@codemirror/language': 6.10.2 - '@codemirror/lint': 6.8.1 - '@codemirror/search': 6.5.6 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.33.0 - transitivePeerDependencies: - - '@lezer/common' - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - - color-name@1.1.4: {} - - concat-map@0.0.1: {} - - concurrently@8.2.2: - dependencies: - chalk: 4.1.2 - date-fns: 2.30.0 - lodash: 4.17.21 - rxjs: 7.8.1 - shell-quote: 1.8.1 - spawn-command: 0.0.2 - supports-color: 8.1.1 - tree-kill: 1.2.2 - yargs: 17.7.2 - - crelt@1.0.6: {} - - date-fns@2.30.0: - dependencies: - '@babel/runtime': 7.24.6 - - emoji-regex@8.0.0: {} - - esbuild@0.21.5: - optionalDependencies: - '@esbuild/aix-ppc64': 0.21.5 - '@esbuild/android-arm': 0.21.5 - '@esbuild/android-arm64': 0.21.5 - '@esbuild/android-x64': 0.21.5 - '@esbuild/darwin-arm64': 0.21.5 - '@esbuild/darwin-x64': 0.21.5 - '@esbuild/freebsd-arm64': 0.21.5 - '@esbuild/freebsd-x64': 0.21.5 - '@esbuild/linux-arm': 0.21.5 - '@esbuild/linux-arm64': 0.21.5 - '@esbuild/linux-ia32': 0.21.5 - '@esbuild/linux-loong64': 0.21.5 - '@esbuild/linux-mips64el': 0.21.5 - '@esbuild/linux-ppc64': 0.21.5 - '@esbuild/linux-riscv64': 0.21.5 - '@esbuild/linux-s390x': 0.21.5 - '@esbuild/linux-x64': 0.21.5 - '@esbuild/netbsd-x64': 0.21.5 - '@esbuild/openbsd-x64': 0.21.5 - '@esbuild/sunos-x64': 0.21.5 - '@esbuild/win32-arm64': 0.21.5 - '@esbuild/win32-ia32': 0.21.5 - '@esbuild/win32-x64': 0.21.5 - - escalade@3.1.2: {} - - follow-redirects@1.15.6: {} - - fs-minipass@2.1.0: - dependencies: - minipass: 3.3.6 - - fs.realpath@1.0.0: {} - - fsevents@2.3.3: - optional: true - - get-caller-file@2.0.5: {} - - glob@7.2.3: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - - has-flag@4.0.0: {} - - inflight@1.0.6: - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - - inherits@2.0.4: {} - - is-fullwidth-code-point@3.0.0: {} - - lodash.throttle@4.1.1: {} - - lodash@4.17.21: {} - - lzma@2.3.2: {} - - minimatch@3.1.2: - dependencies: - brace-expansion: 1.1.11 - - minipass@3.3.6: - dependencies: - yallist: 4.0.0 - - minipass@5.0.0: {} - - minizlib@2.1.2: - dependencies: - minipass: 3.3.6 - yallist: 4.0.0 - - mkdirp@1.0.4: {} - - nanoid@3.3.7: {} - - once@1.4.0: - dependencies: - wrappy: 1.0.2 - - path-is-absolute@1.0.1: {} - - picocolors@1.0.1: {} - - postcss@8.4.41: - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.1 - source-map-js: 1.2.0 - - regenerator-runtime@0.14.1: {} - - require-directory@2.1.1: {} - - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - - rollup@4.21.0: - dependencies: - '@types/estree': 1.0.5 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.21.0 - '@rollup/rollup-android-arm64': 4.21.0 - '@rollup/rollup-darwin-arm64': 4.21.0 - '@rollup/rollup-darwin-x64': 4.21.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.21.0 - '@rollup/rollup-linux-arm-musleabihf': 4.21.0 - '@rollup/rollup-linux-arm64-gnu': 4.21.0 - '@rollup/rollup-linux-arm64-musl': 4.21.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.21.0 - '@rollup/rollup-linux-riscv64-gnu': 4.21.0 - '@rollup/rollup-linux-s390x-gnu': 4.21.0 - '@rollup/rollup-linux-x64-gnu': 4.21.0 - '@rollup/rollup-linux-x64-musl': 4.21.0 - '@rollup/rollup-win32-arm64-msvc': 4.21.0 - '@rollup/rollup-win32-ia32-msvc': 4.21.0 - '@rollup/rollup-win32-x64-msvc': 4.21.0 - fsevents: 2.3.3 - - rxjs@7.8.1: - dependencies: - tslib: 2.6.2 - - shell-quote@1.8.1: {} - - source-map-js@1.2.0: {} - - spawn-command@0.0.2: {} - - string-width@4.2.3: - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - - strip-ansi@6.0.1: - dependencies: - ansi-regex: 5.0.1 - - style-mod@4.1.2: {} - - supports-color@7.2.0: - dependencies: - has-flag: 4.0.0 - - supports-color@8.1.1: - dependencies: - has-flag: 4.0.0 - - tar@6.2.1: - dependencies: - chownr: 2.0.0 - fs-minipass: 2.1.0 - minipass: 5.0.0 - minizlib: 2.1.2 - mkdirp: 1.0.4 - yallist: 4.0.0 - - tree-kill@1.2.2: {} - - tslib@2.6.2: {} - - undici-types@5.26.5: {} - - vite@5.4.2(@types/node@20.14.2): - dependencies: - esbuild: 0.21.5 - postcss: 8.4.41 - rollup: 4.21.0 - optionalDependencies: - '@types/node': 20.14.2 - fsevents: 2.3.3 - - w3c-keyname@2.2.8: {} - - wasm-pack@0.13.0: - dependencies: - binary-install: 1.1.0 - transitivePeerDependencies: - - debug - - wrap-ansi@7.0.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - wrappy@1.0.2: {} - - y18n@5.0.8: {} - - yallist@4.0.0: {} - - yargs-parser@21.1.1: {} - - yargs@17.7.2: - dependencies: - cliui: 8.0.1 - escalade: 3.1.2 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.1.1 diff --git a/website/src/index.js b/website/src/index.js deleted file mode 100644 index 702f4280cee76..0000000000000 --- a/website/src/index.js +++ /dev/null @@ -1 +0,0 @@ -console.log("hello"); diff --git a/website/tsconfig.json b/website/tsconfig.json deleted file mode 100644 index f98154c98e363..0000000000000 --- a/website/tsconfig.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "compilerOptions": { - "target": "esnext", - "module": "esnext", - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "isolatedModules": true, - "esModuleInterop": true, - "forceConsistentCasingInFileNames": true, - "strict": true, - "skipLibCheck": true - } -} diff --git a/website/vite.config.js b/website/vite.config.js deleted file mode 100644 index e6392c9bcfe3b..0000000000000 --- a/website/vite.config.js +++ /dev/null @@ -1,18 +0,0 @@ -import { resolve } from 'path' -import { defineConfig } from 'vite' - -export default defineConfig({ - server: { - fs: { - allow: [__dirname, "../npm/oxc-wasm"], - }, - }, - build: { - rollupOptions: { - input: { - main: resolve(__dirname, 'index.html'), - playground: resolve(__dirname, 'playground/index.html'), - }, - }, - }, -})