diff --git a/examples/workflow-glsp/package.json b/examples/workflow-glsp/package.json index 8aa11cc9..525370da 100644 --- a/examples/workflow-glsp/package.json +++ b/examples/workflow-glsp/package.json @@ -2,22 +2,22 @@ "name": "@eclipse-glsp-examples/workflow-glsp", "version": "1.1.0-next", "description": "GLSP diagrams for the Workflow DSL", - "license": "(EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0)", "keywords": [ "glsp", "workflow", "diagram", "example" ], - "author": { - "name": "Eclipse GLSP" - }, "homepage": "https://www.eclipse.org/glsp/", + "bugs": "https://github.com/eclipse-glsp/glsp/issues", "repository": { "type": "git", "url": "https://github.com/eclipse-glsp/glsp-client.git" }, - "bugs": "https://github.com/eclipse-glsp/glsp/issues", + "license": "(EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0)", + "author": { + "name": "Eclipse GLSP" + }, "contributors": [ { "name": "Eclipse GLSP Project", @@ -25,21 +25,8 @@ "url": "https://projects.eclipse.org/projects/ecd.glsp" } ], - "dependencies": { - "@eclipse-glsp/client": "1.1.0-next", - "balloon-css": "^0.5.0" - }, - "devDependencies": { - "mvn-artifact-download": "5.1.0" - }, - "scripts": { - "clean": "rimraf tsconfig.tsbuildinfo lib", - "build": "tsc -b", - "lint": "eslint --ext .ts,.tsx ./src", - "lint:ci": "yarn lint -o eslint.xml -f checkstyle", - "prepare": "yarn clean && yarn build ", - "watch": "tsc -w" - }, + "main": "lib/index", + "types": "lib/index", "files": [ "lib", "src", @@ -47,8 +34,21 @@ "css", "scripts" ], - "main": "lib/index", - "types": "lib/index", + "scripts": { + "build": "tsc -b", + "clean": "rimraf tsconfig.tsbuildinfo lib", + "lint": "eslint --ext .ts,.tsx ./src", + "lint:ci": "yarn lint -o eslint.xml -f checkstyle", + "prepare": "yarn clean && yarn build ", + "watch": "tsc -w" + }, + "dependencies": { + "@eclipse-glsp/client": "1.1.0-next", + "balloon-css": "^0.5.0" + }, + "devDependencies": { + "mvn-artifact-download": "5.1.0" + }, "publishConfig": { "access": "public" } diff --git a/examples/workflow-standalone/package.json b/examples/workflow-standalone/package.json index 3d472284..06ede15f 100644 --- a/examples/workflow-standalone/package.json +++ b/examples/workflow-standalone/package.json @@ -1,17 +1,17 @@ { - "private": true, "name": "workflow-standalone", "version": "1.1.0-next", + "private": true, "description": "Standalone browser-app for the Workflow example", - "author": { - "name": "Eclipse GLSP" - }, "homepage": "https://www.eclipse.org/glsp/", + "bugs": "https://github.com/eclipse-glsp/glsp/issues", "repository": { "type": "git", "url": "https://github.com/eclipse-glsp/glsp-client.git" }, - "bugs": "https://github.com/eclipse-glsp/glsp/issues", + "author": { + "name": "Eclipse GLSP" + }, "contributors": [ { "name": "Eclipse GLSP Project", @@ -19,6 +19,16 @@ "url": "https://projects.eclipse.org/projects/ecd.glsp" } ], + "main": "lib", + "types": "lib", + "scripts": { + "build": "tsc -b && webpack", + "clean": "rimraf lib tsconfig.tsbuildinfo app/bundle.js app/bundle.js.map app/css", + "lint": "eslint --ext .ts,.tsx ./src", + "lint:ci": "yarn lint -o eslint.xml -f checkstyle", + "prepare": "yarn clean && yarn build", + "watch": "tsc -w -p ./tsconfig.json" + }, "dependencies": { "@eclipse-glsp-examples/workflow-glsp": "1.1.0-next", "@eclipse-glsp/client": "1.1.0-next" @@ -34,15 +44,5 @@ }, "publishConfig": { "access": "public" - }, - "scripts": { - "build": "tsc -b && webpack", - "clean": "rimraf lib tsconfig.tsbuildinfo app/bundle.js app/bundle.js.map app/css", - "lint": "eslint --ext .ts,.tsx ./src", - "lint:ci": "yarn lint -o eslint.xml -f checkstyle", - "prepare": "yarn clean && yarn build", - "watch": "tsc -w -p ./tsconfig.json" - }, - "types": "lib", - "main": "lib" + } } diff --git a/package.json b/package.json index 3c5c2279..cab0f47e 100644 --- a/package.json +++ b/package.json @@ -1,37 +1,37 @@ { - "private": true, "name": "parent", "version": "1.0.0", - "engines": { - "yarn": ">=1.7.0 <2.x.x", - "node": ">=16.11.0" - }, + "private": true, + "workspaces": [ + "packages/*", + "examples/*" + ], "scripts": { "all": "yarn install && yarn lint && yarn test", "build": "lerna run build", + "check:headers": "glsp checkHeaders . -t lastCommit", + "check:pr": "yarn all && yarn check:headers", "clean": "lerna run clean && rimraf coverage .nyc_output", "download:exampleServer": "ts-node examples/workflow-glsp/scripts/download.ts", "lint": "lerna run lint", "lint:ci": "lerna run lint:ci", "prepare": "lerna run prepare", - "publish:prepare": "lerna version --ignore-scripts --yes --no-push", "publish:latest": "lerna publish from-git --no-git-reset --no-git-tag-version --no-verify-access --no-push", "publish:next": "SHA=$(git rev-parse --short HEAD) && lerna publish preminor --exact --canary --preid next.${SHA} --dist-tag next --no-git-reset --no-git-tag-version --no-push --ignore-scripts --yes --no-verify-access", - "upgrade:next": "yarn upgrade -p \"@eclipse-glsp.*|sprotty.*\" --next ", + "publish:prepare": "lerna version --ignore-scripts --yes --no-push", "test": "lerna run test", "test:ci": "lerna run test:ci", "test:coverage": "lerna run test:coverage", "test:coverage:ci": "yarn glsp coverageReport .", + "upgrade:next": "yarn upgrade -p \"@eclipse-glsp.*|sprotty.*\" --next ", "watch": "lerna run --parallel watch" }, "devDependencies": { - "@eclipse-glsp/config": "1.1.0-next.e31f2e5.119", - "@eclipse-glsp/config-test": "1.1.0-next.e31f2e5.119", - "@eclipse-glsp/cli": "1.1.0-next.e31f2e5.119", + "@eclipse-glsp/dev": "1.1.0-next.164cf99.124", "@types/node": "16.x" }, - "workspaces": [ - "packages/*", - "examples/*" - ] + "engines": { + "node": ">=16.11.0", + "yarn": ">=1.7.0 <2.x.x" + } } diff --git a/packages/client/package.json b/packages/client/package.json index 62d9ad5a..3b2d12ff 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -2,7 +2,6 @@ "name": "@eclipse-glsp/client", "version": "1.1.0-next", "description": "A sprotty-based client for GLSP", - "license": "(EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0)", "keywords": [ "eclipse", "graphics", @@ -12,15 +11,16 @@ "glsp", "diagram editor" ], - "author": { - "name": "Eclipse GLSP" - }, "homepage": "https://www.eclipse.org/glsp/", + "bugs": "https://github.com/eclipse-glsp/glsp/issues", "repository": { "type": "git", "url": "https://github.com/eclipse-glsp/glsp-client.git" }, - "bugs": "https://github.com/eclipse-glsp/glsp/issues", + "license": "(EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0)", + "author": { + "name": "Eclipse GLSP" + }, "contributors": [ { "name": "Eclipse GLSP Project", @@ -28,19 +28,13 @@ "url": "https://projects.eclipse.org/projects/ecd.glsp" } ], + "main": "lib/index", + "types": "lib/index", "files": [ "lib", "src", "css" ], - "dependencies": { - "@eclipse-glsp/protocol": "1.1.0-next", - "autocompleter": "5.1.0", - "sprotty": "0.13.0-next.f4445dd.342" - }, - "devDependencies": { - "@vscode/codicons": "^0.0.25" - }, "scripts": { "build": "tsc -b", "clean": "rimraf lib tsconfig.tsbuildinfo coverage .nyc_output", @@ -52,9 +46,15 @@ "test:coverage": "nyc yarn test", "watch": "tsc -w" }, + "dependencies": { + "@eclipse-glsp/protocol": "1.1.0-next", + "autocompleter": "5.1.0", + "sprotty": "0.13.0-next.f4445dd.342" + }, + "devDependencies": { + "@vscode/codicons": "^0.0.25" + }, "publishConfig": { "access": "public" - }, - "main": "lib/index", - "types": "lib/index" + } } diff --git a/packages/protocol/package.json b/packages/protocol/package.json index 6a92311c..c48fc391 100644 --- a/packages/protocol/package.json +++ b/packages/protocol/package.json @@ -2,7 +2,6 @@ "name": "@eclipse-glsp/protocol", "version": "1.1.0-next", "description": "The protocol definition for client-server communication in GLSP", - "license": "(EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0)", "keywords": [ "eclipse", "graphics", @@ -12,15 +11,16 @@ "glsp", "diagram editor" ], - "author": { - "name": "Eclipse GLSP" - }, "homepage": "https://www.eclipse.org/glsp/", + "bugs": "https://github.com/eclipse-glsp/glsp/issues", "repository": { "type": "git", "url": "https://github.com/eclipse-glsp/glsp-client.git" }, - "bugs": "https://github.com/eclipse-glsp/glsp/issues", + "license": "(EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0)", + "author": { + "name": "Eclipse GLSP" + }, "contributors": [ { "name": "Eclipse GLSP Project", @@ -28,32 +28,32 @@ "url": "https://projects.eclipse.org/projects/ecd.glsp" } ], + "main": "lib/index", + "types": "lib/index", "files": [ "lib", "src" ], - "dependencies": { - "sprotty-protocol": "0.13.0-next.f4445dd.342", - "vscode-ws-jsonrpc": "^2.0.1", - "uuid": "7.0.3" - }, - "devDependencies": { - "@types/uuid": "3.4.5" - }, "scripts": { - "clean": "rimraf lib tsconfig.tsbuildinfo coverage .nyc_output ", "build": "tsc -b", + "clean": "rimraf lib tsconfig.tsbuildinfo coverage .nyc_output ", "lint": "eslint --ext .ts,.tsx ./src", "lint:ci": "yarn lint -o eslint.xml -f checkstyle", + "prepare": "yarn clean && yarn build", "test": "mocha --config ../../.mocharc \"./src/**/*.spec.?(ts|tsx)\"", "test:ci": "export JUNIT_REPORT_PATH=./report.xml && yarn test --reporter mocha-jenkins-reporter", "test:coverage": "nyc yarn test", - "prepare": "yarn clean && yarn build", "watch": "tsc -w" }, + "dependencies": { + "sprotty-protocol": "0.13.0-next.f4445dd.342", + "uuid": "7.0.3", + "vscode-ws-jsonrpc": "^2.0.1" + }, + "devDependencies": { + "@types/uuid": "3.4.5" + }, "publishConfig": { "access": "public" - }, - "main": "lib/index", - "types": "lib/index" + } } diff --git a/packages/protocol/src/index.ts b/packages/protocol/src/index.ts index 09dea73f..4e9b50eb 100644 --- a/packages/protocol/src/index.ts +++ b/packages/protocol/src/index.ts @@ -1,5 +1,5 @@ /******************************************************************************** - * Copyright (c) 2020-2022 EclipseSource and others. + * Copyright (c) 2020-2023 EclipseSource and others. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v. 2.0 which is available at @@ -53,5 +53,6 @@ export * from './jsonrpc/glsp-jsonrpc-client'; export * from './model/default-types'; export * from './model/model-schema'; export * from './utils/array-util'; +export * from './utils/disposable'; export * from './utils/type-util'; export { SetBoundsAction, SetViewportAction }; diff --git a/packages/protocol/src/jsonrpc/glsp-jsonrpc-client.ts b/packages/protocol/src/jsonrpc/glsp-jsonrpc-client.ts index 2f7db19c..0d07f2cf 100644 --- a/packages/protocol/src/jsonrpc/glsp-jsonrpc-client.ts +++ b/packages/protocol/src/jsonrpc/glsp-jsonrpc-client.ts @@ -1,5 +1,5 @@ /******************************************************************************** - * Copyright (c) 2020-2022 EclipseSource and others. + * Copyright (c) 2020-2023 EclipseSource and others. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v. 2.0 which is available at @@ -22,8 +22,8 @@ import { InitializeParameters, InitializeResult } from '../glsp-client'; +import { MaybePromise } from '../utils/type-util'; -export type MaybePromise = T | Promise | PromiseLike; export type ConnectionProvider = MessageConnection | (() => MaybePromise); export namespace JsonrpcGLSPClient { diff --git a/packages/protocol/src/utils/disposable.spec.ts b/packages/protocol/src/utils/disposable.spec.ts new file mode 100644 index 00000000..a452636a --- /dev/null +++ b/packages/protocol/src/utils/disposable.spec.ts @@ -0,0 +1,89 @@ +/******************************************************************************** + * Copyright (c) 2023 EclipseSource and others. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the Eclipse + * Public License v. 2.0 are satisfied: GNU General Public License, version 2 + * with the GNU Classpath Exception which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + ********************************************************************************/ + +import { expect } from 'chai'; +import * as sinon from 'sinon'; +import { Disposable, DisposableCollection } from './disposable'; + +describe('Disposable', () => { + describe('is', () => { + it('should return false for a primitive', () => { + expect(Disposable.is('A')).to.be.false; + }); + it('should return false for any function', () => { + expect(Disposable.is('A'.toString)).to.be.false; + }); + it('should return true for the return value of Disposable.create()', () => { + expect(Disposable.is(Disposable.create(() => 'A'.toString()))).to.be.true; + }); + it('should return true for the return value of Disposable.empty()', () => { + expect(Disposable.is(Disposable.empty())).to.be.true; + }); + it('should return false for an object with conflicting `dispose` property', () => { + const obj = { dispose: '' }; + expect(Disposable.is(obj)).to.be.false; + }); + it('disposable object', () => { + const obj: Disposable = { dispose: () => 'ok' }; + expect(Disposable.is(obj)).to.be.true; + }); + }); + describe('DisposableCollection', () => { + let disposableCollection: DisposableCollection; + beforeEach(() => (disposableCollection = new DisposableCollection())); + describe('push', () => { + it('should add one disposable to the collection and remove it again', () => { + const disposable = Disposable.empty(); + const toRemove = disposableCollection.push(disposable); + expect(disposableCollection['disposables'].length).to.be.equal(1); + expect(disposableCollection['disposables'][0]).to.equal(disposable); + toRemove.dispose(); + expect(disposableCollection['disposables'].length).to.be.equal(0); + }); + it('should add multiple disposable to the collection and remove them again', () => { + const disposable1 = Disposable.empty(); + const disposable2 = Disposable.empty(); + const disposable3 = Disposable.empty(); + + const toRemove = disposableCollection.push(disposable1, disposable2, disposable3); + expect(disposableCollection['disposables'].length).to.be.equal(3); + expect(disposableCollection['disposables'][0]).to.equal(disposable1); + expect(disposableCollection['disposables'][1]).to.equal(disposable2); + expect(disposableCollection['disposables'][2]).to.equal(disposable3); + toRemove.dispose(); + expect(disposableCollection['disposables'].length).to.be.equal(0); + }); + }); + describe('dispose', () => { + describe('should invoke dispose on all elements of the collection exactly once', () => { + const disposable1 = Disposable.empty(); + const disposable2 = Disposable.empty(); + const disposable1Spy = sinon.spy(disposable1); + const disposable2Spy = sinon.spy(disposable2); + + disposableCollection = new DisposableCollection(disposable1, disposable2); + + disposableCollection.dispose(); + disposableCollection.dispose(); + disposableCollection.dispose(); + + expect(disposable1Spy.dispose.calledOnce).to.be.true; + expect(disposable2Spy.dispose.calledOnce).to.be.true; + expect(disposableCollection['disposables'].length).to.be.equal(0); + }); + }); + }); +}); diff --git a/packages/protocol/src/utils/disposable.ts b/packages/protocol/src/utils/disposable.ts new file mode 100644 index 00000000..dc6e85f9 --- /dev/null +++ b/packages/protocol/src/utils/disposable.ts @@ -0,0 +1,95 @@ +/******************************************************************************** + * Copyright (c) 2023 EclipseSource and others. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the Eclipse + * Public License v. 2.0 are satisfied: GNU General Public License, version 2 + * with the GNU Classpath Exception which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + ********************************************************************************/ +import { remove } from './array-util'; +import { AnyObject, hasFunctionProp } from './type-util'; + +/** + * Interface for objects that can or need to be disposed properly. + */ +export interface Disposable { + /** + * Dispose this object. + */ + dispose(): void; +} + +export namespace Disposable { + export function is(value: unknown): value is Disposable { + return AnyObject.is(value) && hasFunctionProp(value, 'dispose'); + } + + /** + * Creates a new empty i.e. no-op {@link Disposable}. + * @returns the newly created disposable + */ + export function empty(): Disposable { + // eslint-disable-next-line @typescript-eslint/no-empty-function + return { dispose: () => {} }; + } + + /** + * Creates a new {@link Disposable} that delegates to the given callback. + * @param cb The callback that should be invoked on dispose + * @returns the newly created disposable + */ + export function create(cb: () => void): Disposable { + return { dispose: cb }; + } +} + +/** + * Reusable base class to manage a collection of {@link Disposable}s. + */ +export class DisposableCollection implements Disposable { + protected readonly disposables: Disposable[] = []; + errorHandler?: (err: any) => void; + + constructor(...toDispose: Disposable[]) { + toDispose.forEach(d => this.push(d)); + this.errorHandler = err => console.error(err); + } + + dispose(): void { + if (this.disposed) { + return; + } + try { + while (!this.disposed) { + this.disposables.pop()?.dispose(); + } + } catch (err) { + this.errorHandler?.(err); + } + } + + get disposed(): boolean { + return this.disposables.length === 0; + } + + /** + * Pushes the given disposables to the collection. + * @param disposables The disposables that should be added + * @returns A disposable that removes the previously pushed values from the collection when invoked + */ + push(...disposables: Disposable[]): Disposable { + this.disposables.push(...disposables); + return Disposable.create(() => remove(this.disposables, ...disposables)); + } + + get isDisposed(): boolean { + return this.disposed; + } +} diff --git a/packages/protocol/src/utils/type-util.spec.ts b/packages/protocol/src/utils/type-util.spec.ts index c839d3d5..07eaeb9f 100644 --- a/packages/protocol/src/utils/type-util.spec.ts +++ b/packages/protocol/src/utils/type-util.spec.ts @@ -1,5 +1,5 @@ /******************************************************************************** - * Copyright (c) 2022 STMicroelectronics and others. + * Copyright (c) 2022-2023 STMicroelectronics and others. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v. 2.0 which is available at @@ -14,7 +14,7 @@ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 ********************************************************************************/ import { expect } from 'chai'; -import { AnyObject, hasArrayProp, hasBooleanProp, hasNumberProp, hasObjectProp, hasStringProp } from './type-util'; +import { AnyObject, hasArrayProp, hasBooleanProp, hasFunctionProp, hasNumberProp, hasObjectProp, hasStringProp } from './type-util'; describe('TypeUtil', () => { describe('AnyObject', () => { @@ -95,6 +95,19 @@ describe('TypeUtil', () => { }); }); + describe('hasFunctionProp', () => { + it('should return true for an object that has a property that matches the given key and type', () => { + // eslint-disable-next-line @typescript-eslint/no-empty-function + expect(hasFunctionProp({ someProp: () => {} }, 'someProp')).to.be.true; + }); + it('should return false for an object that has a property that matches the given but not the given type', () => { + expect(hasFunctionProp({ someProp: '123' }, 'someProp')).to.be.false; + }); + it('should return false for an object that does not have a property that matches the given key.', () => { + expect(hasFunctionProp({ anotherProp: 123 }, 'someProp')).to.be.false; + }); + }); + describe('hasArrayProp', () => { it('should return true for an object that has a property that matches the given key and type', () => { expect(hasArrayProp({ someProp: ['some', 'prop'] }, 'someProp')).to.be.true; diff --git a/packages/protocol/src/utils/type-util.ts b/packages/protocol/src/utils/type-util.ts index 4a1257cf..5d99bb66 100644 --- a/packages/protocol/src/utils/type-util.ts +++ b/packages/protocol/src/utils/type-util.ts @@ -1,5 +1,5 @@ /******************************************************************************** - * Copyright (c) 2021-2022 EclipseSource and others. + * Copyright (c) 2021-2023 EclipseSource and others. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v. 2.0 which is available at @@ -53,10 +53,15 @@ export interface Constructor { // eslint-disable-next-line @typescript-eslint/ban-types export type Writable = { -readonly [P in keyof T]: Writable }; +/** + * Utility type to describe a value as might be provided as a promise. + */ +export type MaybePromise = T | PromiseLike; + /** * Utility type to describe typeguard functions. */ -export type TypeGuard = (element: any, ...args: any[]) => element is T; +export type TypeGuard = (element: any) => element is T; /** * Utility function that create a typeguard function for a given class constructor. @@ -65,7 +70,7 @@ export type TypeGuard = (element: any, ...args: any[]) => element is T; * @returns The typeguard for this class. */ export function toTypeGuard(constructor: Constructor): TypeGuard { - return (element: any): element is G => element instanceof constructor; + return (element: unknown): element is G => element instanceof constructor; } /** @@ -108,6 +113,16 @@ export function hasObjectProp(object: AnyObject, propertyKey: string): boolean { return propertyKey in object && AnyObject.is(object[propertyKey]); } +/** + * Validates whether the given object as a property of type `function` with the given key. + * @param object The object that should be validated + * @param propertyKey The key of the property + * @returns `true` if the object has property with matching key of type `function`. + */ +export function hasFunctionProp(object: AnyObject, propertyKey: string): boolean { + return propertyKey in object && typeof object[propertyKey] === 'function'; +} + /** * Validates whether the given object as a property of type `Array` with the given key. * @param object The object that should be validated diff --git a/yarn.lock b/yarn.lock index 9d10ff3c..b473f3c4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -206,24 +206,25 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== -"@eclipse-glsp/cli@1.1.0-next.e31f2e5.119": - version "1.1.0-next.e31f2e5.119" - resolved "https://registry.yarnpkg.com/@eclipse-glsp/cli/-/cli-1.1.0-next.e31f2e5.119.tgz#37b602b83bd5b5860b0dcdeedac6d6c1359aaad9" - integrity sha512-Jb6IuAqv6Mr/nWxKwVRWcvHhQ3Cp4MDnPGFI417ZIwE6cp43zGfXIrREIV8KOMeYhPues7rrtYLUpAa5A0Rp4g== +"@eclipse-glsp/cli@1.1.0-next.164cf99.124+164cf99": + version "1.1.0-next.164cf99.124" + resolved "https://registry.yarnpkg.com/@eclipse-glsp/cli/-/cli-1.1.0-next.164cf99.124.tgz#f0873056c307f2c76ea55a0d3195bbb1758a69e0" + integrity sha512-509LISL/HBS9q7c48xz9BObTXPPaCMSBdi1UilwlKE9OpslXg7PGOXhKeoR/nk7i3ZpEeIG7xaTZozB/+1Q4Cg== dependencies: commander "^9.4.0" + glob "^8.0.3" node-fetch "2.6.7" readline-sync "^1.4.10" semver "^7.3.7" shelljs "0.8.5" -"@eclipse-glsp/config-test@1.1.0-next.e31f2e5.119": - version "1.1.0-next.e31f2e5.119" - resolved "https://registry.yarnpkg.com/@eclipse-glsp/config-test/-/config-test-1.1.0-next.e31f2e5.119.tgz#13ed291f0fc1ee09b757545e86a9b9773e2066f0" - integrity sha512-i2Tu7CnKI224HGD/PR8DmxENf7zCSqwid98onbGPbSeFIzDzQiCztk3AnI9hHqQ1fHWSDStFcm5VMOBdxPUsxw== +"@eclipse-glsp/config-test@1.1.0-next.164cf99.124+164cf99": + version "1.1.0-next.164cf99.124" + resolved "https://registry.yarnpkg.com/@eclipse-glsp/config-test/-/config-test-1.1.0-next.164cf99.124.tgz#51963d1f2a1c1569dfc8272a3af665e7622321d1" + integrity sha512-ym0dF7XZzWchHTtVFXRYvCpl/pJZ2QtxFB8wy+LG+1FUw5BVwnBniNOwNyY+3PpOfyycQsL2poTwkD/oTAOb6Q== dependencies: - "@eclipse-glsp/mocha-config" "1.1.0-next.e31f2e5.119+e31f2e5" - "@eclipse-glsp/nyc-config" "1.1.0-next.e31f2e5.119+e31f2e5" + "@eclipse-glsp/mocha-config" "1.1.0-next.164cf99.124+164cf99" + "@eclipse-glsp/nyc-config" "1.1.0-next.164cf99.124+164cf99" "@istanbuljs/nyc-config-typescript" "^1.0.0" "@types/chai" "^4.3.4" "@types/mocha" "^10.0.1" @@ -237,14 +238,14 @@ sinon "^15.0.0" ts-node "^10.9.1" -"@eclipse-glsp/config@1.1.0-next.e31f2e5.119": - version "1.1.0-next.e31f2e5.119" - resolved "https://registry.yarnpkg.com/@eclipse-glsp/config/-/config-1.1.0-next.e31f2e5.119.tgz#4e7b34b5490f227743f54ef9007390d679dd9057" - integrity sha512-YMylxRDSAKJ99oHGQNUZxhVL/M+Mo/jM4FgrNbr/5hApXJ4tLgIWmxcUnoLcTAS9Qm5R70LOmIHxBq7PzN2kWQ== +"@eclipse-glsp/config@1.1.0-next.164cf99.124+164cf99": + version "1.1.0-next.164cf99.124" + resolved "https://registry.yarnpkg.com/@eclipse-glsp/config/-/config-1.1.0-next.164cf99.124.tgz#8c1f1600429f58fbada8f407cc1ed45c65046671" + integrity sha512-nDW4ZtAh2QrSQrETpaTgCcjMb8jNPuBGdybcPcV8tQtA3ZZ2PmkUNznNPnC46+nYuQuEuw7wW1d1txelovSmxg== dependencies: - "@eclipse-glsp/eslint-config" "1.1.0-next.e31f2e5.119+e31f2e5" - "@eclipse-glsp/prettier-config" "1.1.0-next.e31f2e5.119+e31f2e5" - "@eclipse-glsp/ts-config" "1.1.0-next.e31f2e5.119+e31f2e5" + "@eclipse-glsp/eslint-config" "1.1.0-next.164cf99.124+164cf99" + "@eclipse-glsp/prettier-config" "1.1.0-next.164cf99.124+164cf99" + "@eclipse-glsp/ts-config" "1.1.0-next.164cf99.124+164cf99" "@typescript-eslint/eslint-plugin" "^5.45.0" "@typescript-eslint/parser" "^5.45.0" eslint "^8.29.0" @@ -260,30 +261,41 @@ rimraf "^3.0.2" typescript "^4.9.3" -"@eclipse-glsp/eslint-config@1.1.0-next.e31f2e5.119+e31f2e5": - version "1.1.0-next.e31f2e5.119" - resolved "https://registry.yarnpkg.com/@eclipse-glsp/eslint-config/-/eslint-config-1.1.0-next.e31f2e5.119.tgz#ef6fc0bcda498ecb20ec7bce7dcf467670d0c325" - integrity sha512-lS6eBM/j8E62RLy/Yf4217DNxD8U35C4orDOd/A9vr2JxV4Nzq2XQn8dbkEA9yxN1rDRi+HqexFyO0UkeIoiMg== +"@eclipse-glsp/dev@1.1.0-next.164cf99.124": + version "1.1.0-next.164cf99.124" + resolved "https://registry.yarnpkg.com/@eclipse-glsp/dev/-/dev-1.1.0-next.164cf99.124.tgz#937b93ebae2dd750d140c94e3f4bdeccd28f9ee7" + integrity sha512-wc1q/7rPBikSuRiJGRylOlumc8TlGYXiYaZ9IJu5CsErQiqYburFrF46cuvedtIAVH85CeXb8Od7l1HqHdbI7g== + dependencies: + "@eclipse-glsp/cli" "1.1.0-next.164cf99.124+164cf99" + "@eclipse-glsp/config" "1.1.0-next.164cf99.124+164cf99" + "@eclipse-glsp/config-test" "1.1.0-next.164cf99.124+164cf99" + +"@eclipse-glsp/eslint-config@1.1.0-next.164cf99.124+164cf99": + version "1.1.0-next.164cf99.124" + resolved "https://registry.yarnpkg.com/@eclipse-glsp/eslint-config/-/eslint-config-1.1.0-next.164cf99.124.tgz#76de663200f2554374397dc4b213454dfc12a73d" + integrity sha512-CqSwWyn0H+y3oHQ+3h9hqCT/DJa0E+qarOtH86k4V9KDKNMEg8l+IKfSxUJ1EgDR82oTtoGZgzaLI/RbuU9ryA== -"@eclipse-glsp/mocha-config@1.1.0-next.e31f2e5.119+e31f2e5": - version "1.1.0-next.e31f2e5.119" - resolved "https://registry.yarnpkg.com/@eclipse-glsp/mocha-config/-/mocha-config-1.1.0-next.e31f2e5.119.tgz#1de5ad9b2d1296c1fc79b16b9d1a1624840ae744" - integrity sha512-2wq2avHwA7eE49t8Mxsv+uRHaW/Lom/CAt/t4cy9enWWdXCVlx6MC8fGC1GYX9dMZ3+lUBQ1IHk0Sl0LQXa8Gw== +"@eclipse-glsp/mocha-config@1.1.0-next.164cf99.124+164cf99": + version "1.1.0-next.164cf99.124" + resolved "https://registry.yarnpkg.com/@eclipse-glsp/mocha-config/-/mocha-config-1.1.0-next.164cf99.124.tgz#aa36a1c1fe93d81c3aeedc2dd7528bd8077cc132" + integrity sha512-Nj4JSxhgOdqS5P6FEWPPVzVLhYEkn4zT5ojOL4WvDdZ5p84M17b20w99Rs1GDqpT5hwxzhYIX9B9YaC/8e4DVg== -"@eclipse-glsp/nyc-config@1.1.0-next.e31f2e5.119+e31f2e5": - version "1.1.0-next.e31f2e5.119" - resolved "https://registry.yarnpkg.com/@eclipse-glsp/nyc-config/-/nyc-config-1.1.0-next.e31f2e5.119.tgz#d65841463ff6ebd0ebce5f549b28d94d26bbaf40" - integrity sha512-03+TjeA1pzfnFH5XTzG+0rMDSdkbzIZuZgWEMe5vOhG0K3RD0Uf/jsDCDoNZW5a9ej5wQnf+M2XcJ1tnDooIng== +"@eclipse-glsp/nyc-config@1.1.0-next.164cf99.124+164cf99": + version "1.1.0-next.164cf99.124" + resolved "https://registry.yarnpkg.com/@eclipse-glsp/nyc-config/-/nyc-config-1.1.0-next.164cf99.124.tgz#e7d058d7dbcd23b241d28536b364d9a06d3b8a50" + integrity sha512-pag47/AA4/RCP7nAsNnSya8JUc6bCH3vOYDtlYucQYm89fqXBYy7OEs3hf0VZWQWX856V/TU56Ln0o0P5SAfJw== -"@eclipse-glsp/prettier-config@1.1.0-next.e31f2e5.119+e31f2e5": - version "1.1.0-next.e31f2e5.119" - resolved "https://registry.yarnpkg.com/@eclipse-glsp/prettier-config/-/prettier-config-1.1.0-next.e31f2e5.119.tgz#0d24cf9e2df9127c4b0b72c9902b39b7f756fc2f" - integrity sha512-pZx8aBuc8RBI+WcVbB13CSglD6vaYqF830Cn4mFJ+pEJdtwpAIZGU+CtDOHtL0/IXWJ80x+brc/PrrxLV8+ezQ== +"@eclipse-glsp/prettier-config@1.1.0-next.164cf99.124+164cf99": + version "1.1.0-next.164cf99.124" + resolved "https://registry.yarnpkg.com/@eclipse-glsp/prettier-config/-/prettier-config-1.1.0-next.164cf99.124.tgz#c07647965181bcde862864e39db520f62087f378" + integrity sha512-DpVQoMc9Xe2DxnFdL7neTpXs9QfT052OTgQeY9TzP48Ge5Zk2JXKAzJIK/uDUG8kvW01SLMWMx6+7IkawkV+SA== + dependencies: + prettier-plugin-packagejson "^2.3.0" -"@eclipse-glsp/ts-config@1.1.0-next.e31f2e5.119+e31f2e5": - version "1.1.0-next.e31f2e5.119" - resolved "https://registry.yarnpkg.com/@eclipse-glsp/ts-config/-/ts-config-1.1.0-next.e31f2e5.119.tgz#869cb889129944880f1e34a7731eaa094325a07f" - integrity sha512-nwIP+K099x73CDAPqBTqfik6uJByRd3Oog/2mdedO206dO5XamQpxk6/rGSO1HoDcu6o6VVBZgHlA/dI1OYHcA== +"@eclipse-glsp/ts-config@1.1.0-next.164cf99.124+164cf99": + version "1.1.0-next.164cf99.124" + resolved "https://registry.yarnpkg.com/@eclipse-glsp/ts-config/-/ts-config-1.1.0-next.164cf99.124.tgz#5629c1f5af3c9bbd787b7dde26c5f1433f005161" + integrity sha512-zMyjg4LI/f/HeIuYg4bB4LiIHuWaXtdJvsBO9M3jC3QkBZtKX1TZHapZ2nbU1WeDietaGHKTCT1odvJsS564Zg== "@eslint/eslintrc@^1.3.3": version "1.3.3" @@ -1403,6 +1415,18 @@ dependencies: esquery "^1.0.1" +"@pkgr/utils@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.3.1.tgz#0a9b06ffddee364d6642b3cd562ca76f55b34a03" + integrity sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw== + dependencies: + cross-spawn "^7.0.3" + is-glob "^4.0.3" + open "^8.4.0" + picocolors "^1.0.0" + tiny-glob "^0.2.9" + tslib "^2.4.0" + "@sinonjs/commons@^1.7.0": version "1.8.3" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" @@ -2858,6 +2882,16 @@ detect-indent@^6.0.0: resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== +detect-indent@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-7.0.1.tgz#cbb060a12842b9c4d333f1cac4aa4da1bb66bc25" + integrity sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g== + +detect-newline@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-4.0.0.tgz#450ac3f864d5f61112b53a524123b012c59581bc" + integrity sha512-1aXUEPdfGdzVPFpzGJJNgq9o81bGg1s09uxTWsqBlo9PI332uyJRQq13+LK/UN4JfxJbFdCXonUFQ9R/p7yCtw== + dezalgo@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.4.tgz#751235260469084c132157dfa857f386d4c33d81" @@ -3304,6 +3338,17 @@ fast-glob@3.2.7: merge2 "^1.3.0" micromatch "^4.0.4" +fast-glob@^3.2.11: + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + fast-glob@^3.2.9: version "3.2.11" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" @@ -3579,6 +3624,11 @@ get-symbol-description@^1.0.0: call-bind "^1.0.2" get-intrinsic "^1.1.1" +git-hooks-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/git-hooks-list/-/git-hooks-list-3.0.0.tgz#6d888988bb445b34e7c2e1eb97cb88358153221e" + integrity sha512-XDfdemBGJIMAsHHOONHQxEH5dX2kCpE6MGZ1IsNvBuDPBZM3p4EAwAC7ygMjn/1/x+BJX0TK1ara1Zrh7JCFdQ== + git-raw-commits@^2.0.8: version "2.0.11" resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.11.tgz#bc3576638071d18655e1cc60d7f524920008d723" @@ -3694,6 +3744,17 @@ glob@^8.0.1: minimatch "^5.0.1" once "^1.3.0" +glob@^8.0.3: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" @@ -3706,6 +3767,11 @@ globals@^13.15.0: dependencies: type-fest "^0.20.2" +globalyzer@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/globalyzer/-/globalyzer-0.1.0.tgz#cb76da79555669a1519d5a8edf093afaa0bf1465" + integrity sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q== + globby@^11.0.2, globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" @@ -3718,6 +3784,22 @@ globby@^11.0.2, globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" +globby@^13.1.2: + version "13.1.3" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.3.tgz#f62baf5720bcb2c1330c8d4ef222ee12318563ff" + integrity sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw== + dependencies: + dir-glob "^3.0.1" + fast-glob "^3.2.11" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^4.0.0" + +globrex@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" + integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== + graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" @@ -4149,6 +4231,11 @@ is-plain-obj@^2.0.0, is-plain-obj@^2.1.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== +is-plain-obj@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== + is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -5682,6 +5769,14 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== +prettier-plugin-packagejson@^2.3.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/prettier-plugin-packagejson/-/prettier-plugin-packagejson-2.4.0.tgz#3d70af70ff8dbd7cc80610172305f26a2c24ad8b" + integrity sha512-NW2xI9w0n251IH1r1QNIf+kVf28rr2p33aOENfrBDOFVfp3FdQ++rKHkU0odYQOlnTtvedAGxasNC+Mk+enxVQ== + dependencies: + sort-package-json "2.1.0" + synckit "0.8.4" + prettier@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.0.tgz#c7df58393c9ba77d6fba3921ae01faf994fb9dc9" @@ -6145,6 +6240,11 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +slash@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" + integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== + smart-buffer@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" @@ -6186,6 +6286,23 @@ sort-keys@^4.0.0: dependencies: is-plain-obj "^2.0.0" +sort-object-keys@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/sort-object-keys/-/sort-object-keys-1.1.3.tgz#bff833fe85cab147b34742e45863453c1e190b45" + integrity sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg== + +sort-package-json@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/sort-package-json/-/sort-package-json-2.1.0.tgz#6daeb9350f1ac8351a7d58fc2c7c2a6a53d435a8" + integrity sha512-M5ctkdnn7znAkoVQJ0Y+PHDUieyXMhydPyW7r2J9ZM0Iwc3BTyEf5cmoSRfHNo07FEvzWwnphcP7GlrAX164UQ== + dependencies: + detect-indent "^7.0.1" + detect-newline "^4.0.0" + git-hooks-list "^3.0.0" + globby "^13.1.2" + is-plain-obj "^4.1.0" + sort-object-keys "^1.1.3" + source-map-js@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" @@ -6409,6 +6526,14 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== +synckit@0.8.4: + version "0.8.4" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.4.tgz#0e6b392b73fafdafcde56692e3352500261d64ec" + integrity sha512-Dn2ZkzMdSX827QbowGbU/4yjWuvNaCoScLLoMo/yKbu+P4GBR6cRGKZH27k6a9bRzdqcyd1DE96pQtQ6uNkmyw== + dependencies: + "@pkgr/utils" "^2.3.1" + tslib "^2.4.0" + tapable@^2.1.1, tapable@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" @@ -6514,6 +6639,14 @@ through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== +tiny-glob@^0.2.9: + version "0.2.9" + resolved "https://registry.yarnpkg.com/tiny-glob/-/tiny-glob-0.2.9.tgz#2212d441ac17928033b110f8b3640683129d31e2" + integrity sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg== + dependencies: + globalyzer "0.1.0" + globrex "^0.1.2" + tinyqueue@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/tinyqueue/-/tinyqueue-2.0.3.tgz#64d8492ebf39e7801d7bd34062e29b45b2035f08"