From 98f060b4355a6db7e0fe972b67e071e36de9c388 Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Mon, 17 Apr 2023 16:12:26 +0200 Subject: [PATCH 1/3] [ts] Refactor how textures are stored in texture regions, fix renderers, add custom attachment WebGL example. --- spine-ts/index.html | 1 + spine-ts/spine-canvas/example/index.html | 1 + spine-ts/spine-canvas/src/SkeletonRenderer.ts | 19 ++-- .../spine-core/src/AtlasAttachmentLoader.ts | 9 +- spine-ts/spine-core/src/Texture.ts | 2 +- spine-ts/spine-core/src/TextureAtlas.ts | 4 + .../src/attachments/RegionAttachment.ts | 6 +- spine-ts/spine-phaser/example/nyan.png | Bin 563 -> 0 bytes .../example/{assets => }/phaser.png | Bin spine-ts/spine-threejs/src/SkeletonMesh.ts | 4 +- .../example/custom-attachment.html | 97 ++++++++++++++++++ spine-ts/spine-webgl/example/head.png | Bin 0 -> 63807 bytes spine-ts/spine-webgl/src/SkeletonRenderer.ts | 4 +- 13 files changed, 122 insertions(+), 25 deletions(-) delete mode 100644 spine-ts/spine-phaser/example/nyan.png rename spine-ts/spine-phaser/example/{assets => }/phaser.png (100%) create mode 100644 spine-ts/spine-webgl/example/custom-attachment.html create mode 100644 spine-ts/spine-webgl/example/head.png diff --git a/spine-ts/index.html b/spine-ts/index.html index bb13ebed6..181095cc3 100644 --- a/spine-ts/index.html +++ b/spine-ts/index.html @@ -32,6 +32,7 @@
  • Example
  • Barebones
  • Mix & match
  • +
  • Custom attachment
  • Drag & drop
  • Dress-up
  • Bone dragging
  • diff --git a/spine-ts/spine-canvas/example/index.html b/spine-ts/spine-canvas/example/index.html index eac1ddce3..af596e37a 100644 --- a/spine-ts/spine-canvas/example/index.html +++ b/spine-ts/spine-canvas/example/index.html @@ -21,6 +21,7 @@ canvas = document.getElementById("canvas"); context = canvas.getContext("2d"); skeletonRenderer = new spine.SkeletonRenderer(context); + // skeletonRenderer.triangleRendering = true; // Load the assets. assetManager = new spine.AssetManager("https://esotericsoftware.com/files/examples/4.0/spineboy/export/"); diff --git a/spine-ts/spine-canvas/src/SkeletonRenderer.ts b/spine-ts/spine-canvas/src/SkeletonRenderer.ts index 55b73bbbd..01bc2efca 100644 --- a/spine-ts/spine-canvas/src/SkeletonRenderer.ts +++ b/spine-ts/spine-canvas/src/SkeletonRenderer.ts @@ -27,7 +27,7 @@ * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ -import { Utils, Color, Skeleton, RegionAttachment, TextureAtlasRegion, BlendMode, MeshAttachment, Slot } from "@esotericsoftware/spine-core"; +import { Utils, Color, Skeleton, RegionAttachment, BlendMode, MeshAttachment, Slot, TextureRegion, TextureAtlasRegion } from "@esotericsoftware/spine-core"; import { CanvasTexture } from "./CanvasTexture"; const worldVertices = Utils.newFloatArray(8); @@ -68,8 +68,9 @@ export class SkeletonRenderer { let attachment = slot.getAttachment(); if (!(attachment instanceof RegionAttachment)) continue; attachment.computeWorldVertices(slot, worldVertices, 0, 2); - let region: TextureAtlasRegion = attachment.region; - let image: HTMLImageElement = (region.page.texture).getImage() as HTMLImageElement; + let region: TextureRegion = attachment.region; + + let image: HTMLImageElement = (region.texture).getImage() as HTMLImageElement; let slotColor = slot.color; let regionColor = attachment.color; @@ -98,7 +99,7 @@ export class SkeletonRenderer { ctx.translate(-w / 2, -h / 2); ctx.globalAlpha = color.a; - ctx.drawImage(image, region.x, region.y, w, h, 0, 0, w, h); + ctx.drawImage(image, image.width * region.u, image.height * region.v, w, h, 0, 0, w, h); if (this.debugRendering) ctx.strokeRect(0, 0, w, h); ctx.restore(); } @@ -123,15 +124,13 @@ export class SkeletonRenderer { if (attachment instanceof RegionAttachment) { let regionAttachment = attachment; vertices = this.computeRegionVertices(slot, regionAttachment, false); - triangles = SkeletonRenderer.QUAD_TRIANGLES; - region = regionAttachment.region; - texture = (region.page.texture).getImage() as HTMLImageElement; + triangles = SkeletonRenderer.QUAD_TRIANGLES; + texture = (regionAttachment.region!.texture).getImage() as HTMLImageElement; } else if (attachment instanceof MeshAttachment) { let mesh = attachment; vertices = this.computeMeshVertices(slot, mesh, false); - triangles = mesh.triangles; - let region = (mesh.region!.renderObject); - texture = region.page.texture!.getImage() as HTMLImageElement; + triangles = mesh.triangles; + texture = (mesh.region!.texture).getImage() as HTMLImageElement; } else continue; diff --git a/spine-ts/spine-core/src/AtlasAttachmentLoader.ts b/spine-ts/spine-core/src/AtlasAttachmentLoader.ts index a5a044108..c8af304ed 100644 --- a/spine-ts/spine-core/src/AtlasAttachmentLoader.ts +++ b/spine-ts/spine-core/src/AtlasAttachmentLoader.ts @@ -55,8 +55,7 @@ export class AtlasAttachmentLoader implements AttachmentLoader { let path = sequence.getPath(basePath, i); let region = this.atlas.findRegion(path); if (region == null) throw new Error("Region not found in atlas: " + path + " (sequence: " + name + ")"); - regions[i] = region; - regions[i].renderObject = regions[i]; + regions[i] = region; } } @@ -66,8 +65,7 @@ export class AtlasAttachmentLoader implements AttachmentLoader { this.loadSequence(name, path, sequence); } else { let region = this.atlas.findRegion(path); - if (!region) throw new Error("Region not found in atlas: " + path + " (region attachment: " + name + ")"); - region.renderObject = region; + if (!region) throw new Error("Region not found in atlas: " + path + " (region attachment: " + name + ")"); attachment.region = region; } return attachment; @@ -79,8 +77,7 @@ export class AtlasAttachmentLoader implements AttachmentLoader { this.loadSequence(name, path, sequence); } else { let region = this.atlas.findRegion(path); - if (!region) throw new Error("Region not found in atlas: " + path + " (mesh attachment: " + name + ")"); - region.renderObject = region; + if (!region) throw new Error("Region not found in atlas: " + path + " (mesh attachment: " + name + ")"); attachment.region = region; } return attachment; diff --git a/spine-ts/spine-core/src/Texture.ts b/spine-ts/spine-core/src/Texture.ts index 877b5a6ed..a9947ed9f 100644 --- a/spine-ts/spine-core/src/Texture.ts +++ b/spine-ts/spine-core/src/Texture.ts @@ -60,7 +60,7 @@ export enum TextureWrap { } export class TextureRegion { - renderObject: any; + texture: any; u = 0; v = 0; u2 = 0; v2 = 0; width = 0; height = 0; diff --git a/spine-ts/spine-core/src/TextureAtlas.ts b/spine-ts/spine-core/src/TextureAtlas.ts index 4bcf50c8b..fd8475c27 100644 --- a/spine-ts/spine-core/src/TextureAtlas.ts +++ b/spine-ts/spine-core/src/TextureAtlas.ts @@ -236,6 +236,7 @@ export class TextureAtlasPage { width: number = 0; height: number = 0; pma: boolean = false; + regions = new Array(); constructor (name: string) { this.name = name; @@ -245,6 +246,8 @@ export class TextureAtlasPage { this.texture = texture; texture.setFilters(this.minFilter, this.magFilter); texture.setWraps(this.uWrap, this.vWrap); + for (let region of this.regions) + region.texture = texture; } } @@ -266,5 +269,6 @@ export class TextureAtlasRegion extends TextureRegion { super(); this.page = page; this.name = name; + page.regions.push(this); } } diff --git a/spine-ts/spine-core/src/attachments/RegionAttachment.ts b/spine-ts/spine-core/src/attachments/RegionAttachment.ts index 6c46306a2..b6c05a0ab 100644 --- a/spine-ts/spine-core/src/attachments/RegionAttachment.ts +++ b/spine-ts/spine-core/src/attachments/RegionAttachment.ts @@ -65,8 +65,7 @@ export class RegionAttachment extends Attachment implements HasTextureRegion { /** The name of the texture region for this attachment. */ path: string; - - private rendererObject: any = null; + region: TextureRegion | null = null; sequence: Sequence | null = null; @@ -195,8 +194,7 @@ export class RegionAttachment extends Attachment implements HasTextureRegion { copy (): Attachment { let copy = new RegionAttachment(this.name, this.path); - copy.region = this.region; - copy.rendererObject = this.rendererObject; + copy.region = this.region; copy.x = this.x; copy.y = this.y; copy.scaleX = this.scaleX; diff --git a/spine-ts/spine-phaser/example/nyan.png b/spine-ts/spine-phaser/example/nyan.png deleted file mode 100644 index 506cafe2164b808c36356f8335105c73aeb64daa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 563 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}E~ycoX}-P; zT0k}j17mw80}DtA5K93u0|WB{Mh0de%?J`(zyz07Sip>6gA}f5OZp5{HrLa|F(iWX zZD@2+ivf?f)!x8rH4EYDW#4=>xh4umJ~zC5zEzSf`Si3$76ONA@5)wu=R4BLwuJKx z$E7EkY+gsF)NKp=m}pbC{=klyb(=%>O!}|qyh#1P^}{i`g7R%IBy~R>_Y}C2wl+-e z@$X`t23MOV*IkRY39vj{?f+&YLsK-1s@!#ng4<6y?V2RAq~G{^|7d4?lxy84T6XK( zuYC_(?(AA8Ab62c>rt_vS8}VujuNL;6Juf&%NrVFMUx_DHpSeIPi(7FIuUsN6q5rF zL!Mw@vh%zzd>hraaELNXM^8{+E^s^U+JQfIp6{N8ol`RSDDuVC!Jv7Bk`RO^2dPc_6?*E~P^D)~eXPttEEcdeq|DpMb?I5~&iuJh=LY<81& zC#MJBW413;y6$o#rto~)IZv1KKj-|Dyjr|~>0D9!Q9Y5K&57*iwk3Qk@7XWgeSOJS z>yr<^TP4i*W~f^2_~+>9ir0#Jt_T;Y%rJ;OsCw{t$!DKVkxk#kgTe~DWM4fy9VC@ diff --git a/spine-ts/spine-phaser/example/assets/phaser.png b/spine-ts/spine-phaser/example/phaser.png similarity index 100% rename from spine-ts/spine-phaser/example/assets/phaser.png rename to spine-ts/spine-phaser/example/phaser.png diff --git a/spine-ts/spine-threejs/src/SkeletonMesh.ts b/spine-ts/spine-threejs/src/SkeletonMesh.ts index 07c48e119..b3cc553f0 100644 --- a/spine-ts/spine-threejs/src/SkeletonMesh.ts +++ b/spine-ts/spine-threejs/src/SkeletonMesh.ts @@ -181,7 +181,7 @@ export class SkeletonMesh extends THREE.Object3D { region.computeWorldVertices(slot, vertices, 0, vertexSize); triangles = SkeletonMesh.QUAD_TRIANGLES; uvs = region.uvs; - texture = (region.region!.renderObject).page.texture; + texture = region.region!.texture; } else if (attachment instanceof MeshAttachment) { let mesh = attachment; attachmentColor = mesh.color; @@ -193,7 +193,7 @@ export class SkeletonMesh extends THREE.Object3D { mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, vertices, 0, vertexSize); triangles = mesh.triangles; uvs = mesh.uvs; - texture = (mesh.region!.renderObject).page.texture; + texture = mesh.region!.texture; } else if (attachment instanceof ClippingAttachment) { let clip = (attachment); clipper.clipStart(slot, clip); diff --git a/spine-ts/spine-webgl/example/custom-attachment.html b/spine-ts/spine-webgl/example/custom-attachment.html new file mode 100644 index 000000000..e9c943fd1 --- /dev/null +++ b/spine-ts/spine-webgl/example/custom-attachment.html @@ -0,0 +1,97 @@ + + + + + + + + + + \ No newline at end of file diff --git a/spine-ts/spine-webgl/example/head.png b/spine-ts/spine-webgl/example/head.png new file mode 100644 index 0000000000000000000000000000000000000000..0ecab2159eb6c23952c98a3dd63986be0015e460 GIT binary patch literal 63807 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 literal 0 HcmV?d00001 diff --git a/spine-ts/spine-webgl/src/SkeletonRenderer.ts b/spine-ts/spine-webgl/src/SkeletonRenderer.ts index eeb0ea02c..1e4bfae85 100644 --- a/spine-ts/spine-webgl/src/SkeletonRenderer.ts +++ b/spine-ts/spine-webgl/src/SkeletonRenderer.ts @@ -113,7 +113,7 @@ export class SkeletonRenderer { region.computeWorldVertices(slot, renderable.vertices, 0, clippedVertexSize); triangles = SkeletonRenderer.QUAD_TRIANGLES; uvs = region.uvs; - texture = (region.region!.renderObject).page.texture; + texture = region.region!.texture; attachmentColor = region.color; } else if (attachment instanceof MeshAttachment) { let mesh = attachment; @@ -125,7 +125,7 @@ export class SkeletonRenderer { } mesh.computeWorldVertices(slot, 0, mesh.worldVerticesLength, renderable.vertices, 0, clippedVertexSize); triangles = mesh.triangles; - texture = (mesh.region!.renderObject).page.texture; + texture = mesh.region!.texture; uvs = mesh.uvs; attachmentColor = mesh.color; } else if (attachment instanceof ClippingAttachment) { From aa1064b83b2f292f4924dbf04f3abcd85fa50fd9 Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Mon, 17 Apr 2023 16:25:22 +0200 Subject: [PATCH 2/3] [phaser] Update for 3.60.0 release. --- spine-ts/spine-phaser/src/SpinePlugin.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/spine-ts/spine-phaser/src/SpinePlugin.ts b/spine-ts/spine-phaser/src/SpinePlugin.ts index b9952745b..26f64bbfc 100644 --- a/spine-ts/spine-phaser/src/SpinePlugin.ts +++ b/spine-ts/spine-phaser/src/SpinePlugin.ts @@ -130,11 +130,11 @@ export class SpinePlugin extends Phaser.Plugins.ScenePlugin { this.game.scale.on(Phaser.Scale.Events.RESIZE, this.onResize, this); } else { if (!this.canvasRenderer) { - this.canvasRenderer = new SkeletonRenderer(this.scene.sys.context); + this.canvasRenderer = new SkeletonRenderer(this.scene!.sys.context); } } - var eventEmitter = this.systems.events; + var eventEmitter = this.systems!.events; eventEmitter.once('shutdown', this.shutdown, this); eventEmitter.once('destroy', this.destroy, this); this.game.events.once('destroy', this.gameDestroy, this); @@ -156,7 +156,7 @@ export class SpinePlugin extends Phaser.Plugins.ScenePlugin { } shutdown () { - this.systems.events.off("shutdown", this.shutdown, this); + this.systems!.events.off("shutdown", this.shutdown, this); if (this.isWebGL) { this.game.scale.off(Phaser.Scale.Events.RESIZE, this.onResize, this); } From f0ad8e2024613fd60e0a8b11d95e5c3825cd9da8 Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Mon, 17 Apr 2023 16:26:38 +0200 Subject: [PATCH 3/3] [ts] 4.1.27 release. --- CHANGELOG.md | 3 + spine-ts/package-lock.json | 3048 ++++++----------- spine-ts/package.json | 7 +- spine-ts/publish.sh | 2 +- spine-ts/spine-canvas/package.json | 4 +- spine-ts/spine-core/package.json | 2 +- spine-ts/spine-phaser/package.json | 9 +- spine-ts/spine-player/package.json | 4 +- spine-ts/spine-threejs/package.json | 6 +- .../example/custom-attachment.html | 2 +- spine-ts/spine-webgl/package.json | 4 +- 11 files changed, 1050 insertions(+), 2041 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1186bc31f..882e5aea0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -144,6 +144,9 @@ * `RegionAttachment#computeWorldVertices()` takes a `Slot` instead of a `Bone` as the first argument. * Removed `PlayerEditor`. * `VertexEffect` has been removed. + * Removed `RegionAttachment.rendererObject`. + * Renamed `TextureRegion.renderObject` to `TextureRegion.texture`. + ### WebGL backend * `PolygonBatcher` can now disable culling automatically if the static variable `PolygonBatcher.disableCulling` is set to true. diff --git a/spine-ts/package-lock.json b/spine-ts/package-lock.json index 37d5c58c2..bcb5cffba 100644 --- a/spine-ts/package-lock.json +++ b/spine-ts/package-lock.json @@ -1,581 +1,299 @@ { "name": "@esotericsoftware/spine-ts", - "version": "4.1.26", - "lockfileVersion": 3, + "version": "4.1.27", + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "name": "@esotericsoftware/spine-ts", - "version": "4.1.26", - "license": "LicenseRef-LICENSE", - "workspaces": [ - "spine-core", - "spine-canvas", - "spine-phaser", - "spine-player", - "spine-threejs", - "spine-webgl" - ], - "devDependencies": { - "@types/offscreencanvas": "^2019.6.4", - "concurrently": "^7.6.0", - "copyfiles": "^2.4.1", - "esbuild": "^0.16.4", - "live-server": "^1.2.2", - "rimraf": "^3.0.2", - "typescript": "^4.9.4" - } - }, - "node_modules/@esbuild/android-arm": { + "dependencies": { + "@esbuild/android-arm": { "version": "0.16.17", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz", "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==", - "cpu": [ - "arm" - ], "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } + "optional": true }, - "node_modules/@esbuild/android-arm64": { + "@esbuild/android-arm64": { "version": "0.16.17", "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz", "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==", - "cpu": [ - "arm64" - ], "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } + "optional": true }, - "node_modules/@esbuild/android-x64": { + "@esbuild/android-x64": { "version": "0.16.17", "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz", "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", - "cpu": [ - "x64" - ], "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } + "optional": true }, - "node_modules/@esbuild/darwin-arm64": { + "@esbuild/darwin-arm64": { "version": "0.16.17", "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", - "cpu": [ - "arm64" - ], "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } + "optional": true }, - "node_modules/@esbuild/darwin-x64": { + "@esbuild/darwin-x64": { "version": "0.16.17", "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", - "cpu": [ - "x64" - ], "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } + "optional": true }, - "node_modules/@esbuild/freebsd-arm64": { + "@esbuild/freebsd-arm64": { "version": "0.16.17", "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", - "cpu": [ - "arm64" - ], "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } + "optional": true }, - "node_modules/@esbuild/freebsd-x64": { + "@esbuild/freebsd-x64": { "version": "0.16.17", "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", - "cpu": [ - "x64" - ], "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } + "optional": true }, - "node_modules/@esbuild/linux-arm": { + "@esbuild/linux-arm": { "version": "0.16.17", "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", - "cpu": [ - "arm" - ], "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } + "optional": true }, - "node_modules/@esbuild/linux-arm64": { + "@esbuild/linux-arm64": { "version": "0.16.17", "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", - "cpu": [ - "arm64" - ], "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } + "optional": true }, - "node_modules/@esbuild/linux-ia32": { + "@esbuild/linux-ia32": { "version": "0.16.17", "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", - "cpu": [ - "ia32" - ], "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } + "optional": true }, - "node_modules/@esbuild/linux-loong64": { + "@esbuild/linux-loong64": { "version": "0.16.17", "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", - "cpu": [ - "loong64" - ], "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } + "optional": true }, - "node_modules/@esbuild/linux-mips64el": { + "@esbuild/linux-mips64el": { "version": "0.16.17", "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", - "cpu": [ - "mips64el" - ], "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } + "optional": true }, - "node_modules/@esbuild/linux-ppc64": { + "@esbuild/linux-ppc64": { "version": "0.16.17", "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", - "cpu": [ - "ppc64" - ], "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } + "optional": true }, - "node_modules/@esbuild/linux-riscv64": { + "@esbuild/linux-riscv64": { "version": "0.16.17", "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", - "cpu": [ - "riscv64" - ], "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } + "optional": true }, - "node_modules/@esbuild/linux-s390x": { + "@esbuild/linux-s390x": { "version": "0.16.17", "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", - "cpu": [ - "s390x" - ], "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } + "optional": true }, - "node_modules/@esbuild/linux-x64": { + "@esbuild/linux-x64": { "version": "0.16.17", "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", - "cpu": [ - "x64" - ], "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } + "optional": true }, - "node_modules/@esbuild/netbsd-x64": { + "@esbuild/netbsd-x64": { "version": "0.16.17", "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", - "cpu": [ - "x64" - ], "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } + "optional": true }, - "node_modules/@esbuild/openbsd-x64": { + "@esbuild/openbsd-x64": { "version": "0.16.17", "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", - "cpu": [ - "x64" - ], "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } + "optional": true }, - "node_modules/@esbuild/sunos-x64": { + "@esbuild/sunos-x64": { "version": "0.16.17", "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", - "cpu": [ - "x64" - ], "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } + "optional": true }, - "node_modules/@esbuild/win32-arm64": { + "@esbuild/win32-arm64": { "version": "0.16.17", "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", - "cpu": [ - "arm64" - ], "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } + "optional": true }, - "node_modules/@esbuild/win32-ia32": { + "@esbuild/win32-ia32": { "version": "0.16.17", "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", - "cpu": [ - "ia32" - ], "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } + "optional": true }, - "node_modules/@esbuild/win32-x64": { + "@esbuild/win32-x64": { "version": "0.16.17", "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", - "cpu": [ - "x64" - ], "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } + "optional": true }, - "node_modules/@esotericsoftware/spine-canvas": { - "resolved": "spine-canvas", - "link": true - }, - "node_modules/@esotericsoftware/spine-core": { - "resolved": "spine-core", - "link": true - }, - "node_modules/@esotericsoftware/spine-phaser": { - "resolved": "spine-phaser", - "link": true - }, - "node_modules/@esotericsoftware/spine-player": { - "resolved": "spine-player", - "link": true - }, - "node_modules/@esotericsoftware/spine-threejs": { - "resolved": "spine-threejs", - "link": true - }, - "node_modules/@esotericsoftware/spine-webgl": { - "resolved": "spine-webgl", - "link": true - }, - "node_modules/@types/offscreencanvas": { + "@types/offscreencanvas": { "version": "2019.7.0", "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.7.0.tgz", "integrity": "sha512-PGcyveRIpL1XIqK8eBsmRBt76eFgtzuPiSTyKHZxnGemp2yzGzWpjYKAfK3wIMiU7eH+851yEpiuP8JZerTmWg==", "dev": true }, - "node_modules/@types/three": { + "@types/three": { "version": "0.146.0", "resolved": "https://registry.npmjs.org/@types/three/-/three-0.146.0.tgz", "integrity": "sha512-75AgysUrIvTCB054eQa2pDVFurfeFW8CrMQjpzjt3yHBfuuknoSvvsESd/3EhQxPrz9si3+P0wiDUVsWUlljfA==", - "dependencies": { + "dev": true, + "requires": { "@types/webxr": "*" } }, - "node_modules/@types/webxr": { + "@types/webxr": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.1.tgz", - "integrity": "sha512-xlFXPfgJR5vIuDefhaHuUM9uUgvPaXB6GKdXy2gdEh8gBWQZ2ul24AJz3foUd8NNKlSTQuWYJpCb1/pL81m1KQ==" + "integrity": "sha512-xlFXPfgJR5vIuDefhaHuUM9uUgvPaXB6GKdXy2gdEh8gBWQZ2ul24AJz3foUd8NNKlSTQuWYJpCb1/pL81m1KQ==", + "dev": true }, - "node_modules/accepts": { + "accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, - "dependencies": { + "requires": { "mime-types": "~2.1.34", "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" } }, - "node_modules/ansi-regex": { + "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } + "dev": true }, - "node_modules/ansi-styles": { + "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "dependencies": { + "requires": { "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/anymatch": { + "anymatch": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, - "dependencies": { + "requires": { "micromatch": "^3.1.4", "normalize-path": "^2.1.1" - } - }, - "node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", - "dev": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" }, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } } }, - "node_modules/apache-crypt": { + "apache-crypt": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/apache-crypt/-/apache-crypt-1.2.6.tgz", "integrity": "sha512-072WetlM4blL8PREJVeY+WHiUh1R5VNt2HfceGS8aKqttPHcmqE5pkKuXPz/ULmJOFkc8Hw3kfKl6vy7Qka6DA==", "dev": true, - "dependencies": { + "requires": { "unix-crypt-td-js": "^1.1.4" - }, - "engines": { - "node": ">=8" } }, - "node_modules/apache-md5": { + "apache-md5": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/apache-md5/-/apache-md5-1.1.8.tgz", "integrity": "sha512-FCAJojipPn0bXjuEpjOOOMN8FZDkxfWWp4JGN9mifU2IhxvKyXZYqpzPHdnTSUpmPDy+tsslB6Z1g+Vg6nVbYA==", - "dev": true, - "engines": { - "node": ">=8" - } + "dev": true }, - "node_modules/arr-diff": { + "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/arr-flatten": { + "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/arr-union": { + "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/array-unique": { + "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/assign-symbols": { + "assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", "dev": true }, - "node_modules/atob": { + "async-each": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", + "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", + "dev": true + }, + "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } + "dev": true }, - "node_modules/balanced-match": { + "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "node_modules/base": { + "base": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, - "dependencies": { + "requires": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", "component-emitter": "^1.2.1", @@ -584,81 +302,100 @@ "mixin-deep": "^1.2.0", "pascalcase": "^0.1.1" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, - "node_modules/basic-auth": { + "basic-auth": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", "dev": true, - "dependencies": { + "requires": { "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.8" } }, - "node_modules/batch": { + "batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true }, - "node_modules/bcryptjs": { + "bcryptjs": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==", "dev": true }, - "node_modules/binary-extensions": { + "binary-extensions": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/bindings": { + "bindings": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", "dev": true, "optional": true, - "dependencies": { + "requires": { "file-uri-to-path": "1.0.0" } }, - "node_modules/brace-expansion": { + "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "dependencies": { + "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "node_modules/braces": { + "braces": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, - "dependencies": { + "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", "extend-shallow": "^2.0.1", @@ -670,16 +407,24 @@ "split-string": "^3.0.2", "to-regex": "^3.0.1" }, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "node_modules/cache-base": { + "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, - "dependencies": { + "requires": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", "get-value": "^2.0.6", @@ -689,49 +434,39 @@ "to-object-path": "^0.3.0", "union-value": "^1.0.0", "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" } }, - "node_modules/chalk": { + "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "dependencies": { + "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "node_modules/chokidar": { + "chokidar": { "version": "2.1.8", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", "dev": true, - "dependencies": { + "requires": { "anymatch": "^2.0.0", "async-each": "^1.0.1", "braces": "^2.3.2", + "fsevents": "^1.2.7", "glob-parent": "^3.1.0", "inherits": "^2.0.3", "is-binary-path": "^1.0.0", @@ -740,157 +475,91 @@ "path-is-absolute": "^1.0.0", "readdirp": "^2.2.1", "upath": "^1.1.1" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" } }, - "node_modules/class-utils": { + "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, - "dependencies": { + "requires": { "arr-union": "^3.1.0", "define-property": "^0.2.5", "isobject": "^3.0.0", "static-extend": "^0.1.1" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } } }, - "node_modules/class-utils/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cliui": { + "cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, - "dependencies": { + "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" } }, - "node_modules/collection-visit": { + "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", "dev": true, - "dependencies": { + "requires": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" } }, - "node_modules/color-convert": { + "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "dependencies": { + "requires": { "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" } }, - "node_modules/color-name": { + "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/colors": { + "colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "engines": { - "node": ">=0.1.90" - } + "dev": true }, - "node_modules/component-emitter": { + "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", "dev": true }, - "node_modules/concat-map": { + "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, - "node_modules/concurrently": { + "concurrently": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.6.0.tgz", "integrity": "sha512-BKtRgvcJGeZ4XttiDiNcFiRlxoAeZOseqUvyYRUp/Vtd+9p1ULmeoSqGsDA+2ivdeDFpqrJvGvmI+StKfKl5hw==", "dev": true, - "dependencies": { + "requires": { "chalk": "^4.1.0", "date-fns": "^2.29.1", "lodash": "^4.17.21", @@ -900,48 +569,32 @@ "supports-color": "^8.1.0", "tree-kill": "^1.2.2", "yargs": "^17.3.1" - }, - "bin": { - "conc": "dist/bin/concurrently.js", - "concurrently": "dist/bin/concurrently.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" } }, - "node_modules/connect": { + "connect": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", "dev": true, - "dependencies": { + "requires": { "debug": "2.6.9", "finalhandler": "1.1.2", "parseurl": "~1.3.3", "utils-merge": "1.0.1" - }, - "engines": { - "node": ">= 0.10.0" } }, - "node_modules/copy-descriptor": { + "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/copyfiles": { + "copyfiles": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", "dev": true, - "dependencies": { + "requires": { "glob": "^7.0.5", "minimatch": "^3.0.3", "mkdirp": "^1.0.4", @@ -950,171 +603,161 @@ "untildify": "^4.0.0", "yargs": "^16.1.0" }, - "bin": { - "copyfiles": "copyfiles", - "copyup": "copyfiles" - } - }, - "node_modules/copyfiles/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + } } }, - "node_modules/copyfiles/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/copyfiles/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/core-util-is": { + "core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, - "node_modules/cors": { + "cors": { "version": "2.8.5", "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", "dev": true, - "dependencies": { + "requires": { "object-assign": "^4", "vary": "^1" - }, - "engines": { - "node": ">= 0.10" } }, - "node_modules/date-fns": { + "date-fns": { "version": "2.29.3", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==", - "dev": true, - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } + "dev": true }, - "node_modules/debug": { + "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "dependencies": { + "requires": { "ms": "2.0.0" } }, - "node_modules/decode-uri-component": { + "decode-uri-component": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "dev": true, - "engines": { - "node": ">=0.10" - } + "dev": true }, - "node_modules/define-property": { + "define-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, - "dependencies": { + "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" }, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, - "node_modules/depd": { + "depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } + "dev": true }, - "node_modules/destroy": { + "destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } + "dev": true }, - "node_modules/duplexer": { + "duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, - "node_modules/ee-first": { + "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "dev": true }, - "node_modules/emoji-regex": { + "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "node_modules/encodeurl": { + "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, - "engines": { - "node": ">= 0.8" - } + "dev": true }, - "node_modules/esbuild": { + "esbuild": { "version": "0.16.17", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz", "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { + "requires": { "@esbuild/android-arm": "0.16.17", "@esbuild/android-arm64": "0.16.17", "@esbuild/android-x64": "0.16.17", @@ -1139,36 +782,30 @@ "@esbuild/win32-x64": "0.16.17" } }, - "node_modules/escalade": { + "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } + "dev": true }, - "node_modules/escape-html": { + "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "dev": true }, - "node_modules/etag": { + "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } + "dev": true }, - "node_modules/event-stream": { + "event-stream": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", "integrity": "sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==", "dev": true, - "dependencies": { + "requires": { "duplexer": "~0.1.1", "from": "~0", "map-stream": "~0.1.0", @@ -1178,17 +815,18 @@ "through": "~2.3.1" } }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + "eventemitter3": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.0.tgz", + "integrity": "sha512-riuVbElZZNXLeLEoprfNYoDSwTBRR44X3mnhdI1YcnENpWTCsTTVZ2zFuqQcpoyqPQIUXdiPEU0ECAq0KQRaHg==", + "dev": true }, - "node_modules/expand-brackets": { + "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", "dev": true, - "dependencies": { + "requires": { "debug": "^2.3.3", "define-property": "^0.2.5", "extend-shallow": "^2.0.1", @@ -1197,87 +835,54 @@ "snapdragon": "^0.8.1", "to-regex": "^3.0.1" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, - "node_modules/expand-brackets/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob": { + "extglob": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, - "dependencies": { + "requires": { "array-unique": "^0.3.2", "define-property": "^1.0.0", "expand-brackets": "^2.1.4", @@ -1287,62 +892,101 @@ "snapdragon": "^0.8.1", "to-regex": "^3.0.1" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, - "node_modules/faye-websocket": { + "faye-websocket": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", "dev": true, - "dependencies": { + "requires": { "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" } }, - "node_modules/file-uri-to-path": { + "file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", "dev": true, "optional": true }, - "node_modules/fill-range": { + "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", "dev": true, - "dependencies": { + "requires": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", "repeat-string": "^1.6.1", "to-regex-range": "^2.1.0" }, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "node_modules/finalhandler": { + "finalhandler": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", "dev": true, - "dependencies": { + "requires": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -1350,505 +994,412 @@ "parseurl": "~1.3.3", "statuses": "~1.5.0", "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" } }, - "node_modules/for-in": { + "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/fragment-cache": { + "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", "dev": true, - "dependencies": { + "requires": { "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" } }, - "node_modules/fresh": { + "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true, - "engines": { - "node": ">= 0.6" - } + "dev": true }, - "node_modules/from": { + "from": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", "dev": true }, - "node_modules/fs.realpath": { + "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, - "node_modules/fsevents": { + "fsevents": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", "dev": true, - "hasInstallScript": true, "optional": true, - "os": [ - "darwin" - ], - "dependencies": { + "requires": { "bindings": "^1.5.0", "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" } }, - "node_modules/get-caller-file": { + "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } + "dev": true }, - "node_modules/get-value": { + "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/glob": { + "glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, - "dependencies": { + "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/glob-parent": { + "glob-parent": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", "dev": true, - "dependencies": { + "requires": { "is-glob": "^3.1.0", "path-dirname": "^1.0.0" - } - }, - "node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.0" }, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } } }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "node_modules/has-flag": { + "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } + "dev": true }, - "node_modules/has-value": { + "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", "dev": true, - "dependencies": { + "requires": { "get-value": "^2.0.6", "has-values": "^1.0.0", "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" } }, - "node_modules/has-values": { + "has-values": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", "dev": true, - "dependencies": { + "requires": { "is-number": "^3.0.0", "kind-of": "^4.0.0" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", - "dev": true, "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, - "node_modules/http-auth": { + "http-auth": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/http-auth/-/http-auth-3.1.3.tgz", "integrity": "sha512-Jbx0+ejo2IOx+cRUYAGS1z6RGc6JfYUNkysZM4u4Sfk1uLlGv814F7/PIjQQAuThLdAWxb74JMGd5J8zex1VQg==", "dev": true, - "dependencies": { + "requires": { "apache-crypt": "^1.1.2", "apache-md5": "^1.0.6", "bcryptjs": "^2.3.0", "uuid": "^3.0.0" - }, - "engines": { - "node": ">=4.6.1" } }, - "node_modules/http-errors": { + "http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, - "dependencies": { + "requires": { "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", "statuses": "2.0.1", "toidentifier": "1.0.1" }, - "engines": { - "node": ">= 0.8" + "dependencies": { + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true + } } }, - "node_modules/http-errors/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-parser-js": { + "http-parser-js": { "version": "0.5.8", "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", "dev": true }, - "node_modules/inflight": { + "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, - "dependencies": { + "requires": { "once": "^1.3.0", "wrappy": "1" } }, - "node_modules/inherits": { + "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", "dev": true, - "dependencies": { - "kind-of": "^6.0.0" + "requires": { + "kind-of": "^3.0.2" }, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, - "node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-binary-path": { + "is-binary-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", "dev": true, - "dependencies": { + "requires": { "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" } }, - "node_modules/is-buffer": { + "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, - "node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", "dev": true, - "dependencies": { - "kind-of": "^6.0.0" + "requires": { + "kind-of": "^3.0.2" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, - "node_modules/is-descriptor/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, - "engines": { - "node": ">=0.10.0" + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } } }, - "node_modules/is-extendable": { + "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/is-extglob": { + "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/is-fullwidth-code-point": { + "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } + "dev": true }, - "node_modules/is-glob": { + "is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, - "dependencies": { + "requires": { "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" } }, - "node_modules/is-number": { + "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, - "dependencies": { + "requires": { "kind-of": "^3.0.2" }, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, - "node_modules/is-plain-object": { + "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, - "dependencies": { + "requires": { "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" } }, - "node_modules/is-windows": { + "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/is-wsl": { + "is-wsl": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", - "dev": true, - "engines": { - "node": ">=4" - } + "dev": true }, - "node_modules/isarray": { + "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", "dev": true }, - "node_modules/isobject": { + "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true }, - "node_modules/live-server": { + "live-server": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/live-server/-/live-server-1.2.2.tgz", "integrity": "sha512-t28HXLjITRGoMSrCOv4eZ88viHaBVIjKjdI5PO92Vxlu+twbk6aE0t7dVIaz6ZWkjPilYFV6OSdMYl9ybN2B4w==", "dev": true, - "dependencies": { + "requires": { "chokidar": "^2.0.4", "colors": "1.4.0", "connect": "^3.6.6", - "cors": "latest", + "cors": "^2.8.5", "event-stream": "3.3.4", "faye-websocket": "0.11.x", "http-auth": "3.1.x", "morgan": "^1.9.1", - "object-assign": "latest", - "opn": "latest", - "proxy-middleware": "latest", - "send": "latest", + "object-assign": "^4.1.1", + "opn": "^6.0.0", + "proxy-middleware": "^0.15.0", + "send": "^0.18.0", "serve-index": "^1.9.1" - }, - "bin": { - "live-server": "live-server.js" - }, - "engines": { - "node": ">=0.10.0" } }, - "node_modules/lodash": { + "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "node_modules/map-cache": { + "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/map-stream": { + "map-stream": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", "integrity": "sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==", "dev": true }, - "node_modules/map-visit": { + "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", "dev": true, - "dependencies": { + "requires": { "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" } }, - "node_modules/micromatch": { + "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, - "dependencies": { + "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", "braces": "^2.3.1", @@ -1862,162 +1413,97 @@ "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" } }, - "node_modules/micromatch/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mime": { + "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } + "dev": true }, - "node_modules/mime-db": { + "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } + "dev": true }, - "node_modules/mime-types": { + "mime-types": { "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, - "dependencies": { + "requires": { "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" } }, - "node_modules/minimatch": { + "minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "dependencies": { + "requires": { "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" } }, - "node_modules/mixin-deep": { + "mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "dev": true, - "dependencies": { + "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mixin-deep/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, - "node_modules/mkdirp": { + "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } + "dev": true }, - "node_modules/morgan": { + "morgan": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", "dev": true, - "dependencies": { + "requires": { "basic-auth": "~2.0.1", "debug": "2.6.9", "depd": "~2.0.0", "on-finished": "~2.3.0", "on-headers": "~1.0.2" - }, - "engines": { - "node": ">= 0.8.0" } }, - "node_modules/ms": { + "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, - "node_modules/nan": { + "nan": { "version": "2.17.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", "dev": true, "optional": true }, - "node_modules/nanomatch": { + "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, - "dependencies": { + "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", "define-property": "^2.0.2", @@ -2029,511 +1515,324 @@ "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" } }, - "node_modules/nanomatch/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/negotiator": { + "negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } + "dev": true }, - "node_modules/noms": { + "noms": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", "integrity": "sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==", "dev": true, - "dependencies": { + "requires": { "inherits": "^2.0.1", "readable-stream": "~1.0.31" } }, - "node_modules/normalize-path": { + "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/object-assign": { + "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/object-copy": { + "object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", "dev": true, - "dependencies": { + "requires": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", "kind-of": "^3.0.3" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, - "node_modules/object-copy/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-visit": { + "object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", "dev": true, - "dependencies": { + "requires": { "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" } }, - "node_modules/object.pick": { + "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", "dev": true, - "dependencies": { + "requires": { "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" } }, - "node_modules/on-finished": { + "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", "dev": true, - "dependencies": { + "requires": { "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" } }, - "node_modules/on-headers": { + "on-headers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true, - "engines": { - "node": ">= 0.8" - } + "dev": true }, - "node_modules/once": { + "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, - "dependencies": { + "requires": { "wrappy": "1" } }, - "node_modules/opn": { + "opn": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/opn/-/opn-6.0.0.tgz", "integrity": "sha512-I9PKfIZC+e4RXZ/qr1RhgyCnGgYX0UEIlXgWnCOVACIvFgaC9rz6Won7xbdhoHrd8IIhV7YEpHjreNUNkqCGkQ==", - "deprecated": "The package has been renamed to `open`", "dev": true, - "dependencies": { + "requires": { "is-wsl": "^1.1.0" - }, - "engines": { - "node": ">=8" } }, - "node_modules/parseurl": { + "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } + "dev": true }, - "node_modules/pascalcase": { + "pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/path": { - "version": "0.12.7", - "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", - "integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==", - "dependencies": { - "process": "^0.11.1", - "util": "^0.10.3" - } - }, - "node_modules/path-dirname": { + "path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", "dev": true }, - "node_modules/path-is-absolute": { + "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/pause-stream": { + "pause-stream": { "version": "0.0.11", "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", "dev": true, - "dependencies": { + "requires": { "through": "~2.3" } }, - "node_modules/phaser": { - "version": "3.55.2", - "resolved": "https://registry.npmjs.org/phaser/-/phaser-3.55.2.tgz", - "integrity": "sha512-amKXsbb2Ht29dGPKvt1edq3yGGYKtq8373GpJYGKPNPnneYY6MtVTOgjHDuZwtmUyK4v86FugkT3hzW/N4tjxQ==", - "dependencies": { - "eventemitter3": "^4.0.7", - "path": "^0.12.7" + "phaser": { + "version": "3.60.0", + "resolved": "https://registry.npmjs.org/phaser/-/phaser-3.60.0.tgz", + "integrity": "sha512-IKUy35EnoEVcl2EmJ8WOyK4X8OoxHYdlhZLgRGpNrvD1fEagYffhVmwHcapE/tGiLgyrnezmXIo5RrH2NcrTHw==", + "dev": true, + "requires": { + "eventemitter3": "^5.0.0" } }, - "node_modules/posix-character-classes": { + "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { + "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, - "node_modules/proxy-middleware": { + "proxy-middleware": { "version": "0.15.0", "resolved": "https://registry.npmjs.org/proxy-middleware/-/proxy-middleware-0.15.0.tgz", "integrity": "sha512-EGCG8SeoIRVMhsqHQUdDigB2i7qU7fCsWASwn54+nPutYO8n4q6EiwMzyfWlC+dzRFExP+kvcnDFdBDHoZBU7Q==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } + "dev": true }, - "node_modules/range-parser": { + "range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } + "dev": true }, - "node_modules/readable-stream": { + "readable-stream": { "version": "1.0.34", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", "dev": true, - "dependencies": { + "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", "isarray": "0.0.1", "string_decoder": "~0.10.x" } }, - "node_modules/readdirp": { + "readdirp": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, - "dependencies": { + "requires": { "graceful-fs": "^4.1.11", "micromatch": "^3.1.10", "readable-stream": "^2.0.2" }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/readdirp/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/readdirp/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, - "node_modules/readdirp/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/regex-not": { + "regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, - "dependencies": { + "requires": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" } }, - "node_modules/regex-not/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regex-not/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/remove-trailing-separator": { + "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", "dev": true }, - "node_modules/repeat-element": { + "repeat-element": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/repeat-string": { + "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "dev": true, - "engines": { - "node": ">=0.10" - } + "dev": true }, - "node_modules/require-directory": { + "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/resolve-url": { + "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", "dev": true }, - "node_modules/ret": { + "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true, - "engines": { - "node": ">=0.12" - } + "dev": true }, - "node_modules/rimraf": { + "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, - "dependencies": { + "requires": { "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/rxjs": { + "rxjs": { "version": "7.8.0", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", "dev": true, - "dependencies": { + "requires": { "tslib": "^2.1.0" } }, - "node_modules/safe-buffer": { + "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, - "node_modules/safe-regex": { + "safe-regex": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", "dev": true, - "dependencies": { + "requires": { "ret": "~0.1.10" } }, - "node_modules/send": { + "send": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "dev": true, - "dependencies": { + "requires": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", @@ -2548,43 +1847,36 @@ "range-parser": "~1.2.1", "statuses": "2.0.1" }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/send/node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true + } } }, - "node_modules/send/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/serve-index": { + "serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", "dev": true, - "dependencies": { + "requires": { "accepts": "~1.3.4", "batch": "0.6.1", "debug": "2.6.9", @@ -2593,82 +1885,80 @@ "mime-types": "~2.1.17", "parseurl": "~1.3.2" }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "dev": true, "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + } } }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, - "node_modules/set-value": { + "set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, - "dependencies": { + "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", "is-plain-object": "^2.0.3", "split-string": "^3.0.1" }, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "node_modules/setprototypeof": { + "setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true }, - "node_modules/shell-quote": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz", - "integrity": "sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true }, - "node_modules/snapdragon": { + "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, - "dependencies": { + "requires": { "base": "^0.11.1", "debug": "^2.2.0", "define-property": "^0.2.5", @@ -2678,123 +1968,110 @@ "source-map-resolve": "^0.5.0", "use": "^3.1.0" }, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "node_modules/snapdragon-node": { + "snapdragon-node": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, - "dependencies": { + "requires": { "define-property": "^1.0.0", "isobject": "^3.0.0", "snapdragon-util": "^3.0.1" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, - "node_modules/snapdragon-util": { + "snapdragon-util": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, - "dependencies": { + "requires": { "kind-of": "^3.2.0" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map": { + "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/source-map-resolve": { + "source-map-resolve": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", "dev": true, - "dependencies": { + "requires": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0", "resolve-url": "^0.2.1", @@ -2802,594 +2079,397 @@ "urix": "^0.1.0" } }, - "node_modules/source-map-url": { + "source-map-url": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated", "dev": true }, - "node_modules/spawn-command": { + "spawn-command": { "version": "0.0.2-1", "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", "integrity": "sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==", "dev": true }, - "node_modules/split": { + "split": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", "integrity": "sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==", "dev": true, - "dependencies": { + "requires": { "through": "2" - }, - "engines": { - "node": "*" } }, - "node_modules/split-string": { + "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, - "dependencies": { + "requires": { "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" } }, - "node_modules/split-string/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split-string/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend": { + "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", "dev": true, - "dependencies": { + "requires": { "define-property": "^0.2.5", "object-copy": "^0.1.0" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } } }, - "node_modules/static-extend/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/statuses": { + "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } + "dev": true }, - "node_modules/stream-combiner": { + "stream-combiner": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", "integrity": "sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==", "dev": true, - "dependencies": { + "requires": { "duplexer": "~0.1.1" } }, - "node_modules/string_decoder": { + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", "dev": true }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { + "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "dependencies": { + "requires": { "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" } }, - "node_modules/supports-color": { + "supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, - "dependencies": { + "requires": { "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/three": { + "three": { "version": "0.146.0", "resolved": "https://registry.npmjs.org/three/-/three-0.146.0.tgz", - "integrity": "sha512-1lvNfLezN6OJ9NaFAhfX4sm5e9YCzHtaRgZ1+B4C+Hv6TibRMsuBAM5/wVKzxjpYIlMymvgsHEFrrigEfXnb2A==" + "integrity": "sha512-1lvNfLezN6OJ9NaFAhfX4sm5e9YCzHtaRgZ1+B4C+Hv6TibRMsuBAM5/wVKzxjpYIlMymvgsHEFrrigEfXnb2A==", + "dev": true }, - "node_modules/through": { + "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, - "node_modules/through2": { + "through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, - "dependencies": { + "requires": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" - } - }, - "node_modules/through2/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/through2/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, + }, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, - "node_modules/through2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/to-object-path": { + "to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", "dev": true, - "dependencies": { + "requires": { "kind-of": "^3.0.2" }, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, - "node_modules/to-regex": { + "to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, - "dependencies": { + "requires": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "regex-not": "^1.0.2", "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" } }, - "node_modules/to-regex-range": { + "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", "dev": true, - "dependencies": { + "requires": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" } }, - "node_modules/to-regex/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/toidentifier": { + "toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "engines": { - "node": ">=0.6" - } + "dev": true }, - "node_modules/tree-kill": { + "tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "bin": { - "tree-kill": "cli.js" - } + "dev": true }, - "node_modules/tslib": { + "tslib": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", "dev": true }, - "node_modules/typescript": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", - "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } + "typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true }, - "node_modules/union-value": { + "union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "dev": true, - "dependencies": { + "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", "is-extendable": "^0.1.1", "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" } }, - "node_modules/unix-crypt-td-js": { + "unix-crypt-td-js": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/unix-crypt-td-js/-/unix-crypt-td-js-1.1.4.tgz", "integrity": "sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw==", "dev": true }, - "node_modules/unpipe": { + "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } + "dev": true }, - "node_modules/unset-value": { + "unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", "dev": true, - "dependencies": { + "requires": { "has-value": "^0.3.1", "isobject": "^3.0.0" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", - "dev": true, "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + } } }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", - "dev": true, - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/untildify": { + "untildify": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", - "dev": true, - "engines": { - "node": ">=8" - } + "dev": true }, - "node_modules/upath": { + "upath": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true, - "engines": { - "node": ">=4", - "yarn": "*" - } + "dev": true }, - "node_modules/urix": { + "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", "dev": true }, - "node_modules/use": { + "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/util-deprecate": { + "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, - "node_modules/util/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" - }, - "node_modules/utils-merge": { + "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } + "dev": true }, - "node_modules/uuid": { + "uuid": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } + "dev": true }, - "node_modules/vary": { + "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } + "dev": true }, - "node_modules/websocket-driver": { + "websocket-driver": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", "dev": true, - "dependencies": { + "requires": { "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" } }, - "node_modules/websocket-extensions": { + "websocket-extensions": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } + "dev": true }, - "node_modules/wrap-ansi": { + "wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "dependencies": { + "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrappy": { + "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, - "node_modules/xtend": { + "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } + "dev": true }, - "node_modules/y18n": { + "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } + "dev": true }, - "node_modules/yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "yargs": { + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", + "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", "dev": true, - "dependencies": { + "requires": { "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", @@ -3397,87 +2477,13 @@ "string-width": "^4.2.3", "y18n": "^5.0.5", "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" } }, - "node_modules/yargs-parser": { + "yargs-parser": { "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "spine-canvas": { - "name": "@esotericsoftware/spine-canvas", - "version": "4.1.26", - "license": "LicenseRef-LICENSE", - "dependencies": { - "@esotericsoftware/spine-core": "^4.1.26" - } - }, - "spine-core": { - "name": "@esotericsoftware/spine-core", - "version": "4.1.26", - "license": "LicenseRef-LICENSE" - }, - "spine-phaser": { - "name": "@esotericsoftware/spine-phaser", - "version": "4.1.26", - "license": "LicenseRef-LICENSE", - "dependencies": { - "@esotericsoftware/spine-canvas": "^4.2.10", - "@esotericsoftware/spine-core": "^4.2.10", - "@esotericsoftware/spine-webgl": "^4.2.10", - "phaser": "^3.55.2" - } - }, - "spine-phaser/node_modules/@esotericsoftware/spine-canvas": { - "version": "4.2.10", - "license": "LicenseRef-LICENSE", - "dependencies": { - "@esotericsoftware/spine-core": "^4.2.10" - } - }, - "spine-phaser/node_modules/@esotericsoftware/spine-core": { - "version": "4.2.10", - "license": "LicenseRef-LICENSE" - }, - "spine-phaser/node_modules/@esotericsoftware/spine-webgl": { - "version": "4.2.10", - "license": "LicenseRef-LICENSE", - "dependencies": { - "@esotericsoftware/spine-core": "^4.2.10" - } - }, - "spine-player": { - "name": "@esotericsoftware/spine-player", - "version": "4.1.26", - "license": "LicenseRef-LICENSE", - "dependencies": { - "@esotericsoftware/spine-webgl": "^4.1.26" - } - }, - "spine-threejs": { - "name": "@esotericsoftware/spine-threejs", - "version": "4.1.26", - "license": "LicenseRef-LICENSE", - "dependencies": { - "@esotericsoftware/spine-core": "^4.1.26", - "@types/three": "^0.146.0", - "three": "^0.146.0" - } - }, - "spine-webgl": { - "name": "@esotericsoftware/spine-webgl", - "version": "4.1.26", - "license": "LicenseRef-LICENSE", - "dependencies": { - "@esotericsoftware/spine-core": "^4.1.26" - } + "dev": true } } } diff --git a/spine-ts/package.json b/spine-ts/package.json index 6489a1a67..53f7074fc 100644 --- a/spine-ts/package.json +++ b/spine-ts/package.json @@ -1,6 +1,6 @@ { "name": "@esotericsoftware/spine-ts", - "version": "4.1.26", + "version": "4.1.27", "description": "The official Spine Runtimes for the web.", "files": [ "README.md" @@ -60,6 +60,9 @@ "esbuild": "^0.16.4", "live-server": "^1.2.2", "rimraf": "^3.0.2", - "typescript": "^4.9.4" + "typescript": "^4.9.4", + "@types/three": "^0.146.0", + "three": "^0.146.0", + "phaser": "^3.60.0" } } diff --git a/spine-ts/publish.sh b/spine-ts/publish.sh index ccca585eb..395de91ed 100755 --- a/spine-ts/publish.sh +++ b/spine-ts/publish.sh @@ -20,6 +20,6 @@ sed -i '' "s/$lastVersion/$newVersion/" spine-threejs/package.json sed -i '' "s/$lastVersion/$newVersion/" spine-webgl/package.json rm -rf node_modules -rm package-lock.json +rm -rf package-lock.json npm install npm publish --access public --workspaces \ No newline at end of file diff --git a/spine-ts/spine-canvas/package.json b/spine-ts/spine-canvas/package.json index 67a8a599e..b36080522 100644 --- a/spine-ts/spine-canvas/package.json +++ b/spine-ts/spine-canvas/package.json @@ -1,6 +1,6 @@ { "name": "@esotericsoftware/spine-canvas", - "version": "4.1.26", + "version": "4.1.27", "description": "The official Spine Runtimes for the web.", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -30,6 +30,6 @@ }, "homepage": "https://github.com/esotericsoftware/spine-runtimes#readme", "dependencies": { - "@esotericsoftware/spine-core": "^4.1.26" + "@esotericsoftware/spine-core": "^4.1.27" } } \ No newline at end of file diff --git a/spine-ts/spine-core/package.json b/spine-ts/spine-core/package.json index cf711dbf4..759b100e4 100644 --- a/spine-ts/spine-core/package.json +++ b/spine-ts/spine-core/package.json @@ -1,6 +1,6 @@ { "name": "@esotericsoftware/spine-core", - "version": "4.1.26", + "version": "4.1.27", "description": "The official Spine Runtimes for the web.", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/spine-ts/spine-phaser/package.json b/spine-ts/spine-phaser/package.json index c1839b86b..9fea348d5 100644 --- a/spine-ts/spine-phaser/package.json +++ b/spine-ts/spine-phaser/package.json @@ -1,6 +1,6 @@ { "name": "@esotericsoftware/spine-phaser", - "version": "4.1.26", + "version": "4.1.27", "description": "The official Spine Runtimes for the Phaser.", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -30,9 +30,8 @@ }, "homepage": "https://github.com/esotericsoftware/spine-runtimes#readme", "dependencies": { - "@esotericsoftware/spine-core": "^4.2.10", - "@esotericsoftware/spine-webgl": "^4.2.10", - "@esotericsoftware/spine-canvas": "^4.2.10", - "phaser": "^3.55.2" + "@esotericsoftware/spine-core": "^4.1.27", + "@esotericsoftware/spine-webgl": "^4.1.27", + "@esotericsoftware/spine-canvas": "^4.1.27" } } \ No newline at end of file diff --git a/spine-ts/spine-player/package.json b/spine-ts/spine-player/package.json index 01c1b5100..e506ca509 100644 --- a/spine-ts/spine-player/package.json +++ b/spine-ts/spine-player/package.json @@ -1,6 +1,6 @@ { "name": "@esotericsoftware/spine-player", - "version": "4.1.26", + "version": "4.1.27", "description": "The official Spine Runtimes for the web.", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -30,6 +30,6 @@ }, "homepage": "https://github.com/esotericsoftware/spine-runtimes#readme", "dependencies": { - "@esotericsoftware/spine-webgl": "^4.1.26" + "@esotericsoftware/spine-webgl": "^4.1.27" } } \ No newline at end of file diff --git a/spine-ts/spine-threejs/package.json b/spine-ts/spine-threejs/package.json index 37ec5b4d3..a1503071b 100644 --- a/spine-ts/spine-threejs/package.json +++ b/spine-ts/spine-threejs/package.json @@ -1,6 +1,6 @@ { "name": "@esotericsoftware/spine-threejs", - "version": "4.1.26", + "version": "4.1.27", "description": "The official Spine Runtimes for the web.", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -30,8 +30,6 @@ }, "homepage": "https://github.com/esotericsoftware/spine-runtimes#readme", "dependencies": { - "@types/three": "^0.146.0", - "three": "^0.146.0", - "@esotericsoftware/spine-core": "^4.1.26" + "@esotericsoftware/spine-core": "^4.1.27" } } \ No newline at end of file diff --git a/spine-ts/spine-webgl/example/custom-attachment.html b/spine-ts/spine-webgl/example/custom-attachment.html index e9c943fd1..728912674 100644 --- a/spine-ts/spine-webgl/example/custom-attachment.html +++ b/spine-ts/spine-webgl/example/custom-attachment.html @@ -59,7 +59,7 @@ let newHeadAttachment = headSlot.getAttachment().copy(); newHeadAttachment.region = textureRegion; newHeadAttachment.updateRegion(); - headSlot.setAttachment(newHeadAttachment); + headSlot.setAttachment(newHeadAttachment); } update(canvas, delta) { diff --git a/spine-ts/spine-webgl/package.json b/spine-ts/spine-webgl/package.json index bbe9c7c83..f399e2182 100644 --- a/spine-ts/spine-webgl/package.json +++ b/spine-ts/spine-webgl/package.json @@ -1,6 +1,6 @@ { "name": "@esotericsoftware/spine-webgl", - "version": "4.1.26", + "version": "4.1.27", "description": "The official Spine Runtimes for the web.", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -30,6 +30,6 @@ }, "homepage": "https://github.com/esotericsoftware/spine-runtimes#readme", "dependencies": { - "@esotericsoftware/spine-core": "^4.1.26" + "@esotericsoftware/spine-core": "^4.1.27" } } \ No newline at end of file