├── .gitignore ├── README.md ├── next-monaco ├── client │ ├── editor.tsx │ └── index.tsx ├── package.json ├── plugin │ ├── get-type-declarations.ts │ ├── index.ts │ └── mdx-components.tsx ├── server │ ├── code.tsx │ ├── editor.tsx │ └── index.ts ├── setup │ ├── TypeScript.tmLanguage.json │ ├── TypeScriptReact.tmLanguage.json │ ├── css.tmLanguage.json │ └── index.ts ├── tsconfig.json └── tsup.config.ts ├── package.json ├── pnpm-lock.yaml ├── pnpm-workspace.yaml ├── site ├── .vscode │ └── settings.json ├── app │ ├── app.css │ ├── example │ │ ├── Button.tsx │ │ ├── index.css │ │ └── index.tsx │ ├── layout.tsx │ └── page.tsx ├── next-env.d.ts ├── next.config.mjs ├── package.json ├── theme.json └── tsconfig.json └── turbo.json /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .next 3 | .turbo 4 | dist 5 | node_modules -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # next-monaco 2 | 3 | > **Warning** 4 | > This package is still a work in progress. The APIs are not stable and may change. 5 | 6 | Monaco Editor x Next.js 7 | 8 | ## Development 9 | 10 | ```bash 11 | pnpm install 12 | pnpm dev 13 | ``` 14 | -------------------------------------------------------------------------------- /next-monaco/client/editor.tsx: -------------------------------------------------------------------------------- 1 | /* 2 | * Note, the order of these imports are important. 3 | * Contributions must be loaded after the editor is initialized. 4 | */ 5 | import '../setup' 6 | import { createConfiguredEditor } from 'vscode/monaco' 7 | import * as React from 'react' 8 | import * as monaco from 'monaco-editor/esm/vs/editor/editor.api' 9 | import 'monaco-editor/esm/vs/language/typescript/monaco.contribution' 10 | 11 | monaco.languages.typescript.typescriptDefaults.setCompilerOptions({ 12 | jsx: monaco.languages.typescript.JsxEmit.Preserve, 13 | }) 14 | 15 | fetch('/_next/static/next-monaco/types.json').then(async (response) => { 16 | const typeDeclarations = await response.json() 17 | 18 | typeDeclarations.forEach(({ code, path }) => { 19 | monaco.languages.typescript.typescriptDefaults.addExtraLib(code, path) 20 | }) 21 | }) 22 | 23 | const MIN_LINE_COUNT = 1 24 | const LINE_HEIGHT = 20 25 | 26 | export type EditorProps = { 27 | fileName: string 28 | value: string 29 | className?: string 30 | style?: React.CSSProperties 31 | onMount?: () => void 32 | } 33 | 34 | export default function Editor({ 35 | fileName, 36 | value, 37 | className, 38 | style, 39 | onMount, 40 | }: EditorProps) { 41 | const ref = React.useRef(null) 42 | const [opacity, setOpacity] = React.useState(0) 43 | const lineCount = value 44 | ? Math.max(value.split('\n').length, MIN_LINE_COUNT) 45 | : MIN_LINE_COUNT 46 | 47 | React.useLayoutEffect(() => { 48 | const language = getLanguageFromFileExtension(fileName.split('.').pop()) 49 | const model = monaco.editor.createModel( 50 | value, 51 | language, 52 | monaco.Uri.file(fileName) 53 | ) 54 | const editor = createConfiguredEditor(ref.current!, { 55 | model, 56 | fontFamily: 'monospace', 57 | fontSize: 14, 58 | lineHeight: LINE_HEIGHT, 59 | lineNumbers: 'off', 60 | folding: false, 61 | automaticLayout: true, 62 | scrollBeyondLastLine: false, 63 | renderLineHighlightOnlyWhenFocus: true, 64 | guides: { indentation: false }, 65 | contextmenu: false, 66 | formatOnPaste: true, 67 | formatOnType: true, 68 | minimap: { enabled: false }, 69 | }) 70 | 71 | const editorNode = editor.getDomNode() 72 | const margin = editorNode.querySelector('.margin') as HTMLElement 73 | const marginOverlay = editorNode.querySelector( 74 | '.margin-view-overlays' 75 | ) as HTMLElement 76 | const scrollableElement = editorNode.querySelector( 77 | '.monaco-scrollable-element' 78 | ) as HTMLElement 79 | 80 | margin.style.width = `0px` 81 | marginOverlay.style.width = `0px` 82 | scrollableElement.style.width = `100%` 83 | scrollableElement.style.left = `0px` 84 | 85 | /** Add artificial delay to avoid flicker */ 86 | setTimeout(() => { 87 | onMount?.() 88 | setOpacity(1) 89 | }, 1000) 90 | 91 | return () => { 92 | model.dispose() 93 | editor.dispose() 94 | } 95 | }, []) 96 | 97 | return ( 98 |
108 | ) 109 | } 110 | 111 | const fileExtensionToLanguage = { 112 | js: 'javascript', 113 | jsx: 'javascript', 114 | ts: 'typescript', 115 | tsx: 'typescript', 116 | json: 'json', 117 | html: 'html', 118 | css: 'css', 119 | } 120 | 121 | function getLanguageFromFileExtension(extension) { 122 | return fileExtensionToLanguage[extension] || 'plaintext' 123 | } 124 | -------------------------------------------------------------------------------- /next-monaco/client/index.tsx: -------------------------------------------------------------------------------- 1 | 'use client' 2 | import * as React from 'react' 3 | import dynamic from 'next/dynamic' 4 | import type { EditorProps } from './editor' 5 | 6 | const LazyEditor = dynamic(() => import('./editor'), { ssr: false }) 7 | 8 | export function ClientEditor({ 9 | fileName, 10 | value, 11 | className, 12 | style, 13 | children, 14 | }: { 15 | children: React.ReactNode 16 | } & EditorProps) { 17 | const [mounted, setMounted] = React.useState(false) 18 | 19 | return ( 20 |
30 | {mounted ? null : children} 31 | setMounted(true)} 35 | /> 36 |
37 | ) 38 | } 39 | -------------------------------------------------------------------------------- /next-monaco/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "next-monaco", 3 | "version": "0.0.0", 4 | "description": "Monaco Editor x Next.js", 5 | "files": [ 6 | "dist/*" 7 | ], 8 | "type": "module", 9 | "main": "./dist/server/index.js", 10 | "exports": { 11 | ".": "./dist/server/index.js", 12 | "./plugin": "./dist/plugin/index.js" 13 | }, 14 | "types": "./dist/server/index.d.ts", 15 | "typesVersions": { 16 | "*": { 17 | ".": [ 18 | "./dist/server/index.d.ts" 19 | ], 20 | "plugin": [ 21 | "./dist/plugin/index.d.ts" 22 | ] 23 | } 24 | }, 25 | "scripts": { 26 | "build": "tsup plugin/index.ts setup/index.ts client/index.tsx server/index.ts --dts --format esm", 27 | "dev": "pnpm build --watch", 28 | "test": "jest" 29 | }, 30 | "peerDependencies": { 31 | "next": ">=13.0.0", 32 | "react": ">=18.0.0", 33 | "react-dom": ">=18.0.0" 34 | }, 35 | "devDependencies": { 36 | "@types/vscode": "^1.82.0", 37 | "next": "canary", 38 | "react": "18.2.0", 39 | "react-dom": "18.2.0", 40 | "webpack": "5.88.2" 41 | }, 42 | "dependencies": { 43 | "@code-hike/lighter": "^0.8.2", 44 | "@next/mdx": "^13.5.2", 45 | "@types/mdx": "^2.0.7", 46 | "@typescript/ata": "^0.9.4", 47 | "copy-webpack-plugin": "^11.0.0", 48 | "monaco-editor": "^0.37.1", 49 | "node-fetch": "^3.3.2", 50 | "rollup": "^3.29.3", 51 | "rollup-plugin-dts": "^6.0.2", 52 | "server-only": "^0.0.1", 53 | "typescript": "^5.2.2", 54 | "vscode-oniguruma": "^2.0.1", 55 | "vscode-textmate": "^9.0.0", 56 | "vscode": "npm:@codingame/monaco-vscode-api@1.78.0", 57 | "yauzl": "^2.10.0" 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /next-monaco/plugin/get-type-declarations.ts: -------------------------------------------------------------------------------- 1 | import fs from 'node:fs/promises' 2 | import path from 'node:path' 3 | import { builtinModules } from 'node:module' 4 | import { rollup } from 'rollup' 5 | import dts from 'rollup-plugin-dts' 6 | import { setupTypeAcquisition } from '@typescript/ata' 7 | import ts from 'typescript' 8 | 9 | /* TODO: this is inefficient, the ata utility should be instantiated only once. */ 10 | const fetchTypes = ( 11 | name: string[] 12 | ): Promise<{ code: string; path: string }[]> => { 13 | let types: { code: string; path: string }[] = [] 14 | 15 | return new Promise((resolve) => { 16 | const ata = setupTypeAcquisition({ 17 | projectName: 'next-monaco', 18 | typescript: ts, 19 | logger: console, 20 | delegate: { 21 | receivedFile: (code: string, path: string) => { 22 | types = [...types, { code, path }] 23 | }, 24 | errorMessage(userFacingMessage, error) { 25 | throw new Error(userFacingMessage, { cause: error }) 26 | }, 27 | finished: () => { 28 | resolve( 29 | types.map(({ code, path }) => ({ 30 | code, 31 | path: `file://${path.replace('@types/', '')}`, 32 | })) 33 | ) 34 | }, 35 | }, 36 | }) 37 | 38 | /* 39 | * ATA expects a list of imports from a source file to fetch types for, 40 | * so we simply provide a list of imports for each package. 41 | */ 42 | ata(name.map((name) => `import ${name} from "${name}"`).join('\n')) 43 | }) 44 | } 45 | 46 | async function getPackageJson(packagePath) { 47 | const packageJsonContent = await fs.readFile(packagePath, 'utf-8') 48 | return JSON.parse(packageJsonContent) 49 | } 50 | 51 | function getAllDependencies(packageJson) { 52 | return Object.keys(packageJson.dependencies ?? {}).concat( 53 | Object.keys(packageJson.peerDependencies ?? {}) 54 | ) 55 | } 56 | 57 | async function findTypesPathFromTypeVersions( 58 | packageJson, 59 | parentPackage, 60 | submodule 61 | ) { 62 | if (!packageJson.typesVersions) return null 63 | 64 | const typeVersionsField = packageJson.typesVersions['*'] 65 | 66 | if (!typeVersionsField) return null 67 | 68 | const typesPathsFromTypeVersions = typeVersionsField[submodule] 69 | 70 | if (!typesPathsFromTypeVersions) return null 71 | 72 | for (const candidatePath of typesPathsFromTypeVersions) { 73 | try { 74 | const typesPath = path.resolve( 75 | process.cwd(), 76 | 'node_modules', 77 | parentPackage, 78 | candidatePath 79 | ) 80 | 81 | await fs.access(typesPath) 82 | return typesPath 83 | } catch { 84 | // Ignore and continue with the next candidate path 85 | } 86 | } 87 | 88 | return null 89 | } 90 | 91 | async function findParentNodeModulesPath(currentPath, packageName) { 92 | const nodeModulesPath = path.resolve(currentPath, 'node_modules', packageName) 93 | 94 | try { 95 | await fs.access(nodeModulesPath) 96 | return nodeModulesPath 97 | } catch { 98 | const parentPath = path.dirname(currentPath) 99 | if (parentPath === currentPath) return null // We have reached the root directory 100 | return findParentNodeModulesPath(parentPath, packageName) 101 | } 102 | } 103 | 104 | async function findTypesPath(packageJson, parentPackage, submodule) { 105 | const typesField = packageJson.types || packageJson.typings 106 | 107 | if (!submodule && typesField) { 108 | return path.resolve( 109 | process.cwd(), 110 | 'node_modules', 111 | parentPackage, 112 | typesField 113 | ) 114 | } 115 | 116 | if (submodule) { 117 | const typesPath = await findTypesPathFromTypeVersions( 118 | packageJson, 119 | parentPackage, 120 | submodule 121 | ) 122 | if (typesPath) return typesPath 123 | } 124 | 125 | const parentNodeModulesPath = await findParentNodeModulesPath( 126 | process.cwd(), 127 | `@types/${parentPackage}` 128 | ) 129 | 130 | if (!parentNodeModulesPath) return null 131 | 132 | return path.resolve(parentNodeModulesPath, 'index.d.ts') 133 | } 134 | 135 | /** Fetches the types for a locally installed NPM package. */ 136 | export async function getTypeDeclarations(packageName) { 137 | const [orgOrParent, parentPackageOrSubmodule, submoduleCandidate] = 138 | packageName.split('/') 139 | const isOrgPackage = orgOrParent.startsWith('@') 140 | const parentPackage = isOrgPackage 141 | ? `${orgOrParent}/${parentPackageOrSubmodule}` 142 | : orgOrParent 143 | const submodule = isOrgPackage ? submoduleCandidate : parentPackageOrSubmodule 144 | const parentPackagePath = path.resolve( 145 | process.cwd(), 146 | 'node_modules', 147 | parentPackage, 148 | 'package.json' 149 | ) 150 | 151 | try { 152 | const packageJson = await getPackageJson(parentPackagePath) 153 | const allDependencies = getAllDependencies(packageJson) 154 | const typesPath = await findTypesPath(packageJson, parentPackage, submodule) 155 | 156 | // use ATA when dealing with @types since rollup is not reliable 157 | if (typesPath.includes('@types/')) { 158 | const packageTypes = await fetchTypes([packageName]) 159 | return packageTypes 160 | } 161 | 162 | try { 163 | const bundle = await rollup({ 164 | input: path.resolve('./node_modules/', packageName, typesPath), 165 | plugins: [dts({ respectExternal: true })], 166 | external: (id) => 167 | allDependencies 168 | .concat( 169 | builtinModules, 170 | builtinModules.map((moduleName) => `node:${moduleName}`) 171 | ) 172 | .includes(id), 173 | }) 174 | const result = await bundle.generate({}) 175 | 176 | return [ 177 | { 178 | code: result.output[0].code, 179 | path: `file:///node_modules/${packageName}/index.d.ts`, 180 | }, 181 | ] 182 | } catch (error) { 183 | console.error( 184 | `next-monaco: Could not find types for "${packageName}"`, 185 | error 186 | ) 187 | } 188 | } catch (error) { 189 | console.error( 190 | `next-monaco: Could not find package.json for "${packageName}"`, 191 | error 192 | ) 193 | } 194 | 195 | return [] 196 | } 197 | -------------------------------------------------------------------------------- /next-monaco/plugin/index.ts: -------------------------------------------------------------------------------- 1 | import { NextConfig } from 'next' 2 | import { dirname, resolve, join } from 'node:path' 3 | import { tmpdir } from 'node:os' 4 | import { fileURLToPath } from 'node:url' 5 | import { writeFile } from 'node:fs/promises' 6 | import CopyPlugin from 'copy-webpack-plugin' 7 | import createMDXPlugin from '@next/mdx' 8 | import { getTypeDeclarations } from './get-type-declarations' 9 | 10 | const withMDX = createMDXPlugin() 11 | 12 | /** Creates a Next.js plugin that configures Monaco Editor. */ 13 | export function createMonacoPlugin({ 14 | theme, 15 | types = [], 16 | }: { 17 | theme: string 18 | types?: string[] 19 | }) { 20 | return function withMonaco(nextConfig: NextConfig = {}) { 21 | const getWebpackConfig = nextConfig.webpack 22 | 23 | return async () => { 24 | const typesContents = ( 25 | await Promise.all(types.flatMap(getTypeDeclarations)) 26 | ).flat() 27 | const typesFilePath = join(tmpdir(), 'types.json') 28 | 29 | await writeFile(typesFilePath, JSON.stringify(typesContents)) 30 | 31 | nextConfig.webpack = (config, options) => { 32 | // Override the MDX import source file to use a local set of components by default 33 | config.resolve.alias['next-mdx-import-source-file'] = [ 34 | resolve( 35 | dirname(fileURLToPath(import.meta.url)), 36 | '../../plugin/mdx-components.tsx' 37 | ), 38 | ] 39 | 40 | if (options.isServer === false) { 41 | // Load Onigasm for syntax highlighting 42 | config.module.rules.push({ 43 | test: /onig\.wasm$/, 44 | type: 'asset/resource', 45 | generator: { 46 | filename: 'static/wasm/onigasm.wasm', 47 | }, 48 | }) 49 | 50 | // Load package type declarations and themes for Editor 51 | config.plugins.push( 52 | new CopyPlugin({ 53 | patterns: [ 54 | { 55 | from: resolve(process.cwd(), theme), 56 | to: 'static/next-monaco/theme.json', 57 | }, 58 | { 59 | from: typesFilePath, 60 | to: 'static/next-monaco/types.json', 61 | }, 62 | ], 63 | }) 64 | ) 65 | } 66 | 67 | if (typeof getWebpackConfig === 'function') { 68 | return getWebpackConfig(config, options) 69 | } 70 | 71 | return config 72 | } 73 | 74 | if (nextConfig.env === undefined) { 75 | nextConfig.env = {} 76 | } 77 | 78 | nextConfig.env.MONACO_THEME_PATH = resolve(process.cwd(), theme) 79 | 80 | return withMDX({ 81 | ...nextConfig, 82 | experimental: { 83 | mdxRs: true, 84 | ...(nextConfig.experimental || []), 85 | }, 86 | transpilePackages: [ 87 | 'next-monaco', 88 | ...(nextConfig.transpilePackages || []), 89 | ], 90 | pageExtensions: nextConfig.pageExtensions || ['ts', 'tsx', 'mdx'], 91 | }) 92 | } 93 | } 94 | } 95 | -------------------------------------------------------------------------------- /next-monaco/plugin/mdx-components.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react' 2 | import type { MDXComponents } from 'mdx/types' 3 | import { Code } from '../server/code' 4 | 5 | const languages = { 6 | mjs: 'javascript', 7 | } 8 | 9 | function getLanguageFromClassName(className: string = '') { 10 | const language = className 11 | .split(' ') 12 | .find((name) => name.startsWith('language-')) 13 | ?.slice(9) 14 | 15 | return language ? languages[language] ?? language : null 16 | } 17 | 18 | let id = 0 19 | 20 | export function useMDXComponents(): MDXComponents { 21 | return { 22 | code: ({ children, className }) => { 23 | const language = getLanguageFromClassName(className) 24 | 25 | return ( 26 | 30 | ) 31 | }, 32 | } satisfies MDXComponents 33 | } 34 | -------------------------------------------------------------------------------- /next-monaco/server/code.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react' 2 | import { readFile } from 'node:fs/promises' 3 | import { resolve } from 'node:path' 4 | import { highlight } from '@code-hike/lighter' 5 | import 'server-only' 6 | 7 | type CodeProps = { 8 | fileName: string 9 | workingDirectory?: string 10 | value?: string 11 | } 12 | 13 | /* Attempt to read the file from the file system. If it fails, return the value */ 14 | async function parseValue( 15 | workingDirectory: string, 16 | fileName: string, 17 | value: string 18 | ) { 19 | try { 20 | return readFile(resolve(workingDirectory, fileName), 'utf8') 21 | } catch { 22 | return value 23 | } 24 | } 25 | 26 | async function AsyncCode({ 27 | workingDirectory, 28 | fileName, 29 | value, 30 | ...props 31 | }: CodeProps) { 32 | const { lines } = await highlight( 33 | await parseValue(workingDirectory, fileName, value), 34 | fileName.split('.').pop(), 35 | JSON.parse(await readFile(process.env.MONACO_THEME_PATH, 'utf-8')) 36 | ) 37 | 38 | return ( 39 |
40 |       {lines.map((line, index) => (
41 |         
42 | {line.map((token, index) => ( 43 | 44 | {token.content} 45 | 46 | ))} 47 |
48 | ))} 49 |
50 | ) 51 | } 52 | 53 | /** Renders a code block with syntax highlighting. */ 54 | export function Code(props: CodeProps) { 55 | // @ts-expect-error remove when async component types are fixed 56 | return 57 | } 58 | -------------------------------------------------------------------------------- /next-monaco/server/editor.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react' 2 | import { ClientEditor } from '../client' 3 | import type { EditorProps } from '../client/editor' 4 | import { Code } from './code' 5 | import 'server-only' 6 | 7 | /** Renders a code block using Monaco Editor. */ 8 | export function Editor(props: EditorProps) { 9 | return ( 10 | 11 | 12 | 13 | ) 14 | } 15 | -------------------------------------------------------------------------------- /next-monaco/server/index.ts: -------------------------------------------------------------------------------- 1 | export * from './code' 2 | export * from './editor' 3 | -------------------------------------------------------------------------------- /next-monaco/setup/index.ts: -------------------------------------------------------------------------------- 1 | import 'monaco-editor/esm/vs/editor/editor.all' 2 | import * as monaco from 'monaco-editor/esm/vs/editor/editor.api' 3 | import { ILogService } from 'monaco-editor/esm/vs/platform/log/common/log' 4 | import * as vscode from 'vscode' 5 | import { 6 | initialize as initializeMonacoService, 7 | StandaloneServices, 8 | } from 'vscode/services' 9 | import { 10 | registerExtension, 11 | initialize as initializeVscodeExtensions, 12 | } from 'vscode/extensions' 13 | import getDialogsServiceOverride from 'vscode/service-override/dialogs' 14 | import getConfigurationServiceOverride from 'vscode/service-override/configuration' 15 | import getTextmateServiceOverride from 'vscode/service-override/textmate' 16 | import getThemeServiceOverride from 'vscode/service-override/theme' 17 | import getLanguagesServiceOverride from 'vscode/service-override/languages' 18 | 19 | window.MonacoEnvironment = { 20 | getWorker: async function (moduleId, label) { 21 | switch (label) { 22 | case 'editorWorkerService': 23 | return new Worker( 24 | new URL('monaco-editor/esm/vs/editor/editor.worker', import.meta.url) 25 | ) 26 | case 'css': 27 | case 'less': 28 | case 'scss': 29 | return new Worker( 30 | new URL( 31 | 'monaco-editor/esm/vs/language/css/css.worker', 32 | import.meta.url 33 | ) 34 | ) 35 | case 'handlebars': 36 | case 'html': 37 | case 'razor': 38 | return new Worker( 39 | new URL( 40 | 'monaco-editor/esm/vs/language/html/html.worker', 41 | import.meta.url 42 | ) 43 | ) 44 | case 'json': 45 | return new Worker( 46 | new URL( 47 | 'monaco-editor/esm/vs/language/json/json.worker', 48 | import.meta.url 49 | ) 50 | ) 51 | case 'javascript': 52 | case 'typescript': 53 | return new Worker( 54 | new URL( 55 | 'monaco-editor/esm/vs/language/typescript/ts.worker', 56 | import.meta.url 57 | ) 58 | ) 59 | default: 60 | throw new Error(`Unimplemented worker ${label} (${moduleId})`) 61 | } 62 | }, 63 | } 64 | 65 | /* Only show warnings and errors in the console. */ 66 | StandaloneServices.get<{ setLevel: any }>(ILogService).setLevel( 67 | vscode.LogLevel.Warning 68 | ) 69 | 70 | initializeMonacoService({ 71 | ...getDialogsServiceOverride(), 72 | ...getConfigurationServiceOverride(monaco.Uri.file('/') as any), 73 | ...getTextmateServiceOverride(), 74 | ...getThemeServiceOverride(), 75 | ...getLanguagesServiceOverride(), 76 | }).then(async () => { 77 | await initializeVscodeExtensions() 78 | 79 | const defaultThemesExtensions = { 80 | name: 'themes', 81 | publisher: 'next-monaco', 82 | version: '0.0.0', 83 | engines: { 84 | vscode: '*', 85 | }, 86 | contributes: { 87 | themes: [ 88 | { 89 | id: 'Next Monaco', 90 | label: 'Next Monaco', 91 | uiTheme: 'vs-dark', 92 | path: './next-monaco.json', 93 | }, 94 | ], 95 | }, 96 | } 97 | 98 | const { registerFile: registerDefaultThemeExtensionFile } = registerExtension( 99 | defaultThemesExtensions 100 | ) 101 | 102 | registerDefaultThemeExtensionFile('./next-monaco.json', async () => 103 | (await fetch('/_next/static/next-monaco/theme.json')).text() 104 | ) 105 | 106 | monaco.editor.setTheme('Next Monaco') 107 | 108 | const extension = { 109 | name: 'grammars', 110 | publisher: 'next-monaco', 111 | version: '0.0.0', 112 | engines: { 113 | vscode: '*', 114 | }, 115 | contributes: { 116 | languages: [ 117 | { 118 | id: 'css', 119 | extensions: ['.css'], 120 | aliases: ['CSS', 'css'], 121 | }, 122 | { 123 | id: 'typescript', 124 | extensions: ['.ts', '.tsx'], 125 | aliases: ['TypeScript', 'ts', 'typescript'], 126 | }, 127 | ], 128 | grammars: [ 129 | { 130 | language: 'css', 131 | scopeName: 'source.css', 132 | path: './css.tmLanguage.json', 133 | }, 134 | { 135 | language: 'typescript', 136 | scopeName: 'source.ts', 137 | path: './TypeScript.tmLanguage.json', 138 | }, 139 | { 140 | language: 'typescript', 141 | scopeName: 'source.tsx', 142 | path: './TypeScriptReact.tmLanguage.json', 143 | }, 144 | ], 145 | }, 146 | } 147 | 148 | const { registerFile: registerExtensionFile } = registerExtension(extension) 149 | 150 | registerExtensionFile('./css.tmLanguage.json', async () => 151 | JSON.stringify((await import('./css.tmLanguage.json')).default as any) 152 | ) 153 | 154 | registerExtensionFile('./TypeScript.tmLanguage.json', async () => 155 | JSON.stringify( 156 | (await import('./TypeScript.tmLanguage.json')).default as any 157 | ) 158 | ) 159 | 160 | registerExtensionFile('./TypeScriptReact.tmLanguage.json', async () => 161 | JSON.stringify( 162 | (await import('./TypeScriptReact.tmLanguage.json')).default as any 163 | ) 164 | ) 165 | }) 166 | -------------------------------------------------------------------------------- /next-monaco/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "esnext", 4 | "lib": ["esnext", "dom"], 5 | "skipLibCheck": true, 6 | "strict": false, 7 | "forceConsistentCasingInFileNames": true, 8 | "esModuleInterop": true, 9 | "module": "esnext", 10 | "moduleResolution": "node", 11 | "resolveJsonModule": true, 12 | "isolatedModules": true, 13 | "jsx": "react" 14 | }, 15 | "include": ["**/*.ts", "**/*.tsx"], 16 | "exclude": ["node_modules"] 17 | } 18 | -------------------------------------------------------------------------------- /next-monaco/tsup.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'tsup' 2 | 3 | const hoistUseClientPlugin = { 4 | name: 'hoist-use-client', 5 | setup(build) { 6 | build.onEnd((result) => { 7 | result.outputFiles 8 | ?.filter((file) => !file.path.endsWith('.map')) 9 | .forEach((file) => { 10 | Object.defineProperty(file, 'text', { 11 | value: file.text.includes('"use client";') 12 | ? `"use client";\n${file.text.replaceAll('"use client";', '')}` 13 | : file.text, 14 | }) 15 | }) 16 | }) 17 | }, 18 | } 19 | 20 | export default defineConfig({ 21 | esbuildPlugins: [hoistUseClientPlugin], 22 | }) 23 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "dev": "turbo dev", 5 | "build": "turbo build", 6 | "clean": "node -e \"(function rm(directory) { ['.next', '.turbo', 'node_modules', 'dist'].includes(path.basename(directory)) ? fs.rmSync(directory, { recursive: true, force: true }) : fs.existsSync(directory) && fs.statSync(directory).isDirectory() && fs.readdirSync(directory).forEach(filepath => rm(path.join(directory, filepath))); })('.');\"" 7 | }, 8 | "dependencies": { 9 | "@types/node": "^20.6.5", 10 | "@types/react": "^18.2.22", 11 | "@types/react-dom": "^18.2.7", 12 | "turbo": "^1.10.14", 13 | "tsup": "^6.7.0", 14 | "typescript": "^5.2.2" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | importers: 4 | 5 | .: 6 | dependencies: 7 | '@types/node': 8 | specifier: ^20.6.5 9 | version: 20.6.5 10 | '@types/react': 11 | specifier: ^18.2.22 12 | version: 18.2.22 13 | '@types/react-dom': 14 | specifier: ^18.2.7 15 | version: 18.2.7 16 | tsup: 17 | specifier: ^6.7.0 18 | version: 6.7.0(typescript@5.2.2) 19 | turbo: 20 | specifier: ^1.10.14 21 | version: 1.10.14 22 | typescript: 23 | specifier: ^5.2.2 24 | version: 5.2.2 25 | 26 | next-monaco: 27 | dependencies: 28 | '@code-hike/lighter': 29 | specifier: ^0.8.2 30 | version: 0.8.2 31 | '@next/mdx': 32 | specifier: ^13.5.2 33 | version: 13.5.2 34 | '@types/mdx': 35 | specifier: ^2.0.7 36 | version: 2.0.7 37 | '@typescript/ata': 38 | specifier: ^0.9.4 39 | version: 0.9.4(typescript@5.2.2) 40 | copy-webpack-plugin: 41 | specifier: ^11.0.0 42 | version: 11.0.0(webpack@5.88.2) 43 | monaco-editor: 44 | specifier: ^0.37.1 45 | version: 0.37.1 46 | node-fetch: 47 | specifier: ^3.3.2 48 | version: 3.3.2 49 | rollup: 50 | specifier: ^3.29.3 51 | version: 3.29.3 52 | rollup-plugin-dts: 53 | specifier: ^6.0.2 54 | version: 6.0.2(rollup@3.29.3)(typescript@5.2.2) 55 | server-only: 56 | specifier: ^0.0.1 57 | version: 0.0.1 58 | typescript: 59 | specifier: ^5.2.2 60 | version: 5.2.2 61 | vscode: 62 | specifier: npm:@codingame/monaco-vscode-api@1.78.0 63 | version: /@codingame/monaco-vscode-api@1.78.0(monaco-editor@0.37.1)(vscode-oniguruma@2.0.1)(vscode-textmate@9.0.0)(yauzl@2.10.0) 64 | vscode-oniguruma: 65 | specifier: ^2.0.1 66 | version: 2.0.1 67 | vscode-textmate: 68 | specifier: ^9.0.0 69 | version: 9.0.0 70 | yauzl: 71 | specifier: ^2.10.0 72 | version: 2.10.0 73 | devDependencies: 74 | '@types/vscode': 75 | specifier: ^1.82.0 76 | version: 1.82.0 77 | next: 78 | specifier: canary 79 | version: 13.5.4-canary.1(react-dom@18.2.0)(react@18.2.0) 80 | react: 81 | specifier: 18.2.0 82 | version: 18.2.0 83 | react-dom: 84 | specifier: 18.2.0 85 | version: 18.2.0(react@18.2.0) 86 | webpack: 87 | specifier: 5.88.2 88 | version: 5.88.2(esbuild@0.17.12) 89 | 90 | site: 91 | dependencies: 92 | next: 93 | specifier: canary 94 | version: 13.5.4-canary.1(react-dom@18.2.0)(react@18.2.0) 95 | next-monaco: 96 | specifier: workspace:* 97 | version: link:../next-monaco 98 | react: 99 | specifier: 18.2.0 100 | version: 18.2.0 101 | react-dom: 102 | specifier: 18.2.0 103 | version: 18.2.0(react@18.2.0) 104 | 105 | packages: 106 | 107 | /@babel/code-frame@7.22.13: 108 | resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} 109 | engines: {node: '>=6.9.0'} 110 | requiresBuild: true 111 | dependencies: 112 | '@babel/highlight': 7.22.20 113 | chalk: 2.4.2 114 | dev: false 115 | optional: true 116 | 117 | /@babel/helper-validator-identifier@7.22.20: 118 | resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} 119 | engines: {node: '>=6.9.0'} 120 | dev: false 121 | optional: true 122 | 123 | /@babel/highlight@7.22.20: 124 | resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} 125 | engines: {node: '>=6.9.0'} 126 | dependencies: 127 | '@babel/helper-validator-identifier': 7.22.20 128 | chalk: 2.4.2 129 | js-tokens: 4.0.0 130 | dev: false 131 | optional: true 132 | 133 | /@code-hike/lighter@0.8.2: 134 | resolution: {integrity: sha512-h7PA2+90rIRQWamxeHSpcgVLs9hwhz8UW8+RG+vYIYh2Y4F2GTa4c+7S5HQH/BKTyMPv5yrSCEwhCB605gO5og==} 135 | dependencies: 136 | ansi-sequence-parser: 1.1.1 137 | dev: false 138 | 139 | /@codingame/monaco-vscode-api@1.78.0(monaco-editor@0.37.1)(vscode-oniguruma@2.0.1)(vscode-textmate@9.0.0)(yauzl@2.10.0): 140 | resolution: {integrity: sha512-mV+ImrH1EdgwkujoYNCnqtZijZA7c1vxXl/Y6OwV1Mo8fZ4fUhMTiiO+0zaQZqLzM5GX/l7qfxNVOLV2pUJtmg==} 141 | peerDependencies: 142 | monaco-editor: ~0.37.1 143 | vscode-oniguruma: ^1.7.0 144 | vscode-textmate: ^9.0.0 145 | yauzl: ^2.10.0 146 | dependencies: 147 | '@types/node': 18.16.3 148 | monaco-editor: 0.37.1 149 | vscode-oniguruma: 2.0.1 150 | vscode-textmate: 9.0.0 151 | yauzl: 2.10.0 152 | dev: false 153 | 154 | /@esbuild/android-arm64@0.17.12: 155 | resolution: {integrity: sha512-WQ9p5oiXXYJ33F2EkE3r0FRDFVpEdcDiwNX3u7Xaibxfx6vQE0Sb8ytrfQsA5WO6kDn6mDfKLh6KrPBjvkk7xA==} 156 | engines: {node: '>=12'} 157 | cpu: [arm64] 158 | os: [android] 159 | requiresBuild: true 160 | optional: true 161 | 162 | /@esbuild/android-arm@0.17.12: 163 | resolution: {integrity: sha512-E/sgkvwoIfj4aMAPL2e35VnUJspzVYl7+M1B2cqeubdBhADV4uPon0KCc8p2G+LqSJ6i8ocYPCqY3A4GGq0zkQ==} 164 | engines: {node: '>=12'} 165 | cpu: [arm] 166 | os: [android] 167 | requiresBuild: true 168 | optional: true 169 | 170 | /@esbuild/android-x64@0.17.12: 171 | resolution: {integrity: sha512-m4OsaCr5gT+se25rFPHKQXARMyAehHTQAz4XX1Vk3d27VtqiX0ALMBPoXZsGaB6JYryCLfgGwUslMqTfqeLU0w==} 172 | engines: {node: '>=12'} 173 | cpu: [x64] 174 | os: [android] 175 | requiresBuild: true 176 | optional: true 177 | 178 | /@esbuild/darwin-arm64@0.17.12: 179 | resolution: {integrity: sha512-O3GCZghRIx+RAN0NDPhyyhRgwa19MoKlzGonIb5hgTj78krqp9XZbYCvFr9N1eUxg0ZQEpiiZ4QvsOQwBpP+lg==} 180 | engines: {node: '>=12'} 181 | cpu: [arm64] 182 | os: [darwin] 183 | requiresBuild: true 184 | optional: true 185 | 186 | /@esbuild/darwin-x64@0.17.12: 187 | resolution: {integrity: sha512-5D48jM3tW27h1qjaD9UNRuN+4v0zvksqZSPZqeSWggfMlsVdAhH3pwSfQIFJwcs9QJ9BRibPS4ViZgs3d2wsCA==} 188 | engines: {node: '>=12'} 189 | cpu: [x64] 190 | os: [darwin] 191 | requiresBuild: true 192 | optional: true 193 | 194 | /@esbuild/freebsd-arm64@0.17.12: 195 | resolution: {integrity: sha512-OWvHzmLNTdF1erSvrfoEBGlN94IE6vCEaGEkEH29uo/VoONqPnoDFfShi41Ew+yKimx4vrmmAJEGNoyyP+OgOQ==} 196 | engines: {node: '>=12'} 197 | cpu: [arm64] 198 | os: [freebsd] 199 | requiresBuild: true 200 | optional: true 201 | 202 | /@esbuild/freebsd-x64@0.17.12: 203 | resolution: {integrity: sha512-A0Xg5CZv8MU9xh4a+7NUpi5VHBKh1RaGJKqjxe4KG87X+mTjDE6ZvlJqpWoeJxgfXHT7IMP9tDFu7IZ03OtJAw==} 204 | engines: {node: '>=12'} 205 | cpu: [x64] 206 | os: [freebsd] 207 | requiresBuild: true 208 | optional: true 209 | 210 | /@esbuild/linux-arm64@0.17.12: 211 | resolution: {integrity: sha512-cK3AjkEc+8v8YG02hYLQIQlOznW+v9N+OI9BAFuyqkfQFR+DnDLhEM5N8QRxAUz99cJTo1rLNXqRrvY15gbQUg==} 212 | engines: {node: '>=12'} 213 | cpu: [arm64] 214 | os: [linux] 215 | requiresBuild: true 216 | optional: true 217 | 218 | /@esbuild/linux-arm@0.17.12: 219 | resolution: {integrity: sha512-WsHyJ7b7vzHdJ1fv67Yf++2dz3D726oO3QCu8iNYik4fb5YuuReOI9OtA+n7Mk0xyQivNTPbl181s+5oZ38gyA==} 220 | engines: {node: '>=12'} 221 | cpu: [arm] 222 | os: [linux] 223 | requiresBuild: true 224 | optional: true 225 | 226 | /@esbuild/linux-ia32@0.17.12: 227 | resolution: {integrity: sha512-jdOBXJqcgHlah/nYHnj3Hrnl9l63RjtQ4vn9+bohjQPI2QafASB5MtHAoEv0JQHVb/xYQTFOeuHnNYE1zF7tYw==} 228 | engines: {node: '>=12'} 229 | cpu: [ia32] 230 | os: [linux] 231 | requiresBuild: true 232 | optional: true 233 | 234 | /@esbuild/linux-loong64@0.17.12: 235 | resolution: {integrity: sha512-GTOEtj8h9qPKXCyiBBnHconSCV9LwFyx/gv3Phw0pa25qPYjVuuGZ4Dk14bGCfGX3qKF0+ceeQvwmtI+aYBbVA==} 236 | engines: {node: '>=12'} 237 | cpu: [loong64] 238 | os: [linux] 239 | requiresBuild: true 240 | optional: true 241 | 242 | /@esbuild/linux-mips64el@0.17.12: 243 | resolution: {integrity: sha512-o8CIhfBwKcxmEENOH9RwmUejs5jFiNoDw7YgS0EJTF6kgPgcqLFjgoc5kDey5cMHRVCIWc6kK2ShUePOcc7RbA==} 244 | engines: {node: '>=12'} 245 | cpu: [mips64el] 246 | os: [linux] 247 | requiresBuild: true 248 | optional: true 249 | 250 | /@esbuild/linux-ppc64@0.17.12: 251 | resolution: {integrity: sha512-biMLH6NR/GR4z+ap0oJYb877LdBpGac8KfZoEnDiBKd7MD/xt8eaw1SFfYRUeMVx519kVkAOL2GExdFmYnZx3A==} 252 | engines: {node: '>=12'} 253 | cpu: [ppc64] 254 | os: [linux] 255 | requiresBuild: true 256 | optional: true 257 | 258 | /@esbuild/linux-riscv64@0.17.12: 259 | resolution: {integrity: sha512-jkphYUiO38wZGeWlfIBMB72auOllNA2sLfiZPGDtOBb1ELN8lmqBrlMiucgL8awBw1zBXN69PmZM6g4yTX84TA==} 260 | engines: {node: '>=12'} 261 | cpu: [riscv64] 262 | os: [linux] 263 | requiresBuild: true 264 | optional: true 265 | 266 | /@esbuild/linux-s390x@0.17.12: 267 | resolution: {integrity: sha512-j3ucLdeY9HBcvODhCY4b+Ds3hWGO8t+SAidtmWu/ukfLLG/oYDMaA+dnugTVAg5fnUOGNbIYL9TOjhWgQB8W5g==} 268 | engines: {node: '>=12'} 269 | cpu: [s390x] 270 | os: [linux] 271 | requiresBuild: true 272 | optional: true 273 | 274 | /@esbuild/linux-x64@0.17.12: 275 | resolution: {integrity: sha512-uo5JL3cgaEGotaqSaJdRfFNSCUJOIliKLnDGWaVCgIKkHxwhYMm95pfMbWZ9l7GeW9kDg0tSxcy9NYdEtjwwmA==} 276 | engines: {node: '>=12'} 277 | cpu: [x64] 278 | os: [linux] 279 | requiresBuild: true 280 | optional: true 281 | 282 | /@esbuild/netbsd-x64@0.17.12: 283 | resolution: {integrity: sha512-DNdoRg8JX+gGsbqt2gPgkgb00mqOgOO27KnrWZtdABl6yWTST30aibGJ6geBq3WM2TIeW6COs5AScnC7GwtGPg==} 284 | engines: {node: '>=12'} 285 | cpu: [x64] 286 | os: [netbsd] 287 | requiresBuild: true 288 | optional: true 289 | 290 | /@esbuild/openbsd-x64@0.17.12: 291 | resolution: {integrity: sha512-aVsENlr7B64w8I1lhHShND5o8cW6sB9n9MUtLumFlPhG3elhNWtE7M1TFpj3m7lT3sKQUMkGFjTQBrvDDO1YWA==} 292 | engines: {node: '>=12'} 293 | cpu: [x64] 294 | os: [openbsd] 295 | requiresBuild: true 296 | optional: true 297 | 298 | /@esbuild/sunos-x64@0.17.12: 299 | resolution: {integrity: sha512-qbHGVQdKSwi0JQJuZznS4SyY27tYXYF0mrgthbxXrZI3AHKuRvU+Eqbg/F0rmLDpW/jkIZBlCO1XfHUBMNJ1pg==} 300 | engines: {node: '>=12'} 301 | cpu: [x64] 302 | os: [sunos] 303 | requiresBuild: true 304 | optional: true 305 | 306 | /@esbuild/win32-arm64@0.17.12: 307 | resolution: {integrity: sha512-zsCp8Ql+96xXTVTmm6ffvoTSZSV2B/LzzkUXAY33F/76EajNw1m+jZ9zPfNJlJ3Rh4EzOszNDHsmG/fZOhtqDg==} 308 | engines: {node: '>=12'} 309 | cpu: [arm64] 310 | os: [win32] 311 | requiresBuild: true 312 | optional: true 313 | 314 | /@esbuild/win32-ia32@0.17.12: 315 | resolution: {integrity: sha512-FfrFjR4id7wcFYOdqbDfDET3tjxCozUgbqdkOABsSFzoZGFC92UK7mg4JKRc/B3NNEf1s2WHxJ7VfTdVDPN3ng==} 316 | engines: {node: '>=12'} 317 | cpu: [ia32] 318 | os: [win32] 319 | requiresBuild: true 320 | optional: true 321 | 322 | /@esbuild/win32-x64@0.17.12: 323 | resolution: {integrity: sha512-JOOxw49BVZx2/5tW3FqkdjSD/5gXYeVGPDcB0lvap0gLQshkh1Nyel1QazC+wNxus3xPlsYAgqU1BUmrmCvWtw==} 324 | engines: {node: '>=12'} 325 | cpu: [x64] 326 | os: [win32] 327 | requiresBuild: true 328 | optional: true 329 | 330 | /@jridgewell/gen-mapping@0.3.2: 331 | resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} 332 | engines: {node: '>=6.0.0'} 333 | dependencies: 334 | '@jridgewell/set-array': 1.1.2 335 | '@jridgewell/sourcemap-codec': 1.4.15 336 | '@jridgewell/trace-mapping': 0.3.17 337 | 338 | /@jridgewell/resolve-uri@3.1.0: 339 | resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} 340 | engines: {node: '>=6.0.0'} 341 | 342 | /@jridgewell/set-array@1.1.2: 343 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} 344 | engines: {node: '>=6.0.0'} 345 | 346 | /@jridgewell/source-map@0.3.2: 347 | resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==} 348 | dependencies: 349 | '@jridgewell/gen-mapping': 0.3.2 350 | '@jridgewell/trace-mapping': 0.3.17 351 | 352 | /@jridgewell/sourcemap-codec@1.4.14: 353 | resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} 354 | 355 | /@jridgewell/sourcemap-codec@1.4.15: 356 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 357 | 358 | /@jridgewell/trace-mapping@0.3.17: 359 | resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} 360 | dependencies: 361 | '@jridgewell/resolve-uri': 3.1.0 362 | '@jridgewell/sourcemap-codec': 1.4.14 363 | 364 | /@next/env@13.5.4-canary.1: 365 | resolution: {integrity: sha512-PyTaQtq3fsr6F1UvFcHjkqeyM4rP0zq4LF5eus458v3CbliJHuNoAJ5ETJLYDYF4gocGB/UbVsLXcCSYidWnKw==} 366 | 367 | /@next/mdx@13.5.2: 368 | resolution: {integrity: sha512-gi+XMrmxhiUToXXZpA5C6XYt5+l5fVvN8+JTVayyDHwohg5JJ9ZkaIH/Isdu+w7j0ATnfTkJmf+HAi8+a3xXOQ==} 369 | peerDependencies: 370 | '@mdx-js/loader': '>=0.15.0' 371 | '@mdx-js/react': '>=0.15.0' 372 | peerDependenciesMeta: 373 | '@mdx-js/loader': 374 | optional: true 375 | '@mdx-js/react': 376 | optional: true 377 | dependencies: 378 | source-map: 0.7.4 379 | dev: false 380 | 381 | /@next/swc-darwin-arm64@13.5.4-canary.1: 382 | resolution: {integrity: sha512-YamcOSTYrRp+WWwcs6x7ShJPx0NEFuoxjGBTpqhoTFRamJSytCagNUXLpbZvuywLtUdf7L9DH80gj/QknhF8BQ==} 383 | engines: {node: '>= 10'} 384 | cpu: [arm64] 385 | os: [darwin] 386 | requiresBuild: true 387 | optional: true 388 | 389 | /@next/swc-darwin-x64@13.5.4-canary.1: 390 | resolution: {integrity: sha512-hEeoSEMIJOympsKw8TPx8ffgT7sjBMVwF1wMz0OjGcAqsDcjsfx06pitHVvjrxJzCBia6HC1ts5Tg+gaZD/HuQ==} 391 | engines: {node: '>= 10'} 392 | cpu: [x64] 393 | os: [darwin] 394 | requiresBuild: true 395 | optional: true 396 | 397 | /@next/swc-linux-arm64-gnu@13.5.4-canary.1: 398 | resolution: {integrity: sha512-pRsAGAjWqZi2ED35c2wbfApsJ8IQ+NMGIzg2M6ghEYW48mVC4tORW8G13BLotbkKCjCSLLtlW6unwSqPIjpyRQ==} 399 | engines: {node: '>= 10'} 400 | cpu: [arm64] 401 | os: [linux] 402 | requiresBuild: true 403 | optional: true 404 | 405 | /@next/swc-linux-arm64-musl@13.5.4-canary.1: 406 | resolution: {integrity: sha512-dkkTX5C7RPJoQSkKp/7HqD6vGuJzpqZXEjKk/SfNkW+7cFEz3Zsx5wWDfBkT/geZYNODyxG/nhAAfEa491W/hg==} 407 | engines: {node: '>= 10'} 408 | cpu: [arm64] 409 | os: [linux] 410 | requiresBuild: true 411 | optional: true 412 | 413 | /@next/swc-linux-x64-gnu@13.5.4-canary.1: 414 | resolution: {integrity: sha512-7jJTVCGd/uExjgebZQr4k1ml3HEt0AExFoJwtniIMe1iFUyM7bjVyqij+PfuREDOh+N6R9ILDqPHOYUzYr75+Q==} 415 | engines: {node: '>= 10'} 416 | cpu: [x64] 417 | os: [linux] 418 | requiresBuild: true 419 | optional: true 420 | 421 | /@next/swc-linux-x64-musl@13.5.4-canary.1: 422 | resolution: {integrity: sha512-402dIEdiLxMNR9QFhqPnGEFTyas9KLA/oPWadR8KzpF+rdJq+2GsoaOTYHAGR0Cydtl4g2TCRUCSrr79b0vdSQ==} 423 | engines: {node: '>= 10'} 424 | cpu: [x64] 425 | os: [linux] 426 | requiresBuild: true 427 | optional: true 428 | 429 | /@next/swc-win32-arm64-msvc@13.5.4-canary.1: 430 | resolution: {integrity: sha512-9S71k/t2/Psl0HWez78NbipmF9oL5YYk9vED2WoOUkfb2vqm536xjH6x9hlTuZdcrypGp6+/81NTyk4+e31A2A==} 431 | engines: {node: '>= 10'} 432 | cpu: [arm64] 433 | os: [win32] 434 | requiresBuild: true 435 | optional: true 436 | 437 | /@next/swc-win32-ia32-msvc@13.5.4-canary.1: 438 | resolution: {integrity: sha512-NaH+padshiH2vj0PJtVibYk5XnJ3jLwm1Q1CrcdNqBlyEDxH2Ky4QcqMf/avQWdfcAvHsTj0T+SERacFGp3pSw==} 439 | engines: {node: '>= 10'} 440 | cpu: [ia32] 441 | os: [win32] 442 | requiresBuild: true 443 | optional: true 444 | 445 | /@next/swc-win32-x64-msvc@13.5.4-canary.1: 446 | resolution: {integrity: sha512-JBWtDlWtny3ftV2LvMoIacqQp0nIE/Yz+Hwfs3bxrrjfymNhkROUpcWAilFEjz9tXY5TajqEl3JKXztGPNabvg==} 447 | engines: {node: '>= 10'} 448 | cpu: [x64] 449 | os: [win32] 450 | requiresBuild: true 451 | optional: true 452 | 453 | /@nodelib/fs.scandir@2.1.5: 454 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 455 | engines: {node: '>= 8'} 456 | dependencies: 457 | '@nodelib/fs.stat': 2.0.5 458 | run-parallel: 1.2.0 459 | dev: false 460 | 461 | /@nodelib/fs.stat@2.0.5: 462 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 463 | engines: {node: '>= 8'} 464 | dev: false 465 | 466 | /@nodelib/fs.walk@1.2.8: 467 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 468 | engines: {node: '>= 8'} 469 | dependencies: 470 | '@nodelib/fs.scandir': 2.1.5 471 | fastq: 1.15.0 472 | dev: false 473 | 474 | /@swc/helpers@0.5.2: 475 | resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} 476 | dependencies: 477 | tslib: 2.5.0 478 | 479 | /@types/eslint-scope@3.7.4: 480 | resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==} 481 | dependencies: 482 | '@types/eslint': 8.21.3 483 | '@types/estree': 1.0.0 484 | 485 | /@types/eslint@8.21.3: 486 | resolution: {integrity: sha512-fa7GkppZVEByMWGbTtE5MbmXWJTVbrjjaS8K6uQj+XtuuUv1fsuPAxhygfqLmsb/Ufb3CV8deFCpiMfAgi00Sw==} 487 | dependencies: 488 | '@types/estree': 1.0.0 489 | '@types/json-schema': 7.0.11 490 | 491 | /@types/estree@1.0.0: 492 | resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} 493 | 494 | /@types/json-schema@7.0.11: 495 | resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} 496 | 497 | /@types/mdx@2.0.7: 498 | resolution: {integrity: sha512-BG4tyr+4amr3WsSEmHn/fXPqaCba/AYZ7dsaQTiavihQunHSIxk+uAtqsjvicNpyHN6cm+B9RVrUOtW9VzIKHw==} 499 | dev: false 500 | 501 | /@types/node@18.16.3: 502 | resolution: {integrity: sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==} 503 | dev: false 504 | 505 | /@types/node@20.6.5: 506 | resolution: {integrity: sha512-2qGq5LAOTh9izcc0+F+dToFigBWiK1phKPt7rNhOqJSr35y8rlIBjDwGtFSgAI6MGIhjwOVNSQZVdJsZJ2uR1w==} 507 | 508 | /@types/prop-types@15.7.5: 509 | resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} 510 | dev: false 511 | 512 | /@types/react-dom@18.2.7: 513 | resolution: {integrity: sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==} 514 | dependencies: 515 | '@types/react': 18.2.22 516 | dev: false 517 | 518 | /@types/react@18.2.22: 519 | resolution: {integrity: sha512-60fLTOLqzarLED2O3UQImc/lsNRgG0jE/a1mPW9KjMemY0LMITWEsbS4VvZ4p6rorEHd5YKxxmMKSDK505GHpA==} 520 | dependencies: 521 | '@types/prop-types': 15.7.5 522 | '@types/scheduler': 0.16.2 523 | csstype: 3.1.1 524 | dev: false 525 | 526 | /@types/scheduler@0.16.2: 527 | resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} 528 | dev: false 529 | 530 | /@types/vscode@1.82.0: 531 | resolution: {integrity: sha512-VSHV+VnpF8DEm8LNrn8OJ8VuUNcBzN3tMvKrNpbhhfuVjFm82+6v44AbDhLvVFgCzn6vs94EJNTp7w8S6+Q1Rw==} 532 | dev: true 533 | 534 | /@typescript/ata@0.9.4(typescript@5.2.2): 535 | resolution: {integrity: sha512-PaJ16WouPV/SaA+c0tnOKIqYq24+m93ipl/e0Dkxuianer+ibc5b0/6ZgfCFF8J7QEp57dySMSP9nWOFaCfJnw==} 536 | peerDependencies: 537 | typescript: ^4.4.4 538 | dependencies: 539 | typescript: 5.2.2 540 | dev: false 541 | 542 | /@webassemblyjs/ast@1.11.5: 543 | resolution: {integrity: sha512-LHY/GSAZZRpsNQH+/oHqhRQ5FT7eoULcBqgfyTB5nQHogFnK3/7QoN7dLnwSE/JkUAF0SrRuclT7ODqMFtWxxQ==} 544 | dependencies: 545 | '@webassemblyjs/helper-numbers': 1.11.5 546 | '@webassemblyjs/helper-wasm-bytecode': 1.11.5 547 | 548 | /@webassemblyjs/floating-point-hex-parser@1.11.5: 549 | resolution: {integrity: sha512-1j1zTIC5EZOtCplMBG/IEwLtUojtwFVwdyVMbL/hwWqbzlQoJsWCOavrdnLkemwNoC/EOwtUFch3fuo+cbcXYQ==} 550 | 551 | /@webassemblyjs/helper-api-error@1.11.5: 552 | resolution: {integrity: sha512-L65bDPmfpY0+yFrsgz8b6LhXmbbs38OnwDCf6NpnMUYqa+ENfE5Dq9E42ny0qz/PdR0LJyq/T5YijPnU8AXEpA==} 553 | 554 | /@webassemblyjs/helper-buffer@1.11.5: 555 | resolution: {integrity: sha512-fDKo1gstwFFSfacIeH5KfwzjykIE6ldh1iH9Y/8YkAZrhmu4TctqYjSh7t0K2VyDSXOZJ1MLhht/k9IvYGcIxg==} 556 | 557 | /@webassemblyjs/helper-numbers@1.11.5: 558 | resolution: {integrity: sha512-DhykHXM0ZABqfIGYNv93A5KKDw/+ywBFnuWybZZWcuzWHfbp21wUfRkbtz7dMGwGgT4iXjWuhRMA2Mzod6W4WA==} 559 | dependencies: 560 | '@webassemblyjs/floating-point-hex-parser': 1.11.5 561 | '@webassemblyjs/helper-api-error': 1.11.5 562 | '@xtuc/long': 4.2.2 563 | 564 | /@webassemblyjs/helper-wasm-bytecode@1.11.5: 565 | resolution: {integrity: sha512-oC4Qa0bNcqnjAowFn7MPCETQgDYytpsfvz4ujZz63Zu/a/v71HeCAAmZsgZ3YVKec3zSPYytG3/PrRCqbtcAvA==} 566 | 567 | /@webassemblyjs/helper-wasm-section@1.11.5: 568 | resolution: {integrity: sha512-uEoThA1LN2NA+K3B9wDo3yKlBfVtC6rh0i4/6hvbz071E8gTNZD/pT0MsBf7MeD6KbApMSkaAK0XeKyOZC7CIA==} 569 | dependencies: 570 | '@webassemblyjs/ast': 1.11.5 571 | '@webassemblyjs/helper-buffer': 1.11.5 572 | '@webassemblyjs/helper-wasm-bytecode': 1.11.5 573 | '@webassemblyjs/wasm-gen': 1.11.5 574 | 575 | /@webassemblyjs/ieee754@1.11.5: 576 | resolution: {integrity: sha512-37aGq6qVL8A8oPbPrSGMBcp38YZFXcHfiROflJn9jxSdSMMM5dS5P/9e2/TpaJuhE+wFrbukN2WI6Hw9MH5acg==} 577 | dependencies: 578 | '@xtuc/ieee754': 1.2.0 579 | 580 | /@webassemblyjs/leb128@1.11.5: 581 | resolution: {integrity: sha512-ajqrRSXaTJoPW+xmkfYN6l8VIeNnR4vBOTQO9HzR7IygoCcKWkICbKFbVTNMjMgMREqXEr0+2M6zukzM47ZUfQ==} 582 | dependencies: 583 | '@xtuc/long': 4.2.2 584 | 585 | /@webassemblyjs/utf8@1.11.5: 586 | resolution: {integrity: sha512-WiOhulHKTZU5UPlRl53gHR8OxdGsSOxqfpqWeA2FmcwBMaoEdz6b2x2si3IwC9/fSPLfe8pBMRTHVMk5nlwnFQ==} 587 | 588 | /@webassemblyjs/wasm-edit@1.11.5: 589 | resolution: {integrity: sha512-C0p9D2fAu3Twwqvygvf42iGCQ4av8MFBLiTb+08SZ4cEdwzWx9QeAHDo1E2k+9s/0w1DM40oflJOpkZ8jW4HCQ==} 590 | dependencies: 591 | '@webassemblyjs/ast': 1.11.5 592 | '@webassemblyjs/helper-buffer': 1.11.5 593 | '@webassemblyjs/helper-wasm-bytecode': 1.11.5 594 | '@webassemblyjs/helper-wasm-section': 1.11.5 595 | '@webassemblyjs/wasm-gen': 1.11.5 596 | '@webassemblyjs/wasm-opt': 1.11.5 597 | '@webassemblyjs/wasm-parser': 1.11.5 598 | '@webassemblyjs/wast-printer': 1.11.5 599 | 600 | /@webassemblyjs/wasm-gen@1.11.5: 601 | resolution: {integrity: sha512-14vteRlRjxLK9eSyYFvw1K8Vv+iPdZU0Aebk3j6oB8TQiQYuO6hj9s4d7qf6f2HJr2khzvNldAFG13CgdkAIfA==} 602 | dependencies: 603 | '@webassemblyjs/ast': 1.11.5 604 | '@webassemblyjs/helper-wasm-bytecode': 1.11.5 605 | '@webassemblyjs/ieee754': 1.11.5 606 | '@webassemblyjs/leb128': 1.11.5 607 | '@webassemblyjs/utf8': 1.11.5 608 | 609 | /@webassemblyjs/wasm-opt@1.11.5: 610 | resolution: {integrity: sha512-tcKwlIXstBQgbKy1MlbDMlXaxpucn42eb17H29rawYLxm5+MsEmgPzeCP8B1Cl69hCice8LeKgZpRUAPtqYPgw==} 611 | dependencies: 612 | '@webassemblyjs/ast': 1.11.5 613 | '@webassemblyjs/helper-buffer': 1.11.5 614 | '@webassemblyjs/wasm-gen': 1.11.5 615 | '@webassemblyjs/wasm-parser': 1.11.5 616 | 617 | /@webassemblyjs/wasm-parser@1.11.5: 618 | resolution: {integrity: sha512-SVXUIwsLQlc8srSD7jejsfTU83g7pIGr2YYNb9oHdtldSxaOhvA5xwvIiWIfcX8PlSakgqMXsLpLfbbJ4cBYew==} 619 | dependencies: 620 | '@webassemblyjs/ast': 1.11.5 621 | '@webassemblyjs/helper-api-error': 1.11.5 622 | '@webassemblyjs/helper-wasm-bytecode': 1.11.5 623 | '@webassemblyjs/ieee754': 1.11.5 624 | '@webassemblyjs/leb128': 1.11.5 625 | '@webassemblyjs/utf8': 1.11.5 626 | 627 | /@webassemblyjs/wast-printer@1.11.5: 628 | resolution: {integrity: sha512-f7Pq3wvg3GSPUPzR0F6bmI89Hdb+u9WXrSKc4v+N0aV0q6r42WoF92Jp2jEorBEBRoRNXgjp53nBniDXcqZYPA==} 629 | dependencies: 630 | '@webassemblyjs/ast': 1.11.5 631 | '@xtuc/long': 4.2.2 632 | 633 | /@xtuc/ieee754@1.2.0: 634 | resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} 635 | 636 | /@xtuc/long@4.2.2: 637 | resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} 638 | 639 | /acorn-import-assertions@1.9.0(acorn@8.8.2): 640 | resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} 641 | peerDependencies: 642 | acorn: ^8 643 | dependencies: 644 | acorn: 8.8.2 645 | 646 | /acorn@8.8.2: 647 | resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} 648 | engines: {node: '>=0.4.0'} 649 | hasBin: true 650 | 651 | /ajv-formats@2.1.1(ajv@8.12.0): 652 | resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} 653 | peerDependencies: 654 | ajv: ^8.0.0 655 | peerDependenciesMeta: 656 | ajv: 657 | optional: true 658 | dependencies: 659 | ajv: 8.12.0 660 | dev: false 661 | 662 | /ajv-keywords@3.5.2(ajv@6.12.6): 663 | resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} 664 | peerDependencies: 665 | ajv: ^6.9.1 666 | dependencies: 667 | ajv: 6.12.6 668 | 669 | /ajv-keywords@5.1.0(ajv@8.12.0): 670 | resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} 671 | peerDependencies: 672 | ajv: ^8.8.2 673 | dependencies: 674 | ajv: 8.12.0 675 | fast-deep-equal: 3.1.3 676 | dev: false 677 | 678 | /ajv@6.12.6: 679 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 680 | dependencies: 681 | fast-deep-equal: 3.1.3 682 | fast-json-stable-stringify: 2.1.0 683 | json-schema-traverse: 0.4.1 684 | uri-js: 4.4.1 685 | 686 | /ajv@8.12.0: 687 | resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} 688 | dependencies: 689 | fast-deep-equal: 3.1.3 690 | json-schema-traverse: 1.0.0 691 | require-from-string: 2.0.2 692 | uri-js: 4.4.1 693 | dev: false 694 | 695 | /ansi-sequence-parser@1.1.1: 696 | resolution: {integrity: sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==} 697 | dev: false 698 | 699 | /ansi-styles@3.2.1: 700 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 701 | engines: {node: '>=4'} 702 | dependencies: 703 | color-convert: 1.9.3 704 | dev: false 705 | optional: true 706 | 707 | /any-promise@1.3.0: 708 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 709 | dev: false 710 | 711 | /anymatch@3.1.3: 712 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 713 | engines: {node: '>= 8'} 714 | dependencies: 715 | normalize-path: 3.0.0 716 | picomatch: 2.3.1 717 | dev: false 718 | 719 | /array-union@2.1.0: 720 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 721 | engines: {node: '>=8'} 722 | dev: false 723 | 724 | /balanced-match@1.0.2: 725 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 726 | dev: false 727 | 728 | /binary-extensions@2.2.0: 729 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 730 | engines: {node: '>=8'} 731 | dev: false 732 | 733 | /brace-expansion@1.1.11: 734 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 735 | dependencies: 736 | balanced-match: 1.0.2 737 | concat-map: 0.0.1 738 | dev: false 739 | 740 | /braces@3.0.2: 741 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 742 | engines: {node: '>=8'} 743 | dependencies: 744 | fill-range: 7.0.1 745 | dev: false 746 | 747 | /browserslist@4.21.5: 748 | resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} 749 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 750 | hasBin: true 751 | dependencies: 752 | caniuse-lite: 1.0.30001469 753 | electron-to-chromium: 1.4.335 754 | node-releases: 2.0.10 755 | update-browserslist-db: 1.0.10(browserslist@4.21.5) 756 | 757 | /buffer-crc32@0.2.13: 758 | resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} 759 | dev: false 760 | 761 | /buffer-from@1.1.2: 762 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 763 | 764 | /bundle-require@4.0.1(esbuild@0.17.12): 765 | resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} 766 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 767 | peerDependencies: 768 | esbuild: '>=0.17' 769 | dependencies: 770 | esbuild: 0.17.12 771 | load-tsconfig: 0.2.5 772 | dev: false 773 | 774 | /busboy@1.6.0: 775 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} 776 | engines: {node: '>=10.16.0'} 777 | dependencies: 778 | streamsearch: 1.1.0 779 | 780 | /cac@6.7.14: 781 | resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 782 | engines: {node: '>=8'} 783 | dev: false 784 | 785 | /caniuse-lite@1.0.30001469: 786 | resolution: {integrity: sha512-Rcp7221ScNqQPP3W+lVOYDyjdR6dC+neEQCttoNr5bAyz54AboB4iwpnWgyi8P4YUsPybVzT4LgWiBbI3drL4g==} 787 | 788 | /chalk@2.4.2: 789 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 790 | engines: {node: '>=4'} 791 | dependencies: 792 | ansi-styles: 3.2.1 793 | escape-string-regexp: 1.0.5 794 | supports-color: 5.5.0 795 | dev: false 796 | optional: true 797 | 798 | /chokidar@3.5.3: 799 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 800 | engines: {node: '>= 8.10.0'} 801 | dependencies: 802 | anymatch: 3.1.3 803 | braces: 3.0.2 804 | glob-parent: 5.1.2 805 | is-binary-path: 2.1.0 806 | is-glob: 4.0.3 807 | normalize-path: 3.0.0 808 | readdirp: 3.6.0 809 | optionalDependencies: 810 | fsevents: 2.3.2 811 | dev: false 812 | 813 | /chrome-trace-event@1.0.3: 814 | resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} 815 | engines: {node: '>=6.0'} 816 | 817 | /client-only@0.0.1: 818 | resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} 819 | 820 | /color-convert@1.9.3: 821 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 822 | dependencies: 823 | color-name: 1.1.3 824 | dev: false 825 | optional: true 826 | 827 | /color-name@1.1.3: 828 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 829 | dev: false 830 | optional: true 831 | 832 | /commander@2.20.3: 833 | resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} 834 | 835 | /commander@4.1.1: 836 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 837 | engines: {node: '>= 6'} 838 | dev: false 839 | 840 | /concat-map@0.0.1: 841 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 842 | dev: false 843 | 844 | /copy-webpack-plugin@11.0.0(webpack@5.88.2): 845 | resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==} 846 | engines: {node: '>= 14.15.0'} 847 | peerDependencies: 848 | webpack: ^5.1.0 849 | dependencies: 850 | fast-glob: 3.2.12 851 | glob-parent: 6.0.2 852 | globby: 13.1.3 853 | normalize-path: 3.0.0 854 | schema-utils: 4.0.0 855 | serialize-javascript: 6.0.1 856 | webpack: 5.88.2(esbuild@0.17.12) 857 | dev: false 858 | 859 | /cross-spawn@7.0.3: 860 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 861 | engines: {node: '>= 8'} 862 | dependencies: 863 | path-key: 3.1.1 864 | shebang-command: 2.0.0 865 | which: 2.0.2 866 | dev: false 867 | 868 | /csstype@3.1.1: 869 | resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} 870 | dev: false 871 | 872 | /data-uri-to-buffer@4.0.1: 873 | resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} 874 | engines: {node: '>= 12'} 875 | dev: false 876 | 877 | /debug@4.3.4: 878 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 879 | engines: {node: '>=6.0'} 880 | peerDependencies: 881 | supports-color: '*' 882 | peerDependenciesMeta: 883 | supports-color: 884 | optional: true 885 | dependencies: 886 | ms: 2.1.2 887 | dev: false 888 | 889 | /dir-glob@3.0.1: 890 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 891 | engines: {node: '>=8'} 892 | dependencies: 893 | path-type: 4.0.0 894 | dev: false 895 | 896 | /electron-to-chromium@1.4.335: 897 | resolution: {integrity: sha512-l/eowQqTnrq3gu+WSrdfkhfNHnPgYqlKAwxz7MTOj6mom19vpEDHNXl6dxDxyTiYuhemydprKr/HCrHfgk+OfQ==} 898 | 899 | /enhanced-resolve@5.15.0: 900 | resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} 901 | engines: {node: '>=10.13.0'} 902 | dependencies: 903 | graceful-fs: 4.2.11 904 | tapable: 2.2.1 905 | 906 | /es-module-lexer@1.2.1: 907 | resolution: {integrity: sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==} 908 | 909 | /esbuild@0.17.12: 910 | resolution: {integrity: sha512-bX/zHl7Gn2CpQwcMtRogTTBf9l1nl+H6R8nUbjk+RuKqAE3+8FDulLA+pHvX7aA7Xe07Iwa+CWvy9I8Y2qqPKQ==} 911 | engines: {node: '>=12'} 912 | hasBin: true 913 | requiresBuild: true 914 | optionalDependencies: 915 | '@esbuild/android-arm': 0.17.12 916 | '@esbuild/android-arm64': 0.17.12 917 | '@esbuild/android-x64': 0.17.12 918 | '@esbuild/darwin-arm64': 0.17.12 919 | '@esbuild/darwin-x64': 0.17.12 920 | '@esbuild/freebsd-arm64': 0.17.12 921 | '@esbuild/freebsd-x64': 0.17.12 922 | '@esbuild/linux-arm': 0.17.12 923 | '@esbuild/linux-arm64': 0.17.12 924 | '@esbuild/linux-ia32': 0.17.12 925 | '@esbuild/linux-loong64': 0.17.12 926 | '@esbuild/linux-mips64el': 0.17.12 927 | '@esbuild/linux-ppc64': 0.17.12 928 | '@esbuild/linux-riscv64': 0.17.12 929 | '@esbuild/linux-s390x': 0.17.12 930 | '@esbuild/linux-x64': 0.17.12 931 | '@esbuild/netbsd-x64': 0.17.12 932 | '@esbuild/openbsd-x64': 0.17.12 933 | '@esbuild/sunos-x64': 0.17.12 934 | '@esbuild/win32-arm64': 0.17.12 935 | '@esbuild/win32-ia32': 0.17.12 936 | '@esbuild/win32-x64': 0.17.12 937 | 938 | /escalade@3.1.1: 939 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 940 | engines: {node: '>=6'} 941 | 942 | /escape-string-regexp@1.0.5: 943 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 944 | engines: {node: '>=0.8.0'} 945 | dev: false 946 | optional: true 947 | 948 | /eslint-scope@5.1.1: 949 | resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} 950 | engines: {node: '>=8.0.0'} 951 | dependencies: 952 | esrecurse: 4.3.0 953 | estraverse: 4.3.0 954 | 955 | /esrecurse@4.3.0: 956 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 957 | engines: {node: '>=4.0'} 958 | dependencies: 959 | estraverse: 5.3.0 960 | 961 | /estraverse@4.3.0: 962 | resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} 963 | engines: {node: '>=4.0'} 964 | 965 | /estraverse@5.3.0: 966 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 967 | engines: {node: '>=4.0'} 968 | 969 | /events@3.3.0: 970 | resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} 971 | engines: {node: '>=0.8.x'} 972 | 973 | /execa@5.1.1: 974 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} 975 | engines: {node: '>=10'} 976 | dependencies: 977 | cross-spawn: 7.0.3 978 | get-stream: 6.0.1 979 | human-signals: 2.1.0 980 | is-stream: 2.0.1 981 | merge-stream: 2.0.0 982 | npm-run-path: 4.0.1 983 | onetime: 5.1.2 984 | signal-exit: 3.0.7 985 | strip-final-newline: 2.0.0 986 | dev: false 987 | 988 | /fast-deep-equal@3.1.3: 989 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 990 | 991 | /fast-glob@3.2.12: 992 | resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} 993 | engines: {node: '>=8.6.0'} 994 | dependencies: 995 | '@nodelib/fs.stat': 2.0.5 996 | '@nodelib/fs.walk': 1.2.8 997 | glob-parent: 5.1.2 998 | merge2: 1.4.1 999 | micromatch: 4.0.5 1000 | dev: false 1001 | 1002 | /fast-json-stable-stringify@2.1.0: 1003 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1004 | 1005 | /fastq@1.15.0: 1006 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 1007 | dependencies: 1008 | reusify: 1.0.4 1009 | dev: false 1010 | 1011 | /fd-slicer@1.1.0: 1012 | resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} 1013 | dependencies: 1014 | pend: 1.2.0 1015 | dev: false 1016 | 1017 | /fetch-blob@3.2.0: 1018 | resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} 1019 | engines: {node: ^12.20 || >= 14.13} 1020 | dependencies: 1021 | node-domexception: 1.0.0 1022 | web-streams-polyfill: 3.2.1 1023 | dev: false 1024 | 1025 | /fill-range@7.0.1: 1026 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1027 | engines: {node: '>=8'} 1028 | dependencies: 1029 | to-regex-range: 5.0.1 1030 | dev: false 1031 | 1032 | /formdata-polyfill@4.0.10: 1033 | resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} 1034 | engines: {node: '>=12.20.0'} 1035 | dependencies: 1036 | fetch-blob: 3.2.0 1037 | dev: false 1038 | 1039 | /fs.realpath@1.0.0: 1040 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1041 | dev: false 1042 | 1043 | /fsevents@2.3.2: 1044 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 1045 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1046 | os: [darwin] 1047 | requiresBuild: true 1048 | dev: false 1049 | optional: true 1050 | 1051 | /get-stream@6.0.1: 1052 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 1053 | engines: {node: '>=10'} 1054 | dev: false 1055 | 1056 | /glob-parent@5.1.2: 1057 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1058 | engines: {node: '>= 6'} 1059 | dependencies: 1060 | is-glob: 4.0.3 1061 | dev: false 1062 | 1063 | /glob-parent@6.0.2: 1064 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1065 | engines: {node: '>=10.13.0'} 1066 | dependencies: 1067 | is-glob: 4.0.3 1068 | dev: false 1069 | 1070 | /glob-to-regexp@0.4.1: 1071 | resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} 1072 | 1073 | /glob@7.1.6: 1074 | resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} 1075 | dependencies: 1076 | fs.realpath: 1.0.0 1077 | inflight: 1.0.6 1078 | inherits: 2.0.4 1079 | minimatch: 3.1.2 1080 | once: 1.4.0 1081 | path-is-absolute: 1.0.1 1082 | dev: false 1083 | 1084 | /globby@11.1.0: 1085 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1086 | engines: {node: '>=10'} 1087 | dependencies: 1088 | array-union: 2.1.0 1089 | dir-glob: 3.0.1 1090 | fast-glob: 3.2.12 1091 | ignore: 5.2.4 1092 | merge2: 1.4.1 1093 | slash: 3.0.0 1094 | dev: false 1095 | 1096 | /globby@13.1.3: 1097 | resolution: {integrity: sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==} 1098 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1099 | dependencies: 1100 | dir-glob: 3.0.1 1101 | fast-glob: 3.2.12 1102 | ignore: 5.2.4 1103 | merge2: 1.4.1 1104 | slash: 4.0.0 1105 | dev: false 1106 | 1107 | /graceful-fs@4.2.11: 1108 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1109 | 1110 | /has-flag@3.0.0: 1111 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 1112 | engines: {node: '>=4'} 1113 | dev: false 1114 | optional: true 1115 | 1116 | /has-flag@4.0.0: 1117 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1118 | engines: {node: '>=8'} 1119 | 1120 | /human-signals@2.1.0: 1121 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} 1122 | engines: {node: '>=10.17.0'} 1123 | dev: false 1124 | 1125 | /ignore@5.2.4: 1126 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} 1127 | engines: {node: '>= 4'} 1128 | dev: false 1129 | 1130 | /inflight@1.0.6: 1131 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1132 | dependencies: 1133 | once: 1.4.0 1134 | wrappy: 1.0.2 1135 | dev: false 1136 | 1137 | /inherits@2.0.4: 1138 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1139 | dev: false 1140 | 1141 | /is-binary-path@2.1.0: 1142 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 1143 | engines: {node: '>=8'} 1144 | dependencies: 1145 | binary-extensions: 2.2.0 1146 | dev: false 1147 | 1148 | /is-extglob@2.1.1: 1149 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1150 | engines: {node: '>=0.10.0'} 1151 | dev: false 1152 | 1153 | /is-glob@4.0.3: 1154 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1155 | engines: {node: '>=0.10.0'} 1156 | dependencies: 1157 | is-extglob: 2.1.1 1158 | dev: false 1159 | 1160 | /is-number@7.0.0: 1161 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1162 | engines: {node: '>=0.12.0'} 1163 | dev: false 1164 | 1165 | /is-stream@2.0.1: 1166 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} 1167 | engines: {node: '>=8'} 1168 | dev: false 1169 | 1170 | /isexe@2.0.0: 1171 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1172 | dev: false 1173 | 1174 | /jest-worker@27.5.1: 1175 | resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} 1176 | engines: {node: '>= 10.13.0'} 1177 | dependencies: 1178 | '@types/node': 20.6.5 1179 | merge-stream: 2.0.0 1180 | supports-color: 8.1.1 1181 | 1182 | /joycon@3.1.1: 1183 | resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} 1184 | engines: {node: '>=10'} 1185 | dev: false 1186 | 1187 | /js-tokens@4.0.0: 1188 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1189 | 1190 | /json-parse-even-better-errors@2.3.1: 1191 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 1192 | 1193 | /json-schema-traverse@0.4.1: 1194 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1195 | 1196 | /json-schema-traverse@1.0.0: 1197 | resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} 1198 | dev: false 1199 | 1200 | /lilconfig@2.1.0: 1201 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} 1202 | engines: {node: '>=10'} 1203 | dev: false 1204 | 1205 | /lines-and-columns@1.2.4: 1206 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1207 | dev: false 1208 | 1209 | /load-tsconfig@0.2.5: 1210 | resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} 1211 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1212 | dev: false 1213 | 1214 | /loader-runner@4.3.0: 1215 | resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} 1216 | engines: {node: '>=6.11.5'} 1217 | 1218 | /lodash.sortby@4.7.0: 1219 | resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} 1220 | dev: false 1221 | 1222 | /loose-envify@1.4.0: 1223 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 1224 | hasBin: true 1225 | dependencies: 1226 | js-tokens: 4.0.0 1227 | 1228 | /magic-string@0.30.3: 1229 | resolution: {integrity: sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==} 1230 | engines: {node: '>=12'} 1231 | dependencies: 1232 | '@jridgewell/sourcemap-codec': 1.4.15 1233 | dev: false 1234 | 1235 | /merge-stream@2.0.0: 1236 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 1237 | 1238 | /merge2@1.4.1: 1239 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1240 | engines: {node: '>= 8'} 1241 | dev: false 1242 | 1243 | /micromatch@4.0.5: 1244 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 1245 | engines: {node: '>=8.6'} 1246 | dependencies: 1247 | braces: 3.0.2 1248 | picomatch: 2.3.1 1249 | dev: false 1250 | 1251 | /mime-db@1.52.0: 1252 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 1253 | engines: {node: '>= 0.6'} 1254 | 1255 | /mime-types@2.1.35: 1256 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 1257 | engines: {node: '>= 0.6'} 1258 | dependencies: 1259 | mime-db: 1.52.0 1260 | 1261 | /mimic-fn@2.1.0: 1262 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 1263 | engines: {node: '>=6'} 1264 | dev: false 1265 | 1266 | /minimatch@3.1.2: 1267 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1268 | dependencies: 1269 | brace-expansion: 1.1.11 1270 | dev: false 1271 | 1272 | /monaco-editor@0.37.1: 1273 | resolution: {integrity: sha512-jLXEEYSbqMkT/FuJLBZAVWGuhIb4JNwHE9kPTorAVmsdZ4UzHAfgWxLsVtD7pLRFaOwYPhNG9nUCpmFL1t/dIg==} 1274 | dev: false 1275 | 1276 | /ms@2.1.2: 1277 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1278 | dev: false 1279 | 1280 | /mz@2.7.0: 1281 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 1282 | dependencies: 1283 | any-promise: 1.3.0 1284 | object-assign: 4.1.1 1285 | thenify-all: 1.6.0 1286 | dev: false 1287 | 1288 | /nanoid@3.3.4: 1289 | resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} 1290 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1291 | hasBin: true 1292 | 1293 | /neo-async@2.6.2: 1294 | resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} 1295 | 1296 | /next@13.5.4-canary.1(react-dom@18.2.0)(react@18.2.0): 1297 | resolution: {integrity: sha512-XGUtau0aY9coip1K7gRNUcIw4G6Z+UNGVLi3YPUDGhkXkGvOO3rxTyCBj9pE4ObcQyk56orfiH9nfWqT/qRQmw==} 1298 | engines: {node: '>=16.14.0'} 1299 | hasBin: true 1300 | peerDependencies: 1301 | '@opentelemetry/api': ^1.1.0 1302 | react: ^18.2.0 1303 | react-dom: ^18.2.0 1304 | sass: ^1.3.0 1305 | peerDependenciesMeta: 1306 | '@opentelemetry/api': 1307 | optional: true 1308 | sass: 1309 | optional: true 1310 | dependencies: 1311 | '@next/env': 13.5.4-canary.1 1312 | '@swc/helpers': 0.5.2 1313 | busboy: 1.6.0 1314 | caniuse-lite: 1.0.30001469 1315 | postcss: 8.4.14 1316 | react: 18.2.0 1317 | react-dom: 18.2.0(react@18.2.0) 1318 | styled-jsx: 5.1.1(react@18.2.0) 1319 | watchpack: 2.4.0 1320 | zod: 3.21.4 1321 | optionalDependencies: 1322 | '@next/swc-darwin-arm64': 13.5.4-canary.1 1323 | '@next/swc-darwin-x64': 13.5.4-canary.1 1324 | '@next/swc-linux-arm64-gnu': 13.5.4-canary.1 1325 | '@next/swc-linux-arm64-musl': 13.5.4-canary.1 1326 | '@next/swc-linux-x64-gnu': 13.5.4-canary.1 1327 | '@next/swc-linux-x64-musl': 13.5.4-canary.1 1328 | '@next/swc-win32-arm64-msvc': 13.5.4-canary.1 1329 | '@next/swc-win32-ia32-msvc': 13.5.4-canary.1 1330 | '@next/swc-win32-x64-msvc': 13.5.4-canary.1 1331 | transitivePeerDependencies: 1332 | - '@babel/core' 1333 | - babel-plugin-macros 1334 | 1335 | /node-domexception@1.0.0: 1336 | resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} 1337 | engines: {node: '>=10.5.0'} 1338 | dev: false 1339 | 1340 | /node-fetch@3.3.2: 1341 | resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} 1342 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1343 | dependencies: 1344 | data-uri-to-buffer: 4.0.1 1345 | fetch-blob: 3.2.0 1346 | formdata-polyfill: 4.0.10 1347 | dev: false 1348 | 1349 | /node-releases@2.0.10: 1350 | resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} 1351 | 1352 | /normalize-path@3.0.0: 1353 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1354 | engines: {node: '>=0.10.0'} 1355 | dev: false 1356 | 1357 | /npm-run-path@4.0.1: 1358 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} 1359 | engines: {node: '>=8'} 1360 | dependencies: 1361 | path-key: 3.1.1 1362 | dev: false 1363 | 1364 | /object-assign@4.1.1: 1365 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 1366 | engines: {node: '>=0.10.0'} 1367 | dev: false 1368 | 1369 | /once@1.4.0: 1370 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1371 | dependencies: 1372 | wrappy: 1.0.2 1373 | dev: false 1374 | 1375 | /onetime@5.1.2: 1376 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 1377 | engines: {node: '>=6'} 1378 | dependencies: 1379 | mimic-fn: 2.1.0 1380 | dev: false 1381 | 1382 | /path-is-absolute@1.0.1: 1383 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1384 | engines: {node: '>=0.10.0'} 1385 | dev: false 1386 | 1387 | /path-key@3.1.1: 1388 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1389 | engines: {node: '>=8'} 1390 | dev: false 1391 | 1392 | /path-type@4.0.0: 1393 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1394 | engines: {node: '>=8'} 1395 | dev: false 1396 | 1397 | /pend@1.2.0: 1398 | resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} 1399 | dev: false 1400 | 1401 | /picocolors@1.0.0: 1402 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 1403 | 1404 | /picomatch@2.3.1: 1405 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1406 | engines: {node: '>=8.6'} 1407 | dev: false 1408 | 1409 | /pirates@4.0.5: 1410 | resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} 1411 | engines: {node: '>= 6'} 1412 | dev: false 1413 | 1414 | /postcss-load-config@3.1.4: 1415 | resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} 1416 | engines: {node: '>= 10'} 1417 | peerDependencies: 1418 | postcss: '>=8.0.9' 1419 | ts-node: '>=9.0.0' 1420 | peerDependenciesMeta: 1421 | postcss: 1422 | optional: true 1423 | ts-node: 1424 | optional: true 1425 | dependencies: 1426 | lilconfig: 2.1.0 1427 | yaml: 1.10.2 1428 | dev: false 1429 | 1430 | /postcss@8.4.14: 1431 | resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} 1432 | engines: {node: ^10 || ^12 || >=14} 1433 | dependencies: 1434 | nanoid: 3.3.4 1435 | picocolors: 1.0.0 1436 | source-map-js: 1.0.2 1437 | 1438 | /punycode@2.3.0: 1439 | resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} 1440 | engines: {node: '>=6'} 1441 | 1442 | /queue-microtask@1.2.3: 1443 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1444 | dev: false 1445 | 1446 | /randombytes@2.1.0: 1447 | resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} 1448 | dependencies: 1449 | safe-buffer: 5.2.1 1450 | 1451 | /react-dom@18.2.0(react@18.2.0): 1452 | resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} 1453 | peerDependencies: 1454 | react: ^18.2.0 1455 | dependencies: 1456 | loose-envify: 1.4.0 1457 | react: 18.2.0 1458 | scheduler: 0.23.0 1459 | 1460 | /react@18.2.0: 1461 | resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} 1462 | engines: {node: '>=0.10.0'} 1463 | dependencies: 1464 | loose-envify: 1.4.0 1465 | 1466 | /readdirp@3.6.0: 1467 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1468 | engines: {node: '>=8.10.0'} 1469 | dependencies: 1470 | picomatch: 2.3.1 1471 | dev: false 1472 | 1473 | /require-from-string@2.0.2: 1474 | resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} 1475 | engines: {node: '>=0.10.0'} 1476 | dev: false 1477 | 1478 | /resolve-from@5.0.0: 1479 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 1480 | engines: {node: '>=8'} 1481 | dev: false 1482 | 1483 | /reusify@1.0.4: 1484 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1485 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1486 | dev: false 1487 | 1488 | /rollup-plugin-dts@6.0.2(rollup@3.29.3)(typescript@5.2.2): 1489 | resolution: {integrity: sha512-GYCCy9DyE5csSuUObktJBpjNpW2iLZMabNDIiAqzQWBl7l/WHzjvtAXevf8Lftk8EA920tuxeB/g8dM8MVMR6A==} 1490 | engines: {node: '>=v16'} 1491 | peerDependencies: 1492 | rollup: ^3.25 1493 | typescript: ^4.5 || ^5.0 1494 | dependencies: 1495 | magic-string: 0.30.3 1496 | rollup: 3.29.3 1497 | typescript: 5.2.2 1498 | optionalDependencies: 1499 | '@babel/code-frame': 7.22.13 1500 | dev: false 1501 | 1502 | /rollup@3.21.2: 1503 | resolution: {integrity: sha512-c4vC+JZ3bbF4Kqq2TtM7zSKtSyMybFOjqmomFax3xpfYaPZDZ4iz8NMIuBRMjnXOcKYozw7bC6vhJjiWD6JpzQ==} 1504 | engines: {node: '>=14.18.0', npm: '>=8.0.0'} 1505 | hasBin: true 1506 | optionalDependencies: 1507 | fsevents: 2.3.2 1508 | dev: false 1509 | 1510 | /rollup@3.29.3: 1511 | resolution: {integrity: sha512-T7du6Hum8jOkSWetjRgbwpM6Sy0nECYrYRSmZjayFcOddtKJWU4d17AC3HNUk7HRuqy4p+G7aEZclSHytqUmEg==} 1512 | engines: {node: '>=14.18.0', npm: '>=8.0.0'} 1513 | hasBin: true 1514 | optionalDependencies: 1515 | fsevents: 2.3.2 1516 | dev: false 1517 | 1518 | /run-parallel@1.2.0: 1519 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1520 | dependencies: 1521 | queue-microtask: 1.2.3 1522 | dev: false 1523 | 1524 | /safe-buffer@5.2.1: 1525 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 1526 | 1527 | /scheduler@0.23.0: 1528 | resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} 1529 | dependencies: 1530 | loose-envify: 1.4.0 1531 | 1532 | /schema-utils@3.3.0: 1533 | resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} 1534 | engines: {node: '>= 10.13.0'} 1535 | dependencies: 1536 | '@types/json-schema': 7.0.11 1537 | ajv: 6.12.6 1538 | ajv-keywords: 3.5.2(ajv@6.12.6) 1539 | 1540 | /schema-utils@4.0.0: 1541 | resolution: {integrity: sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==} 1542 | engines: {node: '>= 12.13.0'} 1543 | dependencies: 1544 | '@types/json-schema': 7.0.11 1545 | ajv: 8.12.0 1546 | ajv-formats: 2.1.1(ajv@8.12.0) 1547 | ajv-keywords: 5.1.0(ajv@8.12.0) 1548 | dev: false 1549 | 1550 | /serialize-javascript@6.0.1: 1551 | resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==} 1552 | dependencies: 1553 | randombytes: 2.1.0 1554 | 1555 | /server-only@0.0.1: 1556 | resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==} 1557 | dev: false 1558 | 1559 | /shebang-command@2.0.0: 1560 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1561 | engines: {node: '>=8'} 1562 | dependencies: 1563 | shebang-regex: 3.0.0 1564 | dev: false 1565 | 1566 | /shebang-regex@3.0.0: 1567 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1568 | engines: {node: '>=8'} 1569 | dev: false 1570 | 1571 | /signal-exit@3.0.7: 1572 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 1573 | dev: false 1574 | 1575 | /slash@3.0.0: 1576 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1577 | engines: {node: '>=8'} 1578 | dev: false 1579 | 1580 | /slash@4.0.0: 1581 | resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} 1582 | engines: {node: '>=12'} 1583 | dev: false 1584 | 1585 | /source-map-js@1.0.2: 1586 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 1587 | engines: {node: '>=0.10.0'} 1588 | 1589 | /source-map-support@0.5.21: 1590 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 1591 | dependencies: 1592 | buffer-from: 1.1.2 1593 | source-map: 0.6.1 1594 | 1595 | /source-map@0.6.1: 1596 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1597 | engines: {node: '>=0.10.0'} 1598 | 1599 | /source-map@0.7.4: 1600 | resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} 1601 | engines: {node: '>= 8'} 1602 | dev: false 1603 | 1604 | /source-map@0.8.0-beta.0: 1605 | resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} 1606 | engines: {node: '>= 8'} 1607 | dependencies: 1608 | whatwg-url: 7.1.0 1609 | dev: false 1610 | 1611 | /streamsearch@1.1.0: 1612 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} 1613 | engines: {node: '>=10.0.0'} 1614 | 1615 | /strip-final-newline@2.0.0: 1616 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} 1617 | engines: {node: '>=6'} 1618 | dev: false 1619 | 1620 | /styled-jsx@5.1.1(react@18.2.0): 1621 | resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} 1622 | engines: {node: '>= 12.0.0'} 1623 | peerDependencies: 1624 | '@babel/core': '*' 1625 | babel-plugin-macros: '*' 1626 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' 1627 | peerDependenciesMeta: 1628 | '@babel/core': 1629 | optional: true 1630 | babel-plugin-macros: 1631 | optional: true 1632 | dependencies: 1633 | client-only: 0.0.1 1634 | react: 18.2.0 1635 | 1636 | /sucrase@3.30.0: 1637 | resolution: {integrity: sha512-7d37d3vLF0IeH2dzvHpzDNDxUqpbDHJXTJOAnQ8jvMW04o2Czps6mxtaSnKWpE+hUS/eczqfWPUgQTrazKZPnQ==} 1638 | engines: {node: '>=8'} 1639 | hasBin: true 1640 | dependencies: 1641 | commander: 4.1.1 1642 | glob: 7.1.6 1643 | lines-and-columns: 1.2.4 1644 | mz: 2.7.0 1645 | pirates: 4.0.5 1646 | ts-interface-checker: 0.1.13 1647 | dev: false 1648 | 1649 | /supports-color@5.5.0: 1650 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 1651 | engines: {node: '>=4'} 1652 | dependencies: 1653 | has-flag: 3.0.0 1654 | dev: false 1655 | optional: true 1656 | 1657 | /supports-color@8.1.1: 1658 | resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} 1659 | engines: {node: '>=10'} 1660 | dependencies: 1661 | has-flag: 4.0.0 1662 | 1663 | /tapable@2.2.1: 1664 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} 1665 | engines: {node: '>=6'} 1666 | 1667 | /terser-webpack-plugin@5.3.7(esbuild@0.17.12)(webpack@5.88.2): 1668 | resolution: {integrity: sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==} 1669 | engines: {node: '>= 10.13.0'} 1670 | peerDependencies: 1671 | '@swc/core': '*' 1672 | esbuild: '*' 1673 | uglify-js: '*' 1674 | webpack: ^5.1.0 1675 | peerDependenciesMeta: 1676 | '@swc/core': 1677 | optional: true 1678 | esbuild: 1679 | optional: true 1680 | uglify-js: 1681 | optional: true 1682 | dependencies: 1683 | '@jridgewell/trace-mapping': 0.3.17 1684 | esbuild: 0.17.12 1685 | jest-worker: 27.5.1 1686 | schema-utils: 3.3.0 1687 | serialize-javascript: 6.0.1 1688 | terser: 5.16.6 1689 | webpack: 5.88.2(esbuild@0.17.12) 1690 | 1691 | /terser@5.16.6: 1692 | resolution: {integrity: sha512-IBZ+ZQIA9sMaXmRZCUMDjNH0D5AQQfdn4WUjHL0+1lF4TP1IHRJbrhb6fNaXWikrYQTSkb7SLxkeXAiy1p7mbg==} 1693 | engines: {node: '>=10'} 1694 | hasBin: true 1695 | dependencies: 1696 | '@jridgewell/source-map': 0.3.2 1697 | acorn: 8.8.2 1698 | commander: 2.20.3 1699 | source-map-support: 0.5.21 1700 | 1701 | /thenify-all@1.6.0: 1702 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 1703 | engines: {node: '>=0.8'} 1704 | dependencies: 1705 | thenify: 3.3.1 1706 | dev: false 1707 | 1708 | /thenify@3.3.1: 1709 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 1710 | dependencies: 1711 | any-promise: 1.3.0 1712 | dev: false 1713 | 1714 | /to-regex-range@5.0.1: 1715 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1716 | engines: {node: '>=8.0'} 1717 | dependencies: 1718 | is-number: 7.0.0 1719 | dev: false 1720 | 1721 | /tr46@1.0.1: 1722 | resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} 1723 | dependencies: 1724 | punycode: 2.3.0 1725 | dev: false 1726 | 1727 | /tree-kill@1.2.2: 1728 | resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} 1729 | hasBin: true 1730 | dev: false 1731 | 1732 | /ts-interface-checker@0.1.13: 1733 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 1734 | dev: false 1735 | 1736 | /tslib@2.5.0: 1737 | resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} 1738 | 1739 | /tsup@6.7.0(typescript@5.2.2): 1740 | resolution: {integrity: sha512-L3o8hGkaHnu5TdJns+mCqFsDBo83bJ44rlK7e6VdanIvpea4ArPcU3swWGsLVbXak1PqQx/V+SSmFPujBK+zEQ==} 1741 | engines: {node: '>=14.18'} 1742 | hasBin: true 1743 | peerDependencies: 1744 | '@swc/core': ^1 1745 | postcss: ^8.4.12 1746 | typescript: '>=4.1.0' 1747 | peerDependenciesMeta: 1748 | '@swc/core': 1749 | optional: true 1750 | postcss: 1751 | optional: true 1752 | typescript: 1753 | optional: true 1754 | dependencies: 1755 | bundle-require: 4.0.1(esbuild@0.17.12) 1756 | cac: 6.7.14 1757 | chokidar: 3.5.3 1758 | debug: 4.3.4 1759 | esbuild: 0.17.12 1760 | execa: 5.1.1 1761 | globby: 11.1.0 1762 | joycon: 3.1.1 1763 | postcss-load-config: 3.1.4 1764 | resolve-from: 5.0.0 1765 | rollup: 3.21.2 1766 | source-map: 0.8.0-beta.0 1767 | sucrase: 3.30.0 1768 | tree-kill: 1.2.2 1769 | typescript: 5.2.2 1770 | transitivePeerDependencies: 1771 | - supports-color 1772 | - ts-node 1773 | dev: false 1774 | 1775 | /turbo-darwin-64@1.10.14: 1776 | resolution: {integrity: sha512-I8RtFk1b9UILAExPdG/XRgGQz95nmXPE7OiGb6ytjtNIR5/UZBS/xVX/7HYpCdmfriKdVwBKhalCoV4oDvAGEg==} 1777 | cpu: [x64] 1778 | os: [darwin] 1779 | requiresBuild: true 1780 | dev: false 1781 | optional: true 1782 | 1783 | /turbo-darwin-arm64@1.10.14: 1784 | resolution: {integrity: sha512-KAdUWryJi/XX7OD0alOuOa0aJ5TLyd4DNIYkHPHYcM6/d7YAovYvxRNwmx9iv6Vx6IkzTnLeTiUB8zy69QkG9Q==} 1785 | cpu: [arm64] 1786 | os: [darwin] 1787 | requiresBuild: true 1788 | dev: false 1789 | optional: true 1790 | 1791 | /turbo-linux-64@1.10.14: 1792 | resolution: {integrity: sha512-BOBzoREC2u4Vgpap/WDxM6wETVqVMRcM8OZw4hWzqCj2bqbQ6L0wxs1LCLWVrghQf93JBQtIGAdFFLyCSBXjWQ==} 1793 | cpu: [x64] 1794 | os: [linux] 1795 | requiresBuild: true 1796 | dev: false 1797 | optional: true 1798 | 1799 | /turbo-linux-arm64@1.10.14: 1800 | resolution: {integrity: sha512-D8T6XxoTdN5D4V5qE2VZG+/lbZX/89BkAEHzXcsSUTRjrwfMepT3d2z8aT6hxv4yu8EDdooZq/2Bn/vjMI32xw==} 1801 | cpu: [arm64] 1802 | os: [linux] 1803 | requiresBuild: true 1804 | dev: false 1805 | optional: true 1806 | 1807 | /turbo-windows-64@1.10.14: 1808 | resolution: {integrity: sha512-zKNS3c1w4i6432N0cexZ20r/aIhV62g69opUn82FLVs/zk3Ie0GVkSB6h0rqIvMalCp7enIR87LkPSDGz9K4UA==} 1809 | cpu: [x64] 1810 | os: [win32] 1811 | requiresBuild: true 1812 | dev: false 1813 | optional: true 1814 | 1815 | /turbo-windows-arm64@1.10.14: 1816 | resolution: {integrity: sha512-rkBwrTPTxNSOUF7of8eVvvM+BkfkhA2OvpHM94if8tVsU+khrjglilp8MTVPHlyS9byfemPAmFN90oRIPB05BA==} 1817 | cpu: [arm64] 1818 | os: [win32] 1819 | requiresBuild: true 1820 | dev: false 1821 | optional: true 1822 | 1823 | /turbo@1.10.14: 1824 | resolution: {integrity: sha512-hr9wDNYcsee+vLkCDIm8qTtwhJ6+UAMJc3nIY6+PNgUTtXcQgHxCq8BGoL7gbABvNWv76CNbK5qL4Lp9G3ZYRA==} 1825 | hasBin: true 1826 | optionalDependencies: 1827 | turbo-darwin-64: 1.10.14 1828 | turbo-darwin-arm64: 1.10.14 1829 | turbo-linux-64: 1.10.14 1830 | turbo-linux-arm64: 1.10.14 1831 | turbo-windows-64: 1.10.14 1832 | turbo-windows-arm64: 1.10.14 1833 | dev: false 1834 | 1835 | /typescript@5.2.2: 1836 | resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} 1837 | engines: {node: '>=14.17'} 1838 | hasBin: true 1839 | dev: false 1840 | 1841 | /update-browserslist-db@1.0.10(browserslist@4.21.5): 1842 | resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} 1843 | hasBin: true 1844 | peerDependencies: 1845 | browserslist: '>= 4.21.0' 1846 | dependencies: 1847 | browserslist: 4.21.5 1848 | escalade: 3.1.1 1849 | picocolors: 1.0.0 1850 | 1851 | /uri-js@4.4.1: 1852 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1853 | dependencies: 1854 | punycode: 2.3.0 1855 | 1856 | /vscode-oniguruma@2.0.1: 1857 | resolution: {integrity: sha512-poJU8iHIWnC3vgphJnrLZyI3YdqRlR27xzqDmpPXYzA93R4Gk8z7T6oqDzDoHjoikA2aS82crdXFkjELCdJsjQ==} 1858 | dev: false 1859 | 1860 | /vscode-textmate@9.0.0: 1861 | resolution: {integrity: sha512-Cl65diFGxz7gpwbav10HqiY/eVYTO1sjQpmRmV991Bj7wAoOAjGQ97PpQcXorDE2Uc4hnGWLY17xme+5t6MlSg==} 1862 | dev: false 1863 | 1864 | /watchpack@2.4.0: 1865 | resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} 1866 | engines: {node: '>=10.13.0'} 1867 | dependencies: 1868 | glob-to-regexp: 0.4.1 1869 | graceful-fs: 4.2.11 1870 | 1871 | /web-streams-polyfill@3.2.1: 1872 | resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} 1873 | engines: {node: '>= 8'} 1874 | dev: false 1875 | 1876 | /webidl-conversions@4.0.2: 1877 | resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} 1878 | dev: false 1879 | 1880 | /webpack-sources@3.2.3: 1881 | resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} 1882 | engines: {node: '>=10.13.0'} 1883 | 1884 | /webpack@5.88.2(esbuild@0.17.12): 1885 | resolution: {integrity: sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==} 1886 | engines: {node: '>=10.13.0'} 1887 | hasBin: true 1888 | peerDependencies: 1889 | webpack-cli: '*' 1890 | peerDependenciesMeta: 1891 | webpack-cli: 1892 | optional: true 1893 | dependencies: 1894 | '@types/eslint-scope': 3.7.4 1895 | '@types/estree': 1.0.0 1896 | '@webassemblyjs/ast': 1.11.5 1897 | '@webassemblyjs/wasm-edit': 1.11.5 1898 | '@webassemblyjs/wasm-parser': 1.11.5 1899 | acorn: 8.8.2 1900 | acorn-import-assertions: 1.9.0(acorn@8.8.2) 1901 | browserslist: 4.21.5 1902 | chrome-trace-event: 1.0.3 1903 | enhanced-resolve: 5.15.0 1904 | es-module-lexer: 1.2.1 1905 | eslint-scope: 5.1.1 1906 | events: 3.3.0 1907 | glob-to-regexp: 0.4.1 1908 | graceful-fs: 4.2.11 1909 | json-parse-even-better-errors: 2.3.1 1910 | loader-runner: 4.3.0 1911 | mime-types: 2.1.35 1912 | neo-async: 2.6.2 1913 | schema-utils: 3.3.0 1914 | tapable: 2.2.1 1915 | terser-webpack-plugin: 5.3.7(esbuild@0.17.12)(webpack@5.88.2) 1916 | watchpack: 2.4.0 1917 | webpack-sources: 3.2.3 1918 | transitivePeerDependencies: 1919 | - '@swc/core' 1920 | - esbuild 1921 | - uglify-js 1922 | 1923 | /whatwg-url@7.1.0: 1924 | resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} 1925 | dependencies: 1926 | lodash.sortby: 4.7.0 1927 | tr46: 1.0.1 1928 | webidl-conversions: 4.0.2 1929 | dev: false 1930 | 1931 | /which@2.0.2: 1932 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1933 | engines: {node: '>= 8'} 1934 | hasBin: true 1935 | dependencies: 1936 | isexe: 2.0.0 1937 | dev: false 1938 | 1939 | /wrappy@1.0.2: 1940 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1941 | dev: false 1942 | 1943 | /yaml@1.10.2: 1944 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} 1945 | engines: {node: '>= 6'} 1946 | dev: false 1947 | 1948 | /yauzl@2.10.0: 1949 | resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} 1950 | dependencies: 1951 | buffer-crc32: 0.2.13 1952 | fd-slicer: 1.1.0 1953 | dev: false 1954 | 1955 | /zod@3.21.4: 1956 | resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} 1957 | -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - 'next-monaco' 3 | - 'site' 4 | -------------------------------------------------------------------------------- /site/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "typescript.tsdk": "../node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib", 3 | "typescript.enablePromptUseWorkspaceTsdk": true 4 | } -------------------------------------------------------------------------------- /site/app/app.css: -------------------------------------------------------------------------------- 1 | * { 2 | box-sizing: border-box; 3 | margin: 0; 4 | } 5 | 6 | body { 7 | font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 8 | Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; 9 | color: white; 10 | background-color: #101218; 11 | letter-spacing: 0.015rem; 12 | } 13 | 14 | h1 { 15 | font-weight: 600; 16 | font-size: 0.8rem; 17 | text-transform: uppercase; 18 | letter-spacing: 0.05em; 19 | } 20 | 21 | h2 { 22 | font-weight: 300; 23 | } 24 | 25 | p { 26 | line-height: 1.35; 27 | } 28 | 29 | pre { 30 | font-size: 14px; 31 | letter-spacing: normal; 32 | } 33 | -------------------------------------------------------------------------------- /site/app/example/Button.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react' 2 | 3 | /** Buttons give users the ability to perform actions. */ 4 | export function Button({ 5 | children, 6 | onClick, 7 | }: { 8 | children: React.ReactNode 9 | onClick: React.MouseEventHandler 10 | }) { 11 | return 12 | } 13 | -------------------------------------------------------------------------------- /site/app/example/index.css: -------------------------------------------------------------------------------- 1 | * { 2 | box-sizing: border-box; 3 | margin: 0; 4 | } 5 | -------------------------------------------------------------------------------- /site/app/example/index.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react' 2 | import { Button } from './Button' 3 | import './index.css' 4 | 5 | export default function Index() { 6 | return 7 | } 8 | -------------------------------------------------------------------------------- /site/app/layout.tsx: -------------------------------------------------------------------------------- 1 | export const metadata = { 2 | title: 'next-monaco', 3 | description: `Monaco Editor configured for Next.js. Fully featured code editing based on VS Code.`, 4 | } 5 | 6 | export default function RootLayout({ 7 | children, 8 | }: { 9 | children: React.ReactNode 10 | }) { 11 | return ( 12 | 13 | {children} 14 | 15 | ) 16 | } 17 | -------------------------------------------------------------------------------- /site/app/page.tsx: -------------------------------------------------------------------------------- 1 | import fs from 'node:fs/promises' 2 | import { Editor } from 'next-monaco' 3 | import './app.css' 4 | 5 | const plugin = ` 6 | import { createMonacoPlugin } from 'next-monaco/plugin' 7 | 8 | const withMonaco = createMonacoPlugin({ 9 | theme: 'theme.json', 10 | types: ['next-monaco'], 11 | }) 12 | 13 | export default withMonaco({ 14 | experimental: { 15 | appDir: true, 16 | }, 17 | }) 18 | `.trim() 19 | 20 | const editor = ` 21 | import { Editor } from 'next-monaco' 22 | 23 | export default function App() { 24 | return ( 25 | 29 | ) 30 | } 31 | `.trim() 32 | 33 | export default async function Page() { 34 | const exampleFiles = await Promise.all( 35 | ( 36 | await fs.readdir('app/example') 37 | ).map(async (fileName) => { 38 | const contents = await fs.readFile(`app/example/${fileName}`, 'utf8') 39 | 40 | return { 41 | fileName, 42 | contents, 43 | } 44 | }) 45 | ) 46 | 47 | return ( 48 |
55 |
64 | This package is still a work in progress. The APIs are not stable and 65 | may change. 66 |
67 |
70 | 71 |
72 |
80 |
89 |

Next Monaco

90 |
97 |

98 | The same powerful editor used in VS Code loaded on-demand in your 99 | Next.js application. 100 |

101 |

102 | Next Monaco provides a familiar full-featured code editing 103 | experience without sacrificing time to first byte. 104 |

105 |
106 | npm install next-monaco 107 |
108 | 109 |
110 | {exampleFiles.map(({ fileName, contents }) => ( 111 | 112 | ))} 113 |
114 |
115 |
129 |

Server Component Ready

130 |

TextMate Highlighting

131 |

Type Acquisition

132 |

Preconfigured TypeScript

133 |

CSS Variables

134 |

Multi-Model

135 |

Lazy Loaded

136 |

Marketplace Themes

137 |

Code Formatting

138 |
139 |
147 |
150 |

plugin.ts

151 | 152 |
153 |
156 |

editor.tsx

157 | 158 |
159 |
160 |
161 | ) 162 | } 163 | 164 | function GitHubLink() { 165 | return ( 166 | 167 | 168 | 172 | 173 | 174 | ) 175 | } 176 | -------------------------------------------------------------------------------- /site/next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/basic-features/typescript for more information. 6 | -------------------------------------------------------------------------------- /site/next.config.mjs: -------------------------------------------------------------------------------- 1 | import { createMonacoPlugin } from 'next-monaco/plugin' 2 | 3 | const withMonaco = createMonacoPlugin({ 4 | theme: 'theme.json', 5 | types: ['react', 'next', 'next-monaco', 'next-monaco/plugin'], 6 | }) 7 | 8 | export default withMonaco({ 9 | experimental: { 10 | appDir: true, 11 | }, 12 | }) 13 | -------------------------------------------------------------------------------- /site/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "site", 3 | "private": true, 4 | "scripts": { 5 | "dev": "next dev", 6 | "build": "next build" 7 | }, 8 | "dependencies": { 9 | "next": "canary", 10 | "next-monaco": "workspace:*", 11 | "react": "18.2.0", 12 | "react-dom": "18.2.0" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /site/theme.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Night Owl", 3 | "type": "dark", 4 | "semanticHighlighting": false, 5 | "colors": { 6 | "contrastBorder": "#122d42", 7 | "focusBorder": "#122d42", 8 | "foreground": "#d6deeb", 9 | "widget.shadow": "#101218", 10 | "selection.background": "#4373c2", 11 | "errorForeground": "#EF5350", 12 | "button.background": "#7e57c2cc", 13 | "button.foreground": "#ffffffcc", 14 | "button.hoverBackground": "#7e57c2", 15 | "dropdown.background": "#101218", 16 | "dropdown.border": "#5f7e97", 17 | "dropdown.foreground": "#ffffffcc", 18 | "input.background": "#0b253a", 19 | "input.border": "#5f7e97", 20 | "input.foreground": "#ffffffcc", 21 | "input.placeholderForeground": "#5f7e97", 22 | "inputOption.activeBorder": "#ffffffcc", 23 | "punctuation.definition.generic.begin.html": "#ef5350f2", 24 | "inputValidation.errorBackground": "#AB0300F2", 25 | "inputValidation.errorBorder": "#EF5350", 26 | "inputValidation.infoBackground": "#00589EF2", 27 | "inputValidation.infoBorder": "#64B5F6", 28 | "inputValidation.warningBackground": "#675700F2", 29 | "inputValidation.warningBorder": "#FFCA28", 30 | "scrollbar.shadow": "#010b14", 31 | "scrollbarSlider.activeBackground": "#084d8180", 32 | "scrollbarSlider.background": "#084d8180", 33 | "scrollbarSlider.hoverBackground": "#084d8180", 34 | "badge.background": "#5f7e97", 35 | "badge.foreground": "#ffffff", 36 | "progress.background": "#7e57c2", 37 | "breadcrumb.foreground": "#A599E9", 38 | "breadcrumb.focusForeground": "#ffffff", 39 | "breadcrumb.activeSelectionForeground": "#FFFFFF", 40 | "breadcrumbPicker.background": "#001122", 41 | "list.activeSelectionBackground": "#234d708c", 42 | "list.activeSelectionForeground": "#ffffff", 43 | "list.invalidItemForeground": "#975f94", 44 | "list.dropBackground": "#101218", 45 | "list.focusBackground": "#010d18", 46 | "list.focusForeground": "#ffffff", 47 | "list.highlightForeground": "#ffffff", 48 | "list.hoverBackground": "#101218", 49 | "list.hoverForeground": "#ffffff", 50 | "list.inactiveSelectionBackground": "#0e293f", 51 | "list.inactiveSelectionForeground": "#5f7e97", 52 | "activityBar.background": "#101218", 53 | "activityBar.dropBackground": "#5f7e97", 54 | "activityBar.foreground": "#5f7e97", 55 | "activityBar.border": "#101218", 56 | "activityBarBadge.background": "#44596b", 57 | "activityBarBadge.foreground": "#ffffff", 58 | "sideBar.background": "#101218", 59 | "sideBar.foreground": "#89a4bb", 60 | "sideBar.border": "#101218", 61 | "sideBarTitle.foreground": "#5f7e97", 62 | "sideBarSectionHeader.background": "#101218", 63 | "sideBarSectionHeader.foreground": "#5f7e97", 64 | "editorGroup.emptyBackground": "#101218", 65 | "editorGroup.border": "#101218", 66 | "editorGroup.dropBackground": "#7e57c273", 67 | "editorGroupHeader.noTabsBackground": "#101218", 68 | "editorGroupHeader.tabsBackground": "#101218", 69 | "editorGroupHeader.tabsBorder": "#262A39", 70 | "tab.activeBackground": "#0b2942", 71 | "tab.activeForeground": "#d2dee7", 72 | "tab.border": "#272B3B", 73 | "tab.activeBorder": "#262A39", 74 | "tab.unfocusedActiveBorder": "#262A39", 75 | "tab.inactiveBackground": "#01111d", 76 | "tab.inactiveForeground": "#5f7e97", 77 | "tab.unfocusedActiveForeground": "#5f7e97", 78 | "tab.unfocusedInactiveForeground": "#5f7e97", 79 | "editor.background": "#101218", 80 | "editor.foreground": "#d6deeb", 81 | "editorLineNumber.foreground": "#4b6479", 82 | "editorLineNumber.activeForeground": "#C5E4FD", 83 | "editorCursor.foreground": "#80a4c2", 84 | "editor.selectionBackground": "#1d3b53", 85 | "editor.selectionHighlightBackground": "#5f7e9779", 86 | "editor.inactiveSelectionBackground": "#7e57c25a", 87 | "editor.wordHighlightBackground": "#f6bbe533", 88 | "editor.wordHighlightStrongBackground": "#e2a2f433", 89 | "editor.findMatchBackground": "#5f7e9779", 90 | "editor.findMatchHighlightBackground": "#1085bb5d", 91 | "editor.findRangeHighlightBackground": null, 92 | "editor.hoverHighlightBackground": "#7e57c25a", 93 | "editor.lineHighlightBackground": "#0003", 94 | "editor.lineHighlightBorder": null, 95 | "editorLink.activeForeground": null, 96 | "editor.rangeHighlightBackground": "#7e57c25a", 97 | "editorWhitespace.foreground": null, 98 | "editorIndentGuide.background": "#5e81ce52", 99 | "editorIndentGuide.activeBackground": "#7E97AC", 100 | "editorRuler.foreground": "#5e81ce52", 101 | "editorCodeLens.foreground": "#5e82ceb4", 102 | "editorBracketMatch.background": "#5f7e974d", 103 | "editorBracketMatch.border": null, 104 | "editorOverviewRuler.currentContentForeground": "#7e57c2", 105 | "editorOverviewRuler.incomingContentForeground": "#7e57c2", 106 | "editorOverviewRuler.commonContentForeground": "#7e57c2", 107 | "editorError.foreground": "#EF5350", 108 | "editorError.border": null, 109 | "editorWarning.foreground": "#b39554", 110 | "editorWarning.border": null, 111 | "editorGutter.background": "#101218", 112 | "editorGutter.modifiedBackground": "#e2b93d", 113 | "editorGutter.addedBackground": "#9CCC65", 114 | "editorGutter.deletedBackground": "#EF5350", 115 | "diffEditor.insertedTextBackground": "#99b76d23", 116 | "diffEditor.insertedTextBorder": "#c5e47833", 117 | "diffEditor.removedTextBackground": "#ef535033", 118 | "diffEditor.removedTextBorder": "#ef53504d", 119 | "editorWidget.background": "#021320", 120 | "editorWidget.border": "#5f7e97", 121 | "editorSuggestWidget.background": "#2C3043", 122 | "editorSuggestWidget.border": "#2B2F40", 123 | "editorSuggestWidget.foreground": "#d6deeb", 124 | "editorSuggestWidget.highlightForeground": "#ffffff", 125 | "editorSuggestWidget.selectedBackground": "#5f7e97", 126 | "editorHoverWidget.background": "#101218", 127 | "editorHoverWidget.border": "#5f7e97", 128 | "debugExceptionWidget.background": "#101218", 129 | "debugExceptionWidget.border": "#5f7e97", 130 | "editorMarkerNavigation.background": "#0b2942", 131 | "editorMarkerNavigationError.background": "#EF5350", 132 | "editorMarkerNavigationWarning.background": "#FFCA28", 133 | "peekView.border": "#5f7e97", 134 | "peekViewEditor.background": "#101218", 135 | "peekViewEditor.matchHighlightBackground": "#7e57c25a", 136 | "peekViewResult.background": "#101218", 137 | "peekViewResult.fileForeground": "#5f7e97", 138 | "peekViewResult.lineForeground": "#5f7e97", 139 | "peekViewResult.matchHighlightBackground": "#ffffffcc", 140 | "peekViewResult.selectionBackground": "#2E3250", 141 | "peekViewResult.selectionForeground": "#5f7e97", 142 | "peekViewTitle.background": "#101218", 143 | "peekViewTitleDescription.foreground": "#697098", 144 | "peekViewTitleLabel.foreground": "#5f7e97", 145 | "merge.currentHeaderBackground": "#5f7e97", 146 | "merge.currentContentBackground": null, 147 | "merge.incomingHeaderBackground": "#7e57c25a", 148 | "merge.incomingContentBackground": null, 149 | "merge.border": null, 150 | "panel.background": "#101218", 151 | "panel.border": "#5f7e97", 152 | "panelTitle.activeBorder": "#5f7e97", 153 | "panelTitle.activeForeground": "#ffffffcc", 154 | "panelTitle.inactiveForeground": "#d6deeb80", 155 | "statusBar.background": "#101218", 156 | "statusBar.foreground": "#5f7e97", 157 | "statusBar.border": "#262A39", 158 | "statusBar.debuggingBackground": "#202431", 159 | "statusBar.debuggingForeground": null, 160 | "statusBar.debuggingBorder": "#1F2330", 161 | "statusBar.noFolderForeground": null, 162 | "statusBar.noFolderBackground": "#101218", 163 | "statusBar.noFolderBorder": "#25293A", 164 | "statusBarItem.activeBackground": "#202431", 165 | "statusBarItem.hoverBackground": "#202431", 166 | "statusBarItem.prominentBackground": "#202431", 167 | "statusBarItem.prominentHoverBackground": "#202431", 168 | "titleBar.activeBackground": "#101218", 169 | "titleBar.activeForeground": "#eeefff", 170 | "titleBar.inactiveBackground": "#010e1a", 171 | "titleBar.inactiveForeground": null, 172 | "notifications.background": "#01111d", 173 | "notifications.border": "#262a39", 174 | "notificationCenter.border": "#262a39", 175 | "notificationToast.border": "#262a39", 176 | "notifications.foreground": "#ffffffcc", 177 | "notificationLink.foreground": "#80CBC4", 178 | "extensionButton.prominentForeground": "#ffffffcc", 179 | "extensionButton.prominentBackground": "#7e57c2cc", 180 | "extensionButton.prominentHoverBackground": "#7e57c2", 181 | "pickerGroup.foreground": "#d1aaff", 182 | "pickerGroup.border": "#101218", 183 | "terminal.ansiWhite": "#ffffff", 184 | "terminal.ansiBlack": "#101218", 185 | "terminal.ansiBlue": "#82AAFF", 186 | "terminal.ansiCyan": "#21c7a8", 187 | "terminal.ansiGreen": "#22da6e", 188 | "terminal.ansiMagenta": "#A492EA", 189 | "terminal.ansiRed": "#EF5350", 190 | "terminal.ansiYellow": "#c5e478", 191 | "terminal.ansiBrightWhite": "#ffffff", 192 | "terminal.ansiBrightBlack": "#575656", 193 | "terminal.ansiBrightBlue": "#82AAFF", 194 | "terminal.ansiBrightCyan": "#7fdbca", 195 | "terminal.ansiBrightGreen": "#22da6e", 196 | "terminal.ansiBrightMagenta": "#A492EA", 197 | "terminal.ansiBrightRed": "#EF5350", 198 | "terminal.ansiBrightYellow": "#ffeb95", 199 | "terminal.selectionBackground": "#1b90dd4d", 200 | "terminalCursor.background": "#234d70", 201 | "textCodeBlock.background": "#4f4f4f", 202 | "debugToolBar.background": "#101218", 203 | "welcomePage.buttonBackground": "#101218", 204 | "welcomePage.buttonHoverBackground": "#101218", 205 | "walkThrough.embeddedEditorBackground": "#101218", 206 | "gitDecoration.modifiedResourceForeground": "#a2bffc", 207 | "gitDecoration.deletedResourceForeground": "#EF535090", 208 | "gitDecoration.untrackedResourceForeground": "#c5e478ff", 209 | "gitDecoration.ignoredResourceForeground": "#395a75", 210 | "gitDecoration.conflictingResourceForeground": "#ffeb95cc", 211 | "source.elm": "#5f7e97", 212 | "string.quoted.single.js": "#ffffff", 213 | "meta.objectliteral.js": "#82AAFF" 214 | }, 215 | "tokenColors": [ 216 | { 217 | "name": "Changed", 218 | "scope": [ 219 | "markup.changed", 220 | "meta.diff.header.git", 221 | "meta.diff.header.from-file", 222 | "meta.diff.header.to-file" 223 | ], 224 | "settings": { 225 | "foreground": "#a2bffc", 226 | "fontStyle": "italic" 227 | } 228 | }, 229 | { 230 | "name": "Deleted", 231 | "scope": "markup.deleted.diff", 232 | "settings": { 233 | "foreground": "#EF535090", 234 | "fontStyle": "italic" 235 | } 236 | }, 237 | { 238 | "name": "Inserted", 239 | "scope": "markup.inserted.diff", 240 | "settings": { 241 | "foreground": "#c5e478ff", 242 | "fontStyle": "italic" 243 | } 244 | }, 245 | { 246 | "name": "Global settings", 247 | "settings": { 248 | "background": "#101218", 249 | "foreground": "#d6deeb" 250 | } 251 | }, 252 | { 253 | "name": "Comment", 254 | "scope": "comment", 255 | "settings": { 256 | "foreground": "#637777", 257 | "fontStyle": "italic" 258 | } 259 | }, 260 | { 261 | "name": "String", 262 | "scope": "string", 263 | "settings": { 264 | "foreground": "#ecc48d" 265 | } 266 | }, 267 | { 268 | "name": "String Quoted", 269 | "scope": ["string.quoted", "variable.other.readwrite.js"], 270 | "settings": { 271 | "foreground": "#ecc48d" 272 | } 273 | }, 274 | { 275 | "name": "Support Constant Math", 276 | "scope": "support.constant.math", 277 | "settings": { 278 | "foreground": "#c5e478" 279 | } 280 | }, 281 | { 282 | "name": "Number", 283 | "scope": ["constant.numeric", "constant.character.numeric"], 284 | "settings": { 285 | "foreground": "#F78C6C", 286 | "fontStyle": "" 287 | } 288 | }, 289 | { 290 | "name": "Built-in constant", 291 | "scope": [ 292 | "constant.language", 293 | "punctuation.definition.constant", 294 | "variable.other.constant" 295 | ], 296 | "settings": { 297 | "foreground": "#82AAFF" 298 | } 299 | }, 300 | { 301 | "name": "User-defined constant", 302 | "scope": ["constant.character", "constant.other"], 303 | "settings": { 304 | "foreground": "#82AAFF" 305 | } 306 | }, 307 | { 308 | "name": "Constant Character Escape", 309 | "scope": "constant.character.escape", 310 | "settings": { 311 | "foreground": "#F78C6C" 312 | } 313 | }, 314 | { 315 | "name": "RegExp String", 316 | "scope": ["string.regexp", "string.regexp keyword.other"], 317 | "settings": { 318 | "foreground": "#5ca7e4" 319 | } 320 | }, 321 | { 322 | "name": "Comma in functions", 323 | "scope": "meta.function punctuation.separator.comma", 324 | "settings": { 325 | "foreground": "#5f7e97" 326 | } 327 | }, 328 | { 329 | "name": "Variable", 330 | "scope": "variable", 331 | "settings": { 332 | "foreground": "#c5e478" 333 | } 334 | }, 335 | { 336 | "name": "Keyword", 337 | "scope": ["punctuation.accessor", "keyword"], 338 | "settings": { 339 | "foreground": "#a492ea", 340 | "fontStyle": "italic" 341 | } 342 | }, 343 | { 344 | "name": "Storage", 345 | "scope": [ 346 | "storage", 347 | "meta.var.expr", 348 | "meta.class meta.method.declaration meta.var.expr storage.type.js", 349 | "storage.type.property.js", 350 | "storage.type.property.ts", 351 | "storage.type.property.tsx" 352 | ], 353 | "settings": { 354 | "foreground": "#a492ea", 355 | "fontStyle": "italic" 356 | } 357 | }, 358 | { 359 | "name": "Storage type", 360 | "scope": "storage.type", 361 | "settings": { 362 | "foreground": "#a492ea" 363 | } 364 | }, 365 | { 366 | "name": "Storage type", 367 | "scope": "storage.type.function.arrow.js", 368 | "settings": { 369 | "fontStyle": "" 370 | } 371 | }, 372 | { 373 | "name": "Class name", 374 | "scope": ["entity.name.class", "meta.class entity.name.type.class"], 375 | "settings": { 376 | "foreground": "#ffcb8b" 377 | } 378 | }, 379 | { 380 | "name": "Inherited class", 381 | "scope": "entity.other.inherited-class", 382 | "settings": { 383 | "foreground": "#c5e478" 384 | } 385 | }, 386 | { 387 | "name": "Function name", 388 | "scope": "entity.name.function", 389 | "settings": { 390 | "foreground": "#a492ea", 391 | "fontStyle": "italic" 392 | } 393 | }, 394 | { 395 | "name": "Meta Tag", 396 | "scope": ["punctuation.definition.tag", "meta.tag"], 397 | "settings": { 398 | "foreground": "#7fdbca" 399 | } 400 | }, 401 | { 402 | "name": "HTML Tag names", 403 | "scope": [ 404 | "entity.name.tag", 405 | "meta.tag.other.html", 406 | "meta.tag.other.js", 407 | "meta.tag.other.tsx", 408 | "entity.name.tag.tsx", 409 | "entity.name.tag.js", 410 | "entity.name.tag", 411 | "meta.tag.js", 412 | "meta.tag.tsx", 413 | "meta.tag.html" 414 | ], 415 | "settings": { 416 | "foreground": "#caece6", 417 | "fontStyle": "" 418 | } 419 | }, 420 | { 421 | "name": "Tag attribute", 422 | "scope": "entity.other.attribute-name", 423 | "settings": { 424 | "fontStyle": "italic", 425 | "foreground": "#c5e478" 426 | } 427 | }, 428 | { 429 | "name": "Entity Name Tag Custom", 430 | "scope": "entity.name.tag.custom", 431 | "settings": { 432 | "foreground": "#f78c6c" 433 | } 434 | }, 435 | { 436 | "name": "Library (function & constant)", 437 | "scope": ["support.function", "support.constant"], 438 | "settings": { 439 | "foreground": "#82AAFF" 440 | } 441 | }, 442 | { 443 | "name": "Support Constant Property Value meta", 444 | "scope": "support.constant.meta.property-value", 445 | "settings": { 446 | "foreground": "#7fdbca" 447 | } 448 | }, 449 | { 450 | "name": "Library class/type", 451 | "scope": ["support.type", "support.class"], 452 | "settings": { 453 | "foreground": "#c5e478" 454 | } 455 | }, 456 | { 457 | "name": "Support Variable DOM", 458 | "scope": "support.variable.dom", 459 | "settings": { 460 | "foreground": "#c5e478" 461 | } 462 | }, 463 | { 464 | "name": "Invalid", 465 | "scope": "invalid", 466 | "settings": { 467 | "background": "#ff2c83", 468 | "foreground": "#ffffff" 469 | } 470 | }, 471 | { 472 | "name": "Invalid deprecated", 473 | "scope": "invalid.deprecated", 474 | "settings": { 475 | "foreground": "#ffffff", 476 | "background": "#d3423e" 477 | } 478 | }, 479 | { 480 | "name": "Keyword Operator", 481 | "scope": "keyword.operator", 482 | "settings": { 483 | "foreground": "#7fdbca", 484 | "fontStyle": "" 485 | } 486 | }, 487 | { 488 | "name": "Keyword Operator Relational", 489 | "scope": "keyword.operator.relational", 490 | "settings": { 491 | "foreground": "#a492ea", 492 | "fontStyle": "italic" 493 | } 494 | }, 495 | { 496 | "name": "Keyword Operator Assignment", 497 | "scope": "keyword.operator.assignment", 498 | "settings": { 499 | "foreground": "#a492ea" 500 | } 501 | }, 502 | { 503 | "name": "Keyword Operator Arithmetic", 504 | "scope": "keyword.operator.arithmetic", 505 | "settings": { 506 | "foreground": "#a492ea" 507 | } 508 | }, 509 | { 510 | "name": "Keyword Operator Bitwise", 511 | "scope": "keyword.operator.bitwise", 512 | "settings": { 513 | "foreground": "#a492ea" 514 | } 515 | }, 516 | { 517 | "name": "Keyword Operator Increment", 518 | "scope": "keyword.operator.increment", 519 | "settings": { 520 | "foreground": "#a492ea" 521 | } 522 | }, 523 | { 524 | "name": "Keyword Operator Ternary", 525 | "scope": "keyword.operator.ternary", 526 | "settings": { 527 | "foreground": "#a492ea" 528 | } 529 | }, 530 | { 531 | "name": "Double-Slashed Comment", 532 | "scope": "comment.line.double-slash", 533 | "settings": { 534 | "foreground": "#637777" 535 | } 536 | }, 537 | { 538 | "name": "Object", 539 | "scope": "object", 540 | "settings": { 541 | "foreground": "#cdebf7" 542 | } 543 | }, 544 | { 545 | "name": "Null", 546 | "scope": "constant.language.null", 547 | "settings": { 548 | "foreground": "#ff5874" 549 | } 550 | }, 551 | { 552 | "name": "Meta Brace", 553 | "scope": "meta.brace", 554 | "settings": { 555 | "foreground": "#d6deeb" 556 | } 557 | }, 558 | { 559 | "name": "Meta Delimiter Period", 560 | "scope": "meta.delimiter.period", 561 | "settings": { 562 | "foreground": "#a492ea", 563 | "fontStyle": "italic" 564 | } 565 | }, 566 | { 567 | "name": "Punctuation Definition String", 568 | "scope": "punctuation.definition.string", 569 | "settings": { 570 | "foreground": "#d9f5dd" 571 | } 572 | }, 573 | { 574 | "name": "Punctuation Definition String Markdown", 575 | "scope": "punctuation.definition.string.begin.markdown", 576 | "settings": { 577 | "foreground": "#ff5874" 578 | } 579 | }, 580 | { 581 | "name": "Boolean", 582 | "scope": "constant.language.boolean", 583 | "settings": { 584 | "foreground": "#ff5874" 585 | } 586 | }, 587 | { 588 | "name": "Object Comma", 589 | "scope": "object.comma", 590 | "settings": { 591 | "foreground": "#ffffff" 592 | } 593 | }, 594 | { 595 | "name": "Variable Parameter Function", 596 | "scope": "variable.parameter.function", 597 | "settings": { 598 | "foreground": "#7fdbca", 599 | "fontStyle": "" 600 | } 601 | }, 602 | { 603 | "name": "Support Type Property Name & entity name tags", 604 | "scope": [ 605 | "support.type.vendor.property-name", 606 | "support.constant.vendor.property-value", 607 | "support.type.property-name", 608 | "meta.property-list entity.name.tag" 609 | ], 610 | "settings": { 611 | "foreground": "#80CBC4", 612 | "fontStyle": "" 613 | } 614 | }, 615 | { 616 | "name": "Entity Name tag reference in stylesheets", 617 | "scope": "meta.property-list entity.name.tag.reference", 618 | "settings": { 619 | "foreground": "#57eaf1" 620 | } 621 | }, 622 | { 623 | "name": "Constant Other Color RGB Value Punctuation Definition Constant", 624 | "scope": "constant.other.color.rgb-value punctuation.definition.constant", 625 | "settings": { 626 | "foreground": "#F78C6C" 627 | } 628 | }, 629 | { 630 | "name": "Constant Other Color", 631 | "scope": "constant.other.color", 632 | "settings": { 633 | "foreground": "#FFEB95" 634 | } 635 | }, 636 | { 637 | "name": "Keyword Other Unit", 638 | "scope": "keyword.other.unit", 639 | "settings": { 640 | "foreground": "#FFEB95" 641 | } 642 | }, 643 | { 644 | "name": "Meta Selector", 645 | "scope": "meta.selector", 646 | "settings": { 647 | "foreground": "#a492ea", 648 | "fontStyle": "italic" 649 | } 650 | }, 651 | { 652 | "name": "Entity Other Attribute Name Id", 653 | "scope": "entity.other.attribute-name.id", 654 | "settings": { 655 | "foreground": "#FAD430" 656 | } 657 | }, 658 | { 659 | "name": "Meta Property Name", 660 | "scope": "meta.property-name", 661 | "settings": { 662 | "foreground": "#80CBC4" 663 | } 664 | }, 665 | { 666 | "name": "Doctypes", 667 | "scope": ["entity.name.tag.doctype", "meta.tag.sgml.doctype"], 668 | "settings": { 669 | "foreground": "#a492ea", 670 | "fontStyle": "italic" 671 | } 672 | }, 673 | { 674 | "name": "Punctuation Definition Parameters", 675 | "scope": "punctuation.definition.parameters", 676 | "settings": { 677 | "foreground": "#d9f5dd" 678 | } 679 | }, 680 | { 681 | "name": "Keyword Control Operator", 682 | "scope": "keyword.control.operator", 683 | "settings": { 684 | "foreground": "#7fdbca" 685 | } 686 | }, 687 | { 688 | "name": "Keyword Operator Logical", 689 | "scope": "keyword.operator.logical", 690 | "settings": { 691 | "foreground": "#a492ea", 692 | "fontStyle": "" 693 | } 694 | }, 695 | { 696 | "name": "Variable Instances", 697 | "scope": [ 698 | "variable.instance", 699 | "variable.other.instance", 700 | "variable.readwrite.instance", 701 | "variable.other.readwrite.instance", 702 | "variable.other.property" 703 | ], 704 | "settings": { 705 | "foreground": "#baebe2" 706 | } 707 | }, 708 | { 709 | "name": "Variable Property Other object property", 710 | "scope": ["variable.other.object.property"], 711 | "settings": { 712 | "foreground": "#faf39f", 713 | "fontStyle": "italic" 714 | } 715 | }, 716 | { 717 | "name": "Variable Property Other object", 718 | "scope": ["variable.other.object.js"], 719 | "settings": { 720 | "fontStyle": "" 721 | } 722 | }, 723 | { 724 | "name": "Entity Name Function", 725 | "scope": ["entity.name.function"], 726 | "settings": { 727 | "foreground": "#82AAFF", 728 | "fontStyle": "italic" 729 | } 730 | }, 731 | { 732 | "name": "Keyword Operator Comparison, imports, returns and Keyword Operator Ruby", 733 | "scope": [ 734 | "keyword.operator.comparison", 735 | "keyword.control.flow.js", 736 | "keyword.control.flow.ts", 737 | "keyword.control.flow.tsx", 738 | "keyword.control.ruby", 739 | "keyword.control.module.ruby", 740 | "keyword.control.class.ruby", 741 | "keyword.control.def.ruby", 742 | "keyword.control.loop.js", 743 | "keyword.control.loop.ts", 744 | "keyword.control.import.js", 745 | "keyword.control.import.ts", 746 | "keyword.control.import.tsx", 747 | "keyword.control.from.js", 748 | "keyword.control.from.ts", 749 | "keyword.control.from.tsx", 750 | "keyword.operator.instanceof.js", 751 | "keyword.operator.expression.instanceof.ts", 752 | "keyword.operator.expression.instanceof.tsx" 753 | ], 754 | "settings": { 755 | "foreground": "#a492ea", 756 | "fontStyle": "italic" 757 | } 758 | }, 759 | { 760 | "name": "Keyword Control Conditional", 761 | "scope": [ 762 | "keyword.control.conditional.js", 763 | "keyword.control.conditional.ts", 764 | "keyword.control.switch.js", 765 | "keyword.control.switch.ts" 766 | ], 767 | "settings": { 768 | "foreground": "#a492ea", 769 | "fontStyle": "" 770 | } 771 | }, 772 | { 773 | "name": "Support Constant, `new` keyword, Special Method Keyword, `debugger`, other keywords", 774 | "scope": [ 775 | "support.constant", 776 | "keyword.other.special-method", 777 | "keyword.other.new", 778 | "keyword.other.debugger", 779 | "keyword.control" 780 | ], 781 | "settings": { 782 | "foreground": "#7fdbca" 783 | } 784 | }, 785 | { 786 | "name": "Support Function", 787 | "scope": "support.function", 788 | "settings": { 789 | "foreground": "#c5e478" 790 | } 791 | }, 792 | { 793 | "name": "Invalid Broken", 794 | "scope": "invalid.broken", 795 | "settings": { 796 | "foreground": "#020e14", 797 | "background": "#F78C6C" 798 | } 799 | }, 800 | { 801 | "name": "Invalid Unimplemented", 802 | "scope": "invalid.unimplemented", 803 | "settings": { 804 | "background": "#8BD649", 805 | "foreground": "#ffffff" 806 | } 807 | }, 808 | { 809 | "name": "Invalid Illegal", 810 | "scope": "invalid.illegal", 811 | "settings": { 812 | "foreground": "#ffffff", 813 | "background": "#ec5f67" 814 | } 815 | }, 816 | { 817 | "name": "Language Variable", 818 | "scope": "variable.language", 819 | "settings": { 820 | "foreground": "#7fdbca" 821 | } 822 | }, 823 | { 824 | "name": "Support Variable Property", 825 | "scope": "support.variable.property", 826 | "settings": { 827 | "foreground": "#7fdbca" 828 | } 829 | }, 830 | { 831 | "name": "Variable Function", 832 | "scope": "variable.function", 833 | "settings": { 834 | "foreground": "#82AAFF" 835 | } 836 | }, 837 | { 838 | "name": "Variable Interpolation", 839 | "scope": "variable.interpolation", 840 | "settings": { 841 | "foreground": "#ec5f67" 842 | } 843 | }, 844 | { 845 | "name": "Meta Function Call", 846 | "scope": "meta.function-call", 847 | "settings": { 848 | "foreground": "#82AAFF" 849 | } 850 | }, 851 | { 852 | "name": "Punctuation Section Embedded", 853 | "scope": "punctuation.section.embedded", 854 | "settings": { 855 | "foreground": "#d3423e" 856 | } 857 | }, 858 | { 859 | "name": "Punctuation Tweaks", 860 | "scope": [ 861 | "punctuation.terminator.expression", 862 | "punctuation.definition.arguments", 863 | "punctuation.definition.array", 864 | "punctuation.section.array", 865 | "meta.array" 866 | ], 867 | "settings": { 868 | "foreground": "#d6deeb" 869 | } 870 | }, 871 | { 872 | "name": "More Punctuation Tweaks", 873 | "scope": [ 874 | "punctuation.definition.list.begin", 875 | "punctuation.definition.list.end", 876 | "punctuation.separator.arguments", 877 | "punctuation.definition.list" 878 | ], 879 | "settings": { 880 | "foreground": "#d9f5dd" 881 | } 882 | }, 883 | { 884 | "name": "Template Strings", 885 | "scope": "string.template meta.template.expression", 886 | "settings": { 887 | "foreground": "#d3423e" 888 | } 889 | }, 890 | { 891 | "name": "Backtics(``) in Template Strings", 892 | "scope": "string.template punctuation.definition.string", 893 | "settings": { 894 | "foreground": "#d6deeb" 895 | } 896 | }, 897 | { 898 | "name": "Italics", 899 | "scope": "italic", 900 | "settings": { 901 | "foreground": "#a492ea", 902 | "fontStyle": "italic" 903 | } 904 | }, 905 | { 906 | "name": "Bold", 907 | "scope": "bold", 908 | "settings": { 909 | "foreground": "#c5e478", 910 | "fontStyle": "bold" 911 | } 912 | }, 913 | { 914 | "name": "Quote", 915 | "scope": "quote", 916 | "settings": { 917 | "foreground": "#697098", 918 | "fontStyle": "italic" 919 | } 920 | }, 921 | { 922 | "name": "Raw Code", 923 | "scope": "raw", 924 | "settings": { 925 | "foreground": "#80CBC4" 926 | } 927 | }, 928 | { 929 | "name": "CoffeScript Variable Assignment", 930 | "scope": "variable.assignment.coffee", 931 | "settings": { 932 | "foreground": "#31e1eb" 933 | } 934 | }, 935 | { 936 | "name": "CoffeScript Parameter Function", 937 | "scope": "variable.parameter.function.coffee", 938 | "settings": { 939 | "foreground": "#d6deeb" 940 | } 941 | }, 942 | { 943 | "name": "CoffeeScript Assignments", 944 | "scope": "variable.assignment.coffee", 945 | "settings": { 946 | "foreground": "#7fdbca" 947 | } 948 | }, 949 | { 950 | "name": "C# Readwrite Variables", 951 | "scope": "variable.other.readwrite.cs", 952 | "settings": { 953 | "foreground": "#d6deeb" 954 | } 955 | }, 956 | { 957 | "name": "C# Classes & Storage types", 958 | "scope": ["entity.name.type.class.cs", "storage.type.cs"], 959 | "settings": { 960 | "foreground": "#ffcb8b" 961 | } 962 | }, 963 | { 964 | "name": "C# Namespaces", 965 | "scope": "entity.name.type.namespace.cs", 966 | "settings": { 967 | "foreground": "#B2CCD6" 968 | } 969 | }, 970 | { 971 | "name": "C# Unquoted String Zone", 972 | "scope": "string.unquoted.preprocessor.message.cs", 973 | "settings": { 974 | "foreground": "#d6deeb" 975 | } 976 | }, 977 | { 978 | "name": "C# Region", 979 | "scope": [ 980 | "punctuation.separator.hash.cs", 981 | "keyword.preprocessor.region.cs", 982 | "keyword.preprocessor.endregion.cs" 983 | ], 984 | "settings": { 985 | "foreground": "#ffcb8b", 986 | "fontStyle": "bold" 987 | } 988 | }, 989 | { 990 | "name": "C# Other Variables", 991 | "scope": "variable.other.object.cs", 992 | "settings": { 993 | "foreground": "#B2CCD6" 994 | } 995 | }, 996 | { 997 | "name": "C# Enum", 998 | "scope": "entity.name.type.enum.cs", 999 | "settings": { 1000 | "foreground": "#c5e478" 1001 | } 1002 | }, 1003 | { 1004 | "name": "Dart String", 1005 | "scope": [ 1006 | "string.interpolated.single.dart", 1007 | "string.interpolated.double.dart" 1008 | ], 1009 | "settings": { 1010 | "foreground": "#FFCB8B" 1011 | } 1012 | }, 1013 | { 1014 | "name": "Dart Class", 1015 | "scope": "support.class.dart", 1016 | "settings": { 1017 | "foreground": "#FFCB8B" 1018 | } 1019 | }, 1020 | { 1021 | "name": "Tag names in Stylesheets", 1022 | "scope": [ 1023 | "entity.name.tag.css", 1024 | "entity.name.tag.less", 1025 | "entity.name.tag.custom.css", 1026 | "support.constant.property-value.css" 1027 | ], 1028 | "settings": { 1029 | "foreground": "#ff6363", 1030 | "fontStyle": "" 1031 | } 1032 | }, 1033 | { 1034 | "name": "Wildcard(*) selector in Stylesheets", 1035 | "scope": [ 1036 | "entity.name.tag.wildcard.css", 1037 | "entity.name.tag.wildcard.less", 1038 | "entity.name.tag.wildcard.scss", 1039 | "entity.name.tag.wildcard.sass" 1040 | ], 1041 | "settings": { 1042 | "foreground": "#7fdbca" 1043 | } 1044 | }, 1045 | { 1046 | "name": "CSS Keyword Other Unit", 1047 | "scope": "keyword.other.unit.css", 1048 | "settings": { 1049 | "foreground": "#FFEB95" 1050 | } 1051 | }, 1052 | { 1053 | "name": "Attribute Name for CSS", 1054 | "scope": [ 1055 | "meta.attribute-selector.css entity.other.attribute-name.attribute", 1056 | "variable.other.readwrite.js" 1057 | ], 1058 | "settings": { 1059 | "foreground": "#F78C6C" 1060 | } 1061 | }, 1062 | { 1063 | "name": "Elixir Classes", 1064 | "scope": [ 1065 | "source.elixir support.type.elixir", 1066 | "source.elixir meta.module.elixir entity.name.class.elixir" 1067 | ], 1068 | "settings": { 1069 | "foreground": "#82AAFF" 1070 | } 1071 | }, 1072 | { 1073 | "name": "Elixir Functions", 1074 | "scope": "source.elixir entity.name.function", 1075 | "settings": { 1076 | "foreground": "#c5e478" 1077 | } 1078 | }, 1079 | { 1080 | "name": "Elixir Constants", 1081 | "scope": [ 1082 | "source.elixir constant.other.symbol.elixir", 1083 | "source.elixir constant.other.keywords.elixir" 1084 | ], 1085 | "settings": { 1086 | "foreground": "#82AAFF" 1087 | } 1088 | }, 1089 | { 1090 | "name": "Elixir String Punctuations", 1091 | "scope": "source.elixir punctuation.definition.string", 1092 | "settings": { 1093 | "foreground": "#c5e478" 1094 | } 1095 | }, 1096 | { 1097 | "name": "Elixir", 1098 | "scope": [ 1099 | "source.elixir variable.other.readwrite.module.elixir", 1100 | "source.elixir variable.other.readwrite.module.elixir punctuation.definition.variable.elixir" 1101 | ], 1102 | "settings": { 1103 | "foreground": "#c5e478" 1104 | } 1105 | }, 1106 | { 1107 | "name": "Elixir Binary Punctuations", 1108 | "scope": "source.elixir .punctuation.binary.elixir", 1109 | "settings": { 1110 | "foreground": "#a492ea", 1111 | "fontStyle": "italic" 1112 | } 1113 | }, 1114 | { 1115 | "name": "Closure Constant Keyword", 1116 | "scope": "constant.keyword.clojure", 1117 | "settings": { 1118 | "foreground": "#7fdbca" 1119 | } 1120 | }, 1121 | { 1122 | "name": "Go Function Calls", 1123 | "scope": "source.go meta.function-call.go", 1124 | "settings": { 1125 | "foreground": "#DDDDDD" 1126 | } 1127 | }, 1128 | { 1129 | "name": "Go Keywords", 1130 | "scope": [ 1131 | "source.go keyword.package.go", 1132 | "source.go keyword.import.go", 1133 | "source.go keyword.function.go", 1134 | "source.go keyword.type.go", 1135 | "source.go keyword.struct.go", 1136 | "source.go keyword.interface.go", 1137 | "source.go keyword.const.go", 1138 | "source.go keyword.var.go", 1139 | "source.go keyword.map.go", 1140 | "source.go keyword.channel.go", 1141 | "source.go keyword.control.go" 1142 | ], 1143 | "settings": { 1144 | "foreground": "#a492ea", 1145 | "fontStyle": "italic" 1146 | } 1147 | }, 1148 | { 1149 | "name": "Go Constants e.g. nil, string format (%s, %d, etc.)", 1150 | "scope": [ 1151 | "source.go constant.language.go", 1152 | "source.go constant.other.placeholder.go" 1153 | ], 1154 | "settings": { 1155 | "foreground": "#ff5874" 1156 | } 1157 | }, 1158 | { 1159 | "name": "C++ Functions", 1160 | "scope": [ 1161 | "entity.name.function.preprocessor.cpp", 1162 | "entity.scope.name.cpp" 1163 | ], 1164 | "settings": { 1165 | "foreground": "#7fdbcaff" 1166 | } 1167 | }, 1168 | { 1169 | "name": "C++ Meta Namespace", 1170 | "scope": ["meta.namespace-block.cpp"], 1171 | "settings": { 1172 | "foreground": "#e0dec6" 1173 | } 1174 | }, 1175 | { 1176 | "name": "C++ Language Primitive Storage", 1177 | "scope": ["storage.type.language.primitive.cpp"], 1178 | "settings": { 1179 | "foreground": "#ff5874" 1180 | } 1181 | }, 1182 | { 1183 | "name": "C++ Preprocessor Macro", 1184 | "scope": ["meta.preprocessor.macro.cpp"], 1185 | "settings": { 1186 | "foreground": "#d6deeb" 1187 | } 1188 | }, 1189 | { 1190 | "name": "C++ Variable Parameter", 1191 | "scope": ["variable.parameter"], 1192 | "settings": { 1193 | "foreground": "#ffcb8b" 1194 | } 1195 | }, 1196 | { 1197 | "name": "Powershell Variables", 1198 | "scope": ["variable.other.readwrite.powershell"], 1199 | "settings": { 1200 | "foreground": "#82AAFF" 1201 | } 1202 | }, 1203 | { 1204 | "name": "Powershell Function", 1205 | "scope": ["support.function.powershell"], 1206 | "settings": { 1207 | "foreground": "#7fdbcaff" 1208 | } 1209 | }, 1210 | { 1211 | "name": "ID Attribute Name in HTML", 1212 | "scope": "entity.other.attribute-name.id.html", 1213 | "settings": { 1214 | "foreground": "#c5e478" 1215 | } 1216 | }, 1217 | { 1218 | "name": "HTML Punctuation Definition Tag", 1219 | "scope": "punctuation.definition.tag.html", 1220 | "settings": { 1221 | "foreground": "#6ae9f0" 1222 | } 1223 | }, 1224 | { 1225 | "name": "HTML Doctype", 1226 | "scope": "meta.tag.sgml.doctype.html", 1227 | "settings": { 1228 | "foreground": "#a492ea", 1229 | "fontStyle": "italic" 1230 | } 1231 | }, 1232 | { 1233 | "name": "JavaScript Classes", 1234 | "scope": "meta.class entity.name.type.class.js", 1235 | "settings": { 1236 | "foreground": "#ffcb8b" 1237 | } 1238 | }, 1239 | { 1240 | "name": "JavaScript Method Declaration e.g. `constructor`", 1241 | "scope": "meta.method.declaration storage.type.js", 1242 | "settings": { 1243 | "foreground": "#82AAFF" 1244 | } 1245 | }, 1246 | { 1247 | "name": "JavaScript Terminator", 1248 | "scope": "terminator.js", 1249 | "settings": { 1250 | "foreground": "#d6deeb" 1251 | } 1252 | }, 1253 | { 1254 | "name": "JavaScript Meta Punctuation Definition", 1255 | "scope": "meta.js punctuation.definition.js", 1256 | "settings": { 1257 | "foreground": "#d6deeb" 1258 | } 1259 | }, 1260 | { 1261 | "name": "Entity Names in Code Documentations", 1262 | "scope": [ 1263 | "entity.name.type.instance.jsdoc", 1264 | "entity.name.type.instance.phpdoc" 1265 | ], 1266 | "settings": { 1267 | "foreground": "#5f7e97" 1268 | } 1269 | }, 1270 | { 1271 | "name": "Other Variables in Code Documentations", 1272 | "scope": ["variable.other.jsdoc", "variable.other.phpdoc"], 1273 | "settings": { 1274 | "foreground": "#78ccf0" 1275 | } 1276 | }, 1277 | { 1278 | "name": "JavaScript module imports and exports", 1279 | "scope": [ 1280 | "variable.other.meta.import.js", 1281 | "meta.import.js variable.other", 1282 | "variable.other.meta.export.js", 1283 | "meta.export.js variable.other" 1284 | ], 1285 | "settings": { 1286 | "foreground": "#d6deeb" 1287 | } 1288 | }, 1289 | { 1290 | "name": "JavaScript Variable Parameter Function", 1291 | "scope": "variable.parameter.function.js", 1292 | "settings": { 1293 | "foreground": "#7986E7" 1294 | } 1295 | }, 1296 | { 1297 | "name": "JavaScript[React] Variable Other Object", 1298 | "scope": [ 1299 | "variable.other.object.js", 1300 | "variable.other.object.jsx", 1301 | "variable.object.property.js", 1302 | "variable.object.property.jsx" 1303 | ], 1304 | "settings": { 1305 | "foreground": "#d6deeb" 1306 | } 1307 | }, 1308 | { 1309 | "name": "JavaScript Variables", 1310 | "scope": ["variable.js", "variable.other.js"], 1311 | "settings": { 1312 | "foreground": "#d6deeb" 1313 | } 1314 | }, 1315 | { 1316 | "name": "JavaScript Entity Name Type", 1317 | "scope": ["entity.name.type.js", "entity.name.type.module.js"], 1318 | "settings": { 1319 | "foreground": "#ffcb8b", 1320 | "fontStyle": "" 1321 | } 1322 | }, 1323 | { 1324 | "name": "JavaScript Support Classes", 1325 | "scope": "support.class.js", 1326 | "settings": { 1327 | "foreground": "#d6deeb" 1328 | } 1329 | }, 1330 | { 1331 | "name": "JSON Property Names", 1332 | "scope": "support.type.property-name.json", 1333 | "settings": { 1334 | "foreground": "#7fdbca" 1335 | } 1336 | }, 1337 | { 1338 | "name": "JSON Support Constants", 1339 | "scope": "support.constant.json", 1340 | "settings": { 1341 | "foreground": "#c5e478" 1342 | } 1343 | }, 1344 | { 1345 | "name": "JSON Property values (string)", 1346 | "scope": "meta.structure.dictionary.value.json string.quoted.double", 1347 | "settings": { 1348 | "foreground": "#c789d6" 1349 | } 1350 | }, 1351 | { 1352 | "name": "Strings in JSON values", 1353 | "scope": "string.quoted.double.json punctuation.definition.string.json", 1354 | "settings": { 1355 | "foreground": "#80CBC4" 1356 | } 1357 | }, 1358 | { 1359 | "name": "Specific JSON Property values like null", 1360 | "scope": "meta.structure.dictionary.json meta.structure.dictionary.value constant.language", 1361 | "settings": { 1362 | "foreground": "#ff5874" 1363 | } 1364 | }, 1365 | { 1366 | "name": "JavaScript Other Variable", 1367 | "scope": "variable.other.object.js", 1368 | "settings": { 1369 | "foreground": "#7fdbca", 1370 | "fontStyle": "italic" 1371 | } 1372 | }, 1373 | { 1374 | "name": "Ruby Variables", 1375 | "scope": ["variable.other.ruby"], 1376 | "settings": { 1377 | "foreground": "#d6deeb" 1378 | } 1379 | }, 1380 | { 1381 | "name": "Ruby Class", 1382 | "scope": ["entity.name.type.class.ruby"], 1383 | "settings": { 1384 | "foreground": "#ecc48d" 1385 | } 1386 | }, 1387 | { 1388 | "name": "Ruby Hashkeys", 1389 | "scope": "constant.language.symbol.hashkey.ruby", 1390 | "settings": { 1391 | "foreground": "#7fdbca" 1392 | } 1393 | }, 1394 | { 1395 | "name": "Ruby Symbols", 1396 | "scope": "constant.language.symbol.ruby", 1397 | "settings": { 1398 | "foreground": "#7fdbca" 1399 | } 1400 | }, 1401 | { 1402 | "name": "LESS Tag names", 1403 | "scope": "entity.name.tag.less", 1404 | "settings": { 1405 | "foreground": "#7fdbca" 1406 | } 1407 | }, 1408 | { 1409 | "name": "LESS Keyword Other Unit", 1410 | "scope": "keyword.other.unit.css", 1411 | "settings": { 1412 | "foreground": "#FFEB95" 1413 | } 1414 | }, 1415 | { 1416 | "name": "Attribute Name for LESS", 1417 | "scope": "meta.attribute-selector.less entity.other.attribute-name.attribute", 1418 | "settings": { 1419 | "foreground": "#F78C6C" 1420 | } 1421 | }, 1422 | { 1423 | "name": "Markdown Headings", 1424 | "scope": [ 1425 | "markup.heading.markdown", 1426 | "markup.heading.setext.1.markdown", 1427 | "markup.heading.setext.2.markdown" 1428 | ], 1429 | "settings": { 1430 | "foreground": "#82b1ff" 1431 | } 1432 | }, 1433 | { 1434 | "name": "Markdown Italics", 1435 | "scope": "markup.italic.markdown", 1436 | "settings": { 1437 | "foreground": "#a492ea", 1438 | "fontStyle": "italic" 1439 | } 1440 | }, 1441 | { 1442 | "name": "Markdown Bold", 1443 | "scope": "markup.bold.markdown", 1444 | "settings": { 1445 | "foreground": "#c5e478", 1446 | "fontStyle": "bold" 1447 | } 1448 | }, 1449 | { 1450 | "name": "Markdown Quote + others", 1451 | "scope": "markup.quote.markdown", 1452 | "settings": { 1453 | "foreground": "#697098", 1454 | "fontStyle": "italic" 1455 | } 1456 | }, 1457 | { 1458 | "name": "Markdown Raw Code + others", 1459 | "scope": "markup.inline.raw.markdown", 1460 | "settings": { 1461 | "foreground": "#80CBC4" 1462 | } 1463 | }, 1464 | { 1465 | "name": "Markdown Links", 1466 | "scope": [ 1467 | "markup.underline.link.markdown", 1468 | "markup.underline.link.image.markdown" 1469 | ], 1470 | "settings": { 1471 | "foreground": "#ff869a" 1472 | } 1473 | }, 1474 | { 1475 | "name": "Markdown Link Title and Description", 1476 | "scope": [ 1477 | "string.other.link.title.markdown", 1478 | "string.other.link.description.markdown" 1479 | ], 1480 | "settings": { 1481 | "foreground": "#d6deeb" 1482 | } 1483 | }, 1484 | { 1485 | "name": "Markdown Punctuation", 1486 | "scope": [ 1487 | "punctuation.definition.string.markdown", 1488 | "punctuation.definition.string.begin.markdown", 1489 | "punctuation.definition.string.end.markdown", 1490 | "meta.link.inline.markdown punctuation.definition.string" 1491 | ], 1492 | "settings": { 1493 | "foreground": "#82b1ff" 1494 | } 1495 | }, 1496 | { 1497 | "name": "Markdown MetaData Punctuation", 1498 | "scope": ["punctuation.definition.metadata.markdown"], 1499 | "settings": { 1500 | "foreground": "#7fdbca" 1501 | } 1502 | }, 1503 | { 1504 | "name": "Markdown List Punctuation", 1505 | "scope": ["beginning.punctuation.definition.list.markdown"], 1506 | "settings": { 1507 | "foreground": "#82b1ff" 1508 | } 1509 | }, 1510 | { 1511 | "name": "Markdown Inline Raw String", 1512 | "scope": "markup.inline.raw.string.markdown", 1513 | "settings": { 1514 | "foreground": "#c5e478" 1515 | } 1516 | }, 1517 | { 1518 | "name": "PHP Variables", 1519 | "scope": ["variable.other.php", "variable.other.property.php"], 1520 | "settings": { 1521 | "foreground": "#bec5d4" 1522 | } 1523 | }, 1524 | { 1525 | "name": "Support Classes in PHP", 1526 | "scope": "support.class.php", 1527 | "settings": { 1528 | "foreground": "#ffcb8b" 1529 | } 1530 | }, 1531 | { 1532 | "name": "Punctuations in PHP function calls", 1533 | "scope": "meta.function-call.php punctuation", 1534 | "settings": { 1535 | "foreground": "#d6deeb" 1536 | } 1537 | }, 1538 | { 1539 | "name": "PHP Global Variables", 1540 | "scope": "variable.other.global.php", 1541 | "settings": { 1542 | "foreground": "#c5e478" 1543 | } 1544 | }, 1545 | { 1546 | "name": "Declaration Punctuation in PHP Global Variables", 1547 | "scope": "variable.other.global.php punctuation.definition.variable", 1548 | "settings": { 1549 | "foreground": "#c5e478" 1550 | } 1551 | }, 1552 | { 1553 | "name": "Language Constants in Python", 1554 | "scope": "constant.language.python", 1555 | "settings": { 1556 | "foreground": "#ff5874" 1557 | } 1558 | }, 1559 | { 1560 | "name": "Python Function Parameter and Arguments", 1561 | "scope": [ 1562 | "variable.parameter.function.python", 1563 | "meta.function-call.arguments.python" 1564 | ], 1565 | "settings": { 1566 | "foreground": "#82AAFF" 1567 | } 1568 | }, 1569 | { 1570 | "name": "Python Function Call", 1571 | "scope": [ 1572 | "meta.function-call.python", 1573 | "meta.function-call.generic.python" 1574 | ], 1575 | "settings": { 1576 | "foreground": "#B2CCD6" 1577 | } 1578 | }, 1579 | { 1580 | "name": "Punctuations in Python", 1581 | "scope": "punctuation.python", 1582 | "settings": { 1583 | "foreground": "#d6deeb" 1584 | } 1585 | }, 1586 | { 1587 | "name": "Decorator Functions in Python", 1588 | "scope": "entity.name.function.decorator.python", 1589 | "settings": { 1590 | "foreground": "#c5e478" 1591 | } 1592 | }, 1593 | { 1594 | "name": "Python Language Variable", 1595 | "scope": "source.python variable.language.special", 1596 | "settings": { 1597 | "foreground": "#8EACE3" 1598 | } 1599 | }, 1600 | { 1601 | "name": "Python import control keyword", 1602 | "scope": "keyword.control", 1603 | "settings": { 1604 | "foreground": "#a492ea", 1605 | "fontStyle": "italic" 1606 | } 1607 | }, 1608 | { 1609 | "name": "SCSS Variable", 1610 | "scope": [ 1611 | "variable.scss", 1612 | "variable.sass", 1613 | "variable.parameter.url.scss", 1614 | "variable.parameter.url.sass" 1615 | ], 1616 | "settings": { 1617 | "foreground": "#c5e478" 1618 | } 1619 | }, 1620 | { 1621 | "name": "Variables in SASS At-Rules", 1622 | "scope": [ 1623 | "source.css.scss meta.at-rule variable", 1624 | "source.css.sass meta.at-rule variable" 1625 | ], 1626 | "settings": { 1627 | "foreground": "#82AAFF" 1628 | } 1629 | }, 1630 | { 1631 | "name": "Variables in SASS At-Rules", 1632 | "scope": [ 1633 | "source.css.scss meta.at-rule variable", 1634 | "source.css.sass meta.at-rule variable" 1635 | ], 1636 | "settings": { 1637 | "foreground": "#bec5d4" 1638 | } 1639 | }, 1640 | { 1641 | "name": "Attribute Name for SASS", 1642 | "scope": [ 1643 | "meta.attribute-selector.scss entity.other.attribute-name.attribute", 1644 | "meta.attribute-selector.sass entity.other.attribute-name.attribute" 1645 | ], 1646 | "settings": { 1647 | "foreground": "#F78C6C" 1648 | } 1649 | }, 1650 | { 1651 | "name": "Tag names in SASS", 1652 | "scope": ["entity.name.tag.scss", "entity.name.tag.sass"], 1653 | "settings": { 1654 | "foreground": "#7fdbca" 1655 | } 1656 | }, 1657 | { 1658 | "name": "SASS Keyword Other Unit", 1659 | "scope": ["keyword.other.unit.scss", "keyword.other.unit.sass"], 1660 | "settings": { 1661 | "foreground": "#FFEB95" 1662 | } 1663 | }, 1664 | { 1665 | "name": "TypeScript[React] Variables and Object Properties", 1666 | "scope": [ 1667 | "variable.other.readwrite.alias.ts", 1668 | "variable.other.readwrite.alias.tsx", 1669 | "variable.other.readwrite.ts", 1670 | "variable.other.readwrite.tsx", 1671 | "variable.other.object.ts", 1672 | "variable.other.object.tsx", 1673 | "variable.object.property.ts", 1674 | "variable.object.property.tsx", 1675 | "variable.other.ts", 1676 | "variable.other.tsx", 1677 | "variable.tsx", 1678 | "variable.ts" 1679 | ], 1680 | "settings": { 1681 | "foreground": "#d6deeb" 1682 | } 1683 | }, 1684 | { 1685 | "name": "TypeScript[React] Entity Name Types", 1686 | "scope": ["entity.name.type.ts", "entity.name.type.tsx"], 1687 | "settings": { 1688 | "foreground": "#ffcb8b" 1689 | } 1690 | }, 1691 | { 1692 | "name": "TypeScript[React] Node Classes", 1693 | "scope": ["support.class.node.ts", "support.class.node.tsx"], 1694 | "settings": { 1695 | "foreground": "#82AAFF" 1696 | } 1697 | }, 1698 | { 1699 | "name": "TypeScript[React] Entity Name Types as Parameters", 1700 | "scope": [ 1701 | "meta.type.parameters.ts entity.name.type", 1702 | "meta.type.parameters.tsx entity.name.type" 1703 | ], 1704 | "settings": { 1705 | "foreground": "#5f7e97" 1706 | } 1707 | }, 1708 | { 1709 | "name": "TypeScript[React] Import/Export Punctuations", 1710 | "scope": [ 1711 | "meta.import.ts punctuation.definition.block", 1712 | "meta.import.tsx punctuation.definition.block", 1713 | "meta.export.ts punctuation.definition.block", 1714 | "meta.export.tsx punctuation.definition.block" 1715 | ], 1716 | "settings": { 1717 | "foreground": "#d6deeb" 1718 | } 1719 | }, 1720 | { 1721 | "name": "TypeScript[React] Punctuation Decorators", 1722 | "scope": [ 1723 | "meta.decorator punctuation.decorator.ts", 1724 | "meta.decorator punctuation.decorator.tsx" 1725 | ], 1726 | "settings": { 1727 | "foreground": "#82AAFF" 1728 | } 1729 | }, 1730 | { 1731 | "name": "TypeScript[React] Punctuation Decorators", 1732 | "scope": "meta.tag.js meta.jsx.children.tsx", 1733 | "settings": { 1734 | "foreground": "#82AAFF" 1735 | } 1736 | }, 1737 | { 1738 | "name": "YAML Entity Name Tags", 1739 | "scope": "entity.name.tag.yaml", 1740 | "settings": { 1741 | "foreground": "#7fdbca" 1742 | } 1743 | }, 1744 | { 1745 | "name": "JavaScript Variable Other ReadWrite", 1746 | "scope": ["variable.other.readwrite.js", "variable.parameter"], 1747 | "settings": { 1748 | "foreground": "#d7dbe0" 1749 | } 1750 | }, 1751 | { 1752 | "name": "Support Class Component", 1753 | "scope": ["support.class.component.js", "support.class.component.tsx"], 1754 | "settings": { 1755 | "foreground": "#f78c6c", 1756 | "fontStyle": "" 1757 | } 1758 | }, 1759 | { 1760 | "name": "Text nested in React tags", 1761 | "scope": [ 1762 | "meta.jsx.children", 1763 | "meta.jsx.children.js", 1764 | "meta.jsx.children.tsx" 1765 | ], 1766 | "settings": { 1767 | "foreground": "#d6deeb" 1768 | } 1769 | }, 1770 | { 1771 | "name": "TypeScript Classes", 1772 | "scope": "meta.class entity.name.type.class.tsx", 1773 | "settings": { 1774 | "foreground": "#ffcb8b" 1775 | } 1776 | }, 1777 | { 1778 | "name": "TypeScript Entity Name Type", 1779 | "scope": ["entity.name.type.tsx", "entity.name.type.module.tsx"], 1780 | "settings": { 1781 | "foreground": "#ffcb8b" 1782 | } 1783 | }, 1784 | { 1785 | "name": "TypeScript Class Variable Keyword", 1786 | "scope": [ 1787 | "meta.class.ts meta.var.expr.ts storage.type.ts", 1788 | "meta.class.tsx meta.var.expr.tsx storage.type.tsx" 1789 | ], 1790 | "settings": { 1791 | "foreground": "#A492EA" 1792 | } 1793 | }, 1794 | { 1795 | "name": "TypeScript Method Declaration e.g. `constructor`", 1796 | "scope": [ 1797 | "meta.method.declaration storage.type.ts", 1798 | "meta.method.declaration storage.type.tsx" 1799 | ], 1800 | "settings": { 1801 | "foreground": "#82AAFF" 1802 | } 1803 | }, 1804 | { 1805 | "name": "normalize font style of certain components", 1806 | "scope": [ 1807 | "meta.property-list.css meta.property-value.css variable.other.less", 1808 | "meta.property-list.scss variable.scss", 1809 | "meta.property-list.sass variable.sass", 1810 | "meta.brace", 1811 | "keyword.operator.operator", 1812 | "keyword.operator.or.regexp", 1813 | "keyword.operator.expression.in", 1814 | "keyword.operator.relational", 1815 | "keyword.operator.assignment", 1816 | "keyword.operator.comparison", 1817 | "keyword.operator.type", 1818 | "keyword.operator", 1819 | "keyword", 1820 | "punctuation.definintion.string", 1821 | "punctuation", 1822 | "variable.other.readwrite.js", 1823 | "storage.type", 1824 | "source.css", 1825 | "string.quoted" 1826 | ], 1827 | "settings": { 1828 | "fontStyle": "" 1829 | } 1830 | } 1831 | ] 1832 | } 1833 | -------------------------------------------------------------------------------- /site/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "lib": [ 4 | "dom", 5 | "dom.iterable", 6 | "esnext" 7 | ], 8 | "allowJs": true, 9 | "skipLibCheck": true, 10 | "strict": false, 11 | "forceConsistentCasingInFileNames": true, 12 | "noEmit": true, 13 | "incremental": true, 14 | "esModuleInterop": true, 15 | "module": "esnext", 16 | "moduleResolution": "node", 17 | "resolveJsonModule": true, 18 | "isolatedModules": true, 19 | "jsx": "preserve", 20 | "plugins": [ 21 | { 22 | "name": "next" 23 | } 24 | ] 25 | }, 26 | "include": [ 27 | "next-env.d.ts", 28 | ".next/types/**/*.ts", 29 | "**/*.ts", 30 | "**/*.tsx" 31 | ], 32 | "exclude": [ 33 | "node_modules" 34 | ] 35 | } 36 | -------------------------------------------------------------------------------- /turbo.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://turbo.build/schema.json", 3 | "pipeline": { 4 | "dev": { 5 | "cache": false, 6 | "dependsOn": ["^build"] 7 | }, 8 | "build": { 9 | "dependsOn": ["^build"], 10 | "outputs": ["dist/**", ".next/**"] 11 | }, 12 | "test": { 13 | "dependsOn": ["^build"], 14 | "outputs": [] 15 | } 16 | } 17 | } 18 | --------------------------------------------------------------------------------