diff --git a/.vscode/settings.json b/.vscode/settings.json
index faa23854..26631c51 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,7 +1,7 @@
{
"files.exclude": {
"**/.husky": true,
- "**/.vscode": true,
+ ".vscode": true,
"**/.yarn": true,
"**/coverage": true,
"**/dist": true,
diff --git a/package.json b/package.json
index 611f1b24..0689d0dc 100644
--- a/package.json
+++ b/package.json
@@ -23,6 +23,7 @@
},
"dependencies": {
"@codecharacter-2022/client": "workspace:packages/client",
+ "@codecharacter-2022/extension": "workspace:packages/extension",
"@codecharacter-2022/map-designer": "workspace:packages/map-designer",
"@codecharacter-2022/renderer": "workspace:packages/renderer",
"@fortawesome/fontawesome-svg-core": "^1.2.36",
@@ -133,7 +134,8 @@
},
"jest": {
"preset": "ts-jest",
- "testEnvironment": "node"
+ "testEnvironment": "node",
+ "testRegex": "/__tests__/.*test.[jt]sx?$"
},
"lint-staged": {
"*.{ts,.tsx}": [
diff --git a/packages/extension/.eslintrc.json b/packages/extension/.eslintrc.json
new file mode 100644
index 00000000..5dfecab7
--- /dev/null
+++ b/packages/extension/.eslintrc.json
@@ -0,0 +1,18 @@
+{
+ "root": true,
+ "parser": "@typescript-eslint/parser",
+ "parserOptions": {
+ "ecmaVersion": 6,
+ "sourceType": "module"
+ },
+ "plugins": ["@typescript-eslint"],
+ "rules": {
+ "@typescript-eslint/naming-convention": "warn",
+ "@typescript-eslint/semi": "warn",
+ "curly": "warn",
+ "eqeqeq": "warn",
+ "no-throw-literal": "warn",
+ "semi": "off"
+ },
+ "ignorePatterns": ["out", "dist", "**/*.d.ts"]
+}
diff --git a/packages/extension/.gitignore b/packages/extension/.gitignore
new file mode 100644
index 00000000..31030798
--- /dev/null
+++ b/packages/extension/.gitignore
@@ -0,0 +1,4 @@
+.vscode-test
+dist
+out
+src/config/config.ts
diff --git a/packages/extension/.vscode/extensions.json b/packages/extension/.vscode/extensions.json
new file mode 100644
index 00000000..57dbdae4
--- /dev/null
+++ b/packages/extension/.vscode/extensions.json
@@ -0,0 +1,5 @@
+{
+ // See http://go.microsoft.com/fwlink/?LinkId=827846
+ // for the documentation about the extensions.json format
+ "recommendations": ["dbaeumer.vscode-eslint", "amodio.tsl-problem-matcher"]
+}
diff --git a/packages/extension/.vscode/launch.json b/packages/extension/.vscode/launch.json
new file mode 100644
index 00000000..cd540529
--- /dev/null
+++ b/packages/extension/.vscode/launch.json
@@ -0,0 +1,31 @@
+// A launch configuration that compiles the extension and then opens it inside a new window
+// Use IntelliSense to learn about possible attributes.
+// Hover to view descriptions of existing attributes.
+// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "name": "Run Extension",
+ "type": "extensionHost",
+ "request": "launch",
+ "args": ["--extensionDevelopmentPath=${workspaceFolder}"],
+ "outFiles": ["${workspaceFolder}/dist/**/*.js"],
+ "preLaunchTask": "${defaultBuildTask}"
+ },
+ {
+ "name": "Extension Tests",
+ "type": "extensionHost",
+ "request": "launch",
+ "args": [
+ "--extensionDevelopmentPath=${workspaceFolder}",
+ "--extensionTestsPath=${workspaceFolder}/out/test/suite/index"
+ ],
+ "outFiles": [
+ "${workspaceFolder}/out/**/*.js",
+ "${workspaceFolder}/dist/**/*.js"
+ ],
+ "preLaunchTask": "tasks: watch-tests"
+ }
+ ]
+}
diff --git a/packages/extension/.vscode/settings.json b/packages/extension/.vscode/settings.json
new file mode 100644
index 00000000..64ee9296
--- /dev/null
+++ b/packages/extension/.vscode/settings.json
@@ -0,0 +1,13 @@
+// Place your settings in this file to overwrite default and user settings.
+{
+ "files.exclude": {
+ "out": false, // set this to true to hide the "out" folder with the compiled JS files
+ "dist": false // set this to true to hide the "dist" folder with the compiled JS files
+ },
+ "search.exclude": {
+ "out": true, // set this to false to include "out" folder in search results
+ "dist": true // set this to false to include "dist" folder in search results
+ },
+ // Turn off tsc task auto detection since we have the necessary tasks as npm scripts
+ "typescript.tsc.autoDetect": "off"
+}
diff --git a/packages/extension/.vscode/tasks.json b/packages/extension/.vscode/tasks.json
new file mode 100644
index 00000000..bb452adf
--- /dev/null
+++ b/packages/extension/.vscode/tasks.json
@@ -0,0 +1,37 @@
+// See https://go.microsoft.com/fwlink/?LinkId=733558
+// for the documentation about the tasks.json format
+{
+ "version": "2.0.0",
+ "tasks": [
+ {
+ "type": "npm",
+ "script": "watch",
+ "problemMatcher": ["$ts-webpack-watch", "$tslint-webpack-watch"],
+ "isBackground": true,
+ "presentation": {
+ "reveal": "never",
+ "group": "watchers"
+ },
+ "group": {
+ "kind": "build",
+ "isDefault": true
+ }
+ },
+ {
+ "type": "npm",
+ "script": "watch-tests",
+ "problemMatcher": "$tsc-watch",
+ "isBackground": true,
+ "presentation": {
+ "reveal": "never",
+ "group": "watchers"
+ },
+ "group": "build"
+ },
+ {
+ "label": "tasks: watch-tests",
+ "dependsOn": ["npm: watch", "npm: watch-tests"],
+ "problemMatcher": []
+ }
+ ]
+}
diff --git a/packages/extension/.vscodeignore b/packages/extension/.vscodeignore
new file mode 100644
index 00000000..c6136798
--- /dev/null
+++ b/packages/extension/.vscodeignore
@@ -0,0 +1,13 @@
+.vscode/**
+.vscode-test/**
+out/**
+node_modules/**
+src/**
+.gitignore
+.yarnrc
+webpack.config.js
+vsc-extension-quickstart.md
+**/tsconfig.json
+**/.eslintrc.json
+**/*.map
+**/*.ts
diff --git a/packages/extension/.yarnrc b/packages/extension/.yarnrc
new file mode 100644
index 00000000..f757a6ac
--- /dev/null
+++ b/packages/extension/.yarnrc
@@ -0,0 +1 @@
+--ignore-engines true
\ No newline at end of file
diff --git a/packages/extension/README.md b/packages/extension/README.md
new file mode 100644
index 00000000..1a5727fb
--- /dev/null
+++ b/packages/extension/README.md
@@ -0,0 +1,16 @@
+# CodeCharacter 2022 VSCode Extension
+
+An extension for VSCode that allows players to play CodeCharacter from the comfort of their IDE.
+
+## Testing the extension locally
+
+1. Open just the `packages/extension` folder in VSCode.
+2. Run `yarn install`
+3. Open the run panel from the left sidebar or do Ctrl + Shift + D
+4. Click the run button or press F5 to start the extension. (Wait for the webpack compilation to get over - might take a couple of minutes and refresh it)
+
+In the extension:
+
+1. The extension will be available in the last entry of the left sidebar.
+2. Create and save some maps/source files.
+3. Use files from [here](https://gist.github.com/CaptainIRS/9d8d162e2a7b7b62ae1ffa13b23a18fa) for testing renderer.
diff --git a/packages/extension/assets b/packages/extension/assets
new file mode 120000
index 00000000..1ea7d147
--- /dev/null
+++ b/packages/extension/assets
@@ -0,0 +1 @@
+../../public/assets/
\ No newline at end of file
diff --git a/packages/extension/media/icon.svg b/packages/extension/media/icon.svg
new file mode 100644
index 00000000..1d6873ea
--- /dev/null
+++ b/packages/extension/media/icon.svg
@@ -0,0 +1,66 @@
+
+
diff --git a/packages/extension/package.json b/packages/extension/package.json
new file mode 100644
index 00000000..ab019697
--- /dev/null
+++ b/packages/extension/package.json
@@ -0,0 +1,150 @@
+{
+ "name": "@codecharacter-2022/extension",
+ "displayName": "CodeCharacter 2022",
+ "description": "An extension for simulating code for CodeCharacter 2022 locally",
+ "version": "2022.0.1",
+ "engines": {
+ "vscode": "^1.63.0"
+ },
+ "categories": [
+ "Other"
+ ],
+ "activationEvents": [
+ "onView:codecharacter-2022-codes"
+ ],
+ "main": "./dist/extension.js",
+ "contributes": {
+ "commands": [
+ {
+ "command": "codecharacter-2022.helloWorld",
+ "title": "Hello World"
+ },
+ {
+ "command": "codecharacter-2022.addMapFile",
+ "title": "Add Map File",
+ "icon": "$(add)"
+ },
+ {
+ "command": "codecharacter-2022.deleteMapFile",
+ "title": "Delete Map File",
+ "icon": "$(trash)"
+ },
+ {
+ "command": "codecharacter-2022.runCode",
+ "title": "Run Code",
+ "icon": "media/icon.svg"
+ },
+ {
+ "command": "codecharacter-2022.deleteCodeFile",
+ "title": "Delete Code",
+ "icon": "$(trash)"
+ },
+ {
+ "command": "codecharacter-2022.addCodeFile",
+ "title": "Add Code",
+ "icon": "$(add)"
+ }
+ ],
+ "viewsContainers": {
+ "activitybar": [
+ {
+ "id": "codecharacter-2022",
+ "title": "CodeCharacter 2022",
+ "icon": "media/icon.svg"
+ }
+ ]
+ },
+ "menus": {
+ "editor/title": [
+ {
+ "command": "codecharacter-2022.runCode",
+ "group": "navigation",
+ "when": "resourceFilename =~ /\\.(c|cpp|js|py|java)$/ && resourcePath =~ /codes/ && editorFocus"
+ }
+ ],
+ "view/title": [
+ {
+ "command": "codecharacter-2022.addMapFile",
+ "when": "view == codecharacter-2022-maps",
+ "group": "navigation"
+ }
+ ],
+ "view/item/context": [
+ {
+ "command": "codecharacter-2022.deleteCodeFile",
+ "when": "view == codecharacter-2022-codes && viewItem == sourceFile",
+ "group": "inline"
+ },
+ {
+ "command": "codecharacter-2022.deleteMapFile",
+ "when": "view == codecharacter-2022-maps && viewItem == map",
+ "group": "inline"
+ },
+ {
+ "command": "codecharacter-2022.addCodeFile",
+ "when": "view == codecharacter-2022-codes && viewItem == sourceFolder",
+ "group": "inline"
+ }
+ ]
+ },
+ "views": {
+ "codecharacter-2022": [
+ {
+ "id": "codecharacter-2022-codes",
+ "name": "Local Source Code Files",
+ "icon": "media/icons.svg",
+ "contextualTitle": "Source Code Files"
+ },
+ {
+ "id": "codecharacter-2022-maps",
+ "name": "Local Maps",
+ "icon": "media/icons.svg",
+ "contextualTitle": "Map Files"
+ }
+ ]
+ },
+ "viewsWelcome": [
+ {
+ "view": "codecharacter-2022-codes",
+ "contents": "No local source file found.\n[Add Source File](command:codecharacter-2022.addSourceFile)"
+ },
+ {
+ "view": "codecharacter-2022-maps",
+ "contents": "No local map found.\n[Add Map File](command:codecharacter-2022.addMapFile)"
+ }
+ ]
+ },
+ "scripts": {
+ "vscode:prepublish": "yarn run package",
+ "compile": "webpack",
+ "watch": "webpack --watch",
+ "package": "webpack --mode production --devtool hidden-source-map",
+ "compile-tests": "tsc -p . --outDir out",
+ "watch-tests": "tsc -p . -w --outDir out",
+ "pretest": "yarn run compile-tests && yarn run compile && yarn run lint",
+ "lint": "eslint src --ext ts",
+ "test": "node ./out/test/runTest.js"
+ },
+ "devDependencies": {
+ "@types/glob": "^7.2.0",
+ "@types/mocha": "^9.0.0",
+ "@types/node": "14.x",
+ "@types/rimraf": "^3.0.2",
+ "@types/vscode": "^1.63.0",
+ "@typescript-eslint/eslint-plugin": "^5.9.1",
+ "@typescript-eslint/parser": "^5.9.1",
+ "@vscode/test-electron": "^2.0.3",
+ "eslint": "^8.6.0",
+ "glob": "^7.2.0",
+ "mocha": "^9.1.3",
+ "ts-loader": "^9.2.6",
+ "typescript": "^4.5.4",
+ "webpack": "^5.66.0",
+ "webpack-cli": "^4.9.1"
+ },
+ "dependencies": {
+ "@codecharacter-2022/map-designer": "workspace:^",
+ "@codecharacter-2022/renderer": "workspace:^",
+ "rimraf": "^3.0.2"
+ }
+}
diff --git a/packages/extension/src/executors/cExecutor.ts b/packages/extension/src/executors/cExecutor.ts
new file mode 100644
index 00000000..cc906826
--- /dev/null
+++ b/packages/extension/src/executors/cExecutor.ts
@@ -0,0 +1,80 @@
+import * as vscode from 'vscode';
+import * as fs from 'fs';
+import * as path from 'path';
+import * as os from 'os';
+import { spawn, spawnSync } from 'child_process';
+import {
+ getLogFromSimulatorLog,
+ outputChannel,
+ provideInitialInput,
+} from './executor';
+
+export class CCodeExecutor {
+ async execute(
+ mapData: Array>,
+ uri: vscode.Uri,
+ context: vscode.ExtensionContext,
+ ): Promise {
+ const executablePath = this._compile(uri);
+ const userExecutable = spawn(executablePath);
+ const simulatorExecutable = spawn(
+ path.join(context.globalStorageUri.fsPath, 'simulator'),
+ );
+ return new Promise((resolve, reject) => {
+ let simulatorLog = '';
+ outputChannel?.show();
+ userExecutable.stdout.on('data', data => {
+ simulatorExecutable.stdin.write(data);
+ outputChannel?.append(data.toString());
+ });
+ simulatorExecutable.stdout.on('data', data => {
+ userExecutable.stdin.write(data);
+ outputChannel?.append(data.toString());
+ });
+
+ userExecutable.stderr.on('data', data => {
+ outputChannel?.append(`[E] ${data.toString()}`);
+ });
+ simulatorExecutable.stderr.on('data', data => {
+ simulatorLog += data.toString();
+ outputChannel?.append(`[E] ${data.toString()}`);
+ });
+
+ userExecutable.on('close', () => {
+ simulatorExecutable.kill();
+ setTimeout(() => resolve(getLogFromSimulatorLog(simulatorLog)), 1000);
+ });
+ simulatorExecutable.on('close', () => {
+ userExecutable.kill();
+ setTimeout(() => resolve(getLogFromSimulatorLog(simulatorLog)), 1000);
+ });
+ userExecutable.on('error', err => {
+ reject(err);
+ });
+ simulatorExecutable.on('error', err => {
+ reject(err);
+ });
+
+ provideInitialInput(
+ mapData,
+ userExecutable.stdin,
+ simulatorExecutable.stdin,
+ );
+ });
+ }
+
+ private _compile(uri: vscode.Uri): string {
+ const tmpdir = fs.mkdtempSync(path.join(os.tmpdir(), 'cc_'));
+ const executablePath = path.join(tmpdir, 'main');
+ const child = spawnSync('gcc', ['-o', executablePath, uri.fsPath]);
+ outputChannel?.clear();
+ outputChannel?.append(child.stdout.toString());
+ outputChannel?.append(child.stderr.toString());
+ if (child.status !== 0) {
+ throw new Error('Compilation failed');
+ } else {
+ vscode.window.showInformationMessage('Compilation succeeded');
+ return executablePath;
+ }
+ }
+}
diff --git a/packages/extension/src/executors/cppExecutor.ts b/packages/extension/src/executors/cppExecutor.ts
new file mode 100644
index 00000000..c6878c63
--- /dev/null
+++ b/packages/extension/src/executors/cppExecutor.ts
@@ -0,0 +1,80 @@
+import * as vscode from 'vscode';
+import * as fs from 'fs';
+import * as path from 'path';
+import * as os from 'os';
+import { spawn, spawnSync } from 'child_process';
+import {
+ getLogFromSimulatorLog,
+ outputChannel,
+ provideInitialInput,
+} from './executor';
+
+export class CppCodeExecutor {
+ async execute(
+ mapData: Array>,
+ uri: vscode.Uri,
+ context: vscode.ExtensionContext,
+ ): Promise {
+ const executablePath = this._compile(uri);
+ const userExecutable = spawn(executablePath);
+ const simulatorExecutable = spawn(
+ path.join(context.globalStorageUri.fsPath, 'simulator'),
+ );
+ return new Promise((resolve, reject) => {
+ let simulatorLog = '';
+ outputChannel?.show();
+ userExecutable.stdout.on('data', data => {
+ simulatorExecutable.stdin.write(data);
+ outputChannel?.append(`>>> ${data.toString()}`);
+ });
+ simulatorExecutable.stdout.on('data', data => {
+ userExecutable.stdin.write(data);
+ outputChannel?.append(`<<< ${data.toString()}`);
+ });
+
+ userExecutable.stderr.on('data', data => {
+ outputChannel?.append(`[E] ${data.toString()}`);
+ });
+ simulatorExecutable.stderr.on('data', data => {
+ simulatorLog += data.toString();
+ outputChannel?.append(`[E] ${data.toString()}`);
+ });
+
+ userExecutable.on('close', () => {
+ simulatorExecutable.kill();
+ setTimeout(() => resolve(getLogFromSimulatorLog(simulatorLog)), 1000);
+ });
+ simulatorExecutable.on('close', () => {
+ userExecutable.kill();
+ setTimeout(() => resolve(getLogFromSimulatorLog(simulatorLog)), 1000);
+ });
+ userExecutable.on('error', err => {
+ reject(err);
+ });
+ simulatorExecutable.on('error', err => {
+ reject(err);
+ });
+
+ provideInitialInput(
+ mapData,
+ userExecutable.stdin,
+ simulatorExecutable.stdin,
+ );
+ });
+ }
+
+ private _compile(uri: vscode.Uri): string {
+ const tmpdir = fs.mkdtempSync(path.join(os.tmpdir(), 'cc_'));
+ const executablePath = path.join(tmpdir, 'main');
+ const child = spawnSync('g++', ['-o', executablePath, uri.fsPath]);
+ outputChannel?.clear();
+ outputChannel?.append(child.stdout.toString());
+ outputChannel?.append(child.stderr.toString());
+ if (child.status !== 0) {
+ throw new Error('Compilation failed');
+ } else {
+ vscode.window.showInformationMessage('Compilation succeeded');
+ return executablePath;
+ }
+ }
+}
diff --git a/packages/extension/src/executors/executor.ts b/packages/extension/src/executors/executor.ts
new file mode 100644
index 00000000..efa5e417
--- /dev/null
+++ b/packages/extension/src/executors/executor.ts
@@ -0,0 +1,119 @@
+import * as vscode from 'vscode';
+import { Writable } from 'stream';
+import { rendererPanel } from '../panels/rendererPanel';
+import { CCodeExecutor } from './cExecutor';
+import { CppCodeExecutor } from './cppExecutor';
+import { PythonCodeExecutor } from './pythonExecutor';
+import { JavaCodeExecutor } from './javaExecutor';
+
+export const outputChannel = vscode.window.createOutputChannel(
+ 'Code Character Executor',
+);
+
+export const provideInitialInput = (
+ mapData: Array>,
+ userStdin: Writable,
+ simulatorStdin: Writable,
+) => {
+ for (let writeable of [userStdin, simulatorStdin]) {
+ writeable.write('100 1000\n');
+ writeable.write('2\n');
+ writeable.write('10 3 3 3 1\n');
+ writeable.write('10 3 3 3 1\n');
+ writeable.write('2\n');
+ writeable.write('10 4 5 1 1\n');
+ writeable.write('10 6 5 1 1\n');
+ writeable.write('64 64 ');
+ for (let y = 0; y < mapData.length; y++) {
+ for (let x = 0; x < mapData[y].length; x++) {
+ writeable.write(`${mapData[y][x]} `);
+ }
+ }
+ writeable.write('\n');
+ }
+};
+
+export const getLogFromSimulatorLog = (log: string): string => {
+ const indexOfInit = log.indexOf('INIT');
+ const indexOfEnd = log.indexOf('END');
+ return log.substring(indexOfInit, indexOfEnd + 3);
+};
+
+class Executor {
+ cExecutor: CCodeExecutor;
+ cppExecutor: CppCodeExecutor;
+ javaExecutor: JavaCodeExecutor;
+ pythonExecutor: PythonCodeExecutor;
+
+ constructor() {
+ this.cExecutor = new CCodeExecutor();
+ this.cppExecutor = new CppCodeExecutor();
+ this.javaExecutor = new JavaCodeExecutor();
+ this.pythonExecutor = new PythonCodeExecutor();
+ }
+
+ async execute(
+ context: vscode.ExtensionContext,
+ mapData: Array>,
+ uri: vscode.Uri,
+ languageId: string,
+ ): Promise {
+ return new Promise((resolve, reject) => {
+ switch (languageId) {
+ case 'c':
+ this.cExecutor
+ .execute(mapData, uri, context)
+ .then(log => {
+ rendererPanel.renderLog(log, context);
+ vscode.window.showInformationMessage('Execution succeeded');
+ resolve();
+ })
+ .catch(err => {
+ reject(err);
+ vscode.window.showErrorMessage(`Execution failed: ${err}`);
+ });
+ break;
+ case 'cpp':
+ this.cppExecutor
+ .execute(mapData, uri, context)
+ .then(log => {
+ rendererPanel.renderLog(log, context);
+ vscode.window.showInformationMessage('Execution succeeded');
+ resolve();
+ })
+ .catch(err => {
+ reject(err);
+ });
+ break;
+ case 'java':
+ this.javaExecutor
+ .execute(mapData, uri, context)
+ .then(log => {
+ rendererPanel.renderLog(log, context);
+ vscode.window.showInformationMessage('Execution succeeded');
+ resolve();
+ })
+ .catch(err => {
+ reject(err);
+ });
+ break;
+ case 'python':
+ this.pythonExecutor
+ .execute(mapData, uri, context)
+ .then(log => {
+ rendererPanel.renderLog(log, context);
+ vscode.window.showInformationMessage('Execution succeeded');
+ resolve();
+ })
+ .catch(err => {
+ reject(err);
+ });
+ break;
+ default:
+ reject('Unsupported language');
+ }
+ });
+ }
+}
+
+export const executor = new Executor();
diff --git a/packages/extension/src/executors/javaExecutor.ts b/packages/extension/src/executors/javaExecutor.ts
new file mode 100644
index 00000000..074e02a9
--- /dev/null
+++ b/packages/extension/src/executors/javaExecutor.ts
@@ -0,0 +1,62 @@
+import * as vscode from 'vscode';
+import * as path from 'path';
+import { spawn } from 'child_process';
+import {
+ getLogFromSimulatorLog,
+ outputChannel,
+ provideInitialInput,
+} from './executor';
+
+export class JavaCodeExecutor {
+ async execute(
+ mapData: Array>,
+ uri: vscode.Uri,
+ context: vscode.ExtensionContext,
+ ): Promise {
+ const userExecutable = spawn('java', [uri.fsPath]);
+ const simulatorExecutable = spawn(
+ path.join(context.globalStorageUri.fsPath, 'simulator'),
+ );
+ return new Promise((resolve, reject) => {
+ let simulatorLog = '';
+ outputChannel?.show();
+ userExecutable.stdout.on('data', data => {
+ simulatorExecutable.stdin.write(data);
+ outputChannel?.append(`>>> ${data.toString()}`);
+ });
+ simulatorExecutable.stdout.on('data', data => {
+ userExecutable.stdin.write(data);
+ outputChannel?.append(`<<< ${data.toString()}`);
+ });
+
+ userExecutable.stderr.on('data', data => {
+ outputChannel?.append(`[E] ${data.toString()}`);
+ });
+ simulatorExecutable.stderr.on('data', data => {
+ simulatorLog += data.toString();
+ outputChannel?.append(`[E] ${data.toString()}`);
+ });
+
+ userExecutable.on('close', () => {
+ simulatorExecutable.kill();
+ setTimeout(() => resolve(getLogFromSimulatorLog(simulatorLog)), 1000);
+ });
+ simulatorExecutable.on('close', () => {
+ userExecutable.kill();
+ setTimeout(() => resolve(getLogFromSimulatorLog(simulatorLog)), 1000);
+ });
+ userExecutable.on('error', err => {
+ reject(err);
+ });
+ simulatorExecutable.on('error', err => {
+ reject(err);
+ });
+
+ provideInitialInput(
+ mapData,
+ userExecutable.stdin,
+ simulatorExecutable.stdin,
+ );
+ });
+ }
+}
diff --git a/packages/extension/src/executors/pythonExecutor.ts b/packages/extension/src/executors/pythonExecutor.ts
new file mode 100644
index 00000000..3d433637
--- /dev/null
+++ b/packages/extension/src/executors/pythonExecutor.ts
@@ -0,0 +1,62 @@
+import * as vscode from 'vscode';
+import * as path from 'path';
+import { spawn } from 'child_process';
+import {
+ getLogFromSimulatorLog,
+ outputChannel,
+ provideInitialInput,
+} from './executor';
+
+export class PythonCodeExecutor {
+ async execute(
+ mapData: Array>,
+ uri: vscode.Uri,
+ context: vscode.ExtensionContext,
+ ): Promise {
+ const userExecutable = spawn('python3', ['-u', uri.fsPath]);
+ const simulatorExecutable = spawn(
+ path.join(context.globalStorageUri.fsPath, 'simulator'),
+ );
+ return new Promise((resolve, reject) => {
+ let simulatorLog = '';
+ outputChannel?.show();
+ userExecutable.stdout.on('data', data => {
+ simulatorExecutable.stdin.write(data);
+ outputChannel?.append(`>>> ${data.toString()}`);
+ });
+ simulatorExecutable.stdout.on('data', data => {
+ userExecutable.stdin.write(data);
+ outputChannel?.append(`<<< ${data.toString()}`);
+ });
+
+ userExecutable.stderr.on('data', data => {
+ outputChannel?.append(`[E] ${data.toString()}`);
+ });
+ simulatorExecutable.stderr.on('data', data => {
+ simulatorLog += data.toString();
+ outputChannel?.append(`[E] ${data.toString()}`);
+ });
+
+ userExecutable.on('close', () => {
+ simulatorExecutable.kill();
+ setTimeout(() => resolve(getLogFromSimulatorLog(simulatorLog)), 1000);
+ });
+ simulatorExecutable.on('close', () => {
+ userExecutable.kill();
+ setTimeout(() => resolve(getLogFromSimulatorLog(simulatorLog)), 1000);
+ });
+ userExecutable.on('error', err => {
+ reject(err);
+ });
+ simulatorExecutable.on('error', err => {
+ reject(err);
+ });
+
+ provideInitialInput(
+ mapData,
+ userExecutable.stdin,
+ simulatorExecutable.stdin,
+ );
+ });
+ }
+}
diff --git a/packages/extension/src/extension.ts b/packages/extension/src/extension.ts
new file mode 100644
index 00000000..b0898728
--- /dev/null
+++ b/packages/extension/src/extension.ts
@@ -0,0 +1,64 @@
+import { MapProvider } from './providers/tree-data/mapProvider';
+import { SourceCodeProvider } from './providers/tree-data/sourceCodeProvider';
+import * as path from 'path';
+import * as fs from 'fs';
+import * as vscode from 'vscode';
+import fetch from 'node-fetch';
+
+export function activate(context: vscode.ExtensionContext) {
+ console.log('CodeCharacter 2022 extension is now active');
+
+ fetch(
+ 'https://api.github.com/repos/delta/codecharacter-simulator-2022/releases/latest',
+ )
+ .then(res => res.json())
+ .then(async res => {
+ const createdAt = new Date(res.created_at);
+ const existingSimulatorReleaseTimestamp = context.globalState.get(
+ 'simulatorReleaseTimestamp',
+ );
+ if (
+ existingSimulatorReleaseTimestamp === undefined ||
+ existingSimulatorReleaseTimestamp < createdAt ||
+ fs.existsSync(
+ path.join(context.globalStorageUri.fsPath, 'simulator'),
+ ) === false
+ ) {
+ vscode.window.showInformationMessage(
+ `CodeCharacter 2022 simulator is out of date. Updating to version ${res.tag_name}...`,
+ );
+ const simulatorBinary = await fetch(res.assets[0].browser_download_url);
+ const fileStream = fs.createWriteStream(
+ path.join(context.globalStorageUri.fsPath, 'simulator'),
+ );
+ await new Promise((resolve, reject) => {
+ simulatorBinary?.body?.pipe(fileStream);
+ simulatorBinary?.body?.on('error', reject);
+ fileStream.on('finish', resolve);
+ });
+ fs.chmodSync(
+ path.join(context.globalStorageUri.fsPath, 'simulator'),
+ '755',
+ );
+ context.globalState.update('simulatorReleaseTimestamp', createdAt);
+ vscode.window.showInformationMessage(
+ `Simulator updated to version ${res.tag_name}`,
+ );
+ } else {
+ vscode.window.showInformationMessage('Simulator binary is up to date');
+ }
+ });
+ vscode.commands.executeCommand('codecharacter-2022-codes.focus');
+
+ const mapProvider = new MapProvider(context);
+ vscode.window.createTreeView('codecharacter-2022-maps', {
+ treeDataProvider: mapProvider,
+ });
+
+ const sourceCodeProvider = new SourceCodeProvider(context);
+ vscode.window.createTreeView('codecharacter-2022-codes', {
+ treeDataProvider: sourceCodeProvider,
+ });
+}
+
+export function deactivate() {}
diff --git a/packages/extension/src/pages/mapDesignerStatic.ts b/packages/extension/src/pages/mapDesignerStatic.ts
new file mode 100644
index 00000000..e8a0b6d8
--- /dev/null
+++ b/packages/extension/src/pages/mapDesignerStatic.ts
@@ -0,0 +1,43 @@
+import * as ReactDOM from 'react-dom';
+import * as React from 'react';
+import {
+ MapDesignerComponent,
+ MapDesignerUtils,
+} from '@codecharacter-2022/map-designer';
+
+type VSCode = {
+ postMessage(message: any): void;
+ getState(): any;
+ setState(state: any): void;
+};
+
+declare var vscode: VSCode;
+
+const saveMapCallback = (mapData: Array>) => {
+ vscode.postMessage({
+ command: 'saveMap',
+ mapData: mapData,
+ });
+};
+
+window.addEventListener('message', event => {
+ const message = event.data;
+ switch (message.command) {
+ case 'loadMap':
+ const mapData = message.mapData;
+ MapDesignerUtils.preloadMap(mapData);
+ MapDesignerUtils.loadMap(mapData);
+ break;
+ default:
+ break;
+ }
+});
+
+ReactDOM.render(
+ React.createElement(MapDesignerComponent, { saveMapCallback }),
+ document.getElementById('root'),
+);
+
+vscode.postMessage({
+ command: 'ready',
+});
diff --git a/packages/extension/src/pages/rendererStatic.ts b/packages/extension/src/pages/rendererStatic.ts
new file mode 100644
index 00000000..cde1ee37
--- /dev/null
+++ b/packages/extension/src/pages/rendererStatic.ts
@@ -0,0 +1,32 @@
+import * as ReactDOM from 'react-dom';
+import * as React from 'react';
+import { RendererComponent, RendererUtils } from '@codecharacter-2022/renderer';
+
+type VSCode = {
+ postMessage(message: any): void;
+ getState(): any;
+ setState(state: any): void;
+};
+
+declare var vscode: VSCode;
+
+window.addEventListener('message', event => {
+ const message = event.data;
+ switch (message.command) {
+ case 'loadLog':
+ const log = message.log;
+ RendererUtils.loadLog(log);
+ break;
+ default:
+ break;
+ }
+});
+
+ReactDOM.render(
+ React.createElement(RendererComponent),
+ document.getElementById('root'),
+);
+
+vscode.postMessage({
+ command: 'ready',
+});
diff --git a/packages/extension/src/panels/mapDesignerPanel.ts b/packages/extension/src/panels/mapDesignerPanel.ts
new file mode 100644
index 00000000..9b8a6eb6
--- /dev/null
+++ b/packages/extension/src/panels/mapDesignerPanel.ts
@@ -0,0 +1,181 @@
+import * as vscode from 'vscode';
+import * as path from 'path';
+import * as fs from 'fs';
+
+export class MapDesignerPanel {
+ panel: vscode.WebviewPanel | undefined;
+
+ currentMapFilePath!: string;
+
+ latestMapData!: Array>;
+
+ context!: vscode.ExtensionContext;
+
+ loadMap(mapFile: string, context: vscode.ExtensionContext) {
+ this.context = context;
+ this.currentMapFilePath = path.join(
+ context.globalStorageUri.fsPath,
+ 'data',
+ 'maps',
+ mapFile,
+ );
+
+ if (!this.panel) {
+ this.panel = vscode.window.createWebviewPanel(
+ 'mapDesignerPanel',
+ 'Map Designer',
+ vscode.ViewColumn.One,
+ {
+ enableScripts: true,
+ retainContextWhenHidden: true,
+ },
+ );
+
+ const staticScriptPath = vscode.Uri.file(
+ path.join(context.extensionPath, 'dist', 'map-designer-static.js'),
+ );
+
+ const assetsPath = vscode.Uri.file(
+ path.join(context.extensionPath, 'assets'),
+ );
+
+ const staticScriptSrc = this.panel.webview.asWebviewUri(staticScriptPath);
+ const assetsSrc = this.panel.webview.asWebviewUri(assetsPath);
+
+ this.panel.webview.html = this._getMapDesignerWebView(
+ staticScriptSrc,
+ assetsSrc,
+ );
+
+ this.panel.onDidDispose(() => {
+ this.panel = undefined;
+ });
+
+ this.panel.webview.onDidReceiveMessage(message => {
+ switch (message.command) {
+ case 'saveMap':
+ fs.writeFile(
+ this.currentMapFilePath,
+ JSON.stringify(message.mapData),
+ err => {
+ if (err) {
+ vscode.window.showErrorMessage(err.message);
+ } else {
+ vscode.commands.executeCommand(
+ 'codecharacter-2022.refreshMaps',
+ );
+ vscode.window.showInformationMessage(
+ 'Map saved successfully',
+ );
+ }
+ },
+ );
+ break;
+ case 'ready':
+ this.panel?.webview.postMessage({
+ command: 'loadMap',
+ mapData: this.latestMapData,
+ });
+ break;
+ default:
+ vscode.window.showInformationMessage('Message not recognized');
+ break;
+ }
+ });
+ } else {
+ this.panel.reveal();
+ }
+
+ fs.readFile(this.currentMapFilePath, (err, data) => {
+ if (err) {
+ vscode.window.showErrorMessage(err.message);
+ }
+ if (data && this.panel) {
+ try {
+ this.latestMapData = JSON.parse(data.toString());
+ } catch (e) {
+ vscode.window.showErrorMessage('Map file is not valid JSON');
+ return;
+ }
+ this.panel.title = `${mapFile} (Map)`;
+ this.panel.iconPath = vscode.Uri.file(
+ path.join(context.extensionPath, 'media', 'icon.svg'),
+ );
+ this.panel.webview.postMessage({
+ command: 'loadMap',
+ mapData: this.latestMapData,
+ });
+ }
+ });
+ }
+
+ closePanelOnDelete(fileName: string) {
+ if (this.panel) {
+ if (
+ this.currentMapFilePath ===
+ path.join(
+ this.context.globalStorageUri.fsPath,
+ 'data',
+ 'maps',
+ fileName,
+ )
+ ) {
+ this.panel.dispose();
+ }
+ }
+ }
+
+ _getMapDesignerWebView(staticScriptSrc: vscode.Uri, assetsSrc: vscode.Uri) {
+ return `
+
+
+
+
+ Map Designer
+
+
+
+
+
+
+
+
+
+
+
+ `;
+ }
+}
+
+export const mapDesignerPanel = new MapDesignerPanel();
diff --git a/packages/extension/src/panels/rendererPanel.ts b/packages/extension/src/panels/rendererPanel.ts
new file mode 100644
index 00000000..c1c7ea35
--- /dev/null
+++ b/packages/extension/src/panels/rendererPanel.ts
@@ -0,0 +1,124 @@
+import * as vscode from 'vscode';
+import * as path from 'path';
+
+class RendererPanel {
+ panel: vscode.WebviewPanel | undefined;
+
+ renderLog(log: string, context: vscode.ExtensionContext) {
+ let logLocal: string = log;
+ if (!this.panel) {
+ this.panel = vscode.window.createWebviewPanel(
+ 'rendererPanel',
+ 'Renderer',
+ vscode.ViewColumn.Beside,
+ {
+ enableScripts: true,
+ retainContextWhenHidden: true,
+ },
+ );
+
+ const staticScriptPath = vscode.Uri.file(
+ path.join(context.extensionPath, 'dist', 'renderer-static.js'),
+ );
+
+ const assetsPath = vscode.Uri.file(
+ path.join(context.extensionPath, 'assets'),
+ );
+
+ const staticScriptSrc = this.panel.webview.asWebviewUri(staticScriptPath);
+ const assetsSrc = this.panel.webview.asWebviewUri(assetsPath);
+
+ this.panel.webview.html = this._getRendererWebView(
+ staticScriptSrc,
+ assetsSrc,
+ );
+
+ this.panel.iconPath = vscode.Uri.file(
+ path.join(context.extensionPath, 'media', 'icon.svg'),
+ );
+
+ this.panel.onDidDispose(() => {
+ this.panel = undefined;
+ });
+ } else {
+ this.panel.reveal(vscode.ViewColumn.Beside);
+ }
+
+ this.panel?.webview.postMessage({
+ command: 'loadLog',
+ log: logLocal,
+ });
+ this.panel.webview.onDidReceiveMessage(message => {
+ switch (message.command) {
+ case 'ready':
+ setTimeout(() => {
+ this.panel?.webview.postMessage({
+ command: 'loadLog',
+ log: logLocal,
+ });
+ logLocal = '';
+ }, 3000);
+ break;
+ default:
+ break;
+ }
+ });
+ }
+
+ private _getRendererWebView(
+ staticScriptSrc: vscode.Uri,
+ assetsSrc: vscode.Uri,
+ ) {
+ return `
+
+
+
+
+ Renderer
+
+
+
+
+
+
+
+
+
+
+
+ `;
+ }
+}
+
+export const rendererPanel = new RendererPanel();
diff --git a/packages/extension/src/providers/tree-data/mapProvider.ts b/packages/extension/src/providers/tree-data/mapProvider.ts
new file mode 100644
index 00000000..945cbdc6
--- /dev/null
+++ b/packages/extension/src/providers/tree-data/mapProvider.ts
@@ -0,0 +1,149 @@
+import * as fs from 'fs';
+import * as path from 'path';
+import * as vscode from 'vscode';
+import { mapDesignerPanel } from '../../panels/mapDesignerPanel';
+
+export class CodeCharacterMap extends vscode.TreeItem {
+ constructor(public readonly fileName: string) {
+ super(fileName.split('.json')[0], vscode.TreeItemCollapsibleState.None);
+ this.fileName = fileName;
+ }
+
+ iconPath = new vscode.ThemeIcon('globe');
+
+ command = {
+ command: 'codecharacter-2022.openMapFile',
+ title: 'Open Map File',
+ arguments: [this.fileName],
+ };
+
+ contextValue = 'map';
+}
+
+export class MapProvider implements vscode.TreeDataProvider {
+ panel: vscode.WebviewPanel | undefined;
+
+ latestMapData: Array> | undefined;
+
+ constructor(private readonly context: vscode.ExtensionContext) {
+ context.subscriptions.push(
+ vscode.commands.registerCommand('codecharacter-2022.refreshMaps', () =>
+ this.refresh(),
+ ),
+ );
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ 'codecharacter-2022.openMapFile',
+ (mapFile: string) => {
+ mapDesignerPanel.loadMap(mapFile, context);
+ },
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ 'codecharacter-2022.deleteMapFile',
+ (map: CodeCharacterMap) => {
+ const mapPath = path.join(
+ context.globalStorageUri.fsPath,
+ 'data',
+ 'maps',
+ map.fileName,
+ );
+ fs.unlink(mapPath, err => {
+ if (err) {
+ vscode.window.showErrorMessage(err.message);
+ } else {
+ vscode.commands.executeCommand('codecharacter-2022.refreshMaps');
+ mapDesignerPanel.closePanelOnDelete(map.fileName);
+ vscode.window.showInformationMessage(
+ `Map file ${map.fileName} deleted successfully`,
+ );
+ }
+ });
+ },
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand('codecharacter-2022.addMapFile', () => {
+ vscode.window
+ .showInputBox({
+ prompt: 'Enter the name of the file',
+ placeHolder: `map`,
+ })
+ .then((fileName?: string) => {
+ if (!fileName || !/^[A-Za-z0-9_-]+$/.test(fileName)) {
+ throw new Error('Invalid file name');
+ }
+ const mapFilePath = path.join(
+ context.globalStorageUri.fsPath,
+ 'data',
+ 'maps',
+ `${fileName}.json`,
+ );
+ let defaultMapData = [];
+ for (let i = 0; i < 64; i++) {
+ let row = [];
+ for (let j = 0; j < 64; j++) {
+ row.push(0);
+ }
+ defaultMapData.push(row);
+ }
+ fs.writeFile(mapFilePath, JSON.stringify(defaultMapData), err => {
+ if (err) {
+ vscode.window.showErrorMessage(err.message);
+ } else {
+ vscode.commands.executeCommand(
+ 'codecharacter-2022.refreshMaps',
+ );
+ vscode.commands.executeCommand(
+ 'codecharacter-2022.openMapFile',
+ `${fileName}.json`,
+ );
+ vscode.window.showInformationMessage(
+ 'Map file created successfully',
+ );
+ }
+ });
+ });
+ }),
+ );
+ }
+
+ private _onDidChangeTreeData: vscode.EventEmitter<
+ CodeCharacterMap | undefined
+ > = new vscode.EventEmitter();
+
+ readonly onDidChangeTreeData: vscode.Event =
+ this._onDidChangeTreeData.event;
+
+ refresh(): void {
+ this._onDidChangeTreeData.fire(undefined);
+ }
+
+ getTreeItem(element: CodeCharacterMap): vscode.TreeItem {
+ return element;
+ }
+
+ getChildren(element?: CodeCharacterMap): Thenable {
+ const mapsFolderPath = path.join(
+ this.context.globalStorageUri.fsPath,
+ 'data',
+ 'maps',
+ );
+ if (!fs.existsSync(mapsFolderPath)) {
+ fs.mkdirSync(mapsFolderPath, { recursive: true });
+ }
+ return new Promise((resolve, reject) => {
+ fs.readdir(mapsFolderPath, (err, files) => {
+ if (err) {
+ reject(err);
+ } else {
+ const mapFiles = files.filter(file => file.endsWith('.json'));
+ resolve(mapFiles.map(file => new CodeCharacterMap(file)));
+ }
+ });
+ });
+ }
+}
diff --git a/packages/extension/src/providers/tree-data/sourceCodeProvider.ts b/packages/extension/src/providers/tree-data/sourceCodeProvider.ts
new file mode 100644
index 00000000..48a8e6fa
--- /dev/null
+++ b/packages/extension/src/providers/tree-data/sourceCodeProvider.ts
@@ -0,0 +1,260 @@
+import * as vscode from 'vscode';
+import * as fs from 'fs';
+import path = require('path');
+import { executor } from '../../executors/executor';
+import rimraf = require('rimraf');
+
+enum TreeItemType {
+ file,
+ folder,
+}
+
+export class SourceTreeItem extends vscode.TreeItem {
+ children: SourceTreeItem[] = [];
+
+ constructor(
+ readonly itemType: TreeItemType,
+ readonly itemPath: string,
+ readonly language: string,
+ readonly name?: string,
+ ) {
+ super(
+ name
+ ? vscode.Uri.file(path.join(itemPath, `${name}.${language}`))
+ : vscode.Uri.file(itemPath),
+ vscode.TreeItemCollapsibleState.None,
+ );
+ if (this.itemType === TreeItemType.folder) {
+ this.collapsibleState = vscode.TreeItemCollapsibleState.Collapsed;
+ this.iconPath = vscode.ThemeIcon.Folder;
+ this.contextValue = 'sourceFolder';
+
+ fs.readdir(this.itemPath, (err, files) => {
+ if (err) {
+ vscode.window.showErrorMessage(
+ `Error reading directory ${this.itemPath}`,
+ );
+ return;
+ } else {
+ files = files.filter(file =>
+ fs.statSync(path.join(this.itemPath, file)).isDirectory(),
+ );
+ this.children = files.map(file => {
+ const filePath = path.join(this.itemPath, file);
+ return new SourceTreeItem(
+ TreeItemType.file,
+ filePath,
+ this.language,
+ file,
+ );
+ });
+ }
+ });
+ } else {
+ this.collapsibleState = vscode.TreeItemCollapsibleState.None;
+ this.iconPath = new vscode.ThemeIcon('file');
+ this.contextValue = 'sourceFile';
+ this.command = {
+ command: 'codecharacter-2022.openCodeFile',
+ title: 'Open Code',
+ arguments: [this.name, this.language],
+ };
+ }
+ }
+}
+
+export class SourceCodeProvider
+ implements vscode.TreeDataProvider
+{
+ panel: vscode.WebviewPanel | undefined;
+ children: SourceTreeItem[] = [];
+
+ constructor(private readonly context: vscode.ExtensionContext) {
+ this._populateChildren(context);
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand('codecharacter-2022.refreshCodes', () =>
+ this.refresh(),
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ 'codecharacter-2022.openCodeFile',
+ (name: string, language: string) => {
+ const codeFilePath = path.join(
+ context.globalStorageUri.fsPath,
+ 'data',
+ 'codes',
+ language,
+ name,
+ `${name}.${language}`,
+ );
+ const codeFileUri = vscode.Uri.file(codeFilePath);
+ vscode.workspace.openTextDocument(codeFileUri).then(doc => {
+ vscode.window.showTextDocument(doc);
+ });
+ },
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ 'codecharacter-2022.addCodeFile',
+ (folder: SourceTreeItem) => {
+ vscode.window
+ .showInputBox({
+ prompt: 'Enter the name of the file (without any extension)',
+ placeHolder: 'file',
+ })
+ .then((fileName?: string) => {
+ if (!fileName || !/^[A-Za-z0-9_-]+$/.test(fileName)) {
+ throw new Error('Invalid file name');
+ }
+ const folderPath = path.join(folder.itemPath, fileName);
+ fs.mkdir(folderPath, err => {
+ if (err) {
+ vscode.window.showErrorMessage(
+ `Error creating directory ${folderPath}`,
+ );
+ return;
+ }
+ const codeFilePath = path.join(
+ folderPath,
+ `${fileName}.${folder.language}`,
+ );
+ fs.writeFile(codeFilePath, '', err => {
+ if (err) {
+ vscode.window.showErrorMessage(
+ `Error writing file ${codeFilePath}`,
+ );
+ return;
+ } else {
+ vscode.commands.executeCommand(
+ 'codecharacter-2022.refreshCodes',
+ );
+ vscode.window.showInformationMessage(
+ `Created file ${codeFilePath}`,
+ );
+ }
+ });
+ });
+ });
+ },
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ 'codecharacter-2022.deleteCodeFile',
+ (codeFile: SourceTreeItem) => {
+ const folderPath = codeFile.itemPath;
+ rimraf(folderPath, err => {
+ if (err) {
+ vscode.window.showErrorMessage(
+ `Error deleting directory ${folderPath}`,
+ );
+ return;
+ }
+ vscode.window.showInformationMessage(
+ `Deleted code file ${path.basename(codeFile.itemPath)}`,
+ );
+ vscode.commands.executeCommand('codecharacter-2022.refreshCodes');
+ });
+ },
+ ),
+ );
+
+ context.subscriptions.push(
+ vscode.commands.registerCommand(
+ 'codecharacter-2022.runCode',
+ async () => {
+ if (!vscode.window.activeTextEditor) {
+ return;
+ }
+ let { document } = vscode.window.activeTextEditor;
+ const maps = fs.readdirSync(
+ path.join(context.globalStorageUri.fsPath, 'data', 'maps'),
+ );
+ vscode.window.showQuickPick(maps).then(async map => {
+ if (!map) {
+ return;
+ }
+ const mapPath = path.join(
+ context.globalStorageUri.fsPath,
+ 'data',
+ 'maps',
+ map,
+ );
+ const mapData = JSON.parse(fs.readFileSync(mapPath, 'utf8'));
+ executor
+ .execute(context, mapData, document.uri, document.languageId)
+ .then(() => vscode.window.showInformationMessage('Code executed'))
+ .catch(() =>
+ vscode.window.showErrorMessage('Error executing code'),
+ );
+ });
+ },
+ ),
+ );
+ }
+
+ private async _populateChildren(
+ context: vscode.ExtensionContext,
+ ): Promise {
+ return new Promise((resolve, reject) => {
+ const codesDirectoryPath = path.join(
+ context.globalStorageUri.fsPath,
+ 'data',
+ 'codes',
+ );
+ for (const language of ['c', 'cpp', 'java', 'py']) {
+ if (!fs.existsSync(path.join(codesDirectoryPath, language))) {
+ fs.mkdirSync(path.join(codesDirectoryPath, language), {
+ recursive: true,
+ });
+ }
+ }
+ fs.readdir(codesDirectoryPath, (err, languages) => {
+ if (err) {
+ vscode.window.showErrorMessage('Error reading code folders');
+ reject();
+ }
+ this.children = languages.map(
+ language =>
+ new SourceTreeItem(
+ TreeItemType.folder,
+ path.join(codesDirectoryPath, language),
+ language,
+ ),
+ );
+ resolve();
+ });
+ });
+ }
+
+ private _onDidChangeTreeData: vscode.EventEmitter<
+ SourceTreeItem | undefined
+ > = new vscode.EventEmitter();
+
+ readonly onDidChangeTreeData: vscode.Event =
+ this._onDidChangeTreeData.event;
+
+ refresh(): void {
+ this._onDidChangeTreeData.fire(undefined);
+ }
+
+ getTreeItem(element: SourceTreeItem): vscode.TreeItem {
+ return element;
+ }
+
+ getChildren(element?: SourceTreeItem): Thenable {
+ return new Promise(async resolve => {
+ await this._populateChildren(this.context);
+ if (!element) {
+ resolve(this.children);
+ }
+ resolve(element?.children ?? []);
+ });
+ }
+}
diff --git a/packages/extension/tsconfig.json b/packages/extension/tsconfig.json
new file mode 100644
index 00000000..b2002e04
--- /dev/null
+++ b/packages/extension/tsconfig.json
@@ -0,0 +1,15 @@
+{
+ "compilerOptions": {
+ "module": "commonjs",
+ "target": "ES2020",
+ "lib": ["ES2020", "DOM"],
+ "sourceMap": true,
+ "rootDir": "src",
+ "strict": true /* enable all strict type-checking options */
+ /* Additional Checks */
+ // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */
+ // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */
+ // "noUnusedParameters": true, /* Report errors on unused parameters. */
+ },
+ "exclude": ["node_modules", ".vscode-test"]
+}
diff --git a/packages/extension/webpack.config.js b/packages/extension/webpack.config.js
new file mode 100644
index 00000000..5e4eaf58
--- /dev/null
+++ b/packages/extension/webpack.config.js
@@ -0,0 +1,110 @@
+//@ts-check
+
+'use strict';
+
+const path = require('path');
+
+//@ts-check
+/** @typedef {import('webpack').Configuration} WebpackConfig **/
+
+/** @type WebpackConfig */
+const extensionConfig = {
+ target: 'node', // vscode extensions run in a Node.js-context 📖 -> https://webpack.js.org/configuration/node/
+ mode: 'none', // this leaves the source code as close as possible to the original (when packaging we set this to 'production')
+
+ entry: './src/extension.ts', // the entry point of this extension, 📖 -> https://webpack.js.org/configuration/entry-context/
+ output: {
+ // the bundle is stored in the 'dist' folder (check package.json), 📖 -> https://webpack.js.org/configuration/output/
+ path: path.resolve(__dirname, 'dist'),
+ filename: 'extension.js',
+ libraryTarget: 'commonjs2',
+ },
+ externals: {
+ vscode: 'commonjs vscode', // the vscode-module is created on-the-fly and must be excluded. Add other modules that cannot be webpack'ed, 📖 -> https://webpack.js.org/configuration/externals/
+ // modules added here also need to be added in the .vscodeignore file
+ },
+ resolve: {
+ // support reading TypeScript and JavaScript files, 📖 -> https://github.com/TypeStrong/ts-loader
+ extensions: ['.ts', '.js'],
+ },
+ module: {
+ rules: [
+ {
+ test: /\.ts$/,
+ exclude: /node_modules/,
+ use: [
+ {
+ loader: 'ts-loader',
+ },
+ ],
+ },
+ ],
+ },
+ devtool: 'nosources-source-map',
+ infrastructureLogging: {
+ level: 'log', // enables logging required for problem matchers
+ },
+};
+
+/** @type WebpackConfig */
+const mapDesignerStaticConfig = {
+ target: 'web',
+ mode: 'production',
+ entry: './src/pages/mapDesignerStatic.ts',
+ output: {
+ path: path.resolve(__dirname, 'dist'),
+ filename: 'map-designer-static.js',
+ libraryTarget: 'umd',
+ library: 'static',
+ },
+ resolve: {
+ extensions: ['.ts', '.tsx', '.js', '.jsx'],
+ },
+ module: {
+ rules: [
+ {
+ test: /\.ts$/,
+ exclude: /node_modules/,
+ use: [
+ {
+ loader: 'ts-loader',
+ },
+ ],
+ },
+ ],
+ },
+};
+
+/** @type WebpackConfig */
+const rendererStaticConfig = {
+ target: 'web',
+ mode: 'production',
+ entry: './src/pages/rendererStatic.ts',
+ output: {
+ path: path.resolve(__dirname, 'dist'),
+ filename: 'renderer-static.js',
+ libraryTarget: 'umd',
+ library: 'static',
+ },
+ resolve: {
+ extensions: ['.ts', '.tsx', '.js', '.jsx'],
+ },
+ module: {
+ rules: [
+ {
+ test: /\.ts$/,
+ exclude: /node_modules/,
+ use: [
+ {
+ loader: 'ts-loader',
+ },
+ ],
+ },
+ ],
+ },
+};
+module.exports = [
+ extensionConfig,
+ mapDesignerStaticConfig,
+ rendererStaticConfig,
+];
diff --git a/packages/map-designer/package.json b/packages/map-designer/package.json
index 5af9304a..baddd61e 100644
--- a/packages/map-designer/package.json
+++ b/packages/map-designer/package.json
@@ -4,7 +4,7 @@
"license": "MIT",
"author": "Delta Force",
"version": "2022.0.0",
- "main": "./dist/codecharacter-map-designer-2022.es.js",
+ "main": "./dist/codecharacter-map-designer-2022.umd.js",
"module": "./dist/codecharacter-map-designer-2022.es.js",
"types": "./dist/src/index.d.ts",
"files": [
@@ -12,7 +12,8 @@
],
"exports": {
".": {
- "import": "./dist/codecharacter-map-designer-2022.es.js"
+ "import": "./dist/codecharacter-map-designer-2022.es.js",
+ "require": "./dist/codecharacter-map-designer-2022.umd.js"
}
},
"scripts": {
diff --git a/packages/map-designer/vite.prod.config.ts b/packages/map-designer/vite.prod.config.ts
index 672382fd..b3e988ce 100644
--- a/packages/map-designer/vite.prod.config.ts
+++ b/packages/map-designer/vite.prod.config.ts
@@ -7,7 +7,7 @@ export default defineConfig({
plugins: [dts()],
build: {
lib: {
- formats: ['es'],
+ formats: ['es', 'umd'],
name: 'codecharacter-map-designer-2022',
entry: path.resolve(__dirname, 'src/index.ts'),
fileName: 'codecharacter-map-designer-2022',
@@ -16,12 +16,12 @@ export default defineConfig({
external: ['phaser', 'lit', 'react'],
plugins: [
replace({
- 'typeof CANVAS_RENDERER': "'true'",
- 'typeof WEBGL_RENDERER': "'true'",
- 'typeof EXPERIMENTAL': "'false'",
- 'typeof PLUGIN_CAMERA3D': "'false'",
- 'typeof PLUGIN_FBINSTANT': "'false'",
- 'typeof FEATURE_SOUND': "'false'",
+ 'typeof CANVAS_RENDERER': 'false',
+ 'typeof WEBGL_RENDERER': 'false',
+ 'typeof EXPERIMENTAL': 'false',
+ 'typeof PLUGIN_CAMERA3D': 'false',
+ 'typeof PLUGIN_FBINSTANT': 'false',
+ 'typeof FEATURE_SOUND': 'false',
preventAssignment: true,
}),
],
diff --git a/packages/renderer/package.json b/packages/renderer/package.json
index c1cea268..1d0ef3bb 100644
--- a/packages/renderer/package.json
+++ b/packages/renderer/package.json
@@ -4,7 +4,7 @@
"license": "MIT",
"author": "Delta Force",
"version": "2022.0.0",
- "main": "./dist/codecharacter-renderer-2022.es.js",
+ "main": "./dist/codecharacter-renderer-2022.umd.js",
"module": "./dist/codecharacter-renderer-2022.es.js",
"types": "./dist/src/index.d.ts",
"files": [
@@ -12,7 +12,8 @@
],
"exports": {
".": {
- "import": "./dist/codecharacter-renderer-2022.es.js"
+ "import": "./dist/codecharacter-renderer-2022.es.js",
+ "require": "./dist/codecharacter-renderer-2022.umd.js"
}
},
"scripts": {
diff --git a/packages/renderer/vite.prod.config.ts b/packages/renderer/vite.prod.config.ts
index f262485f..31e4b5db 100644
--- a/packages/renderer/vite.prod.config.ts
+++ b/packages/renderer/vite.prod.config.ts
@@ -7,7 +7,7 @@ export default defineConfig({
plugins: [dts()],
build: {
lib: {
- formats: ['es'],
+ formats: ['es', 'umd'],
name: 'codecharacter-renderer-2022',
entry: path.resolve(__dirname, 'src/index.ts'),
fileName: 'codecharacter-renderer-2022',
@@ -16,12 +16,12 @@ export default defineConfig({
external: ['phaser', 'lit', 'react'],
plugins: [
replace({
- 'typeof CANVAS_RENDERER': "'true'",
- 'typeof WEBGL_RENDERER': "'true'",
- 'typeof EXPERIMENTAL': "'false'",
- 'typeof PLUGIN_CAMERA3D': "'false'",
- 'typeof PLUGIN_FBINSTANT': "'false'",
- 'typeof FEATURE_SOUND': "'false'",
+ 'typeof CANVAS_RENDERER': 'false',
+ 'typeof WEBGL_RENDERER': 'false',
+ 'typeof EXPERIMENTAL': 'false',
+ 'typeof PLUGIN_CAMERA3D': 'false',
+ 'typeof PLUGIN_FBINSTANT': 'false',
+ 'typeof FEATURE_SOUND': 'false',
preventAssignment: true,
}),
],
diff --git a/vite.prod.config.ts b/vite.prod.config.ts
index b8ba73a6..e3824aeb 100644
--- a/vite.prod.config.ts
+++ b/vite.prod.config.ts
@@ -20,12 +20,12 @@ export default defineConfig({
rollupOptions: {
plugins: [
replace({
- 'typeof CANVAS_RENDERER': "'true'",
- 'typeof WEBGL_RENDERER': "'true'",
- 'typeof EXPERIMENTAL': "'false'",
- 'typeof PLUGIN_CAMERA3D': "'false'",
- 'typeof PLUGIN_FBINSTANT': "'false'",
- 'typeof FEATURE_SOUND': "'false'",
+ 'typeof CANVAS_RENDERER': 'false',
+ 'typeof WEBGL_RENDERER': 'false',
+ 'typeof EXPERIMENTAL': 'false',
+ 'typeof PLUGIN_CAMERA3D': 'false',
+ 'typeof PLUGIN_FBINSTANT': 'false',
+ 'typeof FEATURE_SOUND': 'false',
preventAssignment: true,
}),
html({
diff --git a/yarn.lock b/yarn.lock
index 635d1289..184cedf1 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1614,7 +1614,32 @@ __metadata:
languageName: unknown
linkType: soft
-"@codecharacter-2022/map-designer@workspace:packages/map-designer":
+"@codecharacter-2022/extension@workspace:packages/extension":
+ version: 0.0.0-use.local
+ resolution: "@codecharacter-2022/extension@workspace:packages/extension"
+ dependencies:
+ "@codecharacter-2022/map-designer": "workspace:^"
+ "@codecharacter-2022/renderer": "workspace:^"
+ "@types/glob": ^7.2.0
+ "@types/mocha": ^9.0.0
+ "@types/node": 14.x
+ "@types/rimraf": ^3.0.2
+ "@types/vscode": ^1.63.0
+ "@typescript-eslint/eslint-plugin": ^5.9.1
+ "@typescript-eslint/parser": ^5.9.1
+ "@vscode/test-electron": ^2.0.3
+ eslint: ^8.6.0
+ glob: ^7.2.0
+ mocha: ^9.1.3
+ rimraf: ^3.0.2
+ ts-loader: ^9.2.6
+ typescript: ^4.5.4
+ webpack: ^5.66.0
+ webpack-cli: ^4.9.1
+ languageName: unknown
+ linkType: soft
+
+"@codecharacter-2022/map-designer@workspace:^, @codecharacter-2022/map-designer@workspace:packages/map-designer":
version: 0.0.0-use.local
resolution: "@codecharacter-2022/map-designer@workspace:packages/map-designer"
dependencies:
@@ -1638,7 +1663,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@codecharacter-2022/renderer@workspace:packages/renderer":
+"@codecharacter-2022/renderer@workspace:^, @codecharacter-2022/renderer@workspace:packages/renderer":
version: 0.0.0-use.local
resolution: "@codecharacter-2022/renderer@workspace:packages/renderer"
dependencies:
@@ -1670,6 +1695,7 @@ __metadata:
dependencies:
"@babel/core": ^7.16.5
"@codecharacter-2022/client": "workspace:packages/client"
+ "@codecharacter-2022/extension": "workspace:packages/extension"
"@codecharacter-2022/map-designer": "workspace:packages/map-designer"
"@codecharacter-2022/renderer": "workspace:packages/renderer"
"@fortawesome/fontawesome-svg-core": ^1.2.36
@@ -1754,7 +1780,7 @@ __metadata:
languageName: node
linkType: hard
-"@discoveryjs/json-ext@npm:^0.5.3":
+"@discoveryjs/json-ext@npm:^0.5.0, @discoveryjs/json-ext@npm:^0.5.3":
version: 0.5.6
resolution: "@discoveryjs/json-ext@npm:0.5.6"
checksum: e97df618511fb202dffa2eb0d23e17dfb02943a70e5bc38f6b9603ad1cb1d6b525aa2b07ff9fb00b041abe425b341146ddd9e487f1e35ddadc8c6b8c56358ae0
@@ -1916,6 +1942,23 @@ __metadata:
languageName: node
linkType: hard
+"@eslint/eslintrc@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "@eslint/eslintrc@npm:1.1.0"
+ dependencies:
+ ajv: ^6.12.4
+ debug: ^4.3.2
+ espree: ^9.3.1
+ globals: ^13.9.0
+ ignore: ^4.0.6
+ import-fresh: ^3.2.1
+ js-yaml: ^4.1.0
+ minimatch: ^3.0.4
+ strip-json-comments: ^3.1.1
+ checksum: 784aa2157e2808b52bbbaf1d1cfca9a6ba0b2faaa3696eb7a1229d4b357400fbd8a6aa09a16e7ae0868ea075d3a8f365cf5928b6d05a1df47f40a1167423a4fa
+ languageName: node
+ linkType: hard
+
"@fortawesome/fontawesome-common-types@npm:^0.2.36":
version: 0.2.36
resolution: "@fortawesome/fontawesome-common-types@npm:0.2.36"
@@ -1987,7 +2030,18 @@ __metadata:
languageName: node
linkType: hard
-"@humanwhocodes/object-schema@npm:^1.2.0":
+"@humanwhocodes/config-array@npm:^0.9.2":
+ version: 0.9.3
+ resolution: "@humanwhocodes/config-array@npm:0.9.3"
+ dependencies:
+ "@humanwhocodes/object-schema": ^1.2.1
+ debug: ^4.1.1
+ minimatch: ^3.0.4
+ checksum: 6e5d7d274941c459bab0a14a87e372206d89fad3e4879d982edc942e8cc34da6510ea3644b8535a2a9edaa6527e91dccceabc6837ffa8ee506d66bca5d269ebc
+ languageName: node
+ linkType: hard
+
+"@humanwhocodes/object-schema@npm:^1.2.0, @humanwhocodes/object-schema@npm:^1.2.1":
version: 1.2.1
resolution: "@humanwhocodes/object-schema@npm:1.2.1"
checksum: a824a1ec31591231e4bad5787641f59e9633827d0a2eaae131a288d33c9ef0290bd16fda8da6f7c0fcb014147865d12118df10db57f27f41e20da92369fcb3f1
@@ -2529,14 +2583,14 @@ __metadata:
linkType: hard
"@rollup/plugin-replace@npm:^3.0.0":
- version: 3.0.1
- resolution: "@rollup/plugin-replace@npm:3.0.1"
+ version: 3.1.0
+ resolution: "@rollup/plugin-replace@npm:3.1.0"
dependencies:
"@rollup/pluginutils": ^3.1.0
magic-string: ^0.25.7
peerDependencies:
rollup: ^1.20.0 || ^2.0.0
- checksum: 0cd97439783d3d23ba4f0c74146f5cdf0965d57977cc8227a77dfdd9604930905619e405c961ae146a0e68c8239b9a3a817704fa90f7d62d5087ed84d8c33ead
+ checksum: 9f833d40f7ebd6bb32b1c7a118fedd27a6d63e591018543740c78d3bc6fe67efa7048c6457bcadf8f982385b78e33ff8e38a67ddd4d11c15d9c81898a0757c13
languageName: node
linkType: hard
@@ -2668,17 +2722,17 @@ __metadata:
languageName: node
linkType: hard
-"@storybook/addons@npm:6.4.18":
- version: 6.4.18
- resolution: "@storybook/addons@npm:6.4.18"
+"@storybook/addons@npm:6.4.19":
+ version: 6.4.19
+ resolution: "@storybook/addons@npm:6.4.19"
dependencies:
- "@storybook/api": 6.4.18
- "@storybook/channels": 6.4.18
- "@storybook/client-logger": 6.4.18
- "@storybook/core-events": 6.4.18
+ "@storybook/api": 6.4.19
+ "@storybook/channels": 6.4.19
+ "@storybook/client-logger": 6.4.19
+ "@storybook/core-events": 6.4.19
"@storybook/csf": 0.0.2--canary.87bc651.0
- "@storybook/router": 6.4.18
- "@storybook/theming": 6.4.18
+ "@storybook/router": 6.4.19
+ "@storybook/theming": 6.4.19
"@types/webpack-env": ^1.16.0
core-js: ^3.8.2
global: ^4.4.0
@@ -2686,7 +2740,7 @@ __metadata:
peerDependencies:
react: ^16.8.0 || ^17.0.0
react-dom: ^16.8.0 || ^17.0.0
- checksum: 9ab25ff5eb24c1a8c701181fba654a0837fd52b0f1a5f5c8242a4b4408018a7a520c889f1ececc68a4f32e25eb98d36c38e8f1ac05b2ebb2aeeccc5650b19735
+ checksum: 867e93a83c1145443693a4af04a83b597afde2663d779cf81db53cc1f77d53da1d4255bd7b403a19685cd0df739c4863eed31f2ef2f1a5c9ca4ae025e191240a
languageName: node
linkType: hard
@@ -2712,17 +2766,17 @@ __metadata:
languageName: node
linkType: hard
-"@storybook/api@npm:6.4.18":
- version: 6.4.18
- resolution: "@storybook/api@npm:6.4.18"
+"@storybook/api@npm:6.4.19":
+ version: 6.4.19
+ resolution: "@storybook/api@npm:6.4.19"
dependencies:
- "@storybook/channels": 6.4.18
- "@storybook/client-logger": 6.4.18
- "@storybook/core-events": 6.4.18
+ "@storybook/channels": 6.4.19
+ "@storybook/client-logger": 6.4.19
+ "@storybook/core-events": 6.4.19
"@storybook/csf": 0.0.2--canary.87bc651.0
- "@storybook/router": 6.4.18
+ "@storybook/router": 6.4.19
"@storybook/semver": ^7.3.2
- "@storybook/theming": 6.4.18
+ "@storybook/theming": 6.4.19
core-js: ^3.8.2
fast-deep-equal: ^3.1.3
global: ^4.4.0
@@ -2736,7 +2790,7 @@ __metadata:
peerDependencies:
react: ^16.8.0 || ^17.0.0
react-dom: ^16.8.0 || ^17.0.0
- checksum: 497a835d414345e278aeaee3318ee7200132fb7178f19d44716adcf97dcea1e0e16f31afb914d2181d83328ea7b02f8431bc56bd6099178331a318ad70cb2972
+ checksum: 305c413ee81f98c0064bbefdd88ee61f4ce0af18465412d7e771ba7af9825c4aa134d827d21f5e7e0dafbb41fafd5a68c65df29525de8bd382b24a960b78e97a
languageName: node
linkType: hard
@@ -2879,14 +2933,14 @@ __metadata:
languageName: node
linkType: hard
-"@storybook/channels@npm:6.4.18":
- version: 6.4.18
- resolution: "@storybook/channels@npm:6.4.18"
+"@storybook/channels@npm:6.4.19":
+ version: 6.4.19
+ resolution: "@storybook/channels@npm:6.4.19"
dependencies:
core-js: ^3.8.2
ts-dedent: ^2.0.0
util-deprecate: ^1.0.2
- checksum: 4c7aeed645a0d0513375ef5a0631cc9a76db2386cb46764b95c0aa352401b860010a070571854ede84d663132be7cadbb31bdd7e5301e9d4abc9875bdda6d3bd
+ checksum: 034c26467cb6dad9b893ee1655a5a550b588fa96d3306d38a775e8fb5b3b9e9da22da2111fc315c0c85a8aaf31f417242b1bd2238e1df84a56d6cef22fac9f64
languageName: node
linkType: hard
@@ -2932,13 +2986,13 @@ __metadata:
languageName: node
linkType: hard
-"@storybook/client-logger@npm:6.4.18":
- version: 6.4.18
- resolution: "@storybook/client-logger@npm:6.4.18"
+"@storybook/client-logger@npm:6.4.19":
+ version: 6.4.19
+ resolution: "@storybook/client-logger@npm:6.4.19"
dependencies:
core-js: ^3.8.2
global: ^4.4.0
- checksum: 22327fae35478fffd38a7dfd060139177186cbfd5ed717dcf1a61dc0d165ae9b481f5a1f688a7fea1cce1f2d41c9896c5f7fe3bd83c12a663581aadfc655552b
+ checksum: 06eb583d05c951d526c7a7e2de461a693d2b491fc35f35a716762e031b3978d4d479c9dcdd81c855d3051318ee4fbd43fe0718b66d560b9d97e28bde1ce7378c
languageName: node
linkType: hard
@@ -3067,12 +3121,12 @@ __metadata:
languageName: node
linkType: hard
-"@storybook/core-events@npm:6.4.18":
- version: 6.4.18
- resolution: "@storybook/core-events@npm:6.4.18"
+"@storybook/core-events@npm:6.4.19":
+ version: 6.4.19
+ resolution: "@storybook/core-events@npm:6.4.19"
dependencies:
core-js: ^3.8.2
- checksum: 173ed8721b3e9c4199a2a400315c5eac63bcfd03bf5786baa4732dd784ff941c9b35c2ea501d6c77d9aeedd83b8a87662620c94d1cac2d7694d999f4f1374af4
+ checksum: a10620f3f6b6e0dd22951c3c2287482bdb3e53c98b4b482f142aa2e979ae993a9ee626686a7320f97ce2fe82dcb5afec037346abfda4f33c2f612b1cd83c74a2
languageName: node
linkType: hard
@@ -3194,8 +3248,8 @@ __metadata:
linkType: hard
"@storybook/csf-tools@npm:^6.3.3":
- version: 6.4.18
- resolution: "@storybook/csf-tools@npm:6.4.18"
+ version: 6.4.19
+ resolution: "@storybook/csf-tools@npm:6.4.19"
dependencies:
"@babel/core": ^7.12.10
"@babel/generator": ^7.12.11
@@ -3214,7 +3268,7 @@ __metadata:
prettier: ">=2.2.1 <=2.3.0"
regenerator-runtime: ^0.13.7
ts-dedent: ^2.0.0
- checksum: 63e5c64d25e54a4bafaf3fb7a1e76bbc20dcb58109c18263dbc8f3eb99b6f75eeaab6cc0ca716cdb9b41da3b41cbcf606fefe879c6f198607c1288273c634366
+ checksum: 33c01f8837fb001129aa28c5aefb6c46bd3f3780e73ec108545f2f87aef1041bfed1bde04578d68c6b759e19839e084052c5b3c532733ff762285f1e8040a37c
languageName: node
linkType: hard
@@ -3380,11 +3434,11 @@ __metadata:
languageName: node
linkType: hard
-"@storybook/router@npm:6.4.18":
- version: 6.4.18
- resolution: "@storybook/router@npm:6.4.18"
+"@storybook/router@npm:6.4.19":
+ version: 6.4.19
+ resolution: "@storybook/router@npm:6.4.19"
dependencies:
- "@storybook/client-logger": 6.4.18
+ "@storybook/client-logger": 6.4.19
core-js: ^3.8.2
fast-deep-equal: ^3.1.3
global: ^4.4.0
@@ -3398,7 +3452,7 @@ __metadata:
peerDependencies:
react: ^16.8.0 || ^17.0.0
react-dom: ^16.8.0 || ^17.0.0
- checksum: 556c3ed4f8fd92b5935b33afc3a5384401d08e3886bddc9a3b5ae5ca5e5554683aa6be9002c96722f8078aefcd2239c8815fa538bfe722578289ed15416e91c2
+ checksum: 80aafb3f492113e49ead84e5ad6458df5e49c09adad72d63db4fb6218309cd11160109b0b07f9f17199717fe30313a2831b516200d206c6023368610d6868211
languageName: node
linkType: hard
@@ -3428,11 +3482,11 @@ __metadata:
linkType: hard
"@storybook/source-loader@npm:^6.3.12":
- version: 6.4.18
- resolution: "@storybook/source-loader@npm:6.4.18"
+ version: 6.4.19
+ resolution: "@storybook/source-loader@npm:6.4.19"
dependencies:
- "@storybook/addons": 6.4.18
- "@storybook/client-logger": 6.4.18
+ "@storybook/addons": 6.4.19
+ "@storybook/client-logger": 6.4.19
"@storybook/csf": 0.0.2--canary.87bc651.0
core-js: ^3.8.2
estraverse: ^5.2.0
@@ -3444,7 +3498,7 @@ __metadata:
peerDependencies:
react: ^16.8.0 || ^17.0.0
react-dom: ^16.8.0 || ^17.0.0
- checksum: fe43a4b5e184a768f4ae6e528ef11e3e4004a5508ca0a5fb0b3c285268e2f0991521849f0ac5984b1cb09e47d571ef75f1ef13506ecdb4a700ffd1615d968a83
+ checksum: b4dfcaef03b74e348be746bf6f5db0a18ef956a767dcee6cdf933ef9200fbbac0e1dbbf5b2e92c810430daee976d3d713b1403f8744e4df263e4bd3d988de620
languageName: node
linkType: hard
@@ -3474,14 +3528,14 @@ __metadata:
languageName: node
linkType: hard
-"@storybook/theming@npm:6.4.18":
- version: 6.4.18
- resolution: "@storybook/theming@npm:6.4.18"
+"@storybook/theming@npm:6.4.19":
+ version: 6.4.19
+ resolution: "@storybook/theming@npm:6.4.19"
dependencies:
"@emotion/core": ^10.1.1
"@emotion/is-prop-valid": ^0.8.6
"@emotion/styled": ^10.0.27
- "@storybook/client-logger": 6.4.18
+ "@storybook/client-logger": 6.4.19
core-js: ^3.8.2
deep-object-diff: ^1.1.0
emotion-theming: ^10.0.27
@@ -3493,7 +3547,7 @@ __metadata:
peerDependencies:
react: ^16.8.0 || ^17.0.0
react-dom: ^16.8.0 || ^17.0.0
- checksum: 842351390563a082189c1d489a2de81a8eceb9ad5fc20dd90fbcac523bff790024968003065bcd002055b155938d49e8118020c81d247735ccd1685fb9eb80bb
+ checksum: 59e980a602bfff4f7643c9f43fdd09d75b6c08cf8eed59da45f2d9b8a8fc3233057eda953c2de98e5440d29196d0abc7f3d7838f98d66f41b57579e7b2cef5e5
languageName: node
linkType: hard
@@ -3655,7 +3709,7 @@ __metadata:
languageName: node
linkType: hard
-"@types/glob@npm:*, @types/glob@npm:^7.1.1, @types/glob@npm:^7.1.3":
+"@types/glob@npm:*, @types/glob@npm:^7.1.1, @types/glob@npm:^7.1.3, @types/glob@npm:^7.2.0":
version: 7.2.0
resolution: "@types/glob@npm:7.2.0"
dependencies:
@@ -3767,7 +3821,7 @@ __metadata:
languageName: node
linkType: hard
-"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.4, @types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.7, @types/json-schema@npm:^7.0.8":
+"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.4, @types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.7, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9":
version: 7.0.9
resolution: "@types/json-schema@npm:7.0.9"
checksum: 259d0e25f11a21ba5c708f7ea47196bd396e379fddb79c76f9f4f62c945879dc21657904914313ec2754e443c5018ea8372362f323f30e0792897fdb2098a705
@@ -3797,27 +3851,41 @@ __metadata:
languageName: node
linkType: hard
+"@types/mocha@npm:^9.0.0":
+ version: 9.1.0
+ resolution: "@types/mocha@npm:9.1.0"
+ checksum: 21e1000dafcfe387c6812be41c44a47b48c27a74d5a70c3d5ef1bb5c88eadadfc74dba06e93f160e7248c8a57b3977b590f82504c801c9927816ecd4668023c0
+ languageName: node
+ linkType: hard
+
"@types/node-fetch@npm:^2.5.7":
- version: 2.5.12
- resolution: "@types/node-fetch@npm:2.5.12"
+ version: 2.6.0
+ resolution: "@types/node-fetch@npm:2.6.0"
dependencies:
"@types/node": "*"
- form-data: ^3.0.0
- checksum: ad63c85ba6a9477b8e057ec8682257738130d98e8ece4e31141789bd99df9d9147985cc8bc0cb5c8983ed5aa6bb95d46df23d1e055f4ad5cf8b82fc69cf626c7
+ form-data: ^2.3.3
+ checksum: 25fff9aa151e59fa6f66461fa5599e5d2a9a99e03a80dbbe8e991b2362b223d1635fc61e75128a1de91112ffc13c371212ea644cbc888d4b54662ea48ff3ff16
languageName: node
linkType: hard
"@types/node@npm:*":
- version: 17.0.17
- resolution: "@types/node@npm:17.0.17"
- checksum: 8ddba2829acdf1684fbd8fd248ec13f033efb70ecd1085677b547c40ef8e936a006b95eac3bdc28c47939c62526f3f027afeb4a930e30e4394923bbae4626476
+ version: 17.0.18
+ resolution: "@types/node@npm:17.0.18"
+ checksum: 6c4edfc2b3ba2342a9c3d56e934c5245948ab752f4dc04bd6790b9603e6ebc53bc4f5befc3662e207f7dba2ddd17ccf657f915e319ea7cdd4f77b851079d1611
+ languageName: node
+ linkType: hard
+
+"@types/node@npm:14.x":
+ version: 14.18.12
+ resolution: "@types/node@npm:14.18.12"
+ checksum: 8a0273caa0584020adb8802784fc7d4f18f05e6c205335b7f3818a91d6b0c22736b9f51da3428d5bc54076ad47f1a4d6d57990a3ce8489a520ac66b2b3ff24bc
languageName: node
linkType: hard
"@types/node@npm:^14.0.10 || ^16.0.0, @types/node@npm:^14.14.20 || ^16.0.0":
- version: 16.11.24
- resolution: "@types/node@npm:16.11.24"
- checksum: d4827d548c04ca55db30901ea248ce1a1f8d2958b3143a7e71fd86d3d7b804faebfa9b80b934c7c6030a82553323dfe70f01dd0000176561a2cb3fc9db06a7b3
+ version: 16.11.25
+ resolution: "@types/node@npm:16.11.25"
+ checksum: 0b6e25a81364be89256ad1a36341e27b387e646d3186e270108a8bb7b6ecdfdf5ae037aa1c75a5117b8a7509c80093b75431cd5cfcfbc4d553b52e7db2ca272e
languageName: node
linkType: hard
@@ -3894,11 +3962,11 @@ __metadata:
linkType: hard
"@types/react-google-recaptcha@npm:^2.1.3":
- version: 2.1.3
- resolution: "@types/react-google-recaptcha@npm:2.1.3"
+ version: 2.1.4
+ resolution: "@types/react-google-recaptcha@npm:2.1.4"
dependencies:
"@types/react": "*"
- checksum: b322326e3614035392b760ebbf546a4a23abda7fe5e4c357512ff914bce8dac524fde3ce3f532602e09d215bd2352928c06328b4a817767f43dc0c762ecb5b86
+ checksum: 8b88bbdb9cd4fb3842cf4f11f68e2354888ac4ff9298bb275fd766d38f0a713f8f490575aa2f48f8eb08dfae37d4e183c855f3b659a0bfccb1e0c6da145fbfc4
languageName: node
linkType: hard
@@ -3968,6 +4036,16 @@ __metadata:
languageName: node
linkType: hard
+"@types/rimraf@npm:^3.0.2":
+ version: 3.0.2
+ resolution: "@types/rimraf@npm:3.0.2"
+ dependencies:
+ "@types/glob": "*"
+ "@types/node": "*"
+ checksum: b47fa302f46434cba704d20465861ad250df79467d3d289f9d6490d3aeeb41e8cb32dd80bd1a8fd833d1e185ac719fbf9be12e05ad9ce9be094d8ee8f1405347
+ languageName: node
+ linkType: hard
+
"@types/scheduler@npm:*":
version: 0.16.2
resolution: "@types/scheduler@npm:0.16.2"
@@ -4019,6 +4097,13 @@ __metadata:
languageName: node
linkType: hard
+"@types/vscode@npm:^1.63.0":
+ version: 1.64.0
+ resolution: "@types/vscode@npm:1.64.0"
+ checksum: 428cfce7f31ebf2d2a82e6ffdc2d903487adecd72147463e7b679d3280532b805e37e69065fbfd66fa144898a8fab86eaf3a0c4ac2861df1135ab41050a6888d
+ languageName: node
+ linkType: hard
+
"@types/warning@npm:^3.0.0":
version: 3.0.0
resolution: "@types/warning@npm:3.0.0"
@@ -4096,6 +4181,29 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/eslint-plugin@npm:^5.9.1":
+ version: 5.12.0
+ resolution: "@typescript-eslint/eslint-plugin@npm:5.12.0"
+ dependencies:
+ "@typescript-eslint/scope-manager": 5.12.0
+ "@typescript-eslint/type-utils": 5.12.0
+ "@typescript-eslint/utils": 5.12.0
+ debug: ^4.3.2
+ functional-red-black-tree: ^1.0.1
+ ignore: ^5.1.8
+ regexpp: ^3.2.0
+ semver: ^7.3.5
+ tsutils: ^3.21.0
+ peerDependencies:
+ "@typescript-eslint/parser": ^5.0.0
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: ac7074b51456748ef8770d82f5b4e691e1b93bb1353b448bb1b43db5b5a9722a6a012dc1dc0a3b35ab0c0ca7c1b5412f535ad992115132ed84ed6f4179778d37
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/experimental-utils@npm:4.33.0":
version: 4.33.0
resolution: "@typescript-eslint/experimental-utils@npm:4.33.0"
@@ -4129,6 +4237,23 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/parser@npm:^5.9.1":
+ version: 5.12.0
+ resolution: "@typescript-eslint/parser@npm:5.12.0"
+ dependencies:
+ "@typescript-eslint/scope-manager": 5.12.0
+ "@typescript-eslint/types": 5.12.0
+ "@typescript-eslint/typescript-estree": 5.12.0
+ debug: ^4.3.2
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 0453c14d967ebba4ebe0d763882b7a1258f23a710d127f53196d360b78722d880cc8c0299feb52ecc4e10600834c22559bf543211249d878efad864f7ec856bc
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/scope-manager@npm:4.33.0":
version: 4.33.0
resolution: "@typescript-eslint/scope-manager@npm:4.33.0"
@@ -4139,6 +4264,32 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/scope-manager@npm:5.12.0":
+ version: 5.12.0
+ resolution: "@typescript-eslint/scope-manager@npm:5.12.0"
+ dependencies:
+ "@typescript-eslint/types": 5.12.0
+ "@typescript-eslint/visitor-keys": 5.12.0
+ checksum: 87cc4e8ab3b495293e51685566cafca6f217c7328fc1210e4a9c3a89e864c5e3a04ddde11708e07820185fd158cb448980607a93fd658fa2089c152f27a847d0
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/type-utils@npm:5.12.0":
+ version: 5.12.0
+ resolution: "@typescript-eslint/type-utils@npm:5.12.0"
+ dependencies:
+ "@typescript-eslint/utils": 5.12.0
+ debug: ^4.3.2
+ tsutils: ^3.21.0
+ peerDependencies:
+ eslint: "*"
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 90390603319441493b62611730db78f8a732e32a5d9097d1e9c6581da6caeb71cc08a3ed6c716f2fc490b153f956c9a2471d9fbe97c22214ca86f58511c7581a
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/types@npm:4.33.0":
version: 4.33.0
resolution: "@typescript-eslint/types@npm:4.33.0"
@@ -4146,6 +4297,13 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/types@npm:5.12.0":
+ version: 5.12.0
+ resolution: "@typescript-eslint/types@npm:5.12.0"
+ checksum: f5e7f8270cb0f9f18886bf00f8f1fd589b793f4c05dc2de53cc826beb969161e19ffc10f51237402fb9f3d24f5aaf3bb41b1d8da70e115ec3ff11e79b3471988
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/typescript-estree@npm:4.33.0":
version: 4.33.0
resolution: "@typescript-eslint/typescript-estree@npm:4.33.0"
@@ -4164,6 +4322,40 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/typescript-estree@npm:5.12.0":
+ version: 5.12.0
+ resolution: "@typescript-eslint/typescript-estree@npm:5.12.0"
+ dependencies:
+ "@typescript-eslint/types": 5.12.0
+ "@typescript-eslint/visitor-keys": 5.12.0
+ debug: ^4.3.2
+ globby: ^11.0.4
+ is-glob: ^4.0.3
+ semver: ^7.3.5
+ tsutils: ^3.21.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 6a8e852c210b20370eb564f3beb245c425e65a4de3e78a1e2f278a241b6acf72ba43b10767df18fc1654b529453529f721fa673569406ace4011712c9c837900
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/utils@npm:5.12.0":
+ version: 5.12.0
+ resolution: "@typescript-eslint/utils@npm:5.12.0"
+ dependencies:
+ "@types/json-schema": ^7.0.9
+ "@typescript-eslint/scope-manager": 5.12.0
+ "@typescript-eslint/types": 5.12.0
+ "@typescript-eslint/typescript-estree": 5.12.0
+ eslint-scope: ^5.1.1
+ eslint-utils: ^3.0.0
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ checksum: 34c394db0510be78c5cbb8928c9eb81405a117dd9e5903a149e4f3c20218dcda89a29e5012984d07c8ce9e5c7f5d7c38f5c3061558028f3f518ac98bbeb9a006
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/visitor-keys@npm:4.33.0":
version: 4.33.0
resolution: "@typescript-eslint/visitor-keys@npm:4.33.0"
@@ -4174,6 +4366,23 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/visitor-keys@npm:5.12.0":
+ version: 5.12.0
+ resolution: "@typescript-eslint/visitor-keys@npm:5.12.0"
+ dependencies:
+ "@typescript-eslint/types": 5.12.0
+ eslint-visitor-keys: ^3.0.0
+ checksum: c3774f542aae801926edf86fe6cab534c4cdac914b035730912443ed53fcc701b0f0e7b1a0d5fc959484637c55f63409fc43df5508c334e202d66d4654484d11
+ languageName: node
+ linkType: hard
+
+"@ungap/promise-all-settled@npm:1.1.2":
+ version: 1.1.2
+ resolution: "@ungap/promise-all-settled@npm:1.1.2"
+ checksum: 08d37fdfa23a6fe8139f1305313562ebad973f3fac01bcce2773b2bda5bcb0146dfdcf3cb6a722cf0a5f2ca0bc56a827eac8f1e7b3beddc548f654addf1fc34c
+ languageName: node
+ linkType: hard
+
"@vitejs/plugin-react@npm:^1.0.7, @vitejs/plugin-react@npm:^1.0.8":
version: 1.2.0
resolution: "@vitejs/plugin-react@npm:1.2.0"
@@ -4190,6 +4399,18 @@ __metadata:
languageName: node
linkType: hard
+"@vscode/test-electron@npm:^2.0.3":
+ version: 2.1.2
+ resolution: "@vscode/test-electron@npm:2.1.2"
+ dependencies:
+ http-proxy-agent: ^4.0.1
+ https-proxy-agent: ^5.0.0
+ rimraf: ^3.0.2
+ unzipper: ^0.10.11
+ checksum: a6bdedde7580e831c77cb30ec0470b29f9c975274e9c4e287e3270ae2b922e515e8e40c0020c982c9607e76405efba321bc6e7bbcd79a32166e96f61ea0efc7f
+ languageName: node
+ linkType: hard
+
"@web/config-loader@npm:^0.1.3":
version: 0.1.3
resolution: "@web/config-loader@npm:0.1.3"
@@ -4553,6 +4774,39 @@ __metadata:
languageName: node
linkType: hard
+"@webpack-cli/configtest@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "@webpack-cli/configtest@npm:1.1.1"
+ peerDependencies:
+ webpack: 4.x.x || 5.x.x
+ webpack-cli: 4.x.x
+ checksum: c4e7fca21315e487655fbdc7d079092c3f88b274a720d245ca2e13dce7553009fb3f9d82218c33f5c9b208832d72bb4114a9cca97d53b66212eff5da1d3ad44b
+ languageName: node
+ linkType: hard
+
+"@webpack-cli/info@npm:^1.4.1":
+ version: 1.4.1
+ resolution: "@webpack-cli/info@npm:1.4.1"
+ dependencies:
+ envinfo: ^7.7.3
+ peerDependencies:
+ webpack-cli: 4.x.x
+ checksum: 7a7cac2ba4f2528caa329311599da1685b1bc099bfc5b7210932b7c86024c1277fd7857b08557902b187ea01247a8e8f72f7f5719af72b0c8d97f22087aa0c14
+ languageName: node
+ linkType: hard
+
+"@webpack-cli/serve@npm:^1.6.1":
+ version: 1.6.1
+ resolution: "@webpack-cli/serve@npm:1.6.1"
+ peerDependencies:
+ webpack-cli: 4.x.x
+ peerDependenciesMeta:
+ webpack-dev-server:
+ optional: true
+ checksum: 8b273f906aeffa60c7d5700ae25f98d4b66b7e922cad38acb9575d55ff83872cd20b9894aacfa81c4d54e5b51b16253ae0e70c5e9e0608dc8768276e15c74536
+ languageName: node
+ linkType: hard
+
"@xtuc/ieee754@npm:^1.2.0":
version: 1.2.0
resolution: "@xtuc/ieee754@npm:1.2.0"
@@ -4644,7 +4898,7 @@ __metadata:
languageName: node
linkType: hard
-"acorn@npm:^8.2.4, acorn@npm:^8.4.1":
+"acorn@npm:^8.2.4, acorn@npm:^8.4.1, acorn@npm:^8.7.0":
version: 8.7.0
resolution: "acorn@npm:8.7.0"
bin:
@@ -4766,6 +5020,13 @@ __metadata:
languageName: node
linkType: hard
+"ansi-colors@npm:4.1.1, ansi-colors@npm:^4.1.1":
+ version: 4.1.1
+ resolution: "ansi-colors@npm:4.1.1"
+ checksum: 138d04a51076cb085da0a7e2d000c5c0bb09f6e772ed5c65c53cb118d37f6c5f1637506d7155fb5f330f0abcf6f12fa2e489ac3f8cdab9da393bf1bb4f9a32b0
+ languageName: node
+ linkType: hard
+
"ansi-colors@npm:^3.0.0":
version: 3.2.4
resolution: "ansi-colors@npm:3.2.4"
@@ -4773,13 +5034,6 @@ __metadata:
languageName: node
linkType: hard
-"ansi-colors@npm:^4.1.1":
- version: 4.1.1
- resolution: "ansi-colors@npm:4.1.1"
- checksum: 138d04a51076cb085da0a7e2d000c5c0bb09f6e772ed5c65c53cb118d37f6c5f1637506d7155fb5f330f0abcf6f12fa2e489ac3f8cdab9da393bf1bb4f9a32b0
- languageName: node
- linkType: hard
-
"ansi-escapes@npm:^4.2.1, ansi-escapes@npm:^4.3.0":
version: 4.3.2
resolution: "ansi-escapes@npm:4.3.2"
@@ -5486,7 +5740,7 @@ __metadata:
languageName: node
linkType: hard
-"big-integer@npm:^1.6.7":
+"big-integer@npm:^1.6.17, big-integer@npm:^1.6.7":
version: 1.6.51
resolution: "big-integer@npm:1.6.51"
checksum: 3d444173d1b2e20747e2c175568bedeebd8315b0637ea95d75fd27830d3b8e8ba36c6af40374f36bdaea7b5de376dcada1b07587cb2a79a928fccdb6e6e3c518
@@ -5514,6 +5768,16 @@ __metadata:
languageName: node
linkType: hard
+"binary@npm:~0.3.0":
+ version: 0.3.0
+ resolution: "binary@npm:0.3.0"
+ dependencies:
+ buffers: ~0.1.1
+ chainsaw: ~0.1.0
+ checksum: b4699fda9e2c2981e74a46b0115cf0d472eda9b68c0e9d229ef494e92f29ce81acf0a834415094cffcc340dfee7c4ef8ce5d048c65c18067a7ed850323f777af
+ languageName: node
+ linkType: hard
+
"bindings@npm:^1.5.0":
version: 1.5.0
resolution: "bindings@npm:1.5.0"
@@ -5530,6 +5794,13 @@ __metadata:
languageName: node
linkType: hard
+"bluebird@npm:~3.4.1":
+ version: 3.4.7
+ resolution: "bluebird@npm:3.4.7"
+ checksum: bffa9dee7d3a41ab15c4f3f24687b49959b4e64e55c058a062176feb8ccefc2163414fb4e1a0f3053bf187600936509660c3ebd168fd9f0e48c7eba23b019466
+ languageName: node
+ linkType: hard
+
"bn.js@npm:^4.0.0, bn.js@npm:^4.1.0, bn.js@npm:^4.11.9":
version: 4.12.0
resolution: "bn.js@npm:4.12.0"
@@ -5654,6 +5925,13 @@ __metadata:
languageName: node
linkType: hard
+"browser-stdout@npm:1.3.1":
+ version: 1.3.1
+ resolution: "browser-stdout@npm:1.3.1"
+ checksum: b717b19b25952dd6af483e368f9bcd6b14b87740c3d226c2977a65e84666ffd67000bddea7d911f111a9b6ddc822b234de42d52ab6507bce4119a4cc003ef7b3
+ languageName: node
+ linkType: hard
+
"browserify-aes@npm:^1.0.0, browserify-aes@npm:^1.0.4":
version: 1.2.0
resolution: "browserify-aes@npm:1.2.0"
@@ -5767,6 +6045,13 @@ __metadata:
languageName: node
linkType: hard
+"buffer-indexof-polyfill@npm:~1.0.0":
+ version: 1.0.2
+ resolution: "buffer-indexof-polyfill@npm:1.0.2"
+ checksum: fbfb2d69c6bb2df235683126f9dc140150c08ac3630da149913a9971947b667df816a913b6993bc48f4d611999cb99a1589914d34c02dccd2234afda5cb75bbc
+ languageName: node
+ linkType: hard
+
"buffer-xor@npm:^1.0.3":
version: 1.0.3
resolution: "buffer-xor@npm:1.0.3"
@@ -5785,6 +6070,13 @@ __metadata:
languageName: node
linkType: hard
+"buffers@npm:~0.1.1":
+ version: 0.1.1
+ resolution: "buffers@npm:0.1.1"
+ checksum: ad6f8e483efab39cefd92bdc04edbff6805e4211b002f4d1cfb70c6c472a61cc89fb18c37bcdfdd4ee416ca096e9ff606286698a7d41a18b539bac12fd76d4d5
+ languageName: node
+ linkType: hard
+
"builtin-modules@npm:^3.1.0":
version: 3.2.0
resolution: "builtin-modules@npm:3.2.0"
@@ -5976,7 +6268,7 @@ __metadata:
languageName: node
linkType: hard
-"camelcase@npm:^6.2.0":
+"camelcase@npm:^6.0.0, camelcase@npm:^6.2.0":
version: 6.3.0
resolution: "camelcase@npm:6.3.0"
checksum: 8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d
@@ -5984,9 +6276,9 @@ __metadata:
linkType: hard
"caniuse-lite@npm:^1.0.30001109, caniuse-lite@npm:^1.0.30001286":
- version: 1.0.30001311
- resolution: "caniuse-lite@npm:1.0.30001311"
- checksum: a96a2724db91f7d820d7c83d98d6d80f71f4ef5542fd9af49478e6f5057a92d61fbb6c2a2c151e13323c760c7d9f046f422a9b1ac77ab08dc2cacc62bd22f941
+ version: 1.0.30001312
+ resolution: "caniuse-lite@npm:1.0.30001312"
+ checksum: 753fb9ea1e02e999430b323a71b5acab5120f3b5fc0161b01669f54a3ef5c5296240b6ae9b79b12a3742e3aed216aa9ee3d5398a23c16d08625ccd376b79545d
languageName: node
linkType: hard
@@ -6004,6 +6296,15 @@ __metadata:
languageName: node
linkType: hard
+"chainsaw@npm:~0.1.0":
+ version: 0.1.0
+ resolution: "chainsaw@npm:0.1.0"
+ dependencies:
+ traverse: ">=0.3.0 <0.4"
+ checksum: 22a96b9fb0cd9fb20813607c0869e61817d1acc81b5d455cc6456b5e460ea1dd52630e0f76b291cf8294bfb6c1fc42e299afb52104af9096242699d6d3aa6d3e
+ languageName: node
+ linkType: hard
+
"chalk@npm:^2.0.0, chalk@npm:^2.4.1, chalk@npm:^2.4.2":
version: 2.4.2
resolution: "chalk@npm:2.4.2"
@@ -6060,6 +6361,25 @@ __metadata:
languageName: node
linkType: hard
+"chokidar@npm:3.5.3, chokidar@npm:^3.4.1, chokidar@npm:^3.4.2, chokidar@npm:^3.5.2":
+ version: 3.5.3
+ resolution: "chokidar@npm:3.5.3"
+ dependencies:
+ anymatch: ~3.1.2
+ braces: ~3.0.2
+ fsevents: ~2.3.2
+ glob-parent: ~5.1.2
+ is-binary-path: ~2.1.0
+ is-glob: ~4.0.1
+ normalize-path: ~3.0.0
+ readdirp: ~3.6.0
+ dependenciesMeta:
+ fsevents:
+ optional: true
+ checksum: b49fcde40176ba007ff361b198a2d35df60d9bb2a5aab228279eb810feae9294a6b4649ab15981304447afe1e6ffbf4788ad5db77235dc770ab777c6e771980c
+ languageName: node
+ linkType: hard
+
"chokidar@npm:^2.0.4, chokidar@npm:^2.1.8":
version: 2.1.8
resolution: "chokidar@npm:2.1.8"
@@ -6083,25 +6403,6 @@ __metadata:
languageName: node
linkType: hard
-"chokidar@npm:^3.4.1, chokidar@npm:^3.4.2, chokidar@npm:^3.5.2":
- version: 3.5.3
- resolution: "chokidar@npm:3.5.3"
- dependencies:
- anymatch: ~3.1.2
- braces: ~3.0.2
- fsevents: ~2.3.2
- glob-parent: ~5.1.2
- is-binary-path: ~2.1.0
- is-glob: ~4.0.1
- normalize-path: ~3.0.0
- readdirp: ~3.6.0
- dependenciesMeta:
- fsevents:
- optional: true
- checksum: b49fcde40176ba007ff361b198a2d35df60d9bb2a5aab228279eb810feae9294a6b4649ab15981304447afe1e6ffbf4788ad5db77235dc770ab777c6e771980c
- languageName: node
- linkType: hard
-
"chownr@npm:^1.1.1":
version: 1.1.4
resolution: "chownr@npm:1.1.4"
@@ -6344,7 +6645,7 @@ __metadata:
languageName: node
linkType: hard
-"colorette@npm:^2.0.16":
+"colorette@npm:^2.0.14, colorette@npm:^2.0.16":
version: 2.0.16
resolution: "colorette@npm:2.0.16"
checksum: cd55596a3a2d1071c1a28eee7fd8a5387593ff1bd10a3e8d0a6221499311fe34a9f2b9272d77c391e0e003dcdc8934fb2f8d106e7ef1f7516f8060c901d41a27
@@ -6358,7 +6659,7 @@ __metadata:
languageName: node
linkType: hard
-"combined-stream@npm:^1.0.8":
+"combined-stream@npm:^1.0.6, combined-stream@npm:^1.0.8":
version: 1.0.8
resolution: "combined-stream@npm:1.0.8"
dependencies:
@@ -6407,6 +6708,13 @@ __metadata:
languageName: node
linkType: hard
+"commander@npm:^7.0.0":
+ version: 7.2.0
+ resolution: "commander@npm:7.2.0"
+ checksum: 53501cbeee61d5157546c0bef0fedb6cdfc763a882136284bed9a07225f09a14b82d2a84e7637edfd1a679fb35ed9502fd58ef1d091e6287f60d790147f68ddc
+ languageName: node
+ linkType: hard
+
"commander@npm:^8.3.0":
version: 8.3.0
resolution: "commander@npm:8.3.0"
@@ -6929,7 +7237,7 @@ __metadata:
languageName: node
linkType: hard
-"debug@npm:4, debug@npm:^4.0.1, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.2.0, debug@npm:^4.3.1":
+"debug@npm:4, debug@npm:4.3.3, debug@npm:^4.0.1, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.2.0, debug@npm:^4.3.1, debug@npm:^4.3.2":
version: 4.3.3
resolution: "debug@npm:4.3.3"
dependencies:
@@ -6957,6 +7265,13 @@ __metadata:
languageName: node
linkType: hard
+"decamelize@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "decamelize@npm:4.0.0"
+ checksum: b7d09b82652c39eead4d6678bb578e3bebd848add894b76d0f6b395bc45b2d692fb88d977e7cfb93c4ed6c119b05a1347cef261174916c2e75c0a8ca57da1809
+ languageName: node
+ linkType: hard
+
"decimal.js@npm:^10.2.1":
version: 10.3.1
resolution: "decimal.js@npm:10.3.1"
@@ -7144,6 +7459,13 @@ __metadata:
languageName: node
linkType: hard
+"diff@npm:5.0.0":
+ version: 5.0.0
+ resolution: "diff@npm:5.0.0"
+ checksum: f19fe29284b633afdb2725c2a8bb7d25761ea54d321d8e67987ac851c5294be4afeab532bd84531e02583a3fe7f4014aa314a3eda84f5590e7a9e6b371ef3b46
+ languageName: node
+ linkType: hard
+
"diffie-hellman@npm:^5.0.0":
version: 5.0.3
resolution: "diffie-hellman@npm:5.0.3"
@@ -7304,6 +7626,15 @@ __metadata:
languageName: node
linkType: hard
+"duplexer2@npm:~0.1.4":
+ version: 0.1.4
+ resolution: "duplexer2@npm:0.1.4"
+ dependencies:
+ readable-stream: ^2.0.2
+ checksum: 744961f03c7f54313f90555ac20284a3fb7bf22fdff6538f041a86c22499560eb6eac9d30ab5768054137cb40e6b18b40f621094e0261d7d8c35a37b7a5ad241
+ languageName: node
+ linkType: hard
+
"duplexer@npm:~0.1.1":
version: 0.1.2
resolution: "duplexer@npm:0.1.2"
@@ -7342,9 +7673,9 @@ __metadata:
linkType: hard
"electron-to-chromium@npm:^1.4.17":
- version: 1.4.68
- resolution: "electron-to-chromium@npm:1.4.68"
- checksum: d7654d07ab7c504a0683cf29715db227bdbd3e397ad3a41bad3d1e35e9f837447be2bc5dea54b3350d51be5c9c7b79756dcbe44903fbee5949d67d783e788acb
+ version: 1.4.71
+ resolution: "electron-to-chromium@npm:1.4.71"
+ checksum: ecb2546eed6b0e95003d787c259de730f32e2f5c0fa2acb27069c0cd21378cbc2a6c7516f4ec677a5960db4e180644f87ed91a729825a238454e31e4e74617db
languageName: node
linkType: hard
@@ -7452,7 +7783,7 @@ __metadata:
languageName: node
linkType: hard
-"enhanced-resolve@npm:^5.8.3":
+"enhanced-resolve@npm:^5.0.0, enhanced-resolve@npm:^5.8.3":
version: 5.9.0
resolution: "enhanced-resolve@npm:5.9.0"
dependencies:
@@ -7485,6 +7816,15 @@ __metadata:
languageName: node
linkType: hard
+"envinfo@npm:^7.7.3":
+ version: 7.8.1
+ resolution: "envinfo@npm:7.8.1"
+ bin:
+ envinfo: dist/cli.js
+ checksum: de736c98d6311c78523628ff127af138451b162e57af5293c1b984ca821d0aeb9c849537d2fde0434011bed33f6bca5310ca2aab8a51a3f28fc719e89045d648
+ languageName: node
+ linkType: hard
+
"err-code@npm:^2.0.2":
version: 2.0.3
resolution: "err-code@npm:2.0.3"
@@ -8000,6 +8340,13 @@ __metadata:
languageName: node
linkType: hard
+"escape-string-regexp@npm:4.0.0, escape-string-regexp@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "escape-string-regexp@npm:4.0.0"
+ checksum: 98b48897d93060f2322108bf29db0feba7dd774be96cd069458d1453347b25ce8682ecc39859d4bca2203cc0ab19c237bcc71755eff49a0f8d90beadeeba5cc5
+ languageName: node
+ linkType: hard
+
"escape-string-regexp@npm:^1.0.5":
version: 1.0.5
resolution: "escape-string-regexp@npm:1.0.5"
@@ -8014,13 +8361,6 @@ __metadata:
languageName: node
linkType: hard
-"escape-string-regexp@npm:^4.0.0":
- version: 4.0.0
- resolution: "escape-string-regexp@npm:4.0.0"
- checksum: 98b48897d93060f2322108bf29db0feba7dd774be96cd069458d1453347b25ce8682ecc39859d4bca2203cc0ab19c237bcc71755eff49a0f8d90beadeeba5cc5
- languageName: node
- linkType: hard
-
"escodegen@npm:^2.0.0":
version: 2.0.0
resolution: "escodegen@npm:2.0.0"
@@ -8153,6 +8493,16 @@ __metadata:
languageName: node
linkType: hard
+"eslint-scope@npm:^7.1.1":
+ version: 7.1.1
+ resolution: "eslint-scope@npm:7.1.1"
+ dependencies:
+ esrecurse: ^4.3.0
+ estraverse: ^5.2.0
+ checksum: 9f6e974ab2db641ca8ab13508c405b7b859e72afe9f254e8131ff154d2f40c99ad4545ce326fd9fde3212ff29707102562a4834f1c48617b35d98c71a97fbf3e
+ languageName: node
+ linkType: hard
+
"eslint-utils@npm:^2.1.0":
version: 2.1.0
resolution: "eslint-utils@npm:2.1.0"
@@ -8187,6 +8537,13 @@ __metadata:
languageName: node
linkType: hard
+"eslint-visitor-keys@npm:^3.0.0, eslint-visitor-keys@npm:^3.3.0":
+ version: 3.3.0
+ resolution: "eslint-visitor-keys@npm:3.3.0"
+ checksum: d59e68a7c5a6d0146526b0eec16ce87fbf97fe46b8281e0d41384224375c4e52f5ffb9e16d48f4ea50785cde93f766b0c898e31ab89978d88b0e1720fbfb7808
+ languageName: node
+ linkType: hard
+
"eslint@npm:^7.32.0":
version: 7.32.0
resolution: "eslint@npm:7.32.0"
@@ -8237,6 +8594,51 @@ __metadata:
languageName: node
linkType: hard
+"eslint@npm:^8.6.0":
+ version: 8.9.0
+ resolution: "eslint@npm:8.9.0"
+ dependencies:
+ "@eslint/eslintrc": ^1.1.0
+ "@humanwhocodes/config-array": ^0.9.2
+ ajv: ^6.10.0
+ chalk: ^4.0.0
+ cross-spawn: ^7.0.2
+ debug: ^4.3.2
+ doctrine: ^3.0.0
+ escape-string-regexp: ^4.0.0
+ eslint-scope: ^7.1.1
+ eslint-utils: ^3.0.0
+ eslint-visitor-keys: ^3.3.0
+ espree: ^9.3.1
+ esquery: ^1.4.0
+ esutils: ^2.0.2
+ fast-deep-equal: ^3.1.3
+ file-entry-cache: ^6.0.1
+ functional-red-black-tree: ^1.0.1
+ glob-parent: ^6.0.1
+ globals: ^13.6.0
+ ignore: ^5.2.0
+ import-fresh: ^3.0.0
+ imurmurhash: ^0.1.4
+ is-glob: ^4.0.0
+ js-yaml: ^4.1.0
+ json-stable-stringify-without-jsonify: ^1.0.1
+ levn: ^0.4.1
+ lodash.merge: ^4.6.2
+ minimatch: ^3.0.4
+ natural-compare: ^1.4.0
+ optionator: ^0.9.1
+ regexpp: ^3.2.0
+ strip-ansi: ^6.0.1
+ strip-json-comments: ^3.1.0
+ text-table: ^0.2.0
+ v8-compile-cache: ^2.0.3
+ bin:
+ eslint: bin/eslint.js
+ checksum: 8efecdb9752ee6cb4d2787a14e00cbeab29562ed95dd71c6f3f8ac410426a067d5aa659416d2290e46ca44bc5607e6a6e6c62f814694d8639f80666f522022a7
+ languageName: node
+ linkType: hard
+
"espree@npm:^7.3.0, espree@npm:^7.3.1":
version: 7.3.1
resolution: "espree@npm:7.3.1"
@@ -8248,6 +8650,17 @@ __metadata:
languageName: node
linkType: hard
+"espree@npm:^9.3.1":
+ version: 9.3.1
+ resolution: "espree@npm:9.3.1"
+ dependencies:
+ acorn: ^8.7.0
+ acorn-jsx: ^5.3.1
+ eslint-visitor-keys: ^3.3.0
+ checksum: d7161db30b65427e0799383699ac4c441533a38faee005153694b68b933ba7a24666680edfc490fa77e3a84a22dbd955768034a6f811af5049774eead83063a5
+ languageName: node
+ linkType: hard
+
"esprima@npm:^4.0.0, esprima@npm:^4.0.1":
version: 4.0.1
resolution: "esprima@npm:4.0.1"
@@ -8593,6 +9006,13 @@ __metadata:
languageName: node
linkType: hard
+"fastest-levenshtein@npm:^1.0.12":
+ version: 1.0.12
+ resolution: "fastest-levenshtein@npm:1.0.12"
+ checksum: e1a013698dd1d302c7a78150130c7d50bb678c2c2f8839842a796d66cc7cdf50ea6b3d7ca930b0c8e7e8c2cd84fea8ab831023b382f7aab6922c318c1451beab
+ languageName: node
+ linkType: hard
+
"fastq@npm:^1.6.0":
version: 1.13.0
resolution: "fastq@npm:1.13.0"
@@ -8749,6 +9169,16 @@ __metadata:
languageName: node
linkType: hard
+"find-up@npm:5.0.0, find-up@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "find-up@npm:5.0.0"
+ dependencies:
+ locate-path: ^6.0.0
+ path-exists: ^4.0.0
+ checksum: 07955e357348f34660bde7920783204ff5a26ac2cafcaa28bace494027158a97b9f56faaf2d89a6106211a8174db650dd9f503f9c0d526b1202d5554a00b9095
+ languageName: node
+ linkType: hard
+
"find-up@npm:^1.0.0":
version: 1.1.2
resolution: "find-up@npm:1.1.2"
@@ -8787,16 +9217,6 @@ __metadata:
languageName: node
linkType: hard
-"find-up@npm:^5.0.0":
- version: 5.0.0
- resolution: "find-up@npm:5.0.0"
- dependencies:
- locate-path: ^6.0.0
- path-exists: ^4.0.0
- checksum: 07955e357348f34660bde7920783204ff5a26ac2cafcaa28bace494027158a97b9f56faaf2d89a6106211a8174db650dd9f503f9c0d526b1202d5554a00b9095
- languageName: node
- linkType: hard
-
"flat-cache@npm:^3.0.4":
version: 3.0.4
resolution: "flat-cache@npm:3.0.4"
@@ -8807,6 +9227,15 @@ __metadata:
languageName: node
linkType: hard
+"flat@npm:^5.0.2":
+ version: 5.0.2
+ resolution: "flat@npm:5.0.2"
+ bin:
+ flat: cli.js
+ checksum: 12a1536ac746db74881316a181499a78ef953632ddd28050b7a3a43c62ef5462e3357c8c29d76072bb635f147f7a9a1f0c02efef6b4be28f8db62ceb3d5c7f5d
+ languageName: node
+ linkType: hard
+
"flatted@npm:^3.1.0":
version: 3.2.5
resolution: "flatted@npm:3.2.5"
@@ -8887,6 +9316,17 @@ __metadata:
languageName: node
linkType: hard
+"form-data@npm:^2.3.3":
+ version: 2.5.1
+ resolution: "form-data@npm:2.5.1"
+ dependencies:
+ asynckit: ^0.4.0
+ combined-stream: ^1.0.6
+ mime-types: ^2.1.12
+ checksum: 5134ada56cc246b293a1ac7678dba6830000603a3979cf83ff7b2f21f2e3725202237cfb89e32bcb38a1d35727efbd3c3a22e65b42321e8ade8eec01ce755d08
+ languageName: node
+ linkType: hard
+
"form-data@npm:^3.0.0":
version: 3.0.1
resolution: "form-data@npm:3.0.1"
@@ -9049,6 +9489,18 @@ __metadata:
languageName: node
linkType: hard
+"fstream@npm:^1.0.12":
+ version: 1.0.12
+ resolution: "fstream@npm:1.0.12"
+ dependencies:
+ graceful-fs: ^4.1.2
+ inherits: ~2.0.0
+ mkdirp: ">=0.5 0"
+ rimraf: 2
+ checksum: e6998651aeb85fd0f0a8a68cec4d05a3ada685ecc4e3f56e0d063d0564a4fc39ad11a856f9020f926daf869fc67f7a90e891def5d48e4cadab875dc313094536
+ languageName: node
+ linkType: hard
+
"function-bind@npm:^1.1.1":
version: 1.1.1
resolution: "function-bind@npm:1.1.1"
@@ -9214,6 +9666,15 @@ __metadata:
languageName: node
linkType: hard
+"glob-parent@npm:^6.0.1":
+ version: 6.0.2
+ resolution: "glob-parent@npm:6.0.2"
+ dependencies:
+ is-glob: ^4.0.3
+ checksum: c13ee97978bef4f55106b71e66428eb1512e71a7466ba49025fc2aec59a5bfb0954d5abd58fc5ee6c9b076eef4e1f6d3375c2e964b88466ca390da4419a786a8
+ languageName: node
+ linkType: hard
+
"glob-promise@npm:^3.4.0":
version: 3.4.0
resolution: "glob-promise@npm:3.4.0"
@@ -9250,7 +9711,7 @@ __metadata:
languageName: node
linkType: hard
-"glob@npm:^7.1.1, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6, glob@npm:^7.2.0":
+"glob@npm:7.2.0, glob@npm:^7.1.1, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6, glob@npm:^7.2.0":
version: 7.2.0
resolution: "glob@npm:7.2.0"
dependencies:
@@ -9330,21 +9791,28 @@ __metadata:
linkType: hard
"goober@npm:^2.1.1":
- version: 2.1.7
- resolution: "goober@npm:2.1.7"
+ version: 2.1.8
+ resolution: "goober@npm:2.1.8"
peerDependencies:
- csstype: ^2.6.2
- checksum: f26e056e3ea58c6e7810fb620773f19dfee6f791f316a53c082834aa44c8ab7248b591c4a6f348bbdeb2da54c11e046b87bf359648711f99c0ccd1b423be1f29
+ csstype: ^3.0.10
+ checksum: c877e854814e29c085c0d3f7879492788ceff9b1a0a0d731bfe22e59a2d206f991c3fb44ad14a32a9c2f396e3280ad6a8e597a95bb2d052c59dd7c25814f1c67
languageName: node
linkType: hard
-"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.1.9, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9":
+"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.1.9, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.2, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9":
version: 4.2.9
resolution: "graceful-fs@npm:4.2.9"
checksum: 68ea4e07ff2c041ada184f9278b830375f8e0b75154e3f080af6b70f66172fabb4108d19b3863a96b53fc068a310b9b6493d86d1291acc5f3861eb4b79d26ad6
languageName: node
linkType: hard
+"growl@npm:1.10.5":
+ version: 1.10.5
+ resolution: "growl@npm:1.10.5"
+ checksum: 4b86685de6831cebcbb19f93870bea624afee61124b0a20c49017013987cd129e73a8c4baeca295728f41d21265e1f859d25ef36731b142ca59c655fea94bb1a
+ languageName: node
+ linkType: hard
+
"handlebars@npm:^4.7.7":
version: 4.7.7
resolution: "handlebars@npm:4.7.7"
@@ -9565,7 +10033,7 @@ __metadata:
languageName: node
linkType: hard
-"he@npm:^1.2.0":
+"he@npm:1.2.0, he@npm:^1.2.0":
version: 1.2.0
resolution: "he@npm:1.2.0"
bin:
@@ -9973,7 +10441,7 @@ __metadata:
languageName: node
linkType: hard
-"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.0, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.1, inherits@npm:~2.0.3":
+"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.0, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.0, inherits@npm:~2.0.1, inherits@npm:~2.0.3":
version: 2.0.4
resolution: "inherits@npm:2.0.4"
checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1
@@ -10369,7 +10837,7 @@ __metadata:
languageName: node
linkType: hard
-"is-plain-obj@npm:^2.0.0":
+"is-plain-obj@npm:^2.0.0, is-plain-obj@npm:^2.1.0":
version: 2.1.0
resolution: "is-plain-obj@npm:2.1.0"
checksum: cec9100678b0a9fe0248a81743041ed990c2d4c99f893d935545cfbc42876cbe86d207f3b895700c690ad2fa520e568c44afc1605044b535a7820c1d40e38daa
@@ -11156,26 +11624,26 @@ __metadata:
languageName: node
linkType: hard
-"js-yaml@npm:^3.13.1":
- version: 3.14.1
- resolution: "js-yaml@npm:3.14.1"
+"js-yaml@npm:4.1.0, js-yaml@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "js-yaml@npm:4.1.0"
dependencies:
- argparse: ^1.0.7
- esprima: ^4.0.0
+ argparse: ^2.0.1
bin:
js-yaml: bin/js-yaml.js
- checksum: bef146085f472d44dee30ec34e5cf36bf89164f5d585435a3d3da89e52622dff0b188a580e4ad091c3341889e14cb88cac6e4deb16dc5b1e9623bb0601fc255c
+ checksum: c7830dfd456c3ef2c6e355cc5a92e6700ceafa1d14bba54497b34a99f0376cecbb3e9ac14d3e5849b426d5a5140709a66237a8c991c675431271c4ce5504151a
languageName: node
linkType: hard
-"js-yaml@npm:^4.1.0":
- version: 4.1.0
- resolution: "js-yaml@npm:4.1.0"
+"js-yaml@npm:^3.13.1":
+ version: 3.14.1
+ resolution: "js-yaml@npm:3.14.1"
dependencies:
- argparse: ^2.0.1
+ argparse: ^1.0.7
+ esprima: ^4.0.0
bin:
js-yaml: bin/js-yaml.js
- checksum: c7830dfd456c3ef2c6e355cc5a92e6700ceafa1d14bba54497b34a99f0376cecbb3e9ac14d3e5849b426d5a5140709a66237a8c991c675431271c4ce5504151a
+ checksum: bef146085f472d44dee30ec34e5cf36bf89164f5d585435a3d3da89e52622dff0b188a580e4ad091c3341889e14cb88cac6e4deb16dc5b1e9623bb0601fc255c
languageName: node
linkType: hard
@@ -11480,6 +11948,13 @@ __metadata:
languageName: node
linkType: hard
+"listenercount@npm:~1.0.1":
+ version: 1.0.1
+ resolution: "listenercount@npm:1.0.1"
+ checksum: 0f1c9077cdaf2ebc16473c7d72eb7de6d983898ca42500f03da63c3914b6b312dd5f7a90d2657691ea25adf3fe0ac5a43226e8b2c673fd73415ed038041f4757
+ languageName: node
+ linkType: hard
+
"listr2@npm:^3.2.2":
version: 3.14.0
resolution: "listr2@npm:3.14.0"
@@ -11697,7 +12172,7 @@ __metadata:
languageName: node
linkType: hard
-"log-symbols@npm:^4.0.0":
+"log-symbols@npm:4.1.0, log-symbols@npm:^4.0.0":
version: 4.1.0
resolution: "log-symbols@npm:4.1.0"
dependencies:
@@ -12064,7 +12539,7 @@ __metadata:
languageName: node
linkType: hard
-"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4":
+"micromatch@npm:^4.0.0, micromatch@npm:^4.0.2, micromatch@npm:^4.0.4":
version: 4.0.4
resolution: "micromatch@npm:4.0.4"
dependencies:
@@ -12170,12 +12645,21 @@ __metadata:
languageName: node
linkType: hard
+"minimatch@npm:3.0.4":
+ version: 3.0.4
+ resolution: "minimatch@npm:3.0.4"
+ dependencies:
+ brace-expansion: ^1.1.7
+ checksum: 66ac295f8a7b59788000ea3749938b0970344c841750abd96694f80269b926ebcafad3deeb3f1da2522978b119e6ae3a5869b63b13a7859a456b3408bd18a078
+ languageName: node
+ linkType: hard
+
"minimatch@npm:^3.0.2, minimatch@npm:^3.0.4":
- version: 3.0.5
- resolution: "minimatch@npm:3.0.5"
+ version: 3.1.1
+ resolution: "minimatch@npm:3.1.1"
dependencies:
brace-expansion: ^1.1.7
- checksum: a3b84b426eafca947741b864502cee02860c4e7b145de11ad98775cfcf3066fef422583bc0ffce0952ddf4750c1ccf4220b1556430d4ce10139f66247d87d69e
+ checksum: e9e3772e4ea06ea3a888d39bc7690d3c812ee7e5a70c2d2f568ccadac0249a027f865589d19ad03ed937e6ca3b4ad35f85411db9670f7877d8fc2ed452f1cd37
languageName: node
linkType: hard
@@ -12284,7 +12768,7 @@ __metadata:
languageName: node
linkType: hard
-"mkdirp@npm:^0.5.1, mkdirp@npm:^0.5.3":
+"mkdirp@npm:>=0.5 0, mkdirp@npm:^0.5.1, mkdirp@npm:^0.5.3":
version: 0.5.5
resolution: "mkdirp@npm:0.5.5"
dependencies:
@@ -12304,6 +12788,41 @@ __metadata:
languageName: node
linkType: hard
+"mocha@npm:^9.1.3":
+ version: 9.2.0
+ resolution: "mocha@npm:9.2.0"
+ dependencies:
+ "@ungap/promise-all-settled": 1.1.2
+ ansi-colors: 4.1.1
+ browser-stdout: 1.3.1
+ chokidar: 3.5.3
+ debug: 4.3.3
+ diff: 5.0.0
+ escape-string-regexp: 4.0.0
+ find-up: 5.0.0
+ glob: 7.2.0
+ growl: 1.10.5
+ he: 1.2.0
+ js-yaml: 4.1.0
+ log-symbols: 4.1.0
+ minimatch: 3.0.4
+ ms: 2.1.3
+ nanoid: 3.2.0
+ serialize-javascript: 6.0.0
+ strip-json-comments: 3.1.1
+ supports-color: 8.1.1
+ which: 2.0.2
+ workerpool: 6.2.0
+ yargs: 16.2.0
+ yargs-parser: 20.2.4
+ yargs-unparser: 2.0.0
+ bin:
+ _mocha: bin/_mocha
+ mocha: bin/mocha
+ checksum: 49efc4724cf17087c7e107bc8f6890db24525e6dcc153b801da58de3c2a2f940e22f7600ef195b8ac62a0dfd7baee5cf289fc4641a6b1fdf8bc9c819efc1a8ba
+ languageName: node
+ linkType: hard
+
"morgan@npm:^1.9.1":
version: 1.10.0
resolution: "morgan@npm:1.10.0"
@@ -12368,7 +12887,7 @@ __metadata:
languageName: node
linkType: hard
-"nanoid@npm:^3.2.0":
+"nanoid@npm:3.2.0":
version: 3.2.0
resolution: "nanoid@npm:3.2.0"
bin:
@@ -12377,6 +12896,15 @@ __metadata:
languageName: node
linkType: hard
+"nanoid@npm:^3.2.0":
+ version: 3.3.0
+ resolution: "nanoid@npm:3.3.0"
+ bin:
+ nanoid: bin/nanoid.cjs
+ checksum: 183d7da5c910a717a6058c7d4485d69de6f50fe3eb903830fa965430c7bbd516d70b9eb523a25cf32550bebe835a7adf080b6059808d50c9a8895fa9204e7499
+ languageName: node
+ linkType: hard
+
"nanomatch@npm:^1.2.9":
version: 1.2.13
resolution: "nanomatch@npm:1.2.13"
@@ -14378,6 +14906,15 @@ __metadata:
languageName: node
linkType: hard
+"rechoir@npm:^0.7.0":
+ version: 0.7.1
+ resolution: "rechoir@npm:0.7.1"
+ dependencies:
+ resolve: ^1.9.0
+ checksum: 2a04aab4e28c05fcd6ee6768446bc8b859d8f108e71fc7f5bcbc5ef25e53330ce2c11d10f82a24591a2df4c49c4f61feabe1fd11f844c66feedd4cd7bb61146a
+ languageName: node
+ linkType: hard
+
"redent@npm:^1.0.0":
version: 1.0.0
resolution: "redent@npm:1.0.0"
@@ -14458,7 +14995,7 @@ __metadata:
languageName: node
linkType: hard
-"regexpp@npm:^3.1.0":
+"regexpp@npm:^3.1.0, regexpp@npm:^3.2.0":
version: 3.2.0
resolution: "regexpp@npm:3.2.0"
checksum: a78dc5c7158ad9ddcfe01aa9144f46e192ddbfa7b263895a70a5c6c73edd9ce85faf7c0430e59ac38839e1734e275b9c3de5c57ee3ab6edc0e0b1bdebefccef8
@@ -14668,7 +15205,7 @@ __metadata:
languageName: node
linkType: hard
-"resolve@npm:^1.10.0, resolve@npm:^1.12.0, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.0, resolve@npm:^1.3.2":
+"resolve@npm:^1.10.0, resolve@npm:^1.12.0, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.0, resolve@npm:^1.3.2, resolve@npm:^1.9.0":
version: 1.22.0
resolution: "resolve@npm:1.22.0"
dependencies:
@@ -14691,7 +15228,7 @@ __metadata:
languageName: node
linkType: hard
-"resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.12.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.0#~builtin, resolve@patch:resolve@^1.3.2#~builtin":
+"resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.12.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.0#~builtin, resolve@patch:resolve@^1.3.2#~builtin, resolve@patch:resolve@^1.9.0#~builtin":
version: 1.22.0
resolution: "resolve@patch:resolve@npm%3A1.22.0#~builtin::version=1.22.0&hash=07638b"
dependencies:
@@ -14752,7 +15289,7 @@ __metadata:
languageName: node
linkType: hard
-"rimraf@npm:^2.2.8, rimraf@npm:^2.5.4, rimraf@npm:^2.6.3":
+"rimraf@npm:2, rimraf@npm:^2.2.8, rimraf@npm:^2.5.4, rimraf@npm:^2.6.3":
version: 2.7.1
resolution: "rimraf@npm:2.7.1"
dependencies:
@@ -15055,6 +15592,15 @@ __metadata:
languageName: node
linkType: hard
+"serialize-javascript@npm:6.0.0, serialize-javascript@npm:^6.0.0":
+ version: 6.0.0
+ resolution: "serialize-javascript@npm:6.0.0"
+ dependencies:
+ randombytes: ^2.1.0
+ checksum: 56f90b562a1bdc92e55afb3e657c6397c01a902c588c0fe3d4c490efdcc97dcd2a3074ba12df9e94630f33a5ce5b76a74784a7041294628a6f4306e0ec84bf93
+ languageName: node
+ linkType: hard
+
"serialize-javascript@npm:^4.0.0":
version: 4.0.0
resolution: "serialize-javascript@npm:4.0.0"
@@ -15073,15 +15619,6 @@ __metadata:
languageName: node
linkType: hard
-"serialize-javascript@npm:^6.0.0":
- version: 6.0.0
- resolution: "serialize-javascript@npm:6.0.0"
- dependencies:
- randombytes: ^2.1.0
- checksum: 56f90b562a1bdc92e55afb3e657c6397c01a902c588c0fe3d4c490efdcc97dcd2a3074ba12df9e94630f33a5ce5b76a74784a7041294628a6f4306e0ec84bf93
- languageName: node
- linkType: hard
-
"serve-favicon@npm:^2.5.0":
version: 2.5.0
resolution: "serve-favicon@npm:2.5.0"
@@ -15141,7 +15678,7 @@ __metadata:
languageName: node
linkType: hard
-"setimmediate@npm:^1.0.4":
+"setimmediate@npm:^1.0.4, setimmediate@npm:~1.0.4":
version: 1.0.5
resolution: "setimmediate@npm:1.0.5"
checksum: c9a6f2c5b51a2dabdc0247db9c46460152ffc62ee139f3157440bd48e7c59425093f42719ac1d7931f054f153e2d26cf37dfeb8da17a794a58198a2705e527fd
@@ -15513,9 +16050,9 @@ __metadata:
linkType: hard
"stackframe@npm:^1.1.1":
- version: 1.2.0
- resolution: "stackframe@npm:1.2.0"
- checksum: 37d659bdd574e118a48c445a9a054a2b8dee6d6ad54eb16c51c7dae622c0f4994b9ff4e47d744aa6cfd14c00b477e145f34db3df78771f3e783ce8f357616d00
+ version: 1.2.1
+ resolution: "stackframe@npm:1.2.1"
+ checksum: 1a3f281014bb1d2178b7c2ab26d657fb0f83c21d7d34ab33d858fd0b652a035254619fce8601278a2cf22ddb3382af21c4ea29b429806da75f3077fbd5e5bf17
languageName: node
linkType: hard
@@ -15830,7 +16367,7 @@ __metadata:
languageName: node
linkType: hard
-"strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1":
+"strip-json-comments@npm:3.1.1, strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1":
version: 3.1.1
resolution: "strip-json-comments@npm:3.1.1"
checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443
@@ -15858,6 +16395,15 @@ __metadata:
languageName: node
linkType: hard
+"supports-color@npm:8.1.1, supports-color@npm:^8.0.0":
+ version: 8.1.1
+ resolution: "supports-color@npm:8.1.1"
+ dependencies:
+ has-flag: ^4.0.0
+ checksum: c052193a7e43c6cdc741eb7f378df605636e01ad434badf7324f17fb60c69a880d8d8fcdcb562cf94c2350e57b937d7425ab5b8326c67c2adc48f7c87c1db406
+ languageName: node
+ linkType: hard
+
"supports-color@npm:^5.3.0":
version: 5.5.0
resolution: "supports-color@npm:5.5.0"
@@ -15885,15 +16431,6 @@ __metadata:
languageName: node
linkType: hard
-"supports-color@npm:^8.0.0":
- version: 8.1.1
- resolution: "supports-color@npm:8.1.1"
- dependencies:
- has-flag: ^4.0.0
- checksum: c052193a7e43c6cdc741eb7f378df605636e01ad434badf7324f17fb60c69a880d8d8fcdcb562cf94c2350e57b937d7425ab5b8326c67c2adc48f7c87c1db406
- languageName: node
- linkType: hard
-
"supports-hyperlinks@npm:^2.0.0":
version: 2.2.0
resolution: "supports-hyperlinks@npm:2.2.0"
@@ -16276,6 +16813,13 @@ __metadata:
languageName: node
linkType: hard
+"traverse@npm:>=0.3.0 <0.4":
+ version: 0.3.9
+ resolution: "traverse@npm:0.3.9"
+ checksum: 982982e4e249e9bbf063732a41fe5595939892758524bbef5d547c67cdf371b13af72b5434c6a61d88d4bb4351d6dabc6e22d832e0d16bc1bc684ef97a1cc59e
+ languageName: node
+ linkType: hard
+
"tree-kill@npm:^1.2.2":
version: 1.2.2
resolution: "tree-kill@npm:1.2.2"
@@ -16354,6 +16898,21 @@ __metadata:
languageName: node
linkType: hard
+"ts-loader@npm:^9.2.6":
+ version: 9.2.6
+ resolution: "ts-loader@npm:9.2.6"
+ dependencies:
+ chalk: ^4.1.0
+ enhanced-resolve: ^5.0.0
+ micromatch: ^4.0.0
+ semver: ^7.3.4
+ peerDependencies:
+ typescript: "*"
+ webpack: ^5.0.0
+ checksum: 309d8fb6348c0c3a7166d42c1238c585ede00f816155b24217dbca489406a72409395d7954bc5801ddb9ca71c71e7e0b2375dbc342337e0ab1a461944598a7fe
+ languageName: node
+ linkType: hard
+
"ts-morph@npm:^13.0.0":
version: 13.0.3
resolution: "ts-morph@npm:13.0.3"
@@ -16504,7 +17063,7 @@ __metadata:
languageName: node
linkType: hard
-"typescript@npm:*, typescript@npm:^2.9.2 || ^3.0.0 || ^4.0.0, typescript@npm:^4.3.2, typescript@npm:^4.5.2":
+"typescript@npm:*, typescript@npm:^2.9.2 || ^3.0.0 || ^4.0.0, typescript@npm:^4.3.2, typescript@npm:^4.5.2, typescript@npm:^4.5.4":
version: 4.5.5
resolution: "typescript@npm:4.5.5"
bin:
@@ -16514,7 +17073,7 @@ __metadata:
languageName: node
linkType: hard
-"typescript@patch:typescript@*#~builtin, typescript@patch:typescript@^2.9.2 || ^3.0.0 || ^4.0.0#~builtin, typescript@patch:typescript@^4.3.2#~builtin, typescript@patch:typescript@^4.5.2#~builtin":
+"typescript@patch:typescript@*#~builtin, typescript@patch:typescript@^2.9.2 || ^3.0.0 || ^4.0.0#~builtin, typescript@patch:typescript@^4.3.2#~builtin, typescript@patch:typescript@^4.5.2#~builtin, typescript@patch:typescript@^4.5.4#~builtin":
version: 4.5.5
resolution: "typescript@patch:typescript@npm%3A4.5.5#~builtin::version=4.5.5&hash=493e53"
bin:
@@ -16804,6 +17363,24 @@ __metadata:
languageName: node
linkType: hard
+"unzipper@npm:^0.10.11":
+ version: 0.10.11
+ resolution: "unzipper@npm:0.10.11"
+ dependencies:
+ big-integer: ^1.6.17
+ binary: ~0.3.0
+ bluebird: ~3.4.1
+ buffer-indexof-polyfill: ~1.0.0
+ duplexer2: ~0.1.4
+ fstream: ^1.0.12
+ graceful-fs: ^4.2.2
+ listenercount: ~1.0.1
+ readable-stream: ~2.3.6
+ setimmediate: ~1.0.4
+ checksum: 006cd43ec4d6df47d86aa6b15044a606f50cdcd6a3d6f96f64f54ca0b663c09abb221f76edca0e9592511036d37ea094b1d76ce92c5bf10d7c6eb56f0be678f8
+ languageName: node
+ linkType: hard
+
"upath@npm:^1.1.1, upath@npm:^1.2.0":
version: 1.2.0
resolution: "upath@npm:1.2.0"
@@ -17028,8 +17605,8 @@ __metadata:
linkType: hard
"vite@npm:^2.7.4":
- version: 2.8.1
- resolution: "vite@npm:2.8.1"
+ version: 2.8.2
+ resolution: "vite@npm:2.8.2"
dependencies:
esbuild: ^0.14.14
fsevents: ~2.3.2
@@ -17052,7 +17629,7 @@ __metadata:
optional: true
bin:
vite: bin/vite.js
- checksum: 4ce8acc2dd2a7ca8727511ff575f72de162114402e55e5d081001f05ef1656782cd5611d4f6091c29efb455e72d30967467bad5b6b329bfe5279fbe8d5169d67
+ checksum: 2e5ace113e34fbcd335ea9e83292086fb464a0029df5b4547ae89d109de509210bd0027dc2c041f11d24a0af6136ee31e78dd605a1d93fa23e968db5a4e81c7e
languageName: node
linkType: hard
@@ -17177,6 +17754,39 @@ __metadata:
languageName: node
linkType: hard
+"webpack-cli@npm:^4.9.1":
+ version: 4.9.2
+ resolution: "webpack-cli@npm:4.9.2"
+ dependencies:
+ "@discoveryjs/json-ext": ^0.5.0
+ "@webpack-cli/configtest": ^1.1.1
+ "@webpack-cli/info": ^1.4.1
+ "@webpack-cli/serve": ^1.6.1
+ colorette: ^2.0.14
+ commander: ^7.0.0
+ execa: ^5.0.0
+ fastest-levenshtein: ^1.0.12
+ import-local: ^3.0.2
+ interpret: ^2.2.0
+ rechoir: ^0.7.0
+ webpack-merge: ^5.7.3
+ peerDependencies:
+ webpack: 4.x.x || 5.x.x
+ peerDependenciesMeta:
+ "@webpack-cli/generators":
+ optional: true
+ "@webpack-cli/migrate":
+ optional: true
+ webpack-bundle-analyzer:
+ optional: true
+ webpack-dev-server:
+ optional: true
+ bin:
+ webpack-cli: bin/cli.js
+ checksum: ffb4c5d53ab65ce9f1e8efd34fca4cb858ec6afc91ece0d9375094edff2e7615708c8a586991057fd9cc8d37aab0eb0511913b178daac534e51bcf7d3583e61c
+ languageName: node
+ linkType: hard
+
"webpack-dev-middleware@npm:^3.7.3":
version: 3.7.3
resolution: "webpack-dev-middleware@npm:3.7.3"
@@ -17223,6 +17833,16 @@ __metadata:
languageName: node
linkType: hard
+"webpack-merge@npm:^5.7.3":
+ version: 5.8.0
+ resolution: "webpack-merge@npm:5.8.0"
+ dependencies:
+ clone-deep: ^4.0.1
+ wildcard: ^2.0.0
+ checksum: 88786ab91013f1bd2a683834ff381be81c245a4b0f63304a5103e90f6653f44dab496a0768287f8531761f8ad957d1f9f3ccb2cb55df0de1bd9ee343e079da26
+ languageName: node
+ linkType: hard
+
"webpack-sources@npm:^1.4.0, webpack-sources@npm:^1.4.1, webpack-sources@npm:^1.4.3":
version: 1.4.3
resolution: "webpack-sources@npm:1.4.3"
@@ -17287,7 +17907,7 @@ __metadata:
languageName: node
linkType: hard
-"webpack@npm:>=4.43.0 <6.0.0":
+"webpack@npm:>=4.43.0 <6.0.0, webpack@npm:^5.66.0":
version: 5.68.0
resolution: "webpack@npm:5.68.0"
dependencies:
@@ -17410,7 +18030,7 @@ __metadata:
languageName: node
linkType: hard
-"which@npm:^2.0.1, which@npm:^2.0.2":
+"which@npm:2.0.2, which@npm:^2.0.1, which@npm:^2.0.2":
version: 2.0.2
resolution: "which@npm:2.0.2"
dependencies:
@@ -17439,6 +18059,13 @@ __metadata:
languageName: node
linkType: hard
+"wildcard@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "wildcard@npm:2.0.0"
+ checksum: 1f4fe4c03dfc492777c60f795bbba597ac78794f1b650d68f398fbee9adb765367c516ebd4220889b6a81e9626e7228bbe0d66237abb311573c2ee1f4902a5ad
+ languageName: node
+ linkType: hard
+
"word-wrap@npm:^1.2.3, word-wrap@npm:~1.2.3":
version: 1.2.3
resolution: "word-wrap@npm:1.2.3"
@@ -17662,6 +18289,13 @@ __metadata:
languageName: node
linkType: hard
+"workerpool@npm:6.2.0":
+ version: 6.2.0
+ resolution: "workerpool@npm:6.2.0"
+ checksum: 3493b4f0ef979a23d2c1583d7ef85f62fc9463cc02f82829d3e7e663b517f8ae9707da0249b382e46ac58986deb0ca2232ee1081713741211bda9254b429c9bb
+ languageName: node
+ linkType: hard
+
"wrap-ansi@npm:^5.1.0":
version: 5.1.0
resolution: "wrap-ansi@npm:5.1.0"
@@ -17814,6 +18448,13 @@ __metadata:
languageName: node
linkType: hard
+"yargs-parser@npm:20.2.4":
+ version: 20.2.4
+ resolution: "yargs-parser@npm:20.2.4"
+ checksum: d251998a374b2743a20271c2fd752b9fbef24eb881d53a3b99a7caa5e8227fcafd9abf1f345ac5de46435821be25ec12189a11030c12ee6481fef6863ed8b924
+ languageName: node
+ linkType: hard
+
"yargs-parser@npm:20.x, yargs-parser@npm:^20.2.2, yargs-parser@npm:^20.2.7":
version: 20.2.9
resolution: "yargs-parser@npm:20.2.9"
@@ -17831,25 +18472,19 @@ __metadata:
languageName: node
linkType: hard
-"yargs@npm:^13.3.0":
- version: 13.3.2
- resolution: "yargs@npm:13.3.2"
+"yargs-unparser@npm:2.0.0":
+ version: 2.0.0
+ resolution: "yargs-unparser@npm:2.0.0"
dependencies:
- cliui: ^5.0.0
- find-up: ^3.0.0
- get-caller-file: ^2.0.1
- require-directory: ^2.1.1
- require-main-filename: ^2.0.0
- set-blocking: ^2.0.0
- string-width: ^3.0.0
- which-module: ^2.0.0
- y18n: ^4.0.0
- yargs-parser: ^13.1.2
- checksum: 75c13e837eb2bb25717957ba58d277e864efc0cca7f945c98bdf6477e6ec2f9be6afa9ed8a876b251a21423500c148d7b91e88dee7adea6029bdec97af1ef3e8
+ camelcase: ^6.0.0
+ decamelize: ^4.0.0
+ flat: ^5.0.2
+ is-plain-obj: ^2.1.0
+ checksum: 68f9a542c6927c3768c2f16c28f71b19008710abd6b8f8efbac6dcce26bbb68ab6503bed1d5994bdbc2df9a5c87c161110c1dfe04c6a3fe5c6ad1b0e15d9a8a3
languageName: node
linkType: hard
-"yargs@npm:^16.2.0":
+"yargs@npm:16.2.0, yargs@npm:^16.2.0":
version: 16.2.0
resolution: "yargs@npm:16.2.0"
dependencies:
@@ -17864,6 +18499,24 @@ __metadata:
languageName: node
linkType: hard
+"yargs@npm:^13.3.0":
+ version: 13.3.2
+ resolution: "yargs@npm:13.3.2"
+ dependencies:
+ cliui: ^5.0.0
+ find-up: ^3.0.0
+ get-caller-file: ^2.0.1
+ require-directory: ^2.1.1
+ require-main-filename: ^2.0.0
+ set-blocking: ^2.0.0
+ string-width: ^3.0.0
+ which-module: ^2.0.0
+ y18n: ^4.0.0
+ yargs-parser: ^13.1.2
+ checksum: 75c13e837eb2bb25717957ba58d277e864efc0cca7f945c98bdf6477e6ec2f9be6afa9ed8a876b251a21423500c148d7b91e88dee7adea6029bdec97af1ef3e8
+ languageName: node
+ linkType: hard
+
"yocto-queue@npm:^0.1.0":
version: 0.1.0
resolution: "yocto-queue@npm:0.1.0"