vscode extension
also: - don't bundle react and react-dom with webpack - controlled mode for SquigglePlayground
This commit is contained in:
parent
906878f19f
commit
618028d772
|
@ -31,6 +31,9 @@ interface PlaygroundProps {
|
|||
showControls?: boolean;
|
||||
/** Whether to show the summary table in the playground */
|
||||
showSummary?: boolean;
|
||||
/** If code is set, component becomes controlled */
|
||||
code?: string;
|
||||
onCodeChange?(expr: string): void;
|
||||
}
|
||||
|
||||
const schema = yup
|
||||
|
@ -196,8 +199,12 @@ const SquigglePlayground: FC<PlaygroundProps> = ({
|
|||
showTypes = false,
|
||||
showControls = false,
|
||||
showSummary = false,
|
||||
code: controlledCode,
|
||||
onCodeChange,
|
||||
}) => {
|
||||
const [squiggleString, setSquiggleString] = useState(initialSquiggleString);
|
||||
const [uncontrolledCode, setUncontrolledCode] = useState(
|
||||
initialSquiggleString
|
||||
);
|
||||
const [importString, setImportString] = useState("{}");
|
||||
const [imports, setImports] = useState({});
|
||||
const [importsAreValid, setImportsAreValid] = useState(true);
|
||||
|
@ -239,6 +246,8 @@ const SquigglePlayground: FC<PlaygroundProps> = ({
|
|||
}
|
||||
};
|
||||
|
||||
const code = controlledCode ?? uncontrolledCode;
|
||||
|
||||
const samplingSettings = (
|
||||
<div className="space-y-6 p-3 max-w-xl">
|
||||
<div>
|
||||
|
@ -391,8 +400,14 @@ const SquigglePlayground: FC<PlaygroundProps> = ({
|
|||
<Tab.Panel>
|
||||
<div className="border border-slate-200">
|
||||
<CodeEditor
|
||||
value={squiggleString}
|
||||
onChange={setSquiggleString}
|
||||
value={code}
|
||||
onChange={(newCode) => {
|
||||
if (controlledCode === undefined) {
|
||||
// uncontrolled mode
|
||||
setUncontrolledCode(newCode);
|
||||
}
|
||||
onCodeChange?.(newCode);
|
||||
}}
|
||||
oneLine={false}
|
||||
showGutter={true}
|
||||
height={height - 1}
|
||||
|
@ -408,7 +423,7 @@ const SquigglePlayground: FC<PlaygroundProps> = ({
|
|||
<div className="w-1/2 p-2 pl-4">
|
||||
<div style={{ maxHeight: height }}>
|
||||
<SquiggleChart
|
||||
squiggleString={squiggleString}
|
||||
squiggleString={code}
|
||||
environment={env}
|
||||
chartSettings={chartSettings}
|
||||
height={vars.chartHeight}
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
const path = require("path");
|
||||
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
|
||||
|
||||
module.exports = {
|
||||
mode: "production",
|
||||
devtool: "source-map",
|
||||
profile: true,
|
||||
entry: ["./src/index.ts", "./src/styles/main.css"],
|
||||
entry: "./src/index.ts",
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
|
@ -14,13 +13,8 @@ module.exports = {
|
|||
options: { projectReferences: true },
|
||||
exclude: /node_modules/,
|
||||
},
|
||||
{
|
||||
test: /\.css$/i,
|
||||
use: [MiniCssExtractPlugin.loader, "css-loader", "postcss-loader"],
|
||||
},
|
||||
],
|
||||
},
|
||||
plugins: [new MiniCssExtractPlugin()],
|
||||
resolve: {
|
||||
extensions: [".js", ".tsx", ".ts"],
|
||||
alias: {
|
||||
|
@ -42,4 +36,8 @@ module.exports = {
|
|||
compress: true,
|
||||
port: 9000,
|
||||
},
|
||||
externals: {
|
||||
react: "React",
|
||||
"react-dom": "ReactDOM",
|
||||
},
|
||||
};
|
||||
|
|
24
packages/vscode-ext/.eslintrc.json
Normal file
24
packages/vscode-ext/.eslintrc.json
Normal file
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"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"
|
||||
]
|
||||
}
|
3
packages/vscode-ext/.gitignore
vendored
Normal file
3
packages/vscode-ext/.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
/media/components.css
|
||||
/media/components-bundle.js
|
||||
/out
|
7
packages/vscode-ext/.vscode/extensions.json
vendored
Normal file
7
packages/vscode-ext/.vscode/extensions.json
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
// See http://go.microsoft.com/fwlink/?LinkId=827846
|
||||
// for the documentation about the extensions.json format
|
||||
"recommendations": [
|
||||
"dbaeumer.vscode-eslint"
|
||||
]
|
||||
}
|
34
packages/vscode-ext/.vscode/launch.json
vendored
Normal file
34
packages/vscode-ext/.vscode/launch.json
vendored
Normal file
|
@ -0,0 +1,34 @@
|
|||
// 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}/out/**/*.js"
|
||||
],
|
||||
"preLaunchTask": "${defaultBuildTask}"
|
||||
},
|
||||
{
|
||||
"name": "Extension Tests",
|
||||
"type": "extensionHost",
|
||||
"request": "launch",
|
||||
"args": [
|
||||
"--extensionDevelopmentPath=${workspaceFolder}",
|
||||
"--extensionTestsPath=${workspaceFolder}/out/test/suite/index"
|
||||
],
|
||||
"outFiles": [
|
||||
"${workspaceFolder}/out/test/**/*.js"
|
||||
],
|
||||
"preLaunchTask": "${defaultBuildTask}"
|
||||
}
|
||||
]
|
||||
}
|
11
packages/vscode-ext/.vscode/settings.json
vendored
Normal file
11
packages/vscode-ext/.vscode/settings.json
vendored
Normal file
|
@ -0,0 +1,11 @@
|
|||
// 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
|
||||
},
|
||||
"search.exclude": {
|
||||
"out": true // set this to false to include "out" folder in search results
|
||||
},
|
||||
// Turn off tsc task auto detection since we have the necessary tasks as npm scripts
|
||||
"typescript.tsc.autoDetect": "off"
|
||||
}
|
20
packages/vscode-ext/.vscode/tasks.json
vendored
Normal file
20
packages/vscode-ext/.vscode/tasks.json
vendored
Normal file
|
@ -0,0 +1,20 @@
|
|||
// 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": "$tsc-watch",
|
||||
"isBackground": true,
|
||||
"presentation": {
|
||||
"reveal": "never"
|
||||
},
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
10
packages/vscode-ext/.vscodeignore
Normal file
10
packages/vscode-ext/.vscodeignore
Normal file
|
@ -0,0 +1,10 @@
|
|||
.vscode/**
|
||||
.vscode-test/**
|
||||
src/**
|
||||
.gitignore
|
||||
.yarnrc
|
||||
vsc-extension-quickstart.md
|
||||
**/tsconfig.json
|
||||
**/.eslintrc.json
|
||||
**/*.map
|
||||
**/*.ts
|
1
packages/vscode-ext/.yarnrc
Normal file
1
packages/vscode-ext/.yarnrc
Normal file
|
@ -0,0 +1 @@
|
|||
--ignore-engines true
|
70
packages/vscode-ext/README.md
Normal file
70
packages/vscode-ext/README.md
Normal file
|
@ -0,0 +1,70 @@
|
|||
# squiggle README
|
||||
|
||||
This is the README for your extension "squiggle". After writing up a brief description, we recommend including the following sections.
|
||||
|
||||
## Features
|
||||
|
||||
Describe specific features of your extension including screenshots of your extension in action. Image paths are relative to this README file.
|
||||
|
||||
For example if there is an image subfolder under your extension project workspace:
|
||||
|
||||
\!\[feature X\]\(images/feature-x.png\)
|
||||
|
||||
> Tip: Many popular extensions utilize animations. This is an excellent way to show off your extension! We recommend short, focused animations that are easy to follow.
|
||||
|
||||
## Requirements
|
||||
|
||||
If you have any requirements or dependencies, add a section describing those and how to install and configure them.
|
||||
|
||||
## Extension Settings
|
||||
|
||||
Include if your extension adds any VS Code settings through the `contributes.configuration` extension point.
|
||||
|
||||
For example:
|
||||
|
||||
This extension contributes the following settings:
|
||||
|
||||
* `myExtension.enable`: enable/disable this extension
|
||||
* `myExtension.thing`: set to `blah` to do something
|
||||
|
||||
## Known Issues
|
||||
|
||||
Calling out known issues can help limit users opening duplicate issues against your extension.
|
||||
|
||||
## Release Notes
|
||||
|
||||
Users appreciate release notes as you update your extension.
|
||||
|
||||
### 1.0.0
|
||||
|
||||
Initial release of ...
|
||||
|
||||
### 1.0.1
|
||||
|
||||
Fixed issue #.
|
||||
|
||||
### 1.1.0
|
||||
|
||||
Added features X, Y, and Z.
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
## Following extension guidelines
|
||||
|
||||
Ensure that you've read through the extensions guidelines and follow the best practices for creating your extension.
|
||||
|
||||
* [Extension Guidelines](https://code.visualstudio.com/api/references/extension-guidelines)
|
||||
|
||||
## Working with Markdown
|
||||
|
||||
**Note:** You can author your README using Visual Studio Code. Here are some useful editor keyboard shortcuts:
|
||||
|
||||
* Split the editor (`Cmd+\` on macOS or `Ctrl+\` on Windows and Linux)
|
||||
* Toggle preview (`Shift+CMD+V` on macOS or `Shift+Ctrl+V` on Windows and Linux)
|
||||
* Press `Ctrl+Space` (Windows, Linux) or `Cmd+Space` (macOS) to see a list of Markdown snippets
|
||||
|
||||
### For more information
|
||||
|
||||
* [Visual Studio Code's Markdown Support](http://code.visualstudio.com/docs/languages/markdown)
|
||||
* [Markdown Syntax Reference](https://help.github.com/articles/markdown-basics/)
|
||||
|
||||
**Enjoy!**
|
41
packages/vscode-ext/media/wysiwyg.js
Normal file
41
packages/vscode-ext/media/wysiwyg.js
Normal file
|
@ -0,0 +1,41 @@
|
|||
// based on https://github.com/microsoft/vscode-extension-samples/blob/main/custom-editor-sample/media/catScratch.js
|
||||
(function () {
|
||||
const vscode = acquireVsCodeApi();
|
||||
|
||||
const container = document.getElementById("root");
|
||||
|
||||
const root = ReactDOM.createRoot(container);
|
||||
function updateContent(text) {
|
||||
root.render(
|
||||
React.createElement(squiggle_components.SquigglePlayground, {
|
||||
code: text,
|
||||
onCodeChange: (code) => {
|
||||
vscode.postMessage({ type: "edit", text: code });
|
||||
},
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
// Handle messages sent from the extension to the webview
|
||||
window.addEventListener("message", (event) => {
|
||||
const message = event.data; // The json data that the extension sent
|
||||
switch (message.type) {
|
||||
case "update":
|
||||
const text = message.text;
|
||||
|
||||
// Update our webview's content
|
||||
updateContent(text);
|
||||
|
||||
// Then persist state information.
|
||||
// This state is returned in the call to `vscode.getState` below when a webview is reloaded.
|
||||
vscode.setState({ text });
|
||||
|
||||
return;
|
||||
}
|
||||
});
|
||||
|
||||
const state = vscode.getState();
|
||||
if (state) {
|
||||
updateContent(state.text);
|
||||
}
|
||||
})();
|
0
packages/vscode-ext/overrides/jest/index.d.ts
vendored
Normal file
0
packages/vscode-ext/overrides/jest/index.d.ts
vendored
Normal file
49
packages/vscode-ext/package.json
Normal file
49
packages/vscode-ext/package.json
Normal file
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"name": "vscode-squiggle",
|
||||
"displayName": "Squiggle",
|
||||
"description": "Squiggle language support",
|
||||
"version": "0.0.1",
|
||||
"engines": {
|
||||
"vscode": "^1.68.0"
|
||||
},
|
||||
"categories": [
|
||||
"Programming Languages"
|
||||
],
|
||||
"activationEvents": [
|
||||
"onCustomEditor:squiggle.wysiwyg"
|
||||
],
|
||||
"main": "./out/extension.js",
|
||||
"contributes": {
|
||||
"customEditors": [
|
||||
{
|
||||
"viewType": "squiggle.wysiwyg",
|
||||
"displayName": "Squiggle WYSIWYG",
|
||||
"selector": [
|
||||
{
|
||||
"filenamePattern": "*.squiggle"
|
||||
}
|
||||
],
|
||||
"priority": "default"
|
||||
}
|
||||
],
|
||||
"commands": []
|
||||
},
|
||||
"scripts": {
|
||||
"vscode:prepublish": "yarn run compile",
|
||||
"compile": "tsc -p ./ && (cd ../components && yarn all) && cp ../components/dist/bundle.js media/components-bundle.js && cp ../components/dist/main.css media/components.css",
|
||||
"watch": "tsc -watch -p ./",
|
||||
"pretest": "yarn run compile && yarn run lint",
|
||||
"lint": "eslint src --ext ts",
|
||||
"test": "node ./out/test/runTest.js"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/vscode": "^1.68.0",
|
||||
"@types/glob": "^7.2.0",
|
||||
"@types/node": "16.x",
|
||||
"@typescript-eslint/eslint-plugin": "^5.27.0",
|
||||
"@typescript-eslint/parser": "^5.27.0",
|
||||
"eslint": "^8.16.0",
|
||||
"glob": "^8.0.3",
|
||||
"typescript": "^4.7.2"
|
||||
}
|
||||
}
|
14
packages/vscode-ext/src/extension.ts
Normal file
14
packages/vscode-ext/src/extension.ts
Normal file
|
@ -0,0 +1,14 @@
|
|||
// The module 'vscode' contains the VS Code extensibility API
|
||||
// Import the module and reference it with the alias vscode in your code below
|
||||
import * as vscode from "vscode";
|
||||
|
||||
import { SquiggleEditorProvider } from "./squiggleEditor";
|
||||
|
||||
// this method is called when your extension is activated
|
||||
// your extension is activated the very first time the command is executed
|
||||
export function activate(context: vscode.ExtensionContext) {
|
||||
context.subscriptions.push(SquiggleEditorProvider.register(context));
|
||||
}
|
||||
|
||||
// this method is called when your extension is deactivated
|
||||
export function deactivate() {}
|
141
packages/vscode-ext/src/squiggleEditor.ts
Normal file
141
packages/vscode-ext/src/squiggleEditor.ts
Normal file
|
@ -0,0 +1,141 @@
|
|||
import * as vscode from "vscode";
|
||||
|
||||
function getNonce() {
|
||||
let text = "";
|
||||
const possible =
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
||||
for (let i = 0; i < 32; i++) {
|
||||
text += possible.charAt(Math.floor(Math.random() * possible.length));
|
||||
}
|
||||
return text;
|
||||
}
|
||||
|
||||
export class SquiggleEditorProvider implements vscode.CustomTextEditorProvider {
|
||||
public static register(context: vscode.ExtensionContext): vscode.Disposable {
|
||||
const provider = new SquiggleEditorProvider(context);
|
||||
const providerRegistration = vscode.window.registerCustomEditorProvider(
|
||||
SquiggleEditorProvider.viewType,
|
||||
provider
|
||||
);
|
||||
return providerRegistration;
|
||||
}
|
||||
|
||||
private static readonly viewType = "squiggle.wysiwyg";
|
||||
|
||||
constructor(private readonly context: vscode.ExtensionContext) {}
|
||||
|
||||
/**
|
||||
* Called when our custom editor is opened.
|
||||
*
|
||||
*
|
||||
*/
|
||||
public async resolveCustomTextEditor(
|
||||
document: vscode.TextDocument,
|
||||
webviewPanel: vscode.WebviewPanel
|
||||
): Promise<void> {
|
||||
// Setup initial content for the webview
|
||||
webviewPanel.webview.options = {
|
||||
enableScripts: true,
|
||||
};
|
||||
webviewPanel.webview.html = this.getHtmlForWebview(webviewPanel.webview);
|
||||
|
||||
function updateWebview() {
|
||||
webviewPanel.webview.postMessage({
|
||||
type: "update",
|
||||
text: document.getText(),
|
||||
});
|
||||
}
|
||||
|
||||
// Hook up event handlers so that we can synchronize the webview with the text document.
|
||||
//
|
||||
// The text document acts as our model, so we have to sync change in the document to our
|
||||
// editor and sync changes in the editor back to the document.
|
||||
//
|
||||
// Remember that a single text document can also be shared between multiple custom
|
||||
// editors (this happens for example when you split a custom editor)
|
||||
|
||||
const changeDocumentSubscription = vscode.workspace.onDidChangeTextDocument(
|
||||
(e) => {
|
||||
if (e.document.uri.toString() === document.uri.toString()) {
|
||||
updateWebview();
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
// Make sure we get rid of the listener when our editor is closed.
|
||||
webviewPanel.onDidDispose(() => {
|
||||
changeDocumentSubscription.dispose();
|
||||
});
|
||||
|
||||
// Receive message from the webview.
|
||||
webviewPanel.webview.onDidReceiveMessage((e) => {
|
||||
switch (e.type) {
|
||||
case "edit":
|
||||
this.updateTextDocument(document, e.text);
|
||||
return;
|
||||
}
|
||||
});
|
||||
|
||||
updateWebview();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the static html used for the editor webviews.
|
||||
*/
|
||||
private getHtmlForWebview(webview: vscode.Webview): string {
|
||||
// Local path to main script run in the webview
|
||||
|
||||
const bundleUri = webview.asWebviewUri(
|
||||
vscode.Uri.joinPath(
|
||||
this.context.extensionUri,
|
||||
"media",
|
||||
"components-bundle.js"
|
||||
)
|
||||
);
|
||||
const styleUri = webview.asWebviewUri(
|
||||
vscode.Uri.joinPath(this.context.extensionUri, "media", "components.css")
|
||||
);
|
||||
const scriptUri = webview.asWebviewUri(
|
||||
vscode.Uri.joinPath(this.context.extensionUri, "media", "wysiwyg.js")
|
||||
);
|
||||
|
||||
// Use a nonce to whitelist which scripts can be run
|
||||
const nonce = getNonce();
|
||||
|
||||
return /* html */ `
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<!--
|
||||
Use a content security policy to only allow loading images from https or from our extension directory,
|
||||
and only allow scripts that have a specific nonce.
|
||||
-->
|
||||
<meta http-equiv="Content-Security-Policy" content="script-src 'nonce-${nonce}' 'unsafe-eval';">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<script nonce="${nonce}" src="https://unpkg.com/react@18.2.0/umd/react.production.min.js" crossorigin></script>
|
||||
<script nonce="${nonce}" src="https://unpkg.com/react-dom@18.2.0/umd/react-dom.production.min.js" crossorigin></script>
|
||||
<script nonce="${nonce}" src="${bundleUri}"></script>
|
||||
<link href="${styleUri}" rel="stylesheet" />
|
||||
<title>Squiggle Editor</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="root" style="background-color: white;"></div>
|
||||
<script nonce="${nonce}" src="${scriptUri}"></script>
|
||||
</body>
|
||||
</html>`;
|
||||
}
|
||||
|
||||
private updateTextDocument(document: vscode.TextDocument, text: string) {
|
||||
const edit = new vscode.WorkspaceEdit();
|
||||
|
||||
// Just replace the entire document every time.
|
||||
edit.replace(
|
||||
document.uri,
|
||||
new vscode.Range(0, 0, document.lineCount, 0),
|
||||
text
|
||||
);
|
||||
|
||||
return vscode.workspace.applyEdit(edit);
|
||||
}
|
||||
}
|
17
packages/vscode-ext/tsconfig.json
Normal file
17
packages/vscode-ext/tsconfig.json
Normal file
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"target": "ES2020",
|
||||
"outDir": "out",
|
||||
"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. */
|
||||
}
|
||||
}
|
1406
packages/vscode-ext/yarn.lock
Normal file
1406
packages/vscode-ext/yarn.lock
Normal file
File diff suppressed because it is too large
Load Diff
146
yarn.lock
146
yarn.lock
|
@ -4094,7 +4094,7 @@
|
|||
"@types/qs" "*"
|
||||
"@types/serve-static" "*"
|
||||
|
||||
"@types/glob@*", "@types/glob@^7.1.1":
|
||||
"@types/glob@*", "@types/glob@^7.1.1", "@types/glob@^7.2.0":
|
||||
version "7.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb"
|
||||
integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==
|
||||
|
@ -4233,6 +4233,11 @@
|
|||
resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.42.tgz#d7e8f22700efc94d125103075c074396b5f41f9b"
|
||||
integrity sha512-Q5BPGyGKcvQgAMbsr7qEGN/kIPN6zZecYYABeTDBizOsau+2NMdSVTar9UQw21A2+JyA2KRNDYaYrPB0Rpk2oQ==
|
||||
|
||||
"@types/node@16.x":
|
||||
version "16.11.41"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.41.tgz#88eb485b1bfdb4c224d878b7832239536aa2f813"
|
||||
integrity sha512-mqoYK2TnVjdkGk8qXAVGc/x9nSaTpSrFaGFm43BUH3IdoBV0nta6hYaGmdOvIMlbHJbUEVen3gvwpwovAZKNdQ==
|
||||
|
||||
"@types/node@^14.0.10 || ^16.0.0", "@types/node@^14.14.20 || ^16.0.0":
|
||||
version "16.11.38"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.38.tgz#be0edd097b23eace6c471c525a74b3f98803017f"
|
||||
|
@ -4436,6 +4441,11 @@
|
|||
resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d"
|
||||
integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==
|
||||
|
||||
"@types/vscode@^1.68.0":
|
||||
version "1.68.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/vscode/-/vscode-1.68.0.tgz#c0864e4ea43c509bfc6b53f4e91aa923fd0475b8"
|
||||
integrity sha512-duBwEK5ta/eBBMJMQ7ECMEsMvlE3XJdRGh3xoS1uOO4jl2Z4LPBl5vx8WvBP10ERAgDRmIt/FaSD4RHyBGbChw==
|
||||
|
||||
"@types/webpack-env@^1.16.0":
|
||||
version "1.17.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.17.0.tgz#f99ce359f1bfd87da90cc4a57cab0a18f34a48d0"
|
||||
|
@ -4504,6 +4514,21 @@
|
|||
dependencies:
|
||||
"@types/yargs-parser" "*"
|
||||
|
||||
"@typescript-eslint/eslint-plugin@^5.27.0":
|
||||
version "5.28.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.28.0.tgz#6204ac33bdd05ab27c7f77960f1023951115d403"
|
||||
integrity sha512-DXVU6Cg29H2M6EybqSg2A+x8DgO9TCUBRp4QEXQHJceLS7ogVDP0g3Lkg/SZCqcvkAP/RruuQqK0gdlkgmhSUA==
|
||||
dependencies:
|
||||
"@typescript-eslint/scope-manager" "5.28.0"
|
||||
"@typescript-eslint/type-utils" "5.28.0"
|
||||
"@typescript-eslint/utils" "5.28.0"
|
||||
debug "^4.3.4"
|
||||
functional-red-black-tree "^1.0.1"
|
||||
ignore "^5.2.0"
|
||||
regexpp "^3.2.0"
|
||||
semver "^7.3.7"
|
||||
tsutils "^3.21.0"
|
||||
|
||||
"@typescript-eslint/eslint-plugin@^5.5.0":
|
||||
version "5.27.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.27.0.tgz#23d82a4f21aaafd8f69dbab7e716323bb6695cc8"
|
||||
|
@ -4526,6 +4551,16 @@
|
|||
dependencies:
|
||||
"@typescript-eslint/utils" "5.27.0"
|
||||
|
||||
"@typescript-eslint/parser@^5.27.0":
|
||||
version "5.28.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.28.0.tgz#639b101cad2bfb7ae16e69710ac95c42bd4eae33"
|
||||
integrity sha512-ekqoNRNK1lAcKhZESN/PdpVsWbP9jtiNqzFWkp/yAUdZvJalw2heCYuqRmM5eUJSIYEkgq5sGOjq+ZqsLMjtRA==
|
||||
dependencies:
|
||||
"@typescript-eslint/scope-manager" "5.28.0"
|
||||
"@typescript-eslint/types" "5.28.0"
|
||||
"@typescript-eslint/typescript-estree" "5.28.0"
|
||||
debug "^4.3.4"
|
||||
|
||||
"@typescript-eslint/parser@^5.5.0":
|
||||
version "5.27.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.27.0.tgz#62bb091ed5cf9c7e126e80021bb563dcf36b6b12"
|
||||
|
@ -4544,6 +4579,14 @@
|
|||
"@typescript-eslint/types" "5.27.0"
|
||||
"@typescript-eslint/visitor-keys" "5.27.0"
|
||||
|
||||
"@typescript-eslint/scope-manager@5.28.0":
|
||||
version "5.28.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.28.0.tgz#ef9a5c68fecde72fd2ff8a84b9c120324826c1b9"
|
||||
integrity sha512-LeBLTqF/he1Z+boRhSqnso6YrzcKMTQ8bO/YKEe+6+O/JGof9M0g3IJlIsqfrK/6K03MlFIlycbf1uQR1IjE+w==
|
||||
dependencies:
|
||||
"@typescript-eslint/types" "5.28.0"
|
||||
"@typescript-eslint/visitor-keys" "5.28.0"
|
||||
|
||||
"@typescript-eslint/type-utils@5.27.0":
|
||||
version "5.27.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.27.0.tgz#36fd95f6747412251d79c795b586ba766cf0974b"
|
||||
|
@ -4553,11 +4596,25 @@
|
|||
debug "^4.3.4"
|
||||
tsutils "^3.21.0"
|
||||
|
||||
"@typescript-eslint/type-utils@5.28.0":
|
||||
version "5.28.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.28.0.tgz#53ccc78fdcf0205ef544d843b84104c0e9c7ca8e"
|
||||
integrity sha512-SyKjKh4CXPglueyC6ceAFytjYWMoPHMswPQae236zqe1YbhvCVQyIawesYywGiu98L9DwrxsBN69vGIVxJ4mQQ==
|
||||
dependencies:
|
||||
"@typescript-eslint/utils" "5.28.0"
|
||||
debug "^4.3.4"
|
||||
tsutils "^3.21.0"
|
||||
|
||||
"@typescript-eslint/types@5.27.0":
|
||||
version "5.27.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.27.0.tgz#c3f44b9dda6177a9554f94a74745ca495ba9c001"
|
||||
integrity sha512-lY6C7oGm9a/GWhmUDOs3xAVRz4ty/XKlQ2fOLr8GAIryGn0+UBOoJDWyHer3UgrHkenorwvBnphhP+zPmzmw0A==
|
||||
|
||||
"@typescript-eslint/types@5.28.0":
|
||||
version "5.28.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.28.0.tgz#cffd9bcdce28db6daaa146e48a0be4387a6f4e9d"
|
||||
integrity sha512-2OOm8ZTOQxqkPbf+DAo8oc16sDlVR5owgJfKheBkxBKg1vAfw2JsSofH9+16VPlN9PWtv8Wzhklkqw3k/zCVxA==
|
||||
|
||||
"@typescript-eslint/typescript-estree@5.27.0":
|
||||
version "5.27.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.27.0.tgz#7965f5b553c634c5354a47dcce0b40b94611e995"
|
||||
|
@ -4571,6 +4628,19 @@
|
|||
semver "^7.3.7"
|
||||
tsutils "^3.21.0"
|
||||
|
||||
"@typescript-eslint/typescript-estree@5.28.0":
|
||||
version "5.28.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.28.0.tgz#3487d158d091ca2772b285e67412ff6d9797d863"
|
||||
integrity sha512-9GX+GfpV+F4hdTtYc6OV9ZkyYilGXPmQpm6AThInpBmKJEyRSIjORJd1G9+bknb7OTFYL+Vd4FBJAO6T78OVqA==
|
||||
dependencies:
|
||||
"@typescript-eslint/types" "5.28.0"
|
||||
"@typescript-eslint/visitor-keys" "5.28.0"
|
||||
debug "^4.3.4"
|
||||
globby "^11.1.0"
|
||||
is-glob "^4.0.3"
|
||||
semver "^7.3.7"
|
||||
tsutils "^3.21.0"
|
||||
|
||||
"@typescript-eslint/utils@5.27.0", "@typescript-eslint/utils@^5.13.0":
|
||||
version "5.27.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.27.0.tgz#d0021cbf686467a6a9499bd0589e19665f9f7e71"
|
||||
|
@ -4583,6 +4653,18 @@
|
|||
eslint-scope "^5.1.1"
|
||||
eslint-utils "^3.0.0"
|
||||
|
||||
"@typescript-eslint/utils@5.28.0":
|
||||
version "5.28.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.28.0.tgz#b27a136eac300a48160b36d2aad0da44a1341b99"
|
||||
integrity sha512-E60N5L0fjv7iPJV3UGc4EC+A3Lcj4jle9zzR0gW7vXhflO7/J29kwiTGITA2RlrmPokKiZbBy2DgaclCaEUs6g==
|
||||
dependencies:
|
||||
"@types/json-schema" "^7.0.9"
|
||||
"@typescript-eslint/scope-manager" "5.28.0"
|
||||
"@typescript-eslint/types" "5.28.0"
|
||||
"@typescript-eslint/typescript-estree" "5.28.0"
|
||||
eslint-scope "^5.1.1"
|
||||
eslint-utils "^3.0.0"
|
||||
|
||||
"@typescript-eslint/visitor-keys@5.27.0":
|
||||
version "5.27.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.27.0.tgz#97aa9a5d2f3df8215e6d3b77f9d214a24db269bd"
|
||||
|
@ -4591,6 +4673,14 @@
|
|||
"@typescript-eslint/types" "5.27.0"
|
||||
eslint-visitor-keys "^3.3.0"
|
||||
|
||||
"@typescript-eslint/visitor-keys@5.28.0":
|
||||
version "5.28.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.28.0.tgz#982bb226b763c48fc1859a60de33fbf939d40a0f"
|
||||
integrity sha512-BtfP1vCor8cWacovzzPFOoeW4kBQxzmhxGoOpt0v1SFvG+nJ0cWaVdJk7cky1ArTcFHHKNIxyo2LLr3oNkSuXA==
|
||||
dependencies:
|
||||
"@typescript-eslint/types" "5.28.0"
|
||||
eslint-visitor-keys "^3.3.0"
|
||||
|
||||
"@webassemblyjs/ast@1.11.1":
|
||||
version "1.11.1"
|
||||
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7"
|
||||
|
@ -8448,6 +8538,47 @@ eslint-webpack-plugin@^3.1.1:
|
|||
normalize-path "^3.0.0"
|
||||
schema-utils "^3.1.1"
|
||||
|
||||
eslint@^8.16.0:
|
||||
version "8.17.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.17.0.tgz#1cfc4b6b6912f77d24b874ca1506b0fe09328c21"
|
||||
integrity sha512-gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw==
|
||||
dependencies:
|
||||
"@eslint/eslintrc" "^1.3.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.2"
|
||||
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.15.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.1.2"
|
||||
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"
|
||||
|
||||
eslint@^8.3.0:
|
||||
version "8.16.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.16.0.tgz#6d936e2d524599f2a86c708483b4c372c5d3bbae"
|
||||
|
@ -9346,6 +9477,17 @@ glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
|
|||
once "^1.3.0"
|
||||
path-is-absolute "^1.0.0"
|
||||
|
||||
glob@^8.0.3:
|
||||
version "8.0.3"
|
||||
resolved "https://registry.yarnpkg.com/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e"
|
||||
integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==
|
||||
dependencies:
|
||||
fs.realpath "^1.0.0"
|
||||
inflight "^1.0.4"
|
||||
inherits "2"
|
||||
minimatch "^5.0.1"
|
||||
once "^1.3.0"
|
||||
|
||||
global-dirs@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686"
|
||||
|
@ -16951,7 +17093,7 @@ typedarray@^0.0.6:
|
|||
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
|
||||
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
|
||||
|
||||
typescript@^4.7.3:
|
||||
typescript@^4.7.2, typescript@^4.7.3:
|
||||
version "4.7.3"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.3.tgz#8364b502d5257b540f9de4c40be84c98e23a129d"
|
||||
integrity sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==
|
||||
|
|
Loading…
Reference in New Issue
Block a user